# 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/vertexai/property/trainingpipeline_model_to_upload_container_spec'
require 'google/vertexai/property/trainingpipeline_model_to_upload_container_spec_env'
require 'google/vertexai/property/trainingpipeline_model_to_upload_container_spec_ports'
require 'google/vertexai/property/trainingpipeline_model_to_upload_deployed_models'
require 'google/vertexai/property/trainingpipeline_model_to_upload_encryption_spec'
require 'google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec'
require 'google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_metadata'
require 'google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_metadata_inputs'
require 'google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_metadata_outputs'
require 'google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters'
require 'google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_examples'
require 'google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_examples_example_gcs_source'
require 'google/vertexai/property/trainingpipeline_mtuespeegsg_source'
require 'google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_examples_presets'
require 'google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_integrated_gradients_attribution'
require 'google/vertexai/property/trainingpipeline_mtuespigabb_config'
require 'google/vertexai/property/trainingpipeline_mtuespigasg_config'
require 'google/vertexai/property/trainingpipeline_mtuespigasgcfn_sigma'
require 'google/vertexai/property/trainingpipeline_mtuespigasgcfnsn_sigma'
require 'google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_sampled_shapley_attribution'
require 'google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_xrai_attribution'
require 'google/vertexai/property/trainingpipeline_mtuespxabb_config'
require 'google/vertexai/property/trainingpipeline_model_to_upload_explanation_spec_parameters_xrai_attribution_smooth_grad_config'
require 'google/vertexai/property/trainingpipeline_mtuespxasgcfn_sigma'
require 'google/vertexai/property/trainingpipeline_mtuespxasgcfnsn_sigma'
require 'google/vertexai/property/trainingpipeline_model_to_upload_labels'
require 'google/vertexai/property/trainingpipeline_model_to_upload_model_source_info'
require 'google/vertexai/property/trainingpipeline_model_to_upload_original_model_info'
require 'google/vertexai/property/trainingpipeline_model_to_upload_predict_schemata'
require 'google/vertexai/property/trainingpipeline_model_to_upload_supported_export_formats'
module GoogleInSpec
  module VertexAI
    module Property
      class TrainingPipelineModelToUpload
        attr_reader :model_source_info

        attr_reader :name

        attr_reader :metadata

        attr_reader :update_time

        attr_reader :etag

        attr_reader :description

        attr_reader :deployed_models

        attr_reader :create_time

        attr_reader :explanation_spec

        attr_reader :encryption_spec

        attr_reader :pipeline_job

        attr_reader :predict_schemata

        attr_reader :version_update_time

        attr_reader :supported_export_formats

        attr_reader :original_model_info

        attr_reader :metadata_artifact

        attr_reader :supported_input_storage_formats

        attr_reader :metadata_schema_uri

        attr_reader :container_spec

        attr_reader :version_id

        attr_reader :artifact_uri

        attr_reader :training_pipeline

        attr_reader :display_name

        attr_reader :supported_deployment_resources_types

        attr_reader :supported_output_storage_formats

        attr_reader :version_aliases

        attr_reader :version_create_time

        attr_reader :version_description

        attr_reader :labels

        def initialize(args = nil, parent_identifier = nil)
          return if args.nil?
          @parent_identifier = parent_identifier
          @model_source_info = GoogleInSpec::VertexAI::Property::TrainingPipelineModelToUploadModelSourceInfo.new(args['modelSourceInfo'], to_s)
          @name = args['name']
          @metadata = args['metadata']
          @update_time = args['updateTime']
          @etag = args['etag']
          @description = args['description']
          @deployed_models = GoogleInSpec::VertexAI::Property::TrainingPipelineModelToUploadDeployedModelsArray.parse(args['deployedModels'], to_s)
          @create_time = args['createTime']
          @explanation_spec = GoogleInSpec::VertexAI::Property::TrainingPipelineModelToUploadExplanationSpec.new(args['explanationSpec'], to_s)
          @encryption_spec = GoogleInSpec::VertexAI::Property::TrainingPipelineModelToUploadEncryptionSpec.new(args['encryptionSpec'], to_s)
          @pipeline_job = args['pipelineJob']
          @predict_schemata = GoogleInSpec::VertexAI::Property::TrainingPipelineModelToUploadPredictSchemata.new(args['predictSchemata'], to_s)
          @version_update_time = args['versionUpdateTime']
          @supported_export_formats = GoogleInSpec::VertexAI::Property::TrainingPipelineModelToUploadSupportedExportFormatsArray.parse(args['supportedExportFormats'], to_s)
          @original_model_info = GoogleInSpec::VertexAI::Property::TrainingPipelineModelToUploadOriginalModelInfo.new(args['originalModelInfo'], to_s)
          @metadata_artifact = args['metadataArtifact']
          @supported_input_storage_formats = args['supportedInputStorageFormats']
          @metadata_schema_uri = args['metadataSchemaUri']
          @container_spec = GoogleInSpec::VertexAI::Property::TrainingPipelineModelToUploadContainerSpec.new(args['containerSpec'], to_s)
          @version_id = args['versionId']
          @artifact_uri = args['artifactUri']
          @training_pipeline = args['trainingPipeline']
          @display_name = args['displayName']
          @supported_deployment_resources_types = args['supportedDeploymentResourcesTypes']
          @supported_output_storage_formats = args['supportedOutputStorageFormats']
          @version_aliases = args['versionAliases']
          @version_create_time = args['versionCreateTime']
          @version_description = args['versionDescription']
          @labels = GoogleInSpec::VertexAI::Property::TrainingPipelineModelToUploadLabels.new(args['labels'], to_s)
        end

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