# frozen_string_literal: false

# ----------------------------------------------------------------------------
#
#     ***     AUTO GENERATED CODE    ***    Type: MMv1     ***
#
# ----------------------------------------------------------------------------
#
#     This file is automatically generated by Magic Modules and manual
#     changes will be clobbered when the file is regenerated.
#
#     Please read more about how to change this file in README.md and
#     CONTRIBUTING.md located at the root of this package.
#
# ----------------------------------------------------------------------------
require 'google/dataprocmetastore/property/servicebackup_service_revision_encryption_config'
require 'google/dataprocmetastore/property/servicebackup_service_revision_hive_metastore_config'
require 'google/dataprocmetastore/property/servicebackup_service_revision_hive_metastore_config_auxiliary_versions'
require 'google/dataprocmetastore/property/servicebackup_service_revision_hive_metastore_config_config_overrides'
require 'google/dataprocmetastore/property/servicebackup_service_revision_hive_metastore_config_kerberos_config'
require 'google/dataprocmetastore/property/servicebackup_service_revision_hive_metastore_config_kerberos_config_keytab'
require 'google/dataprocmetastore/property/servicebackup_service_revision_labels'
require 'google/dataprocmetastore/property/servicebackup_service_revision_maintenance_window'
require 'google/dataprocmetastore/property/servicebackup_service_revision_metadata_integration'
require 'google/dataprocmetastore/property/servicebackup_service_revision_metadata_integration_data_catalog_config'
require 'google/dataprocmetastore/property/servicebackup_service_revision_metadata_integration_dataplex_config'
require 'google/dataprocmetastore/property/servicebackup_service_revision_metadata_integration_dataplex_config_lake_resources'
require 'google/dataprocmetastore/property/servicebackup_service_revision_metadata_management_activity'
require 'google/dataprocmetastore/property/servicebackup_service_revision_metadata_management_activity_metadata_exports'
require 'google/dataprocmetastore/property/servicebackup_service_revision_metadata_management_activity_restores'
require 'google/dataprocmetastore/property/servicebackup_service_revision_network_config'
require 'google/dataprocmetastore/property/servicebackup_service_revision_network_config_consumers'
require 'google/dataprocmetastore/property/servicebackup_service_revision_scaling_config'
require 'google/dataprocmetastore/property/servicebackup_service_revision_scaling_config_autoscaling_config'
require 'google/dataprocmetastore/property/servicebackup_service_revision_scaling_config_autoscaling_config_limit_config'
require 'google/dataprocmetastore/property/servicebackup_service_revision_scheduled_backup'
require 'google/dataprocmetastore/property/servicebackup_service_revision_scheduled_backup_latest_backup'
require 'google/dataprocmetastore/property/servicebackup_service_revision_telemetry_config'
module GoogleInSpec
  module DataprocMetastore
    module Property
      class ServiceBackupServiceRevision
        attr_reader :hive_metastore_config

        attr_reader :name

        attr_reader :create_time

        attr_reader :update_time

        attr_reader :labels

        attr_reader :network

        attr_reader :endpoint_uri

        attr_reader :port

        attr_reader :state

        attr_reader :state_message

        attr_reader :artifact_gcs_uri

        attr_reader :tier

        attr_reader :metadata_integration

        attr_reader :maintenance_window

        attr_reader :uid

        attr_reader :metadata_management_activity

        attr_reader :release_channel

        attr_reader :encryption_config

        attr_reader :network_config

        attr_reader :database_type

        attr_reader :telemetry_config

        attr_reader :scaling_config

        attr_reader :scheduled_backup

        attr_reader :deletion_protection

        def initialize(args = nil, parent_identifier = nil)
          return if args.nil?
          @parent_identifier = parent_identifier
          @hive_metastore_config = GoogleInSpec::DataprocMetastore::Property::ServiceBackupServiceRevisionHiveMetastoreConfig.new(args['hiveMetastoreConfig'], to_s)
          @name = args['name']
          @create_time = args['createTime']
          @update_time = args['updateTime']
          @labels = GoogleInSpec::DataprocMetastore::Property::ServiceBackupServiceRevisionLabels.new(args['labels'], to_s)
          @network = args['network']
          @endpoint_uri = args['endpointUri']
          @port = args['port']
          @state = args['state']
          @state_message = args['stateMessage']
          @artifact_gcs_uri = args['artifactGcsUri']
          @tier = args['tier']
          @metadata_integration = GoogleInSpec::DataprocMetastore::Property::ServiceBackupServiceRevisionMetadataIntegration.new(args['metadataIntegration'], to_s)
          @maintenance_window = GoogleInSpec::DataprocMetastore::Property::ServiceBackupServiceRevisionMaintenanceWindow.new(args['maintenanceWindow'], to_s)
          @uid = args['uid']
          @metadata_management_activity = GoogleInSpec::DataprocMetastore::Property::ServiceBackupServiceRevisionMetadataManagementActivity.new(args['metadataManagementActivity'], to_s)
          @release_channel = args['releaseChannel']
          @encryption_config = GoogleInSpec::DataprocMetastore::Property::ServiceBackupServiceRevisionEncryptionConfig.new(args['encryptionConfig'], to_s)
          @network_config = GoogleInSpec::DataprocMetastore::Property::ServiceBackupServiceRevisionNetworkConfig.new(args['networkConfig'], to_s)
          @database_type = args['databaseType']
          @telemetry_config = GoogleInSpec::DataprocMetastore::Property::ServiceBackupServiceRevisionTelemetryConfig.new(args['telemetryConfig'], to_s)
          @scaling_config = GoogleInSpec::DataprocMetastore::Property::ServiceBackupServiceRevisionScalingConfig.new(args['scalingConfig'], to_s)
          @scheduled_backup = GoogleInSpec::DataprocMetastore::Property::ServiceBackupServiceRevisionScheduledBackup.new(args['scheduledBackup'], to_s)
          @deletion_protection = args['deletionProtection']
        end

        def to_s
          "#{@parent_identifier} ServiceBackupServiceRevision"
        end
      end
    end
  end
end
