Source code for pyatlan.model.assets.core.fivetran_connector

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


from __future__ import annotations

from datetime import datetime
from typing import ClassVar, List, Optional

from pydantic.v1 import Field, validator

from pyatlan.model.fields.atlan_fields import (
    BooleanField,
    KeywordField,
    KeywordTextField,
    NumericField,
    RelationField,
    TextField,
)

from .fivetran import Fivetran


[docs] class FivetranConnector(Fivetran): """Description""" type_name: str = Field(default="FivetranConnector", allow_mutation=False) @validator("type_name") def validate_type_name(cls, v): if v != "FivetranConnector": raise ValueError("must be FivetranConnector") return v def __setattr__(self, name, value): if name in FivetranConnector._convenience_properties: return object.__setattr__(self, name, value) super().__setattr__(name, value) FIVETRAN_CONNECTOR_LAST_SYNC_ID: ClassVar[KeywordField] = KeywordField( "fivetranConnectorLastSyncId", "fivetranConnectorLastSyncId" ) """ ID of the latest sync """ FIVETRAN_CONNECTOR_LAST_SYNC_STARTED_AT: ClassVar[NumericField] = NumericField( "fivetranConnectorLastSyncStartedAt", "fivetranConnectorLastSyncStartedAt" ) """ Timestamp (epoch) when the latest sync started on Fivetran, in milliseconds """ FIVETRAN_CONNECTOR_LAST_SYNC_FINISHED_AT: ClassVar[NumericField] = NumericField( "fivetranConnectorLastSyncFinishedAt", "fivetranConnectorLastSyncFinishedAt" ) """ Timestamp (epoch) when the latest sync finished on Fivetran, in milliseconds """ FIVETRAN_CONNECTOR_LAST_SYNC_REASON: ClassVar[KeywordTextField] = KeywordTextField( "fivetranConnectorLastSyncReason", "fivetranConnectorLastSyncReason.keyword", "fivetranConnectorLastSyncReason", ) """ Failure reason for the latest sync on Fivetran. If status is FAILURE, this is the description of the reason why the sync failed. If status is FAILURE_WITH_TASK, this is the description of the Error. If status is RESCHEDULED, this is the description of the reason why the sync is rescheduled. """ # noqa: E501 FIVETRAN_CONNECTOR_LAST_SYNC_TASK_TYPE: ClassVar[KeywordField] = KeywordField( "fivetranConnectorLastSyncTaskType", "fivetranConnectorLastSyncTaskType" ) """ Failure task type for the latest sync on Fivetran. If status is FAILURE_WITH_TASK or RESCHEDULED, this field displays the type of the Error that caused the failure or rescheduling, respectively, e.g., reconnect, update_service_account, etc. """ # noqa: E501 FIVETRAN_CONNECTOR_LAST_SYNC_RESCHEDULED_AT: ClassVar[NumericField] = NumericField( "fivetranConnectorLastSyncRescheduledAt", "fivetranConnectorLastSyncRescheduledAt", ) """ Timestamp (epoch) at which the latest sync is rescheduled at on Fivetran """ FIVETRAN_CONNECTOR_LAST_SYNC_TABLES_SYNCED: ClassVar[NumericField] = NumericField( "fivetranConnectorLastSyncTablesSynced", "fivetranConnectorLastSyncTablesSynced" ) """ Number of tables synced in the latest sync on Fivetran """ FIVETRAN_CONNECTOR_LAST_SYNC_EXTRACT_TIME_SECONDS: ClassVar[NumericField] = ( NumericField( "fivetranConnectorLastSyncExtractTimeSeconds", "fivetranConnectorLastSyncExtractTimeSeconds", ) ) """ Extract time in seconds in the latest sync on fivetran """ FIVETRAN_CONNECTOR_LAST_SYNC_EXTRACT_VOLUME_MEGABYTES: ClassVar[NumericField] = ( NumericField( "fivetranConnectorLastSyncExtractVolumeMegabytes", "fivetranConnectorLastSyncExtractVolumeMegabytes", ) ) """ Extracted data volume in metabytes in the latest sync on Fivetran """ FIVETRAN_CONNECTOR_LAST_SYNC_LOAD_TIME_SECONDS: ClassVar[NumericField] = ( NumericField( "fivetranConnectorLastSyncLoadTimeSeconds", "fivetranConnectorLastSyncLoadTimeSeconds", ) ) """ Load time in seconds in the latest sync on Fivetran """ FIVETRAN_CONNECTOR_LAST_SYNC_LOAD_VOLUME_MEGABYTES: ClassVar[NumericField] = ( NumericField( "fivetranConnectorLastSyncLoadVolumeMegabytes", "fivetranConnectorLastSyncLoadVolumeMegabytes", ) ) """ Loaded data volume in metabytes in the latest sync on Fivetran """ FIVETRAN_CONNECTOR_LAST_SYNC_PROCESS_TIME_SECONDS: ClassVar[NumericField] = ( NumericField( "fivetranConnectorLastSyncProcessTimeSeconds", "fivetranConnectorLastSyncProcessTimeSeconds", ) ) """ Process time in seconds in the latest sync on Fivetran """ FIVETRAN_CONNECTOR_LAST_SYNC_PROCESS_VOLUME_MEGABYTES: ClassVar[NumericField] = ( NumericField( "fivetranConnectorLastSyncProcessVolumeMegabytes", "fivetranConnectorLastSyncProcessVolumeMegabytes", ) ) """ Process volume in metabytes in the latest sync on Fivetran """ FIVETRAN_CONNECTOR_LAST_SYNC_TOTAL_TIME_SECONDS: ClassVar[NumericField] = ( NumericField( "fivetranConnectorLastSyncTotalTimeSeconds", "fivetranConnectorLastSyncTotalTimeSeconds", ) ) """ Total sync time in seconds in the latest sync on Fivetran """ FIVETRAN_CONNECTOR_NAME: ClassVar[KeywordField] = KeywordField( "fivetranConnectorName", "fivetranConnectorName" ) """ Connector name added by the user on Fivetran """ FIVETRAN_CONNECTOR_TYPE: ClassVar[KeywordField] = KeywordField( "fivetranConnectorType", "fivetranConnectorType" ) """ Type of connector on Fivetran. Eg: snowflake, google_analytics, notion etc. """ FIVETRAN_CONNECTOR_URL: ClassVar[KeywordField] = KeywordField( "fivetranConnectorURL", "fivetranConnectorURL" ) """ URL to open the connector details on Fivetran """ FIVETRAN_CONNECTOR_DESTINATION_NAME: ClassVar[KeywordField] = KeywordField( "fivetranConnectorDestinationName", "fivetranConnectorDestinationName" ) """ Destination name added by the user on Fivetran """ FIVETRAN_CONNECTOR_DESTINATION_TYPE: ClassVar[KeywordField] = KeywordField( "fivetranConnectorDestinationType", "fivetranConnectorDestinationType" ) """ Type of destination on Fivetran. Eg: redshift, bigquery etc. """ FIVETRAN_CONNECTOR_DESTINATION_URL: ClassVar[KeywordField] = KeywordField( "fivetranConnectorDestinationURL", "fivetranConnectorDestinationURL" ) """ URL to open the destination details on Fivetran """ FIVETRAN_CONNECTOR_SYNC_SETUP_ON: ClassVar[NumericField] = NumericField( "fivetranConnectorSyncSetupOn", "fivetranConnectorSyncSetupOn" ) """ Timestamp (epoch) on which the connector was setup on Fivetran, in milliseconds """ FIVETRAN_CONNECTOR_SYNC_FREQUENCY: ClassVar[KeywordField] = KeywordField( "fivetranConnectorSyncFrequency", "fivetranConnectorSyncFrequency" ) """ Sync frequency for the connector in number of hours. Eg: Every 6 hours """ FIVETRAN_CONNECTOR_SYNC_PAUSED: ClassVar[BooleanField] = BooleanField( "fivetranConnectorSyncPaused", "fivetranConnectorSyncPaused" ) """ Boolean to indicate whether the sync for this connector is paused or not """ FIVETRAN_CONNECTOR_SYNC_SETUP_USER_FULL_NAME: ClassVar[KeywordField] = KeywordField( "fivetranConnectorSyncSetupUserFullName", "fivetranConnectorSyncSetupUserFullName", ) """ Full name of the user who setup the connector on Fivetran """ FIVETRAN_CONNECTOR_SYNC_SETUP_USER_EMAIL: ClassVar[KeywordField] = KeywordField( "fivetranConnectorSyncSetupUserEmail", "fivetranConnectorSyncSetupUserEmail" ) """ Email ID of the user who setpu the connector on Fivetran """ FIVETRAN_CONNECTOR_MONTHLY_ACTIVE_ROWS_FREE: ClassVar[NumericField] = NumericField( "fivetranConnectorMonthlyActiveRowsFree", "fivetranConnectorMonthlyActiveRowsFree", ) """ Free Monthly Active Rows used by the connector in the past month """ FIVETRAN_CONNECTOR_MONTHLY_ACTIVE_ROWS_PAID: ClassVar[NumericField] = NumericField( "fivetranConnectorMonthlyActiveRowsPaid", "fivetranConnectorMonthlyActiveRowsPaid", ) """ Paid Monthly Active Rows used by the connector in the past month """ FIVETRAN_CONNECTOR_MONTHLY_ACTIVE_ROWS_TOTAL: ClassVar[NumericField] = NumericField( "fivetranConnectorMonthlyActiveRowsTotal", "fivetranConnectorMonthlyActiveRowsTotal", ) """ Total Monthly Active Rows used by the connector in the past month """ FIVETRAN_CONNECTOR_MONTHLY_ACTIVE_ROWS_CHANGE_PERCENTAGE_FREE: ClassVar[ NumericField ] = NumericField( "fivetranConnectorMonthlyActiveRowsChangePercentageFree", "fivetranConnectorMonthlyActiveRowsChangePercentageFree", ) """ Increase in the percentage of free MAR compared to the previous month """ FIVETRAN_CONNECTOR_MONTHLY_ACTIVE_ROWS_CHANGE_PERCENTAGE_PAID: ClassVar[ NumericField ] = NumericField( "fivetranConnectorMonthlyActiveRowsChangePercentagePaid", "fivetranConnectorMonthlyActiveRowsChangePercentagePaid", ) """ Increase in the percentage of paid MAR compared to the previous month """ FIVETRAN_CONNECTOR_MONTHLY_ACTIVE_ROWS_CHANGE_PERCENTAGE_TOTAL: ClassVar[ NumericField ] = NumericField( "fivetranConnectorMonthlyActiveRowsChangePercentageTotal", "fivetranConnectorMonthlyActiveRowsChangePercentageTotal", ) """ Increase in the percentage of total MAR compared to the previous month """ FIVETRAN_CONNECTOR_MONTHLY_ACTIVE_ROWS_FREE_PERCENTAGE_OF_ACCOUNT: ClassVar[ NumericField ] = NumericField( "fivetranConnectorMonthlyActiveRowsFreePercentageOfAccount", "fivetranConnectorMonthlyActiveRowsFreePercentageOfAccount", ) """ Percentage of the account's total free MAR used by this connector """ FIVETRAN_CONNECTOR_MONTHLY_ACTIVE_ROWS_PAID_PERCENTAGE_OF_ACCOUNT: ClassVar[ NumericField ] = NumericField( "fivetranConnectorMonthlyActiveRowsPaidPercentageOfAccount", "fivetranConnectorMonthlyActiveRowsPaidPercentageOfAccount", ) """ Percentage of the account's total paid MAR used by this connector """ FIVETRAN_CONNECTOR_MONTHLY_ACTIVE_ROWS_TOTAL_PERCENTAGE_OF_ACCOUNT: ClassVar[ NumericField ] = NumericField( "fivetranConnectorMonthlyActiveRowsTotalPercentageOfAccount", "fivetranConnectorMonthlyActiveRowsTotalPercentageOfAccount", ) """ Percentage of the account's total MAR used by this connector """ FIVETRAN_CONNECTOR_TOTAL_TABLES_SYNCED: ClassVar[NumericField] = NumericField( "fivetranConnectorTotalTablesSynced", "fivetranConnectorTotalTablesSynced" ) """ Total number of tables synced by this connector """ FIVETRAN_CONNECTOR_TOP_TABLES_BY_MAR: ClassVar[TextField] = TextField( "fivetranConnectorTopTablesByMAR", "fivetranConnectorTopTablesByMAR" ) """ Total five tables sorted by MAR synced by this connector """ FIVETRAN_CONNECTOR_USAGE_COST: ClassVar[NumericField] = NumericField( "fivetranConnectorUsageCost", "fivetranConnectorUsageCost" ) """ Total usage cost by this destination """ FIVETRAN_CONNECTOR_CREDITS_USED: ClassVar[NumericField] = NumericField( "fivetranConnectorCreditsUsed", "fivetranConnectorCreditsUsed" ) """ Total credits used by this destination """ PROCESSES: ClassVar[RelationField] = RelationField("processes") """ TBC """ _convenience_properties: ClassVar[List[str]] = [ "fivetran_connector_last_sync_id", "fivetran_connector_last_sync_started_at", "fivetran_connector_last_sync_finished_at", "fivetran_connector_last_sync_reason", "fivetran_connector_last_sync_task_type", "fivetran_connector_last_sync_rescheduled_at", "fivetran_connector_last_sync_tables_synced", "fivetran_connector_last_sync_extract_time_seconds", "fivetran_connector_last_sync_extract_volume_megabytes", "fivetran_connector_last_sync_load_time_seconds", "fivetran_connector_last_sync_load_volume_megabytes", "fivetran_connector_last_sync_process_time_seconds", "fivetran_connector_last_sync_process_volume_megabytes", "fivetran_connector_last_sync_total_time_seconds", "fivetran_connector_name", "fivetran_connector_type", "fivetran_connector_url", "fivetran_connector_destination_name", "fivetran_connector_destination_type", "fivetran_connector_destination_url", "fivetran_connector_sync_setup_on", "fivetran_connector_sync_frequency", "fivetran_connector_sync_paused", "fivetran_connector_sync_setup_user_full_name", "fivetran_connector_sync_setup_user_email", "fivetran_connector_monthly_active_rows_free", "fivetran_connector_monthly_active_rows_paid", "fivetran_connector_monthly_active_rows_total", "fivetran_connector_monthly_active_rows_change_percentage_free", "fivetran_connector_monthly_active_rows_change_percentage_paid", "fivetran_connector_monthly_active_rows_change_percentage_total", "fivetran_connector_monthly_active_rows_free_percentage_of_account", "fivetran_connector_monthly_active_rows_paid_percentage_of_account", "fivetran_connector_monthly_active_rows_total_percentage_of_account", "fivetran_connector_total_tables_synced", "fivetran_connector_top_tables_by_m_a_r", "fivetran_connector_usage_cost", "fivetran_connector_credits_used", "processes", ] @property def fivetran_connector_last_sync_id(self) -> Optional[str]: return ( None if self.attributes is None else self.attributes.fivetran_connector_last_sync_id ) @fivetran_connector_last_sync_id.setter def fivetran_connector_last_sync_id( self, fivetran_connector_last_sync_id: Optional[str] ): if self.attributes is None: self.attributes = self.Attributes() self.attributes.fivetran_connector_last_sync_id = ( fivetran_connector_last_sync_id ) @property def fivetran_connector_last_sync_started_at(self) -> Optional[datetime]: return ( None if self.attributes is None else self.attributes.fivetran_connector_last_sync_started_at ) @fivetran_connector_last_sync_started_at.setter def fivetran_connector_last_sync_started_at( self, fivetran_connector_last_sync_started_at: Optional[datetime] ): if self.attributes is None: self.attributes = self.Attributes() self.attributes.fivetran_connector_last_sync_started_at = ( fivetran_connector_last_sync_started_at ) @property def fivetran_connector_last_sync_finished_at(self) -> Optional[datetime]: return ( None if self.attributes is None else self.attributes.fivetran_connector_last_sync_finished_at ) @fivetran_connector_last_sync_finished_at.setter def fivetran_connector_last_sync_finished_at( self, fivetran_connector_last_sync_finished_at: Optional[datetime] ): if self.attributes is None: self.attributes = self.Attributes() self.attributes.fivetran_connector_last_sync_finished_at = ( fivetran_connector_last_sync_finished_at ) @property def fivetran_connector_last_sync_reason(self) -> Optional[str]: return ( None if self.attributes is None else self.attributes.fivetran_connector_last_sync_reason ) @fivetran_connector_last_sync_reason.setter def fivetran_connector_last_sync_reason( self, fivetran_connector_last_sync_reason: Optional[str] ): if self.attributes is None: self.attributes = self.Attributes() self.attributes.fivetran_connector_last_sync_reason = ( fivetran_connector_last_sync_reason ) @property def fivetran_connector_last_sync_task_type(self) -> Optional[str]: return ( None if self.attributes is None else self.attributes.fivetran_connector_last_sync_task_type ) @fivetran_connector_last_sync_task_type.setter def fivetran_connector_last_sync_task_type( self, fivetran_connector_last_sync_task_type: Optional[str] ): if self.attributes is None: self.attributes = self.Attributes() self.attributes.fivetran_connector_last_sync_task_type = ( fivetran_connector_last_sync_task_type ) @property def fivetran_connector_last_sync_rescheduled_at(self) -> Optional[datetime]: return ( None if self.attributes is None else self.attributes.fivetran_connector_last_sync_rescheduled_at ) @fivetran_connector_last_sync_rescheduled_at.setter def fivetran_connector_last_sync_rescheduled_at( self, fivetran_connector_last_sync_rescheduled_at: Optional[datetime] ): if self.attributes is None: self.attributes = self.Attributes() self.attributes.fivetran_connector_last_sync_rescheduled_at = ( fivetran_connector_last_sync_rescheduled_at ) @property def fivetran_connector_last_sync_tables_synced(self) -> Optional[int]: return ( None if self.attributes is None else self.attributes.fivetran_connector_last_sync_tables_synced ) @fivetran_connector_last_sync_tables_synced.setter def fivetran_connector_last_sync_tables_synced( self, fivetran_connector_last_sync_tables_synced: Optional[int] ): if self.attributes is None: self.attributes = self.Attributes() self.attributes.fivetran_connector_last_sync_tables_synced = ( fivetran_connector_last_sync_tables_synced ) @property def fivetran_connector_last_sync_extract_time_seconds(self) -> Optional[float]: return ( None if self.attributes is None else self.attributes.fivetran_connector_last_sync_extract_time_seconds ) @fivetran_connector_last_sync_extract_time_seconds.setter def fivetran_connector_last_sync_extract_time_seconds( self, fivetran_connector_last_sync_extract_time_seconds: Optional[float] ): if self.attributes is None: self.attributes = self.Attributes() self.attributes.fivetran_connector_last_sync_extract_time_seconds = ( fivetran_connector_last_sync_extract_time_seconds ) @property def fivetran_connector_last_sync_extract_volume_megabytes(self) -> Optional[float]: return ( None if self.attributes is None else self.attributes.fivetran_connector_last_sync_extract_volume_megabytes ) @fivetran_connector_last_sync_extract_volume_megabytes.setter def fivetran_connector_last_sync_extract_volume_megabytes( self, fivetran_connector_last_sync_extract_volume_megabytes: Optional[float] ): if self.attributes is None: self.attributes = self.Attributes() self.attributes.fivetran_connector_last_sync_extract_volume_megabytes = ( fivetran_connector_last_sync_extract_volume_megabytes ) @property def fivetran_connector_last_sync_load_time_seconds(self) -> Optional[float]: return ( None if self.attributes is None else self.attributes.fivetran_connector_last_sync_load_time_seconds ) @fivetran_connector_last_sync_load_time_seconds.setter def fivetran_connector_last_sync_load_time_seconds( self, fivetran_connector_last_sync_load_time_seconds: Optional[float] ): if self.attributes is None: self.attributes = self.Attributes() self.attributes.fivetran_connector_last_sync_load_time_seconds = ( fivetran_connector_last_sync_load_time_seconds ) @property def fivetran_connector_last_sync_load_volume_megabytes(self) -> Optional[float]: return ( None if self.attributes is None else self.attributes.fivetran_connector_last_sync_load_volume_megabytes ) @fivetran_connector_last_sync_load_volume_megabytes.setter def fivetran_connector_last_sync_load_volume_megabytes( self, fivetran_connector_last_sync_load_volume_megabytes: Optional[float] ): if self.attributes is None: self.attributes = self.Attributes() self.attributes.fivetran_connector_last_sync_load_volume_megabytes = ( fivetran_connector_last_sync_load_volume_megabytes ) @property def fivetran_connector_last_sync_process_time_seconds(self) -> Optional[float]: return ( None if self.attributes is None else self.attributes.fivetran_connector_last_sync_process_time_seconds ) @fivetran_connector_last_sync_process_time_seconds.setter def fivetran_connector_last_sync_process_time_seconds( self, fivetran_connector_last_sync_process_time_seconds: Optional[float] ): if self.attributes is None: self.attributes = self.Attributes() self.attributes.fivetran_connector_last_sync_process_time_seconds = ( fivetran_connector_last_sync_process_time_seconds ) @property def fivetran_connector_last_sync_process_volume_megabytes(self) -> Optional[float]: return ( None if self.attributes is None else self.attributes.fivetran_connector_last_sync_process_volume_megabytes ) @fivetran_connector_last_sync_process_volume_megabytes.setter def fivetran_connector_last_sync_process_volume_megabytes( self, fivetran_connector_last_sync_process_volume_megabytes: Optional[float] ): if self.attributes is None: self.attributes = self.Attributes() self.attributes.fivetran_connector_last_sync_process_volume_megabytes = ( fivetran_connector_last_sync_process_volume_megabytes ) @property def fivetran_connector_last_sync_total_time_seconds(self) -> Optional[float]: return ( None if self.attributes is None else self.attributes.fivetran_connector_last_sync_total_time_seconds ) @fivetran_connector_last_sync_total_time_seconds.setter def fivetran_connector_last_sync_total_time_seconds( self, fivetran_connector_last_sync_total_time_seconds: Optional[float] ): if self.attributes is None: self.attributes = self.Attributes() self.attributes.fivetran_connector_last_sync_total_time_seconds = ( fivetran_connector_last_sync_total_time_seconds ) @property def fivetran_connector_name(self) -> Optional[str]: return ( None if self.attributes is None else self.attributes.fivetran_connector_name ) @fivetran_connector_name.setter def fivetran_connector_name(self, fivetran_connector_name: Optional[str]): if self.attributes is None: self.attributes = self.Attributes() self.attributes.fivetran_connector_name = fivetran_connector_name @property def fivetran_connector_type(self) -> Optional[str]: return ( None if self.attributes is None else self.attributes.fivetran_connector_type ) @fivetran_connector_type.setter def fivetran_connector_type(self, fivetran_connector_type: Optional[str]): if self.attributes is None: self.attributes = self.Attributes() self.attributes.fivetran_connector_type = fivetran_connector_type @property def fivetran_connector_url(self) -> Optional[str]: return ( None if self.attributes is None else self.attributes.fivetran_connector_url ) @fivetran_connector_url.setter def fivetran_connector_url(self, fivetran_connector_url: Optional[str]): if self.attributes is None: self.attributes = self.Attributes() self.attributes.fivetran_connector_url = fivetran_connector_url @property def fivetran_connector_destination_name(self) -> Optional[str]: return ( None if self.attributes is None else self.attributes.fivetran_connector_destination_name ) @fivetran_connector_destination_name.setter def fivetran_connector_destination_name( self, fivetran_connector_destination_name: Optional[str] ): if self.attributes is None: self.attributes = self.Attributes() self.attributes.fivetran_connector_destination_name = ( fivetran_connector_destination_name ) @property def fivetran_connector_destination_type(self) -> Optional[str]: return ( None if self.attributes is None else self.attributes.fivetran_connector_destination_type ) @fivetran_connector_destination_type.setter def fivetran_connector_destination_type( self, fivetran_connector_destination_type: Optional[str] ): if self.attributes is None: self.attributes = self.Attributes() self.attributes.fivetran_connector_destination_type = ( fivetran_connector_destination_type ) @property def fivetran_connector_destination_url(self) -> Optional[str]: return ( None if self.attributes is None else self.attributes.fivetran_connector_destination_url ) @fivetran_connector_destination_url.setter def fivetran_connector_destination_url( self, fivetran_connector_destination_url: Optional[str] ): if self.attributes is None: self.attributes = self.Attributes() self.attributes.fivetran_connector_destination_url = ( fivetran_connector_destination_url ) @property def fivetran_connector_sync_setup_on(self) -> Optional[datetime]: return ( None if self.attributes is None else self.attributes.fivetran_connector_sync_setup_on ) @fivetran_connector_sync_setup_on.setter def fivetran_connector_sync_setup_on( self, fivetran_connector_sync_setup_on: Optional[datetime] ): if self.attributes is None: self.attributes = self.Attributes() self.attributes.fivetran_connector_sync_setup_on = ( fivetran_connector_sync_setup_on ) @property def fivetran_connector_sync_frequency(self) -> Optional[str]: return ( None if self.attributes is None else self.attributes.fivetran_connector_sync_frequency ) @fivetran_connector_sync_frequency.setter def fivetran_connector_sync_frequency( self, fivetran_connector_sync_frequency: Optional[str] ): if self.attributes is None: self.attributes = self.Attributes() self.attributes.fivetran_connector_sync_frequency = ( fivetran_connector_sync_frequency ) @property def fivetran_connector_sync_paused(self) -> Optional[bool]: return ( None if self.attributes is None else self.attributes.fivetran_connector_sync_paused ) @fivetran_connector_sync_paused.setter def fivetran_connector_sync_paused( self, fivetran_connector_sync_paused: Optional[bool] ): if self.attributes is None: self.attributes = self.Attributes() self.attributes.fivetran_connector_sync_paused = fivetran_connector_sync_paused @property def fivetran_connector_sync_setup_user_full_name(self) -> Optional[str]: return ( None if self.attributes is None else self.attributes.fivetran_connector_sync_setup_user_full_name ) @fivetran_connector_sync_setup_user_full_name.setter def fivetran_connector_sync_setup_user_full_name( self, fivetran_connector_sync_setup_user_full_name: Optional[str] ): if self.attributes is None: self.attributes = self.Attributes() self.attributes.fivetran_connector_sync_setup_user_full_name = ( fivetran_connector_sync_setup_user_full_name ) @property def fivetran_connector_sync_setup_user_email(self) -> Optional[str]: return ( None if self.attributes is None else self.attributes.fivetran_connector_sync_setup_user_email ) @fivetran_connector_sync_setup_user_email.setter def fivetran_connector_sync_setup_user_email( self, fivetran_connector_sync_setup_user_email: Optional[str] ): if self.attributes is None: self.attributes = self.Attributes() self.attributes.fivetran_connector_sync_setup_user_email = ( fivetran_connector_sync_setup_user_email ) @property def fivetran_connector_monthly_active_rows_free(self) -> Optional[int]: return ( None if self.attributes is None else self.attributes.fivetran_connector_monthly_active_rows_free ) @fivetran_connector_monthly_active_rows_free.setter def fivetran_connector_monthly_active_rows_free( self, fivetran_connector_monthly_active_rows_free: Optional[int] ): if self.attributes is None: self.attributes = self.Attributes() self.attributes.fivetran_connector_monthly_active_rows_free = ( fivetran_connector_monthly_active_rows_free ) @property def fivetran_connector_monthly_active_rows_paid(self) -> Optional[int]: return ( None if self.attributes is None else self.attributes.fivetran_connector_monthly_active_rows_paid ) @fivetran_connector_monthly_active_rows_paid.setter def fivetran_connector_monthly_active_rows_paid( self, fivetran_connector_monthly_active_rows_paid: Optional[int] ): if self.attributes is None: self.attributes = self.Attributes() self.attributes.fivetran_connector_monthly_active_rows_paid = ( fivetran_connector_monthly_active_rows_paid ) @property def fivetran_connector_monthly_active_rows_total(self) -> Optional[int]: return ( None if self.attributes is None else self.attributes.fivetran_connector_monthly_active_rows_total ) @fivetran_connector_monthly_active_rows_total.setter def fivetran_connector_monthly_active_rows_total( self, fivetran_connector_monthly_active_rows_total: Optional[int] ): if self.attributes is None: self.attributes = self.Attributes() self.attributes.fivetran_connector_monthly_active_rows_total = ( fivetran_connector_monthly_active_rows_total ) @property def fivetran_connector_monthly_active_rows_change_percentage_free( self, ) -> Optional[float]: return ( None if self.attributes is None else self.attributes.fivetran_connector_monthly_active_rows_change_percentage_free ) @fivetran_connector_monthly_active_rows_change_percentage_free.setter def fivetran_connector_monthly_active_rows_change_percentage_free( self, fivetran_connector_monthly_active_rows_change_percentage_free: Optional[float], ): if self.attributes is None: self.attributes = self.Attributes() self.attributes.fivetran_connector_monthly_active_rows_change_percentage_free = fivetran_connector_monthly_active_rows_change_percentage_free @property def fivetran_connector_monthly_active_rows_change_percentage_paid( self, ) -> Optional[float]: return ( None if self.attributes is None else self.attributes.fivetran_connector_monthly_active_rows_change_percentage_paid ) @fivetran_connector_monthly_active_rows_change_percentage_paid.setter def fivetran_connector_monthly_active_rows_change_percentage_paid( self, fivetran_connector_monthly_active_rows_change_percentage_paid: Optional[float], ): if self.attributes is None: self.attributes = self.Attributes() self.attributes.fivetran_connector_monthly_active_rows_change_percentage_paid = fivetran_connector_monthly_active_rows_change_percentage_paid @property def fivetran_connector_monthly_active_rows_change_percentage_total( self, ) -> Optional[float]: return ( None if self.attributes is None else self.attributes.fivetran_connector_monthly_active_rows_change_percentage_total ) @fivetran_connector_monthly_active_rows_change_percentage_total.setter def fivetran_connector_monthly_active_rows_change_percentage_total( self, fivetran_connector_monthly_active_rows_change_percentage_total: Optional[float], ): if self.attributes is None: self.attributes = self.Attributes() self.attributes.fivetran_connector_monthly_active_rows_change_percentage_total = fivetran_connector_monthly_active_rows_change_percentage_total @property def fivetran_connector_monthly_active_rows_free_percentage_of_account( self, ) -> Optional[float]: return ( None if self.attributes is None else self.attributes.fivetran_connector_monthly_active_rows_free_percentage_of_account ) @fivetran_connector_monthly_active_rows_free_percentage_of_account.setter def fivetran_connector_monthly_active_rows_free_percentage_of_account( self, fivetran_connector_monthly_active_rows_free_percentage_of_account: Optional[ float ], ): if self.attributes is None: self.attributes = self.Attributes() self.attributes.fivetran_connector_monthly_active_rows_free_percentage_of_account = fivetran_connector_monthly_active_rows_free_percentage_of_account @property def fivetran_connector_monthly_active_rows_paid_percentage_of_account( self, ) -> Optional[float]: return ( None if self.attributes is None else self.attributes.fivetran_connector_monthly_active_rows_paid_percentage_of_account ) @fivetran_connector_monthly_active_rows_paid_percentage_of_account.setter def fivetran_connector_monthly_active_rows_paid_percentage_of_account( self, fivetran_connector_monthly_active_rows_paid_percentage_of_account: Optional[ float ], ): if self.attributes is None: self.attributes = self.Attributes() self.attributes.fivetran_connector_monthly_active_rows_paid_percentage_of_account = fivetran_connector_monthly_active_rows_paid_percentage_of_account @property def fivetran_connector_monthly_active_rows_total_percentage_of_account( self, ) -> Optional[float]: return ( None if self.attributes is None else self.attributes.fivetran_connector_monthly_active_rows_total_percentage_of_account ) @fivetran_connector_monthly_active_rows_total_percentage_of_account.setter def fivetran_connector_monthly_active_rows_total_percentage_of_account( self, fivetran_connector_monthly_active_rows_total_percentage_of_account: Optional[ float ], ): if self.attributes is None: self.attributes = self.Attributes() self.attributes.fivetran_connector_monthly_active_rows_total_percentage_of_account = fivetran_connector_monthly_active_rows_total_percentage_of_account @property def fivetran_connector_total_tables_synced(self) -> Optional[int]: return ( None if self.attributes is None else self.attributes.fivetran_connector_total_tables_synced ) @fivetran_connector_total_tables_synced.setter def fivetran_connector_total_tables_synced( self, fivetran_connector_total_tables_synced: Optional[int] ): if self.attributes is None: self.attributes = self.Attributes() self.attributes.fivetran_connector_total_tables_synced = ( fivetran_connector_total_tables_synced ) @property def fivetran_connector_top_tables_by_m_a_r(self) -> Optional[str]: return ( None if self.attributes is None else self.attributes.fivetran_connector_top_tables_by_m_a_r ) @fivetran_connector_top_tables_by_m_a_r.setter def fivetran_connector_top_tables_by_m_a_r( self, fivetran_connector_top_tables_by_m_a_r: Optional[str] ): if self.attributes is None: self.attributes = self.Attributes() self.attributes.fivetran_connector_top_tables_by_m_a_r = ( fivetran_connector_top_tables_by_m_a_r ) @property def fivetran_connector_usage_cost(self) -> Optional[float]: return ( None if self.attributes is None else self.attributes.fivetran_connector_usage_cost ) @fivetran_connector_usage_cost.setter def fivetran_connector_usage_cost( self, fivetran_connector_usage_cost: Optional[float] ): if self.attributes is None: self.attributes = self.Attributes() self.attributes.fivetran_connector_usage_cost = fivetran_connector_usage_cost @property def fivetran_connector_credits_used(self) -> Optional[float]: return ( None if self.attributes is None else self.attributes.fivetran_connector_credits_used ) @fivetran_connector_credits_used.setter def fivetran_connector_credits_used( self, fivetran_connector_credits_used: Optional[float] ): if self.attributes is None: self.attributes = self.Attributes() self.attributes.fivetran_connector_credits_used = ( fivetran_connector_credits_used ) @property def processes(self) -> Optional[List[Process]]: return None if self.attributes is None else self.attributes.processes @processes.setter def processes(self, processes: Optional[List[Process]]): if self.attributes is None: self.attributes = self.Attributes() self.attributes.processes = processes class Attributes(Fivetran.Attributes): fivetran_connector_last_sync_id: Optional[str] = Field( default=None, description="" ) fivetran_connector_last_sync_started_at: Optional[datetime] = Field( default=None, description="" ) fivetran_connector_last_sync_finished_at: Optional[datetime] = Field( default=None, description="" ) fivetran_connector_last_sync_reason: Optional[str] = Field( default=None, description="" ) fivetran_connector_last_sync_task_type: Optional[str] = Field( default=None, description="" ) fivetran_connector_last_sync_rescheduled_at: Optional[datetime] = Field( default=None, description="" ) fivetran_connector_last_sync_tables_synced: Optional[int] = Field( default=None, description="" ) fivetran_connector_last_sync_extract_time_seconds: Optional[float] = Field( default=None, description="" ) fivetran_connector_last_sync_extract_volume_megabytes: Optional[float] = Field( default=None, description="" ) fivetran_connector_last_sync_load_time_seconds: Optional[float] = Field( default=None, description="" ) fivetran_connector_last_sync_load_volume_megabytes: Optional[float] = Field( default=None, description="" ) fivetran_connector_last_sync_process_time_seconds: Optional[float] = Field( default=None, description="" ) fivetran_connector_last_sync_process_volume_megabytes: Optional[float] = Field( default=None, description="" ) fivetran_connector_last_sync_total_time_seconds: Optional[float] = Field( default=None, description="" ) fivetran_connector_name: Optional[str] = Field(default=None, description="") fivetran_connector_type: Optional[str] = Field(default=None, description="") fivetran_connector_url: Optional[str] = Field(default=None, description="") fivetran_connector_destination_name: Optional[str] = Field( default=None, description="" ) fivetran_connector_destination_type: Optional[str] = Field( default=None, description="" ) fivetran_connector_destination_url: Optional[str] = Field( default=None, description="" ) fivetran_connector_sync_setup_on: Optional[datetime] = Field( default=None, description="" ) fivetran_connector_sync_frequency: Optional[str] = Field( default=None, description="" ) fivetran_connector_sync_paused: Optional[bool] = Field( default=None, description="" ) fivetran_connector_sync_setup_user_full_name: Optional[str] = Field( default=None, description="" ) fivetran_connector_sync_setup_user_email: Optional[str] = Field( default=None, description="" ) fivetran_connector_monthly_active_rows_free: Optional[int] = Field( default=None, description="" ) fivetran_connector_monthly_active_rows_paid: Optional[int] = Field( default=None, description="" ) fivetran_connector_monthly_active_rows_total: Optional[int] = Field( default=None, description="" ) fivetran_connector_monthly_active_rows_change_percentage_free: Optional[ float ] = Field(default=None, description="") fivetran_connector_monthly_active_rows_change_percentage_paid: Optional[ float ] = Field(default=None, description="") fivetran_connector_monthly_active_rows_change_percentage_total: Optional[ float ] = Field(default=None, description="") fivetran_connector_monthly_active_rows_free_percentage_of_account: Optional[ float ] = Field(default=None, description="") fivetran_connector_monthly_active_rows_paid_percentage_of_account: Optional[ float ] = Field(default=None, description="") fivetran_connector_monthly_active_rows_total_percentage_of_account: Optional[ float ] = Field(default=None, description="") fivetran_connector_total_tables_synced: Optional[int] = Field( default=None, description="" ) fivetran_connector_top_tables_by_m_a_r: Optional[str] = Field( default=None, description="" ) fivetran_connector_usage_cost: Optional[float] = Field( default=None, description="" ) fivetran_connector_credits_used: Optional[float] = Field( default=None, description="" ) processes: Optional[List[Process]] = Field( default=None, description="" ) # relationship attributes: FivetranConnector.Attributes = Field( default_factory=lambda: FivetranConnector.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." ), )
from .process import Process # noqa: E402, F401