# 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/dataflow/property/projectlocationjob_job_metadata_big_table_details'
require 'google/dataflow/property/projectlocationjob_job_metadata_bigquery_details'
require 'google/dataflow/property/projectlocationjob_job_metadata_datastore_details'
require 'google/dataflow/property/projectlocationjob_job_metadata_file_details'
require 'google/dataflow/property/projectlocationjob_job_metadata_pubsub_details'
require 'google/dataflow/property/projectlocationjob_job_metadata_sdk_version'
require 'google/dataflow/property/projectlocationjob_job_metadata_sdk_version_bugs'
require 'google/dataflow/property/projectlocationjob_job_metadata_spanner_details'
require 'google/dataflow/property/projectlocationjob_job_metadata_user_display_properties'
module GoogleInSpec
  module Dataflow
    module Property
      class ProjectLocationJobJobMetadata
        attr_reader :sdk_version

        attr_reader :spanner_details

        attr_reader :bigquery_details

        attr_reader :big_table_details

        attr_reader :pubsub_details

        attr_reader :file_details

        attr_reader :datastore_details

        attr_reader :user_display_properties

        def initialize(args = nil, parent_identifier = nil)
          return if args.nil?
          @parent_identifier = parent_identifier
          @sdk_version = GoogleInSpec::Dataflow::Property::ProjectLocationJobJobMetadataSdkVersion.new(args['sdkVersion'], to_s)
          @spanner_details = GoogleInSpec::Dataflow::Property::ProjectLocationJobJobMetadataSpannerDetailsArray.parse(args['spannerDetails'], to_s)
          @bigquery_details = GoogleInSpec::Dataflow::Property::ProjectLocationJobJobMetadataBigqueryDetailsArray.parse(args['bigqueryDetails'], to_s)
          @big_table_details = GoogleInSpec::Dataflow::Property::ProjectLocationJobJobMetadataBigTableDetailsArray.parse(args['bigTableDetails'], to_s)
          @pubsub_details = GoogleInSpec::Dataflow::Property::ProjectLocationJobJobMetadataPubsubDetailsArray.parse(args['pubsubDetails'], to_s)
          @file_details = GoogleInSpec::Dataflow::Property::ProjectLocationJobJobMetadataFileDetailsArray.parse(args['fileDetails'], to_s)
          @datastore_details = GoogleInSpec::Dataflow::Property::ProjectLocationJobJobMetadataDatastoreDetailsArray.parse(args['datastoreDetails'], to_s)
          @user_display_properties = GoogleInSpec::Dataflow::Property::ProjectLocationJobJobMetadataUserDisplayProperties.new(args['userDisplayProperties'], to_s)
        end

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