Source code for pyatlan.model.assets.google

# SPDX-License-Identifier: Apache-2.0
# Copyright 2025 Atlan Pte. Ltd.


from __future__ import annotations

from typing import ClassVar, List, Optional

from pydantic.v1 import Field, validator

from pyatlan.model.fields.atlan_fields import (
    KeywordField,
    KeywordTextField,
    NumericField,
)
from pyatlan.model.structs import GoogleLabel, GoogleTag

from .cloud import Cloud


[docs] class Google(Cloud): """Description""" type_name: str = Field(default="Google", allow_mutation=False) @validator("type_name") def validate_type_name(cls, v): if v != "Google": raise ValueError("must be Google") return v def __setattr__(self, name, value): if name in Google._convenience_properties: return object.__setattr__(self, name, value) super().__setattr__(name, value) GOOGLE_SERVICE: ClassVar[KeywordField] = KeywordField( "googleService", "googleService" ) """ Service in Google in which the asset exists. """ GOOGLE_PROJECT_NAME: ClassVar[KeywordTextField] = KeywordTextField( "googleProjectName", "googleProjectName", "googleProjectName.text" ) """ Name of the project in which the asset exists. """ GOOGLE_PROJECT_ID: ClassVar[KeywordTextField] = KeywordTextField( "googleProjectId", "googleProjectId", "googleProjectId.text" ) """ ID of the project in which the asset exists. """ GOOGLE_PROJECT_NUMBER: ClassVar[NumericField] = NumericField( "googleProjectNumber", "googleProjectNumber" ) """ Number of the project in which the asset exists. """ GOOGLE_LOCATION: ClassVar[KeywordField] = KeywordField( "googleLocation", "googleLocation" ) """ Location of this asset in Google. """ GOOGLE_LOCATION_TYPE: ClassVar[KeywordField] = KeywordField( "googleLocationType", "googleLocationType" ) """ Type of location of this asset in Google. """ GOOGLE_LABELS: ClassVar[KeywordField] = KeywordField("googleLabels", "googleLabels") """ List of labels that have been applied to the asset in Google. """ GOOGLE_TAGS: ClassVar[KeywordField] = KeywordField("googleTags", "googleTags") """ List of tags that have been applied to the asset in Google. """ _convenience_properties: ClassVar[List[str]] = [ "google_service", "google_project_name", "google_project_id", "google_project_number", "google_location", "google_location_type", "google_labels", "google_tags", ] @property def google_service(self) -> Optional[str]: return None if self.attributes is None else self.attributes.google_service @google_service.setter def google_service(self, google_service: Optional[str]): if self.attributes is None: self.attributes = self.Attributes() self.attributes.google_service = google_service @property def google_project_name(self) -> Optional[str]: return None if self.attributes is None else self.attributes.google_project_name @google_project_name.setter def google_project_name(self, google_project_name: Optional[str]): if self.attributes is None: self.attributes = self.Attributes() self.attributes.google_project_name = google_project_name @property def google_project_id(self) -> Optional[str]: return None if self.attributes is None else self.attributes.google_project_id @google_project_id.setter def google_project_id(self, google_project_id: Optional[str]): if self.attributes is None: self.attributes = self.Attributes() self.attributes.google_project_id = google_project_id @property def google_project_number(self) -> Optional[int]: return ( None if self.attributes is None else self.attributes.google_project_number ) @google_project_number.setter def google_project_number(self, google_project_number: Optional[int]): if self.attributes is None: self.attributes = self.Attributes() self.attributes.google_project_number = google_project_number @property def google_location(self) -> Optional[str]: return None if self.attributes is None else self.attributes.google_location @google_location.setter def google_location(self, google_location: Optional[str]): if self.attributes is None: self.attributes = self.Attributes() self.attributes.google_location = google_location @property def google_location_type(self) -> Optional[str]: return None if self.attributes is None else self.attributes.google_location_type @google_location_type.setter def google_location_type(self, google_location_type: Optional[str]): if self.attributes is None: self.attributes = self.Attributes() self.attributes.google_location_type = google_location_type @property def google_labels(self) -> Optional[List[GoogleLabel]]: return None if self.attributes is None else self.attributes.google_labels @google_labels.setter def google_labels(self, google_labels: Optional[List[GoogleLabel]]): if self.attributes is None: self.attributes = self.Attributes() self.attributes.google_labels = google_labels @property def google_tags(self) -> Optional[List[GoogleTag]]: return None if self.attributes is None else self.attributes.google_tags @google_tags.setter def google_tags(self, google_tags: Optional[List[GoogleTag]]): if self.attributes is None: self.attributes = self.Attributes() self.attributes.google_tags = google_tags class Attributes(Cloud.Attributes): google_service: Optional[str] = Field(default=None, description="") google_project_name: Optional[str] = Field(default=None, description="") google_project_id: Optional[str] = Field(default=None, description="") google_project_number: Optional[int] = Field(default=None, description="") google_location: Optional[str] = Field(default=None, description="") google_location_type: Optional[str] = Field(default=None, description="") google_labels: Optional[List[GoogleLabel]] = Field(default=None, description="") google_tags: Optional[List[GoogleTag]] = Field(default=None, description="") attributes: Google.Attributes = Field( default_factory=lambda: Google.Attributes(), description=( "Map of attributes in the instance and their values. " "The specific keys of this map will vary by type, " "so are described in the sub-types of this schema." ), )
Google.Attributes.update_forward_refs()