# frozen_string_literal: true

# WARNING ABOUT GENERATED CODE
#
# This file is generated. See the contributing guide for more information:
# https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md
#
# WARNING ABOUT GENERATED CODE

module Aws::SageMaker
  module Types

    # A structure describing the source of an action.
    #
    # @!attribute [rw] source_uri
    #   The URI of the source.
    #   @return [String]
    #
    # @!attribute [rw] source_type
    #   The type of the source.
    #   @return [String]
    #
    # @!attribute [rw] source_id
    #   The ID of the source.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ActionSource AWS API Documentation
    #
    class ActionSource < Struct.new(
      :source_uri,
      :source_type,
      :source_id)
      SENSITIVE = []
      include Aws::Structure
    end

    # Lists the properties of an *action*. An action represents an action or
    # activity. Some examples are a workflow step and a model deployment.
    # Generally, an action involves at least one input artifact or output
    # artifact.
    #
    # @!attribute [rw] action_arn
    #   The Amazon Resource Name (ARN) of the action.
    #   @return [String]
    #
    # @!attribute [rw] action_name
    #   The name of the action.
    #   @return [String]
    #
    # @!attribute [rw] source
    #   The source of the action.
    #   @return [Types::ActionSource]
    #
    # @!attribute [rw] action_type
    #   The type of the action.
    #   @return [String]
    #
    # @!attribute [rw] status
    #   The status of the action.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   When the action was created.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time
    #   When the action was last modified.
    #   @return [Time]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ActionSummary AWS API Documentation
    #
    class ActionSummary < Struct.new(
      :action_arn,
      :action_name,
      :source,
      :action_type,
      :status,
      :creation_time,
      :last_modified_time)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] source_arn
    #   The ARN of the source.
    #   @return [String]
    #
    # @!attribute [rw] destination_arn
    #   The Amazon Resource Name (ARN) of the destination.
    #   @return [String]
    #
    # @!attribute [rw] association_type
    #   The type of association. The following are suggested uses for each
    #   type. Amazon SageMaker places no restrictions on their use.
    #
    #   * ContributedTo - The source contributed to the destination or had a
    #     part in enabling the destination. For example, the training data
    #     contributed to the training job.
    #
    #   * AssociatedWith - The source is connected to the destination. For
    #     example, an approval workflow is associated with a model
    #     deployment.
    #
    #   * DerivedFrom - The destination is a modification of the source. For
    #     example, a digest output of a channel input for a processing job
    #     is derived from the original inputs.
    #
    #   * Produced - The source generated the destination. For example, a
    #     training job produced a model artifact.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/AddAssociationRequest AWS API Documentation
    #
    class AddAssociationRequest < Struct.new(
      :source_arn,
      :destination_arn,
      :association_type)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] source_arn
    #   The ARN of the source.
    #   @return [String]
    #
    # @!attribute [rw] destination_arn
    #   The Amazon Resource Name (ARN) of the destination.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/AddAssociationResponse AWS API Documentation
    #
    class AddAssociationResponse < Struct.new(
      :source_arn,
      :destination_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # Specifies an instance group and the number of nodes to add to it.
    #
    # @!attribute [rw] instance_group_name
    #   The name of the instance group to which you want to add nodes.
    #   @return [String]
    #
    # @!attribute [rw] increment_target_count_by
    #   The number of nodes to add to the specified instance group. The
    #   total number of nodes across all instance groups in a single request
    #   cannot exceed 50.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/AddClusterNodeSpecification AWS API Documentation
    #
    class AddClusterNodeSpecification < Struct.new(
      :instance_group_name,
      :increment_target_count_by)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] resource_arn
    #   The Amazon Resource Name (ARN) of the resource that you want to tag.
    #   @return [String]
    #
    # @!attribute [rw] tags
    #   An array of key-value pairs. You can use tags to categorize your
    #   Amazon Web Services resources in different ways, for example, by
    #   purpose, owner, or environment. For more information, see [Tagging
    #   Amazon Web Services Resources][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html
    #   @return [Array<Types::Tag>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/AddTagsInput AWS API Documentation
    #
    class AddTagsInput < Struct.new(
      :resource_arn,
      :tags)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] tags
    #   A list of tags associated with the SageMaker resource.
    #   @return [Array<Types::Tag>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/AddTagsOutput AWS API Documentation
    #
    class AddTagsOutput < Struct.new(
      :tags)
      SENSITIVE = []
      include Aws::Structure
    end

    # Information about additional Elastic Network Interfaces (ENIs)
    # associated with an instance.
    #
    # @!attribute [rw] efa_enis
    #   A list of Elastic Fabric Adapter (EFA) ENIs associated with the
    #   instance.
    #   @return [Array<String>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/AdditionalEnis AWS API Documentation
    #
    class AdditionalEnis < Struct.new(
      :efa_enis)
      SENSITIVE = []
      include Aws::Structure
    end

    # A structure of additional Inference Specification. Additional
    # Inference Specification specifies details about inference jobs that
    # can be run with models based on this model package
    #
    # @!attribute [rw] name
    #   A unique name to identify the additional inference specification.
    #   The name must be unique within the list of your additional inference
    #   specifications for a particular model package.
    #   @return [String]
    #
    # @!attribute [rw] description
    #   A description of the additional Inference specification
    #   @return [String]
    #
    # @!attribute [rw] containers
    #   The Amazon ECR registry path of the Docker image that contains the
    #   inference code.
    #   @return [Array<Types::ModelPackageContainerDefinition>]
    #
    # @!attribute [rw] supported_transform_instance_types
    #   A list of the instance types on which a transformation job can be
    #   run or on which an endpoint can be deployed.
    #   @return [Array<String>]
    #
    # @!attribute [rw] supported_realtime_inference_instance_types
    #   A list of the instance types that are used to generate inferences in
    #   real-time.
    #   @return [Array<String>]
    #
    # @!attribute [rw] supported_content_types
    #   The supported MIME types for the input data.
    #   @return [Array<String>]
    #
    # @!attribute [rw] supported_response_mime_types
    #   The supported MIME types for the output data.
    #   @return [Array<String>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/AdditionalInferenceSpecificationDefinition AWS API Documentation
    #
    class AdditionalInferenceSpecificationDefinition < Struct.new(
      :name,
      :description,
      :containers,
      :supported_transform_instance_types,
      :supported_realtime_inference_instance_types,
      :supported_content_types,
      :supported_response_mime_types)
      SENSITIVE = []
      include Aws::Structure
    end

    # Data sources that are available to your model in addition to the one
    # that you specify for `ModelDataSource` when you use the `CreateModel`
    # action.
    #
    # @!attribute [rw] channel_name
    #   A custom name for this `AdditionalModelDataSource` object.
    #   @return [String]
    #
    # @!attribute [rw] s3_data_source
    #   Specifies the S3 location of ML model data to deploy.
    #   @return [Types::S3ModelDataSource]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/AdditionalModelDataSource AWS API Documentation
    #
    class AdditionalModelDataSource < Struct.new(
      :channel_name,
      :s3_data_source)
      SENSITIVE = []
      include Aws::Structure
    end

    # A data source used for training or inference that is in addition to
    # the input dataset or model data.
    #
    # @!attribute [rw] s3_data_type
    #   The data type of the additional data source that you specify for use
    #   in inference or training.
    #   @return [String]
    #
    # @!attribute [rw] s3_uri
    #   The uniform resource identifier (URI) used to identify an additional
    #   data source used in inference or training.
    #   @return [String]
    #
    # @!attribute [rw] compression_type
    #   The type of compression used for an additional data source used in
    #   inference or training. Specify `None` if your additional data source
    #   is not compressed.
    #   @return [String]
    #
    # @!attribute [rw] etag
    #   The ETag associated with S3 URI.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/AdditionalS3DataSource AWS API Documentation
    #
    class AdditionalS3DataSource < Struct.new(
      :s3_data_type,
      :s3_uri,
      :compression_type,
      :etag)
      SENSITIVE = []
      include Aws::Structure
    end

    # Edge Manager agent version.
    #
    # @!attribute [rw] version
    #   Version of the agent.
    #   @return [String]
    #
    # @!attribute [rw] agent_count
    #   The number of Edge Manager agents.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/AgentVersion AWS API Documentation
    #
    class AgentVersion < Struct.new(
      :version,
      :agent_count)
      SENSITIVE = []
      include Aws::Structure
    end

    # An Amazon CloudWatch alarm configured to monitor metrics on an
    # endpoint.
    #
    # @!attribute [rw] alarm_name
    #   The name of a CloudWatch alarm in your account.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/Alarm AWS API Documentation
    #
    class Alarm < Struct.new(
      :alarm_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # The details of the alarm to monitor during the AMI update.
    #
    # @!attribute [rw] alarm_name
    #   The name of the alarm.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/AlarmDetails AWS API Documentation
    #
    class AlarmDetails < Struct.new(
      :alarm_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # Specifies the training algorithm to use in a [CreateTrainingJob][1]
    # request.
    #
    # SageMaker uses its own SageMaker account credentials to pull and
    # access built-in algorithms so built-in algorithms are universally
    # accessible across all Amazon Web Services accounts. As a result,
    # built-in algorithms have standard, unrestricted access. You cannot
    # restrict built-in algorithms using IAM roles. Use custom algorithms if
    # you require specific access controls.
    #
    # For more information about algorithms provided by SageMaker, see
    # [Algorithms][2]. For information about using your own algorithms, see
    # [Using Your Own Algorithms with Amazon SageMaker][3].
    #
    #
    #
    # [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html
    # [2]: https://docs.aws.amazon.com/sagemaker/latest/dg/algos.html
    # [3]: https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms.html
    #
    # @!attribute [rw] training_image
    #   The registry path of the Docker image that contains the training
    #   algorithm. For information about docker registry paths for SageMaker
    #   built-in algorithms, see [Docker Registry Paths and Example Code][1]
    #   in the *Amazon SageMaker developer guide*. SageMaker supports both
    #   `registry/repository[:tag]` and `registry/repository[@digest]` image
    #   path formats. For more information about using your custom training
    #   container, see [Using Your Own Algorithms with Amazon SageMaker][2].
    #
    #   <note markdown="1"> You must specify either the algorithm name to the `AlgorithmName`
    #   parameter or the image URI of the algorithm container to the
    #   `TrainingImage` parameter.
    #
    #    For more information, see the note in the `AlgorithmName` parameter
    #   description.
    #
    #    </note>
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-algo-docker-registry-paths.html
    #   [2]: https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms.html
    #   @return [String]
    #
    # @!attribute [rw] algorithm_name
    #   The name of the algorithm resource to use for the training job. This
    #   must be an algorithm resource that you created or subscribe to on
    #   Amazon Web Services Marketplace.
    #
    #   <note markdown="1"> You must specify either the algorithm name to the `AlgorithmName`
    #   parameter or the image URI of the algorithm container to the
    #   `TrainingImage` parameter.
    #
    #    Note that the `AlgorithmName` parameter is mutually exclusive with
    #   the `TrainingImage` parameter. If you specify a value for the
    #   `AlgorithmName` parameter, you can't specify a value for
    #   `TrainingImage`, and vice versa.
    #
    #    If you specify values for both parameters, the training job might
    #   break; if you don't specify any value for both parameters, the
    #   training job might raise a `null` error.
    #
    #    </note>
    #   @return [String]
    #
    # @!attribute [rw] training_input_mode
    #   The training input mode that the algorithm supports. For more
    #   information about input modes, see [Algorithms][1].
    #
    #   **Pipe mode**
    #
    #   If an algorithm supports `Pipe` mode, Amazon SageMaker streams data
    #   directly from Amazon S3 to the container.
    #
    #   **File mode**
    #
    #   If an algorithm supports `File` mode, SageMaker downloads the
    #   training data from S3 to the provisioned ML storage volume, and
    #   mounts the directory to the Docker volume for the training
    #   container.
    #
    #   You must provision the ML storage volume with sufficient capacity to
    #   accommodate the data downloaded from S3. In addition to the training
    #   data, the ML storage volume also stores the output model. The
    #   algorithm container uses the ML storage volume to also store
    #   intermediate information, if any.
    #
    #   For distributed algorithms, training data is distributed uniformly.
    #   Your training duration is predictable if the input data objects
    #   sizes are approximately the same. SageMaker does not split the files
    #   any further for model training. If the object sizes are skewed,
    #   training won't be optimal as the data distribution is also skewed
    #   when one host in a training cluster is overloaded, thus becoming a
    #   bottleneck in training.
    #
    #   **FastFile mode**
    #
    #   If an algorithm supports `FastFile` mode, SageMaker streams data
    #   directly from S3 to the container with no code changes, and provides
    #   file system access to the data. Users can author their training
    #   script to interact with these files as if they were stored on disk.
    #
    #   `FastFile` mode works best when the data is read sequentially.
    #   Augmented manifest files aren't supported. The startup time is
    #   lower when there are fewer files in the S3 bucket provided.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/algos.html
    #   @return [String]
    #
    # @!attribute [rw] metric_definitions
    #   A list of metric definition objects. Each object specifies the
    #   metric name and regular expressions used to parse algorithm logs.
    #   SageMaker publishes each metric to Amazon CloudWatch.
    #   @return [Array<Types::MetricDefinition>]
    #
    # @!attribute [rw] enable_sage_maker_metrics_time_series
    #   To generate and save time-series metrics during training, set to
    #   `true`. The default is `false` and time-series metrics aren't
    #   generated except in the following cases:
    #
    #   * You use one of the SageMaker built-in algorithms
    #
    #   * You use one of the following [Prebuilt SageMaker Docker
    #     Images][1]:
    #
    #     * Tensorflow (version &gt;= 1.15)
    #
    #     * MXNet (version &gt;= 1.6)
    #
    #     * PyTorch (version &gt;= 1.3)
    #   * You specify at least one [MetricDefinition][2]
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/pre-built-containers-frameworks-deep-learning.html
    #   [2]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_MetricDefinition.html
    #   @return [Boolean]
    #
    # @!attribute [rw] container_entrypoint
    #   The [entrypoint script for a Docker container][1] used to run a
    #   training job. This script takes precedence over the default train
    #   processing instructions. See [How Amazon SageMaker Runs Your
    #   Training Image][2] for more information.
    #
    #
    #
    #   [1]: https://docs.docker.com/engine/reference/builder/
    #   [2]: https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms-training-algo-dockerfile.html
    #   @return [Array<String>]
    #
    # @!attribute [rw] container_arguments
    #   The arguments for a container used to run a training job. See [How
    #   Amazon SageMaker Runs Your Training Image][1] for additional
    #   information.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms-training-algo-dockerfile.html
    #   @return [Array<String>]
    #
    # @!attribute [rw] training_image_config
    #   The configuration to use an image from a private Docker registry for
    #   a training job.
    #   @return [Types::TrainingImageConfig]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/AlgorithmSpecification AWS API Documentation
    #
    class AlgorithmSpecification < Struct.new(
      :training_image,
      :algorithm_name,
      :training_input_mode,
      :metric_definitions,
      :enable_sage_maker_metrics_time_series,
      :container_entrypoint,
      :container_arguments,
      :training_image_config)
      SENSITIVE = []
      include Aws::Structure
    end

    # Specifies the validation and image scan statuses of the algorithm.
    #
    # @!attribute [rw] validation_statuses
    #   The status of algorithm validation.
    #   @return [Array<Types::AlgorithmStatusItem>]
    #
    # @!attribute [rw] image_scan_statuses
    #   The status of the scan of the algorithm's Docker image container.
    #   @return [Array<Types::AlgorithmStatusItem>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/AlgorithmStatusDetails AWS API Documentation
    #
    class AlgorithmStatusDetails < Struct.new(
      :validation_statuses,
      :image_scan_statuses)
      SENSITIVE = []
      include Aws::Structure
    end

    # Represents the overall status of an algorithm.
    #
    # @!attribute [rw] name
    #   The name of the algorithm for which the overall status is being
    #   reported.
    #   @return [String]
    #
    # @!attribute [rw] status
    #   The current status.
    #   @return [String]
    #
    # @!attribute [rw] failure_reason
    #   if the overall status is `Failed`, the reason for the failure.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/AlgorithmStatusItem AWS API Documentation
    #
    class AlgorithmStatusItem < Struct.new(
      :name,
      :status,
      :failure_reason)
      SENSITIVE = []
      include Aws::Structure
    end

    # Provides summary information about an algorithm.
    #
    # @!attribute [rw] algorithm_name
    #   The name of the algorithm that is described by the summary.
    #   @return [String]
    #
    # @!attribute [rw] algorithm_arn
    #   The Amazon Resource Name (ARN) of the algorithm.
    #   @return [String]
    #
    # @!attribute [rw] algorithm_description
    #   A brief description of the algorithm.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   A timestamp that shows when the algorithm was created.
    #   @return [Time]
    #
    # @!attribute [rw] algorithm_status
    #   The overall status of the algorithm.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/AlgorithmSummary AWS API Documentation
    #
    class AlgorithmSummary < Struct.new(
      :algorithm_name,
      :algorithm_arn,
      :algorithm_description,
      :creation_time,
      :algorithm_status)
      SENSITIVE = []
      include Aws::Structure
    end

    # Defines a training job and a batch transform job that SageMaker runs
    # to validate your algorithm.
    #
    # The data provided in the validation profile is made available to your
    # buyers on Amazon Web Services Marketplace.
    #
    # @!attribute [rw] profile_name
    #   The name of the profile for the algorithm. The name must have 1 to
    #   63 characters. Valid characters are a-z, A-Z, 0-9, and - (hyphen).
    #   @return [String]
    #
    # @!attribute [rw] training_job_definition
    #   The `TrainingJobDefinition` object that describes the training job
    #   that SageMaker runs to validate your algorithm.
    #   @return [Types::TrainingJobDefinition]
    #
    # @!attribute [rw] transform_job_definition
    #   The `TransformJobDefinition` object that describes the transform job
    #   that SageMaker runs to validate your algorithm.
    #   @return [Types::TransformJobDefinition]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/AlgorithmValidationProfile AWS API Documentation
    #
    class AlgorithmValidationProfile < Struct.new(
      :profile_name,
      :training_job_definition,
      :transform_job_definition)
      SENSITIVE = []
      include Aws::Structure
    end

    # Specifies configurations for one or more training jobs that SageMaker
    # runs to test the algorithm.
    #
    # @!attribute [rw] validation_role
    #   The IAM roles that SageMaker uses to run the training jobs.
    #   @return [String]
    #
    # @!attribute [rw] validation_profiles
    #   An array of `AlgorithmValidationProfile` objects, each of which
    #   specifies a training job and batch transform job that SageMaker runs
    #   to validate your algorithm.
    #   @return [Array<Types::AlgorithmValidationProfile>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/AlgorithmValidationSpecification AWS API Documentation
    #
    class AlgorithmValidationSpecification < Struct.new(
      :validation_role,
      :validation_profiles)
      SENSITIVE = []
      include Aws::Structure
    end

    # A collection of settings that configure the Amazon Q experience within
    # the domain.
    #
    # @!attribute [rw] status
    #   Whether Amazon Q has been enabled within the domain.
    #   @return [String]
    #
    # @!attribute [rw] q_profile_arn
    #   The ARN of the Amazon Q profile used within the domain.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/AmazonQSettings AWS API Documentation
    #
    class AmazonQSettings < Struct.new(
      :status,
      :q_profile_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # Configures how labels are consolidated across human workers and
    # processes output data.
    #
    # @!attribute [rw] annotation_consolidation_lambda_arn
    #   The Amazon Resource Name (ARN) of a Lambda function implements the
    #   logic for [annotation consolidation][1] and to process output data.
    #
    #   For [built-in task types][2], use one of the following Amazon
    #   SageMaker Ground Truth Lambda function ARNs for
    #   `AnnotationConsolidationLambdaArn`. For custom labeling workflows,
    #   see [Post-annotation Lambda][3].
    #
    #   **Bounding box** - Finds the most similar boxes from different
    #   workers based on the Jaccard index of the boxes.
    #
    #   * `arn:aws:lambda:us-east-1:432418664414:function:ACS-BoundingBox`
    #
    #   * `arn:aws:lambda:us-east-2:266458841044:function:ACS-BoundingBox`
    #
    #   * `arn:aws:lambda:us-west-2:081040173940:function:ACS-BoundingBox`
    #
    #   * `arn:aws:lambda:eu-west-1:568282634449:function:ACS-BoundingBox`
    #
    #   * `arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-BoundingBox`
    #
    #   * `arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-BoundingBox`
    #
    #   * `arn:aws:lambda:ap-south-1:565803892007:function:ACS-BoundingBox`
    #
    #   * `arn:aws:lambda:eu-central-1:203001061592:function:ACS-BoundingBox`
    #
    #   * `arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-BoundingBox`
    #
    #   * `arn:aws:lambda:eu-west-2:487402164563:function:ACS-BoundingBox`
    #
    #   * `arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-BoundingBox`
    #
    #   * `arn:aws:lambda:ca-central-1:918755190332:function:ACS-BoundingBox`
    #
    #   **Image classification** - Uses a variant of the Expectation
    #   Maximization approach to estimate the true class of an image based
    #   on annotations from individual workers.
    #
    #   * `arn:aws:lambda:us-east-1:432418664414:function:ACS-ImageMultiClass`
    #
    #   * `arn:aws:lambda:us-east-2:266458841044:function:ACS-ImageMultiClass`
    #
    #   * `arn:aws:lambda:us-west-2:081040173940:function:ACS-ImageMultiClass`
    #
    #   * `arn:aws:lambda:eu-west-1:568282634449:function:ACS-ImageMultiClass`
    #
    #   * `arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-ImageMultiClass`
    #
    #   * `arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-ImageMultiClass`
    #
    #   * `arn:aws:lambda:ap-south-1:565803892007:function:ACS-ImageMultiClass`
    #
    #   * `arn:aws:lambda:eu-central-1:203001061592:function:ACS-ImageMultiClass`
    #
    #   * `arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-ImageMultiClass`
    #
    #   * `arn:aws:lambda:eu-west-2:487402164563:function:ACS-ImageMultiClass`
    #
    #   * `arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-ImageMultiClass`
    #
    #   * `arn:aws:lambda:ca-central-1:918755190332:function:ACS-ImageMultiClass`
    #
    #   **Multi-label image classification** - Uses a variant of the
    #   Expectation Maximization approach to estimate the true classes of an
    #   image based on annotations from individual workers.
    #
    #   * `arn:aws:lambda:us-east-1:432418664414:function:ACS-ImageMultiClassMultiLabel`
    #
    #   * `arn:aws:lambda:us-east-2:266458841044:function:ACS-ImageMultiClassMultiLabel`
    #
    #   * `arn:aws:lambda:us-west-2:081040173940:function:ACS-ImageMultiClassMultiLabel`
    #
    #   * `arn:aws:lambda:eu-west-1:568282634449:function:ACS-ImageMultiClassMultiLabel`
    #
    #   * `arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-ImageMultiClassMultiLabel`
    #
    #   * `arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-ImageMultiClassMultiLabel`
    #
    #   * `arn:aws:lambda:ap-south-1:565803892007:function:ACS-ImageMultiClassMultiLabel`
    #
    #   * `arn:aws:lambda:eu-central-1:203001061592:function:ACS-ImageMultiClassMultiLabel`
    #
    #   * `arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-ImageMultiClassMultiLabel`
    #
    #   * `arn:aws:lambda:eu-west-2:487402164563:function:ACS-ImageMultiClassMultiLabel`
    #
    #   * `arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-ImageMultiClassMultiLabel`
    #
    #   * `arn:aws:lambda:ca-central-1:918755190332:function:ACS-ImageMultiClassMultiLabel`
    #
    #   **Semantic segmentation** - Treats each pixel in an image as a
    #   multi-class classification and treats pixel annotations from workers
    #   as "votes" for the correct label.
    #
    #   * `arn:aws:lambda:us-east-1:432418664414:function:ACS-SemanticSegmentation`
    #
    #   * `arn:aws:lambda:us-east-2:266458841044:function:ACS-SemanticSegmentation`
    #
    #   * `arn:aws:lambda:us-west-2:081040173940:function:ACS-SemanticSegmentation`
    #
    #   * `arn:aws:lambda:eu-west-1:568282634449:function:ACS-SemanticSegmentation`
    #
    #   * `arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-SemanticSegmentation`
    #
    #   * `arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-SemanticSegmentation`
    #
    #   * `arn:aws:lambda:ap-south-1:565803892007:function:ACS-SemanticSegmentation`
    #
    #   * `arn:aws:lambda:eu-central-1:203001061592:function:ACS-SemanticSegmentation`
    #
    #   * `arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-SemanticSegmentation`
    #
    #   * `arn:aws:lambda:eu-west-2:487402164563:function:ACS-SemanticSegmentation`
    #
    #   * `arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-SemanticSegmentation`
    #
    #   * `arn:aws:lambda:ca-central-1:918755190332:function:ACS-SemanticSegmentation`
    #
    #   **Text classification** - Uses a variant of the Expectation
    #   Maximization approach to estimate the true class of text based on
    #   annotations from individual workers.
    #
    #   * `arn:aws:lambda:us-east-1:432418664414:function:ACS-TextMultiClass`
    #
    #   * `arn:aws:lambda:us-east-2:266458841044:function:ACS-TextMultiClass`
    #
    #   * `arn:aws:lambda:us-west-2:081040173940:function:ACS-TextMultiClass`
    #
    #   * `arn:aws:lambda:eu-west-1:568282634449:function:ACS-TextMultiClass`
    #
    #   * `arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-TextMultiClass`
    #
    #   * `arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-TextMultiClass`
    #
    #   * `arn:aws:lambda:ap-south-1:565803892007:function:ACS-TextMultiClass`
    #
    #   * `arn:aws:lambda:eu-central-1:203001061592:function:ACS-TextMultiClass`
    #
    #   * `arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-TextMultiClass`
    #
    #   * `arn:aws:lambda:eu-west-2:487402164563:function:ACS-TextMultiClass`
    #
    #   * `arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-TextMultiClass`
    #
    #   * `arn:aws:lambda:ca-central-1:918755190332:function:ACS-TextMultiClass`
    #
    #   **Multi-label text classification** - Uses a variant of the
    #   Expectation Maximization approach to estimate the true classes of
    #   text based on annotations from individual workers.
    #
    #   * `arn:aws:lambda:us-east-1:432418664414:function:ACS-TextMultiClassMultiLabel`
    #
    #   * `arn:aws:lambda:us-east-2:266458841044:function:ACS-TextMultiClassMultiLabel`
    #
    #   * `arn:aws:lambda:us-west-2:081040173940:function:ACS-TextMultiClassMultiLabel`
    #
    #   * `arn:aws:lambda:eu-west-1:568282634449:function:ACS-TextMultiClassMultiLabel`
    #
    #   * `arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-TextMultiClassMultiLabel`
    #
    #   * `arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-TextMultiClassMultiLabel`
    #
    #   * `arn:aws:lambda:ap-south-1:565803892007:function:ACS-TextMultiClassMultiLabel`
    #
    #   * `arn:aws:lambda:eu-central-1:203001061592:function:ACS-TextMultiClassMultiLabel`
    #
    #   * `arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-TextMultiClassMultiLabel`
    #
    #   * `arn:aws:lambda:eu-west-2:487402164563:function:ACS-TextMultiClassMultiLabel`
    #
    #   * `arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-TextMultiClassMultiLabel`
    #
    #   * `arn:aws:lambda:ca-central-1:918755190332:function:ACS-TextMultiClassMultiLabel`
    #
    #   **Named entity recognition** - Groups similar selections and
    #   calculates aggregate boundaries, resolving to most-assigned label.
    #
    #   * `arn:aws:lambda:us-east-1:432418664414:function:ACS-NamedEntityRecognition`
    #
    #   * `arn:aws:lambda:us-east-2:266458841044:function:ACS-NamedEntityRecognition`
    #
    #   * `arn:aws:lambda:us-west-2:081040173940:function:ACS-NamedEntityRecognition`
    #
    #   * `arn:aws:lambda:eu-west-1:568282634449:function:ACS-NamedEntityRecognition`
    #
    #   * `arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-NamedEntityRecognition`
    #
    #   * `arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-NamedEntityRecognition`
    #
    #   * `arn:aws:lambda:ap-south-1:565803892007:function:ACS-NamedEntityRecognition`
    #
    #   * `arn:aws:lambda:eu-central-1:203001061592:function:ACS-NamedEntityRecognition`
    #
    #   * `arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-NamedEntityRecognition`
    #
    #   * `arn:aws:lambda:eu-west-2:487402164563:function:ACS-NamedEntityRecognition`
    #
    #   * `arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-NamedEntityRecognition`
    #
    #   * `arn:aws:lambda:ca-central-1:918755190332:function:ACS-NamedEntityRecognition`
    #
    #   **Video Classification** - Use this task type when you need workers
    #   to classify videos using predefined labels that you specify. Workers
    #   are shown videos and are asked to choose one label for each video.
    #
    #   * `arn:aws:lambda:us-east-1:432418664414:function:ACS-VideoMultiClass`
    #
    #   * `arn:aws:lambda:us-east-2:266458841044:function:ACS-VideoMultiClass`
    #
    #   * `arn:aws:lambda:us-west-2:081040173940:function:ACS-VideoMultiClass`
    #
    #   * `arn:aws:lambda:eu-west-1:568282634449:function:ACS-VideoMultiClass`
    #
    #   * `arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-VideoMultiClass`
    #
    #   * `arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-VideoMultiClass`
    #
    #   * `arn:aws:lambda:ap-south-1:565803892007:function:ACS-VideoMultiClass`
    #
    #   * `arn:aws:lambda:eu-central-1:203001061592:function:ACS-VideoMultiClass`
    #
    #   * `arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-VideoMultiClass`
    #
    #   * `arn:aws:lambda:eu-west-2:487402164563:function:ACS-VideoMultiClass`
    #
    #   * `arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-VideoMultiClass`
    #
    #   * `arn:aws:lambda:ca-central-1:918755190332:function:ACS-VideoMultiClass`
    #
    #   **Video Frame Object Detection** - Use this task type to have
    #   workers identify and locate objects in a sequence of video frames
    #   (images extracted from a video) using bounding boxes. For example,
    #   you can use this task to ask workers to identify and localize
    #   various objects in a series of video frames, such as cars, bikes,
    #   and pedestrians.
    #
    #   * `arn:aws:lambda:us-east-1:432418664414:function:ACS-VideoObjectDetection`
    #
    #   * `arn:aws:lambda:us-east-2:266458841044:function:ACS-VideoObjectDetection`
    #
    #   * `arn:aws:lambda:us-west-2:081040173940:function:ACS-VideoObjectDetection`
    #
    #   * `arn:aws:lambda:eu-west-1:568282634449:function:ACS-VideoObjectDetection`
    #
    #   * `arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-VideoObjectDetection`
    #
    #   * `arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-VideoObjectDetection`
    #
    #   * `arn:aws:lambda:ap-south-1:565803892007:function:ACS-VideoObjectDetection`
    #
    #   * `arn:aws:lambda:eu-central-1:203001061592:function:ACS-VideoObjectDetection`
    #
    #   * `arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-VideoObjectDetection`
    #
    #   * `arn:aws:lambda:eu-west-2:487402164563:function:ACS-VideoObjectDetection`
    #
    #   * `arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-VideoObjectDetection`
    #
    #   * `arn:aws:lambda:ca-central-1:918755190332:function:ACS-VideoObjectDetection`
    #
    #   **Video Frame Object Tracking** - Use this task type to have workers
    #   track the movement of objects in a sequence of video frames (images
    #   extracted from a video) using bounding boxes. For example, you can
    #   use this task to ask workers to track the movement of objects, such
    #   as cars, bikes, and pedestrians.
    #
    #   * `arn:aws:lambda:us-east-1:432418664414:function:ACS-VideoObjectTracking`
    #
    #   * `arn:aws:lambda:us-east-2:266458841044:function:ACS-VideoObjectTracking`
    #
    #   * `arn:aws:lambda:us-west-2:081040173940:function:ACS-VideoObjectTracking`
    #
    #   * `arn:aws:lambda:eu-west-1:568282634449:function:ACS-VideoObjectTracking`
    #
    #   * `arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-VideoObjectTracking`
    #
    #   * `arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-VideoObjectTracking`
    #
    #   * `arn:aws:lambda:ap-south-1:565803892007:function:ACS-VideoObjectTracking`
    #
    #   * `arn:aws:lambda:eu-central-1:203001061592:function:ACS-VideoObjectTracking`
    #
    #   * `arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-VideoObjectTracking`
    #
    #   * `arn:aws:lambda:eu-west-2:487402164563:function:ACS-VideoObjectTracking`
    #
    #   * `arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-VideoObjectTracking`
    #
    #   * `arn:aws:lambda:ca-central-1:918755190332:function:ACS-VideoObjectTracking`
    #
    #   **3D Point Cloud Object Detection** - Use this task type when you
    #   want workers to classify objects in a 3D point cloud by drawing 3D
    #   cuboids around objects. For example, you can use this task type to
    #   ask workers to identify different types of objects in a point cloud,
    #   such as cars, bikes, and pedestrians.
    #
    #   * `arn:aws:lambda:us-east-1:432418664414:function:ACS-3DPointCloudObjectDetection`
    #
    #   * `arn:aws:lambda:us-east-2:266458841044:function:ACS-3DPointCloudObjectDetection`
    #
    #   * `arn:aws:lambda:us-west-2:081040173940:function:ACS-3DPointCloudObjectDetection`
    #
    #   * `arn:aws:lambda:eu-west-1:568282634449:function:ACS-3DPointCloudObjectDetection`
    #
    #   * `arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-3DPointCloudObjectDetection`
    #
    #   * `arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-3DPointCloudObjectDetection`
    #
    #   * `arn:aws:lambda:ap-south-1:565803892007:function:ACS-3DPointCloudObjectDetection`
    #
    #   * `arn:aws:lambda:eu-central-1:203001061592:function:ACS-3DPointCloudObjectDetection`
    #
    #   * `arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-3DPointCloudObjectDetection`
    #
    #   * `arn:aws:lambda:eu-west-2:487402164563:function:ACS-3DPointCloudObjectDetection`
    #
    #   * `arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-3DPointCloudObjectDetection`
    #
    #   * `arn:aws:lambda:ca-central-1:918755190332:function:ACS-3DPointCloudObjectDetection`
    #
    #   **3D Point Cloud Object Tracking** - Use this task type when you
    #   want workers to draw 3D cuboids around objects that appear in a
    #   sequence of 3D point cloud frames. For example, you can use this
    #   task type to ask workers to track the movement of vehicles across
    #   multiple point cloud frames.
    #
    #   * `arn:aws:lambda:us-east-1:432418664414:function:ACS-3DPointCloudObjectTracking`
    #
    #   * `arn:aws:lambda:us-east-2:266458841044:function:ACS-3DPointCloudObjectTracking`
    #
    #   * `arn:aws:lambda:us-west-2:081040173940:function:ACS-3DPointCloudObjectTracking`
    #
    #   * `arn:aws:lambda:eu-west-1:568282634449:function:ACS-3DPointCloudObjectTracking`
    #
    #   * `arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-3DPointCloudObjectTracking`
    #
    #   * `arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-3DPointCloudObjectTracking`
    #
    #   * `arn:aws:lambda:ap-south-1:565803892007:function:ACS-3DPointCloudObjectTracking`
    #
    #   * `arn:aws:lambda:eu-central-1:203001061592:function:ACS-3DPointCloudObjectTracking`
    #
    #   * `arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-3DPointCloudObjectTracking`
    #
    #   * `arn:aws:lambda:eu-west-2:487402164563:function:ACS-3DPointCloudObjectTracking`
    #
    #   * `arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-3DPointCloudObjectTracking`
    #
    #   * `arn:aws:lambda:ca-central-1:918755190332:function:ACS-3DPointCloudObjectTracking`
    #
    #   **3D Point Cloud Semantic Segmentation** - Use this task type when
    #   you want workers to create a point-level semantic segmentation masks
    #   by painting objects in a 3D point cloud using different colors where
    #   each color is assigned to one of the classes you specify.
    #
    #   * `arn:aws:lambda:us-east-1:432418664414:function:ACS-3DPointCloudSemanticSegmentation`
    #
    #   * `arn:aws:lambda:us-east-2:266458841044:function:ACS-3DPointCloudSemanticSegmentation`
    #
    #   * `arn:aws:lambda:us-west-2:081040173940:function:ACS-3DPointCloudSemanticSegmentation`
    #
    #   * `arn:aws:lambda:eu-west-1:568282634449:function:ACS-3DPointCloudSemanticSegmentation`
    #
    #   * `arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-3DPointCloudSemanticSegmentation`
    #
    #   * `arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-3DPointCloudSemanticSegmentation`
    #
    #   * `arn:aws:lambda:ap-south-1:565803892007:function:ACS-3DPointCloudSemanticSegmentation`
    #
    #   * `arn:aws:lambda:eu-central-1:203001061592:function:ACS-3DPointCloudSemanticSegmentation`
    #
    #   * `arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-3DPointCloudSemanticSegmentation`
    #
    #   * `arn:aws:lambda:eu-west-2:487402164563:function:ACS-3DPointCloudSemanticSegmentation`
    #
    #   * `arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-3DPointCloudSemanticSegmentation`
    #
    #   * `arn:aws:lambda:ca-central-1:918755190332:function:ACS-3DPointCloudSemanticSegmentation`
    #
    #   **Use the following ARNs for Label Verification and Adjustment
    #   Jobs**
    #
    #   Use label verification and adjustment jobs to review and adjust
    #   labels. To learn more, see [Verify and Adjust Labels ][4].
    #
    #   **Semantic Segmentation Adjustment** - Treats each pixel in an image
    #   as a multi-class classification and treats pixel adjusted
    #   annotations from workers as "votes" for the correct label.
    #
    #   * `arn:aws:lambda:us-east-1:432418664414:function:ACS-AdjustmentSemanticSegmentation`
    #
    #   * `arn:aws:lambda:us-east-2:266458841044:function:ACS-AdjustmentSemanticSegmentation`
    #
    #   * `arn:aws:lambda:us-west-2:081040173940:function:ACS-AdjustmentSemanticSegmentation`
    #
    #   * `arn:aws:lambda:eu-west-1:568282634449:function:ACS-AdjustmentSemanticSegmentation`
    #
    #   * `arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-AdjustmentSemanticSegmentation`
    #
    #   * `arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-AdjustmentSemanticSegmentation`
    #
    #   * `arn:aws:lambda:ap-south-1:565803892007:function:ACS-AdjustmentSemanticSegmentation`
    #
    #   * `arn:aws:lambda:eu-central-1:203001061592:function:ACS-AdjustmentSemanticSegmentation`
    #
    #   * `arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-AdjustmentSemanticSegmentation`
    #
    #   * `arn:aws:lambda:eu-west-2:487402164563:function:ACS-AdjustmentSemanticSegmentation`
    #
    #   * `arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-AdjustmentSemanticSegmentation`
    #
    #   * `arn:aws:lambda:ca-central-1:918755190332:function:ACS-AdjustmentSemanticSegmentation`
    #
    #   **Semantic Segmentation Verification** - Uses a variant of the
    #   Expectation Maximization approach to estimate the true class of
    #   verification judgment for semantic segmentation labels based on
    #   annotations from individual workers.
    #
    #   * `arn:aws:lambda:us-east-1:432418664414:function:ACS-VerificationSemanticSegmentation`
    #
    #   * `arn:aws:lambda:us-east-2:266458841044:function:ACS-VerificationSemanticSegmentation`
    #
    #   * `arn:aws:lambda:us-west-2:081040173940:function:ACS-VerificationSemanticSegmentation`
    #
    #   * `arn:aws:lambda:eu-west-1:568282634449:function:ACS-VerificationSemanticSegmentation`
    #
    #   * `arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-VerificationSemanticSegmentation`
    #
    #   * `arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-VerificationSemanticSegmentation`
    #
    #   * `arn:aws:lambda:ap-south-1:565803892007:function:ACS-VerificationSemanticSegmentation`
    #
    #   * `arn:aws:lambda:eu-central-1:203001061592:function:ACS-VerificationSemanticSegmentation`
    #
    #   * `arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-VerificationSemanticSegmentation`
    #
    #   * `arn:aws:lambda:eu-west-2:487402164563:function:ACS-VerificationSemanticSegmentation`
    #
    #   * `arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-VerificationSemanticSegmentation`
    #
    #   * `arn:aws:lambda:ca-central-1:918755190332:function:ACS-VerificationSemanticSegmentation`
    #
    #   **Bounding Box Adjustment** - Finds the most similar boxes from
    #   different workers based on the Jaccard index of the adjusted
    #   annotations.
    #
    #   * `arn:aws:lambda:us-east-1:432418664414:function:ACS-AdjustmentBoundingBox`
    #
    #   * `arn:aws:lambda:us-east-2:266458841044:function:ACS-AdjustmentBoundingBox`
    #
    #   * `arn:aws:lambda:us-west-2:081040173940:function:ACS-AdjustmentBoundingBox`
    #
    #   * `arn:aws:lambda:eu-west-1:568282634449:function:ACS-AdjustmentBoundingBox`
    #
    #   * `arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-AdjustmentBoundingBox`
    #
    #   * `arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-AdjustmentBoundingBox`
    #
    #   * `arn:aws:lambda:ap-south-1:565803892007:function:ACS-AdjustmentBoundingBox`
    #
    #   * `arn:aws:lambda:eu-central-1:203001061592:function:ACS-AdjustmentBoundingBox`
    #
    #   * `arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-AdjustmentBoundingBox`
    #
    #   * `arn:aws:lambda:eu-west-2:487402164563:function:ACS-AdjustmentBoundingBox`
    #
    #   * `arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-AdjustmentBoundingBox`
    #
    #   * `arn:aws:lambda:ca-central-1:918755190332:function:ACS-AdjustmentBoundingBox`
    #
    #   **Bounding Box Verification** - Uses a variant of the Expectation
    #   Maximization approach to estimate the true class of verification
    #   judgement for bounding box labels based on annotations from
    #   individual workers.
    #
    #   * `arn:aws:lambda:us-east-1:432418664414:function:ACS-VerificationBoundingBox`
    #
    #   * `arn:aws:lambda:us-east-2:266458841044:function:ACS-VerificationBoundingBox`
    #
    #   * `arn:aws:lambda:us-west-2:081040173940:function:ACS-VerificationBoundingBox`
    #
    #   * `arn:aws:lambda:eu-west-1:568282634449:function:ACS-VerificationBoundingBox`
    #
    #   * `arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-VerificationBoundingBox`
    #
    #   * `arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-VerificationBoundingBox`
    #
    #   * `arn:aws:lambda:ap-south-1:565803892007:function:ACS-VerificationBoundingBox`
    #
    #   * `arn:aws:lambda:eu-central-1:203001061592:function:ACS-VerificationBoundingBox`
    #
    #   * `arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-VerificationBoundingBox`
    #
    #   * `arn:aws:lambda:eu-west-2:487402164563:function:ACS-VerificationBoundingBox`
    #
    #   * `arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-VerificationBoundingBox`
    #
    #   * `arn:aws:lambda:ca-central-1:918755190332:function:ACS-VerificationBoundingBox`
    #
    #   **Video Frame Object Detection Adjustment** - Use this task type
    #   when you want workers to adjust bounding boxes that workers have
    #   added to video frames to classify and localize objects in a sequence
    #   of video frames.
    #
    #   * `arn:aws:lambda:us-east-1:432418664414:function:ACS-AdjustmentVideoObjectDetection`
    #
    #   * `arn:aws:lambda:us-east-2:266458841044:function:ACS-AdjustmentVideoObjectDetection`
    #
    #   * `arn:aws:lambda:us-west-2:081040173940:function:ACS-AdjustmentVideoObjectDetection`
    #
    #   * `arn:aws:lambda:eu-west-1:568282634449:function:ACS-AdjustmentVideoObjectDetection`
    #
    #   * `arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-AdjustmentVideoObjectDetection`
    #
    #   * `arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-AdjustmentVideoObjectDetection`
    #
    #   * `arn:aws:lambda:ap-south-1:565803892007:function:ACS-AdjustmentVideoObjectDetection`
    #
    #   * `arn:aws:lambda:eu-central-1:203001061592:function:ACS-AdjustmentVideoObjectDetection`
    #
    #   * `arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-AdjustmentVideoObjectDetection`
    #
    #   * `arn:aws:lambda:eu-west-2:487402164563:function:ACS-AdjustmentVideoObjectDetection`
    #
    #   * `arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-AdjustmentVideoObjectDetection`
    #
    #   * `arn:aws:lambda:ca-central-1:918755190332:function:ACS-AdjustmentVideoObjectDetection`
    #
    #   **Video Frame Object Tracking Adjustment** - Use this task type when
    #   you want workers to adjust bounding boxes that workers have added to
    #   video frames to track object movement across a sequence of video
    #   frames.
    #
    #   * `arn:aws:lambda:us-east-1:432418664414:function:ACS-AdjustmentVideoObjectTracking`
    #
    #   * `arn:aws:lambda:us-east-2:266458841044:function:ACS-AdjustmentVideoObjectTracking`
    #
    #   * `arn:aws:lambda:us-west-2:081040173940:function:ACS-AdjustmentVideoObjectTracking`
    #
    #   * `arn:aws:lambda:eu-west-1:568282634449:function:ACS-AdjustmentVideoObjectTracking`
    #
    #   * `arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-AdjustmentVideoObjectTracking`
    #
    #   * `arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-AdjustmentVideoObjectTracking`
    #
    #   * `arn:aws:lambda:ap-south-1:565803892007:function:ACS-AdjustmentVideoObjectTracking`
    #
    #   * `arn:aws:lambda:eu-central-1:203001061592:function:ACS-AdjustmentVideoObjectTracking`
    #
    #   * `arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-AdjustmentVideoObjectTracking`
    #
    #   * `arn:aws:lambda:eu-west-2:487402164563:function:ACS-AdjustmentVideoObjectTracking`
    #
    #   * `arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-AdjustmentVideoObjectTracking`
    #
    #   * `arn:aws:lambda:ca-central-1:918755190332:function:ACS-AdjustmentVideoObjectTracking`
    #
    #   **3D Point Cloud Object Detection Adjustment** - Use this task type
    #   when you want workers to adjust 3D cuboids around objects in a 3D
    #   point cloud.
    #
    #   * `arn:aws:lambda:us-east-1:432418664414:function:ACS-Adjustment3DPointCloudObjectDetection`
    #
    #   * `arn:aws:lambda:us-east-2:266458841044:function:ACS-Adjustment3DPointCloudObjectDetection`
    #
    #   * `arn:aws:lambda:us-west-2:081040173940:function:ACS-Adjustment3DPointCloudObjectDetection`
    #
    #   * `arn:aws:lambda:eu-west-1:568282634449:function:ACS-Adjustment3DPointCloudObjectDetection`
    #
    #   * `arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-Adjustment3DPointCloudObjectDetection`
    #
    #   * `arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-Adjustment3DPointCloudObjectDetection`
    #
    #   * `arn:aws:lambda:ap-south-1:565803892007:function:ACS-Adjustment3DPointCloudObjectDetection`
    #
    #   * `arn:aws:lambda:eu-central-1:203001061592:function:ACS-Adjustment3DPointCloudObjectDetection`
    #
    #   * `arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-Adjustment3DPointCloudObjectDetection`
    #
    #   * `arn:aws:lambda:eu-west-2:487402164563:function:ACS-Adjustment3DPointCloudObjectDetection`
    #
    #   * `arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-Adjustment3DPointCloudObjectDetection`
    #
    #   * `arn:aws:lambda:ca-central-1:918755190332:function:ACS-Adjustment3DPointCloudObjectDetection`
    #
    #   **3D Point Cloud Object Tracking Adjustment** - Use this task type
    #   when you want workers to adjust 3D cuboids around objects that
    #   appear in a sequence of 3D point cloud frames.
    #
    #   * `arn:aws:lambda:us-east-1:432418664414:function:ACS-Adjustment3DPointCloudObjectTracking`
    #
    #   * `arn:aws:lambda:us-east-2:266458841044:function:ACS-Adjustment3DPointCloudObjectTracking`
    #
    #   * `arn:aws:lambda:us-west-2:081040173940:function:ACS-Adjustment3DPointCloudObjectTracking`
    #
    #   * `arn:aws:lambda:eu-west-1:568282634449:function:ACS-Adjustment3DPointCloudObjectTracking`
    #
    #   * `arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-Adjustment3DPointCloudObjectTracking`
    #
    #   * `arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-Adjustment3DPointCloudObjectTracking`
    #
    #   * `arn:aws:lambda:ap-south-1:565803892007:function:ACS-Adjustment3DPointCloudObjectTracking`
    #
    #   * `arn:aws:lambda:eu-central-1:203001061592:function:ACS-Adjustment3DPointCloudObjectTracking`
    #
    #   * `arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-Adjustment3DPointCloudObjectTracking`
    #
    #   * `arn:aws:lambda:eu-west-2:487402164563:function:ACS-Adjustment3DPointCloudObjectTracking`
    #
    #   * `arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-Adjustment3DPointCloudObjectTracking`
    #
    #   * `arn:aws:lambda:ca-central-1:918755190332:function:ACS-Adjustment3DPointCloudObjectTracking`
    #
    #   **3D Point Cloud Semantic Segmentation Adjustment** - Use this task
    #   type when you want workers to adjust a point-level semantic
    #   segmentation masks using a paint tool.
    #
    #   * `arn:aws:lambda:us-east-1:432418664414:function:ACS-3DPointCloudSemanticSegmentation`
    #
    #   * `arn:aws:lambda:us-east-1:432418664414:function:ACS-Adjustment3DPointCloudSemanticSegmentation`
    #
    #   * `arn:aws:lambda:us-east-2:266458841044:function:ACS-Adjustment3DPointCloudSemanticSegmentation`
    #
    #   * `arn:aws:lambda:us-west-2:081040173940:function:ACS-Adjustment3DPointCloudSemanticSegmentation`
    #
    #   * `arn:aws:lambda:eu-west-1:568282634449:function:ACS-Adjustment3DPointCloudSemanticSegmentation`
    #
    #   * `arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-Adjustment3DPointCloudSemanticSegmentation`
    #
    #   * `arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-Adjustment3DPointCloudSemanticSegmentation`
    #
    #   * `arn:aws:lambda:ap-south-1:565803892007:function:ACS-Adjustment3DPointCloudSemanticSegmentation`
    #
    #   * `arn:aws:lambda:eu-central-1:203001061592:function:ACS-Adjustment3DPointCloudSemanticSegmentation`
    #
    #   * `arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-Adjustment3DPointCloudSemanticSegmentation`
    #
    #   * `arn:aws:lambda:eu-west-2:487402164563:function:ACS-Adjustment3DPointCloudSemanticSegmentation`
    #
    #   * `arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-Adjustment3DPointCloudSemanticSegmentation`
    #
    #   * `arn:aws:lambda:ca-central-1:918755190332:function:ACS-Adjustment3DPointCloudSemanticSegmentation`
    #
    #   **Generative AI/Custom** - Direct passthrough of output data without
    #   any transformation.
    #
    #   * `arn:aws:lambda:us-east-1:432418664414:function:ACS-PassThrough`
    #
    #   * `arn:aws:lambda:us-east-2:266458841044:function:ACS-PassThrough`
    #
    #   * `arn:aws:lambda:us-west-2:081040173940:function:ACS-PassThrough`
    #
    #   * `arn:aws:lambda:eu-west-1:568282634449:function:ACS-PassThrough`
    #
    #   * `arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-PassThrough`
    #
    #   * `arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-PassThrough`
    #
    #   * `arn:aws:lambda:ap-south-1:565803892007:function:ACS-PassThrough`
    #
    #   * `arn:aws:lambda:eu-central-1:203001061592:function:ACS-PassThrough`
    #
    #   * `arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-PassThrough`
    #
    #   * `arn:aws:lambda:eu-west-2:487402164563:function:ACS-PassThrough`
    #
    #   * `arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-PassThrough`
    #
    #   * `arn:aws:lambda:ca-central-1:918755190332:function:ACS-PassThrough`
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/sms-annotation-consolidation.html
    #   [2]: https://docs.aws.amazon.com/sagemaker/latest/dg/sms-task-types.html
    #   [3]: https://docs.aws.amazon.com/sagemaker/latest/dg/sms-custom-templates-step3.html#sms-custom-templates-step3-postlambda
    #   [4]: https://docs.aws.amazon.com/sagemaker/latest/dg/sms-verification-data.html
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/AnnotationConsolidationConfig AWS API Documentation
    #
    class AnnotationConsolidationConfig < Struct.new(
      :annotation_consolidation_lambda_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # Details about an Amazon SageMaker AI app.
    #
    # @!attribute [rw] domain_id
    #   The domain ID.
    #   @return [String]
    #
    # @!attribute [rw] user_profile_name
    #   The user profile name.
    #   @return [String]
    #
    # @!attribute [rw] space_name
    #   The name of the space.
    #   @return [String]
    #
    # @!attribute [rw] app_type
    #   The type of app.
    #   @return [String]
    #
    # @!attribute [rw] app_name
    #   The name of the app.
    #   @return [String]
    #
    # @!attribute [rw] status
    #   The status.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   The creation time.
    #   @return [Time]
    #
    # @!attribute [rw] resource_spec
    #   Specifies the ARN's of a SageMaker AI image and SageMaker AI image
    #   version, and the instance type that the version runs on.
    #
    #   <note markdown="1"> When both `SageMakerImageVersionArn` and `SageMakerImageArn` are
    #   passed, `SageMakerImageVersionArn` is used. Any updates to
    #   `SageMakerImageArn` will not take effect if
    #   `SageMakerImageVersionArn` already exists in the `ResourceSpec`
    #   because `SageMakerImageVersionArn` always takes precedence. To clear
    #   the value set for `SageMakerImageVersionArn`, pass `None` as the
    #   value.
    #
    #    </note>
    #   @return [Types::ResourceSpec]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/AppDetails AWS API Documentation
    #
    class AppDetails < Struct.new(
      :domain_id,
      :user_profile_name,
      :space_name,
      :app_type,
      :app_name,
      :status,
      :creation_time,
      :resource_spec)
      SENSITIVE = []
      include Aws::Structure
    end

    # The configuration for running a SageMaker AI image as a KernelGateway
    # app.
    #
    # @!attribute [rw] app_image_config_arn
    #   The ARN of the AppImageConfig.
    #   @return [String]
    #
    # @!attribute [rw] app_image_config_name
    #   The name of the AppImageConfig. Must be unique to your account.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   When the AppImageConfig was created.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time
    #   When the AppImageConfig was last modified.
    #   @return [Time]
    #
    # @!attribute [rw] kernel_gateway_image_config
    #   The configuration for the file system and kernels in the SageMaker
    #   AI image.
    #   @return [Types::KernelGatewayImageConfig]
    #
    # @!attribute [rw] jupyter_lab_app_image_config
    #   The configuration for the file system and the runtime, such as the
    #   environment variables and entry point.
    #   @return [Types::JupyterLabAppImageConfig]
    #
    # @!attribute [rw] code_editor_app_image_config
    #   The configuration for the file system and the runtime, such as the
    #   environment variables and entry point.
    #   @return [Types::CodeEditorAppImageConfig]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/AppImageConfigDetails AWS API Documentation
    #
    class AppImageConfigDetails < Struct.new(
      :app_image_config_arn,
      :app_image_config_name,
      :creation_time,
      :last_modified_time,
      :kernel_gateway_image_config,
      :jupyter_lab_app_image_config,
      :code_editor_app_image_config)
      SENSITIVE = []
      include Aws::Structure
    end

    # Settings that are used to configure and manage the lifecycle of Amazon
    # SageMaker Studio applications.
    #
    # @!attribute [rw] idle_settings
    #   Settings related to idle shutdown of Studio applications.
    #   @return [Types::IdleSettings]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/AppLifecycleManagement AWS API Documentation
    #
    class AppLifecycleManagement < Struct.new(
      :idle_settings)
      SENSITIVE = []
      include Aws::Structure
    end

    # Configuration to run a processing job in a specified container image.
    #
    # @!attribute [rw] image_uri
    #   The container image to be run by the processing job.
    #   @return [String]
    #
    # @!attribute [rw] container_entrypoint
    #   The entrypoint for a container used to run a processing job.
    #   @return [Array<String>]
    #
    # @!attribute [rw] container_arguments
    #   The arguments for a container used to run a processing job.
    #   @return [Array<String>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/AppSpecification AWS API Documentation
    #
    class AppSpecification < Struct.new(
      :image_uri,
      :container_entrypoint,
      :container_arguments)
      SENSITIVE = []
      include Aws::Structure
    end

    # A structure describing the source of an artifact.
    #
    # @!attribute [rw] source_uri
    #   The URI of the source.
    #   @return [String]
    #
    # @!attribute [rw] source_types
    #   A list of source types.
    #   @return [Array<Types::ArtifactSourceType>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ArtifactSource AWS API Documentation
    #
    class ArtifactSource < Struct.new(
      :source_uri,
      :source_types)
      SENSITIVE = []
      include Aws::Structure
    end

    # The ID and ID type of an artifact source.
    #
    # @!attribute [rw] source_id_type
    #   The type of ID.
    #   @return [String]
    #
    # @!attribute [rw] value
    #   The ID.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ArtifactSourceType AWS API Documentation
    #
    class ArtifactSourceType < Struct.new(
      :source_id_type,
      :value)
      SENSITIVE = []
      include Aws::Structure
    end

    # Lists a summary of the properties of an artifact. An artifact
    # represents a URI addressable object or data. Some examples are a
    # dataset and a model.
    #
    # @!attribute [rw] artifact_arn
    #   The Amazon Resource Name (ARN) of the artifact.
    #   @return [String]
    #
    # @!attribute [rw] artifact_name
    #   The name of the artifact.
    #   @return [String]
    #
    # @!attribute [rw] source
    #   The source of the artifact.
    #   @return [Types::ArtifactSource]
    #
    # @!attribute [rw] artifact_type
    #   The type of the artifact.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   When the artifact was created.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time
    #   When the artifact was last modified.
    #   @return [Time]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ArtifactSummary AWS API Documentation
    #
    class ArtifactSummary < Struct.new(
      :artifact_arn,
      :artifact_name,
      :source,
      :artifact_type,
      :creation_time,
      :last_modified_time)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] trial_component_name
    #   The name of the component to associated with the trial.
    #   @return [String]
    #
    # @!attribute [rw] trial_name
    #   The name of the trial to associate with.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/AssociateTrialComponentRequest AWS API Documentation
    #
    class AssociateTrialComponentRequest < Struct.new(
      :trial_component_name,
      :trial_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] trial_component_arn
    #   The Amazon Resource Name (ARN) of the trial component.
    #   @return [String]
    #
    # @!attribute [rw] trial_arn
    #   The Amazon Resource Name (ARN) of the trial.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/AssociateTrialComponentResponse AWS API Documentation
    #
    class AssociateTrialComponentResponse < Struct.new(
      :trial_component_arn,
      :trial_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # Lists a summary of the properties of an association. An association is
    # an entity that links other lineage or experiment entities. An example
    # would be an association between a training job and a model.
    #
    # @!attribute [rw] source_arn
    #   The ARN of the source.
    #   @return [String]
    #
    # @!attribute [rw] destination_arn
    #   The Amazon Resource Name (ARN) of the destination.
    #   @return [String]
    #
    # @!attribute [rw] source_type
    #   The source type.
    #   @return [String]
    #
    # @!attribute [rw] destination_type
    #   The destination type.
    #   @return [String]
    #
    # @!attribute [rw] association_type
    #   The type of the association.
    #   @return [String]
    #
    # @!attribute [rw] source_name
    #   The name of the source.
    #   @return [String]
    #
    # @!attribute [rw] destination_name
    #   The name of the destination.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   When the association was created.
    #   @return [Time]
    #
    # @!attribute [rw] created_by
    #   Information about the user who created or modified a SageMaker
    #   resource.
    #   @return [Types::UserContext]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/AssociationSummary AWS API Documentation
    #
    class AssociationSummary < Struct.new(
      :source_arn,
      :destination_arn,
      :source_type,
      :destination_type,
      :association_type,
      :source_name,
      :destination_name,
      :creation_time,
      :created_by)
      SENSITIVE = []
      include Aws::Structure
    end

    # Configures the behavior of the client used by SageMaker to interact
    # with the model container during asynchronous inference.
    #
    # @!attribute [rw] max_concurrent_invocations_per_instance
    #   The maximum number of concurrent requests sent by the SageMaker
    #   client to the model container. If no value is provided, SageMaker
    #   chooses an optimal value.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/AsyncInferenceClientConfig AWS API Documentation
    #
    class AsyncInferenceClientConfig < Struct.new(
      :max_concurrent_invocations_per_instance)
      SENSITIVE = []
      include Aws::Structure
    end

    # Specifies configuration for how an endpoint performs asynchronous
    # inference.
    #
    # @!attribute [rw] client_config
    #   Configures the behavior of the client used by SageMaker to interact
    #   with the model container during asynchronous inference.
    #   @return [Types::AsyncInferenceClientConfig]
    #
    # @!attribute [rw] output_config
    #   Specifies the configuration for asynchronous inference invocation
    #   outputs.
    #   @return [Types::AsyncInferenceOutputConfig]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/AsyncInferenceConfig AWS API Documentation
    #
    class AsyncInferenceConfig < Struct.new(
      :client_config,
      :output_config)
      SENSITIVE = []
      include Aws::Structure
    end

    # Specifies the configuration for notifications of inference results for
    # asynchronous inference.
    #
    # @!attribute [rw] success_topic
    #   Amazon SNS topic to post a notification to when inference completes
    #   successfully. If no topic is provided, no notification is sent on
    #   success.
    #   @return [String]
    #
    # @!attribute [rw] error_topic
    #   Amazon SNS topic to post a notification to when inference fails. If
    #   no topic is provided, no notification is sent on failure.
    #   @return [String]
    #
    # @!attribute [rw] include_inference_response_in
    #   The Amazon SNS topics where you want the inference response to be
    #   included.
    #
    #   <note markdown="1"> The inference response is included only if the response size is less
    #   than or equal to 128 KB.
    #
    #    </note>
    #   @return [Array<String>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/AsyncInferenceNotificationConfig AWS API Documentation
    #
    class AsyncInferenceNotificationConfig < Struct.new(
      :success_topic,
      :error_topic,
      :include_inference_response_in)
      SENSITIVE = []
      include Aws::Structure
    end

    # Specifies the configuration for asynchronous inference invocation
    # outputs.
    #
    # @!attribute [rw] kms_key_id
    #   The Amazon Web Services Key Management Service (Amazon Web Services
    #   KMS) key that SageMaker uses to encrypt the asynchronous inference
    #   output in Amazon S3.
    #   @return [String]
    #
    # @!attribute [rw] s3_output_path
    #   The Amazon S3 location to upload inference responses to.
    #   @return [String]
    #
    # @!attribute [rw] notification_config
    #   Specifies the configuration for notifications of inference results
    #   for asynchronous inference.
    #   @return [Types::AsyncInferenceNotificationConfig]
    #
    # @!attribute [rw] s3_failure_path
    #   The Amazon S3 location to upload failure inference responses to.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/AsyncInferenceOutputConfig AWS API Documentation
    #
    class AsyncInferenceOutputConfig < Struct.new(
      :kms_key_id,
      :s3_output_path,
      :notification_config,
      :s3_failure_path)
      SENSITIVE = []
      include Aws::Structure
    end

    # Configuration for Athena Dataset Definition input.
    #
    # @!attribute [rw] catalog
    #   The name of the data catalog used in Athena query execution.
    #   @return [String]
    #
    # @!attribute [rw] database
    #   The name of the database used in the Athena query execution.
    #   @return [String]
    #
    # @!attribute [rw] query_string
    #   The SQL query statements, to be executed.
    #   @return [String]
    #
    # @!attribute [rw] work_group
    #   The name of the workgroup in which the Athena query is being
    #   started.
    #   @return [String]
    #
    # @!attribute [rw] output_s3_uri
    #   The location in Amazon S3 where Athena query results are stored.
    #   @return [String]
    #
    # @!attribute [rw] kms_key_id
    #   The Amazon Web Services Key Management Service (Amazon Web Services
    #   KMS) key that Amazon SageMaker uses to encrypt data generated from
    #   an Athena query execution.
    #   @return [String]
    #
    # @!attribute [rw] output_format
    #   The data storage format for Athena query results.
    #   @return [String]
    #
    # @!attribute [rw] output_compression
    #   The compression used for Athena query results.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/AthenaDatasetDefinition AWS API Documentation
    #
    class AthenaDatasetDefinition < Struct.new(
      :catalog,
      :database,
      :query_string,
      :work_group,
      :output_s3_uri,
      :kms_key_id,
      :output_format,
      :output_compression)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] cluster_arn
    #   The Amazon Resource Name (ARN) of your SageMaker HyperPod cluster
    #   containing the target node. Your cluster must use EKS as the
    #   orchestration and be in the `InService` state.
    #   @return [String]
    #
    # @!attribute [rw] node_id
    #   The unique identifier of the cluster node to which you want to
    #   attach the volume. The node must belong to your specified HyperPod
    #   cluster and cannot be part of a Restricted Instance Group (RIG).
    #   @return [String]
    #
    # @!attribute [rw] volume_id
    #   The unique identifier of your EBS volume to attach. The volume must
    #   be in the `available` state.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/AttachClusterNodeVolumeRequest AWS API Documentation
    #
    class AttachClusterNodeVolumeRequest < Struct.new(
      :cluster_arn,
      :node_id,
      :volume_id)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] cluster_arn
    #   The Amazon Resource Name (ARN) of your SageMaker HyperPod cluster
    #   where the volume attachment operation was performed.
    #   @return [String]
    #
    # @!attribute [rw] node_id
    #   The unique identifier of the cluster node where your volume was
    #   attached.
    #   @return [String]
    #
    # @!attribute [rw] volume_id
    #   The unique identifier of your EBS volume that was attached.
    #   @return [String]
    #
    # @!attribute [rw] attach_time
    #   The timestamp when the volume attachment operation was initiated by
    #   the SageMaker HyperPod service.
    #   @return [Time]
    #
    # @!attribute [rw] status
    #   The current status of your volume attachment operation.
    #   @return [String]
    #
    # @!attribute [rw] device_name
    #   The device name assigned to your attached volume on the target
    #   instance.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/AttachClusterNodeVolumeResponse AWS API Documentation
    #
    class AttachClusterNodeVolumeResponse < Struct.new(
      :cluster_arn,
      :node_id,
      :volume_id,
      :attach_time,
      :status,
      :device_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # Contains a presigned URL and its associated local file path for
    # downloading hub content artifacts.
    #
    # @!attribute [rw] url
    #   The presigned S3 URL that provides temporary, secure access to
    #   download the file. URLs expire within 15 minutes for security
    #   purposes.
    #   @return [String]
    #
    # @!attribute [rw] local_path
    #   The recommended local file path where the downloaded file should be
    #   stored to maintain proper directory structure and file organization.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/AuthorizedUrl AWS API Documentation
    #
    class AuthorizedUrl < Struct.new(
      :url,
      :local_path)
      SENSITIVE = []
      include Aws::Structure
    end

    # The selection of algorithms trained on your dataset to generate the
    # model candidates for an Autopilot job.
    #
    # @!attribute [rw] auto_ml_algorithms
    #   The selection of algorithms trained on your dataset to generate the
    #   model candidates for an Autopilot job.
    #
    #   * **For the tabular problem type `TabularJobConfig`:**
    #
    #     <note markdown="1"> Selected algorithms must belong to the list corresponding to the
    #     training mode set in [AutoMLJobConfig.Mode][1] (`ENSEMBLING` or
    #     `HYPERPARAMETER_TUNING`). Choose a minimum of 1 algorithm.
    #
    #      </note>
    #
    #     * In `ENSEMBLING` mode:
    #
    #       * "catboost"
    #
    #       * "extra-trees"
    #
    #       * "fastai"
    #
    #       * "lightgbm"
    #
    #       * "linear-learner"
    #
    #       * "nn-torch"
    #
    #       * "randomforest"
    #
    #       * "xgboost"
    #     * In `HYPERPARAMETER_TUNING` mode:
    #
    #       * "linear-learner"
    #
    #       * "mlp"
    #
    #       * "xgboost"
    #   * **For the time-series forecasting problem type
    #     `TimeSeriesForecastingJobConfig`:**
    #
    #     * Choose your algorithms from this list.
    #
    #       * "cnn-qr"
    #
    #       * "deepar"
    #
    #       * "prophet"
    #
    #       * "arima"
    #
    #       * "npts"
    #
    #       * "ets"
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLJobConfig.html#sagemaker-Type-AutoMLJobConfig-Mode
    #   @return [Array<String>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/AutoMLAlgorithmConfig AWS API Documentation
    #
    class AutoMLAlgorithmConfig < Struct.new(
      :auto_ml_algorithms)
      SENSITIVE = []
      include Aws::Structure
    end

    # Information about a candidate produced by an AutoML training job,
    # including its status, steps, and other properties.
    #
    # @!attribute [rw] candidate_name
    #   The name of the candidate.
    #   @return [String]
    #
    # @!attribute [rw] final_auto_ml_job_objective_metric
    #   The best candidate result from an AutoML training job.
    #   @return [Types::FinalAutoMLJobObjectiveMetric]
    #
    # @!attribute [rw] objective_status
    #   The objective's status.
    #   @return [String]
    #
    # @!attribute [rw] candidate_steps
    #   Information about the candidate's steps.
    #   @return [Array<Types::AutoMLCandidateStep>]
    #
    # @!attribute [rw] candidate_status
    #   The candidate's status.
    #   @return [String]
    #
    # @!attribute [rw] inference_containers
    #   Information about the recommended inference container definitions.
    #   @return [Array<Types::AutoMLContainerDefinition>]
    #
    # @!attribute [rw] creation_time
    #   The creation time.
    #   @return [Time]
    #
    # @!attribute [rw] end_time
    #   The end time.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time
    #   The last modified time.
    #   @return [Time]
    #
    # @!attribute [rw] failure_reason
    #   The failure reason.
    #   @return [String]
    #
    # @!attribute [rw] candidate_properties
    #   The properties of an AutoML candidate job.
    #   @return [Types::CandidateProperties]
    #
    # @!attribute [rw] inference_container_definitions
    #   The mapping of all supported processing unit (CPU, GPU, etc...) to
    #   inference container definitions for the candidate. This field is
    #   populated for the AutoML jobs V2 (for example, for jobs created by
    #   calling `CreateAutoMLJobV2`) related to image or text classification
    #   problem types only.
    #   @return [Hash<String,Array<Types::AutoMLContainerDefinition>>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/AutoMLCandidate AWS API Documentation
    #
    class AutoMLCandidate < Struct.new(
      :candidate_name,
      :final_auto_ml_job_objective_metric,
      :objective_status,
      :candidate_steps,
      :candidate_status,
      :inference_containers,
      :creation_time,
      :end_time,
      :last_modified_time,
      :failure_reason,
      :candidate_properties,
      :inference_container_definitions)
      SENSITIVE = []
      include Aws::Structure
    end

    # Stores the configuration information for how a candidate is generated
    # (optional).
    #
    # @!attribute [rw] feature_specification_s3_uri
    #   A URL to the Amazon S3 data source containing selected features from
    #   the input data source to run an Autopilot job. You can input
    #   `FeatureAttributeNames` (optional) in JSON format as shown below:
    #
    #   `{ "FeatureAttributeNames":["col1", "col2", ...] }`.
    #
    #   You can also specify the data type of the feature (optional) in the
    #   format shown below:
    #
    #   `{ "FeatureDataTypes":{"col1":"numeric", "col2":"categorical" ... }
    #   }`
    #
    #   <note markdown="1"> These column keys may not include the target column.
    #
    #    </note>
    #
    #   In ensembling mode, Autopilot only supports the following data
    #   types: `numeric`, `categorical`, `text`, and `datetime`. In HPO
    #   mode, Autopilot can support `numeric`, `categorical`, `text`,
    #   `datetime`, and `sequence`.
    #
    #   If only `FeatureDataTypes` is provided, the column keys (`col1`,
    #   `col2`,..) should be a subset of the column names in the input data.
    #
    #   If both `FeatureDataTypes` and `FeatureAttributeNames` are provided,
    #   then the column keys should be a subset of the column names provided
    #   in `FeatureAttributeNames`.
    #
    #   The key name `FeatureAttributeNames` is fixed. The values listed in
    #   `["col1", "col2", ...]` are case sensitive and should be a list of
    #   strings containing unique values that are a subset of the column
    #   names in the input data. The list of columns provided must not
    #   include the target column.
    #   @return [String]
    #
    # @!attribute [rw] algorithms_config
    #   Stores the configuration information for the selection of algorithms
    #   trained on tabular data.
    #
    #   The list of available algorithms to choose from depends on the
    #   training mode set in [ `TabularJobConfig.Mode` ][1].
    #
    #   * `AlgorithmsConfig` should not be set if the training mode is set
    #     on `AUTO`.
    #
    #   * When `AlgorithmsConfig` is provided, one `AutoMLAlgorithms`
    #     attribute must be set and one only.
    #
    #     If the list of algorithms provided as values for
    #     `AutoMLAlgorithms` is empty, `CandidateGenerationConfig` uses the
    #     full set of algorithms for the given training mode.
    #
    #   * When `AlgorithmsConfig` is not provided,
    #     `CandidateGenerationConfig` uses the full set of algorithms for
    #     the given training mode.
    #
    #   For the list of all algorithms per problem type and training mode,
    #   see [ AutoMLAlgorithmConfig][2].
    #
    #   For more information on each algorithm, see the [Algorithm
    #   support][3] section in Autopilot developer guide.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TabularJobConfig.html
    #   [2]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLAlgorithmConfig.html
    #   [3]: https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-model-support-validation.html#autopilot-algorithm-support
    #   @return [Array<Types::AutoMLAlgorithmConfig>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/AutoMLCandidateGenerationConfig AWS API Documentation
    #
    class AutoMLCandidateGenerationConfig < Struct.new(
      :feature_specification_s3_uri,
      :algorithms_config)
      SENSITIVE = []
      include Aws::Structure
    end

    # Information about the steps for a candidate and what step it is
    # working on.
    #
    # @!attribute [rw] candidate_step_type
    #   Whether the candidate is at the transform, training, or processing
    #   step.
    #   @return [String]
    #
    # @!attribute [rw] candidate_step_arn
    #   The ARN for the candidate's step.
    #   @return [String]
    #
    # @!attribute [rw] candidate_step_name
    #   The name for the candidate's step.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/AutoMLCandidateStep AWS API Documentation
    #
    class AutoMLCandidateStep < Struct.new(
      :candidate_step_type,
      :candidate_step_arn,
      :candidate_step_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # A channel is a named input source that training algorithms can
    # consume. The validation dataset size is limited to less than 2 GB. The
    # training dataset size must be less than 100 GB. For more information,
    # see [ Channel][1].
    #
    # <note markdown="1"> A validation dataset must contain the same headers as the training
    # dataset.
    #
    #  </note>
    #
    #
    #
    #
    #
    # [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_Channel.html
    #
    # @!attribute [rw] data_source
    #   The data source for an AutoML channel.
    #   @return [Types::AutoMLDataSource]
    #
    # @!attribute [rw] compression_type
    #   You can use `Gzip` or `None`. The default value is `None`.
    #   @return [String]
    #
    # @!attribute [rw] target_attribute_name
    #   The name of the target variable in supervised learning, usually
    #   represented by 'y'.
    #   @return [String]
    #
    # @!attribute [rw] content_type
    #   The content type of the data from the input source. You can use
    #   `text/csv;header=present` or `x-application/vnd.amazon+parquet`. The
    #   default value is `text/csv;header=present`.
    #   @return [String]
    #
    # @!attribute [rw] channel_type
    #   The channel type (optional) is an `enum` string. The default value
    #   is `training`. Channels for training and validation must share the
    #   same `ContentType` and `TargetAttributeName`. For information on
    #   specifying training and validation channel types, see [How to
    #   specify training and validation datasets][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-datasets-problem-types.html#autopilot-data-sources-training-or-validation
    #   @return [String]
    #
    # @!attribute [rw] sample_weight_attribute_name
    #   If specified, this column name indicates which column of the dataset
    #   should be treated as sample weights for use by the objective metric
    #   during the training, evaluation, and the selection of the best
    #   model. This column is not considered as a predictive feature. For
    #   more information on Autopilot metrics, see [Metrics and
    #   validation][1].
    #
    #   Sample weights should be numeric, non-negative, with larger values
    #   indicating which rows are more important than others. Data points
    #   that have invalid or no weight value are excluded.
    #
    #   Support for sample weights is available in [Ensembling][2] mode
    #   only.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-metrics-validation.html
    #   [2]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLAlgorithmConfig.html
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/AutoMLChannel AWS API Documentation
    #
    class AutoMLChannel < Struct.new(
      :data_source,
      :compression_type,
      :target_attribute_name,
      :content_type,
      :channel_type,
      :sample_weight_attribute_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # <note markdown="1"> This data type is intended for use exclusively by
    # SageMaker Canvas and
    # cannot be used in other contexts at the moment.
    #
    #  </note>
    #
    #  Specifies the compute configuration for an AutoML job V2.
    #
    # @!attribute [rw] emr_serverless_compute_config
    #   The configuration for using [ EMR Serverless][1] to run the AutoML
    #   job V2.
    #
    #   To allow your AutoML job V2 to automatically initiate a remote job
    #   on EMR Serverless when additional compute resources are needed to
    #   process large datasets, you need to provide an
    #   `EmrServerlessComputeConfig` object, which includes an
    #   `ExecutionRoleARN` attribute, to the `AutoMLComputeConfig` of the
    #   AutoML job V2 input request.
    #
    #   By seamlessly transitioning to EMR Serverless when required, the
    #   AutoML job can handle datasets that would otherwise exceed the
    #   initially provisioned resources, without any manual intervention
    #   from you.
    #
    #   EMR Serverless is available for the tabular and time series problem
    #   types. We recommend setting up this option for tabular datasets
    #   larger than 5 GB and time series datasets larger than 30 GB.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/emr-serverless.html
    #   @return [Types::EmrServerlessComputeConfig]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/AutoMLComputeConfig AWS API Documentation
    #
    class AutoMLComputeConfig < Struct.new(
      :emr_serverless_compute_config)
      SENSITIVE = []
      include Aws::Structure
    end

    # A list of container definitions that describe the different containers
    # that make up an AutoML candidate. For more information, see [
    # ContainerDefinition][1].
    #
    #
    #
    # [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ContainerDefinition.html
    #
    # @!attribute [rw] image
    #   The Amazon Elastic Container Registry (Amazon ECR) path of the
    #   container. For more information, see [ ContainerDefinition][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ContainerDefinition.html
    #   @return [String]
    #
    # @!attribute [rw] model_data_url
    #   The location of the model artifacts. For more information, see [
    #   ContainerDefinition][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ContainerDefinition.html
    #   @return [String]
    #
    # @!attribute [rw] environment
    #   The environment variables to set in the container. For more
    #   information, see [ ContainerDefinition][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ContainerDefinition.html
    #   @return [Hash<String,String>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/AutoMLContainerDefinition AWS API Documentation
    #
    class AutoMLContainerDefinition < Struct.new(
      :image,
      :model_data_url,
      :environment)
      SENSITIVE = []
      include Aws::Structure
    end

    # The data source for the Autopilot job.
    #
    # @!attribute [rw] s3_data_source
    #   The Amazon S3 location of the input data.
    #   @return [Types::AutoMLS3DataSource]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/AutoMLDataSource AWS API Documentation
    #
    class AutoMLDataSource < Struct.new(
      :s3_data_source)
      SENSITIVE = []
      include Aws::Structure
    end

    # This structure specifies how to split the data into train and
    # validation datasets.
    #
    # The validation and training datasets must contain the same headers.
    # For jobs created by calling `CreateAutoMLJob`, the validation dataset
    # must be less than 2 GB in size.
    #
    # @!attribute [rw] validation_fraction
    #   The validation fraction (optional) is a float that specifies the
    #   portion of the training dataset to be used for validation. The
    #   default value is 0.2, and values must be greater than 0 and less
    #   than 1. We recommend setting this value to be less than 0.5.
    #   @return [Float]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/AutoMLDataSplitConfig AWS API Documentation
    #
    class AutoMLDataSplitConfig < Struct.new(
      :validation_fraction)
      SENSITIVE = []
      include Aws::Structure
    end

    # The artifacts that are generated during an AutoML job.
    #
    # @!attribute [rw] candidate_definition_notebook_location
    #   The URL of the notebook location.
    #   @return [String]
    #
    # @!attribute [rw] data_exploration_notebook_location
    #   The URL of the notebook location.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/AutoMLJobArtifacts AWS API Documentation
    #
    class AutoMLJobArtifacts < Struct.new(
      :candidate_definition_notebook_location,
      :data_exploration_notebook_location)
      SENSITIVE = []
      include Aws::Structure
    end

    # A channel is a named input source that training algorithms can
    # consume. This channel is used for AutoML jobs V2 (jobs created by
    # calling [CreateAutoMLJobV2][1]).
    #
    #
    #
    # [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html
    #
    # @!attribute [rw] channel_type
    #   The type of channel. Defines whether the data are used for training
    #   or validation. The default value is `training`. Channels for
    #   `training` and `validation` must share the same `ContentType`
    #
    #   <note markdown="1"> The type of channel defaults to `training` for the time-series
    #   forecasting problem type.
    #
    #    </note>
    #   @return [String]
    #
    # @!attribute [rw] content_type
    #   The content type of the data from the input source. The following
    #   are the allowed content types for different problems:
    #
    #   * For tabular problem types: `text/csv;header=present` or
    #     `x-application/vnd.amazon+parquet`. The default value is
    #     `text/csv;header=present`.
    #
    #   * For image classification: `image/png`, `image/jpeg`, or `image/*`.
    #     The default value is `image/*`.
    #
    #   * For text classification: `text/csv;header=present` or
    #     `x-application/vnd.amazon+parquet`. The default value is
    #     `text/csv;header=present`.
    #
    #   * For time-series forecasting: `text/csv;header=present` or
    #     `x-application/vnd.amazon+parquet`. The default value is
    #     `text/csv;header=present`.
    #
    #   * For text generation (LLMs fine-tuning): `text/csv;header=present`
    #     or `x-application/vnd.amazon+parquet`. The default value is
    #     `text/csv;header=present`.
    #   @return [String]
    #
    # @!attribute [rw] compression_type
    #   The allowed compression types depend on the input format and problem
    #   type. We allow the compression type `Gzip` for `S3Prefix` inputs on
    #   tabular data only. For all other inputs, the compression type should
    #   be `None`. If no compression type is provided, we default to `None`.
    #   @return [String]
    #
    # @!attribute [rw] data_source
    #   The data source for an AutoML channel (Required).
    #   @return [Types::AutoMLDataSource]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/AutoMLJobChannel AWS API Documentation
    #
    class AutoMLJobChannel < Struct.new(
      :channel_type,
      :content_type,
      :compression_type,
      :data_source)
      SENSITIVE = []
      include Aws::Structure
    end

    # How long a job is allowed to run, or how many candidates a job is
    # allowed to generate.
    #
    # @!attribute [rw] max_candidates
    #   The maximum number of times a training job is allowed to run.
    #
    #   For text and image classification, time-series forecasting, as well
    #   as text generation (LLMs fine-tuning) problem types, the supported
    #   value is 1. For tabular problem types, the maximum value is 750.
    #   @return [Integer]
    #
    # @!attribute [rw] max_runtime_per_training_job_in_seconds
    #   The maximum time, in seconds, that each training job executed inside
    #   hyperparameter tuning is allowed to run as part of a hyperparameter
    #   tuning job. For more information, see the [StoppingCondition][1]
    #   used by the [CreateHyperParameterTuningJob][2] action.
    #
    #   For job V2s (jobs created by calling `CreateAutoMLJobV2`), this
    #   field controls the runtime of the job candidate.
    #
    #   For [TextGenerationJobConfig][3] problem types, the maximum time
    #   defaults to 72 hours (259200 seconds).
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_StoppingCondition.html
    #   [2]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateHyperParameterTuningJob.html
    #   [3]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TextClassificationJobConfig.html
    #   @return [Integer]
    #
    # @!attribute [rw] max_auto_ml_job_runtime_in_seconds
    #   The maximum runtime, in seconds, an AutoML job has to complete.
    #
    #   If an AutoML job exceeds the maximum runtime, the job is stopped
    #   automatically and its processing is ended gracefully. The AutoML job
    #   identifies the best model whose training was completed and marks it
    #   as the best-performing model. Any unfinished steps of the job, such
    #   as automatic one-click Autopilot model deployment, are not
    #   completed.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/AutoMLJobCompletionCriteria AWS API Documentation
    #
    class AutoMLJobCompletionCriteria < Struct.new(
      :max_candidates,
      :max_runtime_per_training_job_in_seconds,
      :max_auto_ml_job_runtime_in_seconds)
      SENSITIVE = []
      include Aws::Structure
    end

    # A collection of settings used for an AutoML job.
    #
    # @!attribute [rw] completion_criteria
    #   How long an AutoML job is allowed to run, or how many candidates a
    #   job is allowed to generate.
    #   @return [Types::AutoMLJobCompletionCriteria]
    #
    # @!attribute [rw] security_config
    #   The security configuration for traffic encryption or Amazon VPC
    #   settings.
    #   @return [Types::AutoMLSecurityConfig]
    #
    # @!attribute [rw] candidate_generation_config
    #   The configuration for generating a candidate for an AutoML job
    #   (optional).
    #   @return [Types::AutoMLCandidateGenerationConfig]
    #
    # @!attribute [rw] data_split_config
    #   The configuration for splitting the input training dataset.
    #
    #   Type: AutoMLDataSplitConfig
    #   @return [Types::AutoMLDataSplitConfig]
    #
    # @!attribute [rw] mode
    #   The method that Autopilot uses to train the data. You can either
    #   specify the mode manually or let Autopilot choose for you based on
    #   the dataset size by selecting `AUTO`. In `AUTO` mode, Autopilot
    #   chooses `ENSEMBLING` for datasets smaller than 100 MB, and
    #   `HYPERPARAMETER_TUNING` for larger ones.
    #
    #   The `ENSEMBLING` mode uses a multi-stack ensemble model to predict
    #   classification and regression tasks directly from your dataset. This
    #   machine learning mode combines several base models to produce an
    #   optimal predictive model. It then uses a stacking ensemble method to
    #   combine predictions from contributing members. A multi-stack
    #   ensemble model can provide better performance over a single model by
    #   combining the predictive capabilities of multiple models. See
    #   [Autopilot algorithm support][1] for a list of algorithms supported
    #   by `ENSEMBLING` mode.
    #
    #   The `HYPERPARAMETER_TUNING` (HPO) mode uses the best hyperparameters
    #   to train the best version of a model. HPO automatically selects an
    #   algorithm for the type of problem you want to solve. Then HPO finds
    #   the best hyperparameters according to your objective metric. See
    #   [Autopilot algorithm support][1] for a list of algorithms supported
    #   by `HYPERPARAMETER_TUNING` mode.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-model-support-validation.html#autopilot-algorithm-support
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/AutoMLJobConfig AWS API Documentation
    #
    class AutoMLJobConfig < Struct.new(
      :completion_criteria,
      :security_config,
      :candidate_generation_config,
      :data_split_config,
      :mode)
      SENSITIVE = []
      include Aws::Structure
    end

    # Specifies a metric to minimize or maximize as the objective of an
    # AutoML job.
    #
    # @!attribute [rw] metric_name
    #   The name of the objective metric used to measure the predictive
    #   quality of a machine learning system. During training, the model's
    #   parameters are updated iteratively to optimize its performance based
    #   on the feedback provided by the objective metric when evaluating the
    #   model on the validation dataset.
    #
    #   The list of available metrics supported by Autopilot and the default
    #   metric applied when you do not specify a metric name explicitly
    #   depend on the problem type.
    #
    #   * For tabular problem types:
    #
    #     * List of available metrics:
    #
    #       * Regression: `MAE`, `MSE`, `R2`, `RMSE`
    #
    #       * Binary classification: `Accuracy`, `AUC`, `BalancedAccuracy`,
    #         `F1`, `Precision`, `Recall`
    #
    #       * Multiclass classification: `Accuracy`, `BalancedAccuracy`,
    #         `F1macro`, `PrecisionMacro`, `RecallMacro`
    #       For a description of each metric, see [Autopilot metrics for
    #       classification and regression][1].
    #
    #     * Default objective metrics:
    #
    #       * Regression: `MSE`.
    #
    #       * Binary classification: `F1`.
    #
    #       * Multiclass classification: `Accuracy`.
    #   * For image or text classification problem types:
    #
    #     * List of available metrics: `Accuracy`
    #
    #       For a description of each metric, see [Autopilot metrics for
    #       text and image classification][2].
    #
    #     * Default objective metrics: `Accuracy`
    #   * For time-series forecasting problem types:
    #
    #     * List of available metrics: `RMSE`, `wQL`, `Average wQL`, `MASE`,
    #       `MAPE`, `WAPE`
    #
    #       For a description of each metric, see [Autopilot metrics for
    #       time-series forecasting][3].
    #
    #     * Default objective metrics: `AverageWeightedQuantileLoss`
    #   * For text generation problem types (LLMs fine-tuning): Fine-tuning
    #     language models in Autopilot does not require setting the
    #     `AutoMLJobObjective` field. Autopilot fine-tunes LLMs without
    #     requiring multiple candidates to be trained and evaluated.
    #     Instead, using your dataset, Autopilot directly fine-tunes your
    #     target model to enhance a default objective metric, the
    #     cross-entropy loss. After fine-tuning a language model, you can
    #     evaluate the quality of its generated text using different
    #     metrics. For a list of the available metrics, see [Metrics for
    #     fine-tuning LLMs in Autopilot][4].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-metrics-validation.html#autopilot-metrics
    #   [2]: https://docs.aws.amazon.com/sagemaker/latest/dg/text-classification-data-format-and-metric.html
    #   [3]: https://docs.aws.amazon.com/sagemaker/latest/dg/timeseries-objective-metric.html
    #   [4]: https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-llms-finetuning-metrics.html
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/AutoMLJobObjective AWS API Documentation
    #
    class AutoMLJobObjective < Struct.new(
      :metric_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # Metadata for an AutoML job step.
    #
    # @!attribute [rw] arn
    #   The Amazon Resource Name (ARN) of the AutoML job.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/AutoMLJobStepMetadata AWS API Documentation
    #
    class AutoMLJobStepMetadata < Struct.new(
      :arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # Provides a summary about an AutoML job.
    #
    # @!attribute [rw] auto_ml_job_name
    #   The name of the AutoML job you are requesting.
    #   @return [String]
    #
    # @!attribute [rw] auto_ml_job_arn
    #   The ARN of the AutoML job.
    #   @return [String]
    #
    # @!attribute [rw] auto_ml_job_status
    #   The status of the AutoML job.
    #   @return [String]
    #
    # @!attribute [rw] auto_ml_job_secondary_status
    #   The secondary status of the AutoML job.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   When the AutoML job was created.
    #   @return [Time]
    #
    # @!attribute [rw] end_time
    #   The end time of an AutoML job.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time
    #   When the AutoML job was last modified.
    #   @return [Time]
    #
    # @!attribute [rw] failure_reason
    #   The failure reason of an AutoML job.
    #   @return [String]
    #
    # @!attribute [rw] partial_failure_reasons
    #   The list of reasons for partial failures within an AutoML job.
    #   @return [Array<Types::AutoMLPartialFailureReason>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/AutoMLJobSummary AWS API Documentation
    #
    class AutoMLJobSummary < Struct.new(
      :auto_ml_job_name,
      :auto_ml_job_arn,
      :auto_ml_job_status,
      :auto_ml_job_secondary_status,
      :creation_time,
      :end_time,
      :last_modified_time,
      :failure_reason,
      :partial_failure_reasons)
      SENSITIVE = []
      include Aws::Structure
    end

    # The output data configuration.
    #
    # @!attribute [rw] kms_key_id
    #   The Key Management Service encryption key ID.
    #   @return [String]
    #
    # @!attribute [rw] s3_output_path
    #   The Amazon S3 output path. Must be 512 characters or less.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/AutoMLOutputDataConfig AWS API Documentation
    #
    class AutoMLOutputDataConfig < Struct.new(
      :kms_key_id,
      :s3_output_path)
      SENSITIVE = []
      include Aws::Structure
    end

    # The reason for a partial failure of an AutoML job.
    #
    # @!attribute [rw] partial_failure_message
    #   The message containing the reason for a partial failure of an AutoML
    #   job.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/AutoMLPartialFailureReason AWS API Documentation
    #
    class AutoMLPartialFailureReason < Struct.new(
      :partial_failure_message)
      SENSITIVE = []
      include Aws::Structure
    end

    # A collection of settings specific to the problem type used to
    # configure an AutoML job V2. There must be one and only one config of
    # the following type.
    #
    # @note AutoMLProblemTypeConfig is a union - when making an API calls you must set exactly one of the members.
    #
    # @note AutoMLProblemTypeConfig is a union - when returned from an API call exactly one value will be set and the returned type will be a subclass of AutoMLProblemTypeConfig corresponding to the set member.
    #
    # @!attribute [rw] image_classification_job_config
    #   Settings used to configure an AutoML job V2 for the image
    #   classification problem type.
    #   @return [Types::ImageClassificationJobConfig]
    #
    # @!attribute [rw] text_classification_job_config
    #   Settings used to configure an AutoML job V2 for the text
    #   classification problem type.
    #   @return [Types::TextClassificationJobConfig]
    #
    # @!attribute [rw] time_series_forecasting_job_config
    #   Settings used to configure an AutoML job V2 for the time-series
    #   forecasting problem type.
    #   @return [Types::TimeSeriesForecastingJobConfig]
    #
    # @!attribute [rw] tabular_job_config
    #   Settings used to configure an AutoML job V2 for the tabular problem
    #   type (regression, classification).
    #   @return [Types::TabularJobConfig]
    #
    # @!attribute [rw] text_generation_job_config
    #   Settings used to configure an AutoML job V2 for the text generation
    #   (LLMs fine-tuning) problem type.
    #
    #   <note markdown="1"> The text generation models that support fine-tuning in Autopilot are
    #   currently accessible exclusively in regions supported by Canvas.
    #   Refer to the documentation of Canvas for the [full list of its
    #   supported Regions][1].
    #
    #    </note>
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/canvas.html
    #   @return [Types::TextGenerationJobConfig]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/AutoMLProblemTypeConfig AWS API Documentation
    #
    class AutoMLProblemTypeConfig < Struct.new(
      :image_classification_job_config,
      :text_classification_job_config,
      :time_series_forecasting_job_config,
      :tabular_job_config,
      :text_generation_job_config,
      :unknown)
      SENSITIVE = []
      include Aws::Structure
      include Aws::Structure::Union

      class ImageClassificationJobConfig < AutoMLProblemTypeConfig; end
      class TextClassificationJobConfig < AutoMLProblemTypeConfig; end
      class TimeSeriesForecastingJobConfig < AutoMLProblemTypeConfig; end
      class TabularJobConfig < AutoMLProblemTypeConfig; end
      class TextGenerationJobConfig < AutoMLProblemTypeConfig; end
      class Unknown < AutoMLProblemTypeConfig; end
    end

    # Stores resolved attributes specific to the problem type of an AutoML
    # job V2.
    #
    # @note AutoMLProblemTypeResolvedAttributes is a union - when returned from an API call exactly one value will be set and the returned type will be a subclass of AutoMLProblemTypeResolvedAttributes corresponding to the set member.
    #
    # @!attribute [rw] tabular_resolved_attributes
    #   The resolved attributes for the tabular problem type.
    #   @return [Types::TabularResolvedAttributes]
    #
    # @!attribute [rw] text_generation_resolved_attributes
    #   The resolved attributes for the text generation problem type.
    #   @return [Types::TextGenerationResolvedAttributes]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/AutoMLProblemTypeResolvedAttributes AWS API Documentation
    #
    class AutoMLProblemTypeResolvedAttributes < Struct.new(
      :tabular_resolved_attributes,
      :text_generation_resolved_attributes,
      :unknown)
      SENSITIVE = []
      include Aws::Structure
      include Aws::Structure::Union

      class TabularResolvedAttributes < AutoMLProblemTypeResolvedAttributes; end
      class TextGenerationResolvedAttributes < AutoMLProblemTypeResolvedAttributes; end
      class Unknown < AutoMLProblemTypeResolvedAttributes; end
    end

    # The resolved attributes used to configure an AutoML job V2.
    #
    # @!attribute [rw] auto_ml_job_objective
    #   Specifies a metric to minimize or maximize as the objective of an
    #   AutoML job.
    #   @return [Types::AutoMLJobObjective]
    #
    # @!attribute [rw] completion_criteria
    #   How long a job is allowed to run, or how many candidates a job is
    #   allowed to generate.
    #   @return [Types::AutoMLJobCompletionCriteria]
    #
    # @!attribute [rw] auto_ml_problem_type_resolved_attributes
    #   Defines the resolved attributes specific to a problem type.
    #   @return [Types::AutoMLProblemTypeResolvedAttributes]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/AutoMLResolvedAttributes AWS API Documentation
    #
    class AutoMLResolvedAttributes < Struct.new(
      :auto_ml_job_objective,
      :completion_criteria,
      :auto_ml_problem_type_resolved_attributes)
      SENSITIVE = []
      include Aws::Structure
    end

    # Describes the Amazon S3 data source.
    #
    # @!attribute [rw] s3_data_type
    #   The data type.
    #
    #   * If you choose `S3Prefix`, `S3Uri` identifies a key name prefix.
    #     SageMaker AI uses all objects that match the specified key name
    #     prefix for model training.
    #
    #     The `S3Prefix` should have the following format:
    #
    #     `s3://DOC-EXAMPLE-BUCKET/DOC-EXAMPLE-FOLDER-OR-FILE`
    #
    #   * If you choose `ManifestFile`, `S3Uri` identifies an object that is
    #     a manifest file containing a list of object keys that you want
    #     SageMaker AI to use for model training.
    #
    #     A `ManifestFile` should have the format shown below:
    #
    #     `[ {"prefix":
    #     "s3://DOC-EXAMPLE-BUCKET/DOC-EXAMPLE-FOLDER/DOC-EXAMPLE-PREFIX/"},
    #     `
    #
    #     `"DOC-EXAMPLE-RELATIVE-PATH/DOC-EXAMPLE-FOLDER/DATA-1",`
    #
    #     `"DOC-EXAMPLE-RELATIVE-PATH/DOC-EXAMPLE-FOLDER/DATA-2",`
    #
    #     `... "DOC-EXAMPLE-RELATIVE-PATH/DOC-EXAMPLE-FOLDER/DATA-N" ]`
    #
    #   * If you choose `AugmentedManifestFile`, `S3Uri` identifies an
    #     object that is an augmented manifest file in JSON lines format.
    #     This file contains the data you want to use for model training.
    #     `AugmentedManifestFile` is available for V2 API jobs only (for
    #     example, for jobs created by calling `CreateAutoMLJobV2`).
    #
    #     Here is a minimal, single-record example of an
    #     `AugmentedManifestFile`:
    #
    #     `{"source-ref":
    #     "s3://DOC-EXAMPLE-BUCKET/DOC-EXAMPLE-FOLDER/cats/cat.jpg",`
    #
    #     `"label-metadata": {"class-name": "cat"` }
    #
    #     For more information on `AugmentedManifestFile`, see [Provide
    #     Dataset Metadata to Training Jobs with an Augmented Manifest
    #     File][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/augmented-manifest.html
    #   @return [String]
    #
    # @!attribute [rw] s3_uri
    #   The URL to the Amazon S3 data source. The Uri refers to the Amazon
    #   S3 prefix or ManifestFile depending on the data type.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/AutoMLS3DataSource AWS API Documentation
    #
    class AutoMLS3DataSource < Struct.new(
      :s3_data_type,
      :s3_uri)
      SENSITIVE = []
      include Aws::Structure
    end

    # Security options.
    #
    # @!attribute [rw] volume_kms_key_id
    #   The key used to encrypt stored data.
    #   @return [String]
    #
    # @!attribute [rw] enable_inter_container_traffic_encryption
    #   Whether to use traffic encryption between the container layers.
    #   @return [Boolean]
    #
    # @!attribute [rw] vpc_config
    #   The VPC configuration.
    #   @return [Types::VpcConfig]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/AutoMLSecurityConfig AWS API Documentation
    #
    class AutoMLSecurityConfig < Struct.new(
      :volume_kms_key_id,
      :enable_inter_container_traffic_encryption,
      :vpc_config)
      SENSITIVE = []
      include Aws::Structure
    end

    # The name and an example value of the hyperparameter that you want to
    # use in Autotune. If Automatic model tuning (AMT) determines that your
    # hyperparameter is eligible for Autotune, an optimal hyperparameter
    # range is selected for you.
    #
    # @!attribute [rw] name
    #   The name of the hyperparameter to optimize using Autotune.
    #   @return [String]
    #
    # @!attribute [rw] value_hint
    #   An example value of the hyperparameter to optimize using Autotune.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/AutoParameter AWS API Documentation
    #
    class AutoParameter < Struct.new(
      :name,
      :value_hint)
      SENSITIVE = []
      include Aws::Structure
    end

    # Automatic rollback configuration for handling endpoint deployment
    # failures and recovery.
    #
    # @!attribute [rw] alarms
    #   List of CloudWatch alarms in your account that are configured to
    #   monitor metrics on an endpoint. If any alarms are tripped during a
    #   deployment, SageMaker rolls back the deployment.
    #   @return [Array<Types::Alarm>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/AutoRollbackConfig AWS API Documentation
    #
    class AutoRollbackConfig < Struct.new(
      :alarms)
      SENSITIVE = []
      include Aws::Structure
    end

    # A flag to indicate if you want to use Autotune to automatically find
    # optimal values for the following fields:
    #
    # * [ParameterRanges][1]: The names and ranges of parameters that a
    #   hyperparameter tuning job can optimize.
    #
    # * [ResourceLimits][2]: The maximum resources that can be used for a
    #   training job. These resources include the maximum number of training
    #   jobs, the maximum runtime of a tuning job, and the maximum number of
    #   training jobs to run at the same time.
    #
    # * [TrainingJobEarlyStoppingType][3]: A flag that specifies whether or
    #   not to use early stopping for training jobs launched by a
    #   hyperparameter tuning job.
    #
    # * [RetryStrategy][4]: The number of times to retry a training job.
    #
    # * [Strategy][5]: Specifies how hyperparameter tuning chooses the
    #   combinations of hyperparameter values to use for the training jobs
    #   that it launches.
    #
    # * [ConvergenceDetected][6]: A flag to indicate that Automatic model
    #   tuning (AMT) has detected model convergence.
    #
    #
    #
    # [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_HyperParameterTuningJobConfig.html#sagemaker-Type-HyperParameterTuningJobConfig-ParameterRanges
    # [2]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ResourceLimits.html
    # [3]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_HyperParameterTuningJobConfig.html#sagemaker-Type-HyperParameterTuningJobConfig-TrainingJobEarlyStoppingType
    # [4]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_HyperParameterTrainingJobDefinition.html#sagemaker-Type-HyperParameterTrainingJobDefinition-RetryStrategy
    # [5]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_HyperParameterTuningJobConfig.html
    # [6]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ConvergenceDetected.html
    #
    # @!attribute [rw] mode
    #   Set `Mode` to `Enabled` if you want to use Autotune.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/Autotune AWS API Documentation
    #
    class Autotune < Struct.new(
      :mode)
      SENSITIVE = []
      include Aws::Structure
    end

    # Information about an error that occurred during the node addition
    # operation.
    #
    # @!attribute [rw] instance_group_name
    #   The name of the instance group for which the error occurred.
    #   @return [String]
    #
    # @!attribute [rw] error_code
    #   The error code associated with the failure. Possible values include
    #   `InstanceGroupNotFound` and `InvalidInstanceGroupState`.
    #   @return [String]
    #
    # @!attribute [rw] failed_count
    #   The number of nodes that failed to be added to the specified
    #   instance group.
    #   @return [Integer]
    #
    # @!attribute [rw] message
    #   A descriptive message providing additional details about the error.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/BatchAddClusterNodesError AWS API Documentation
    #
    class BatchAddClusterNodesError < Struct.new(
      :instance_group_name,
      :error_code,
      :failed_count,
      :message)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] cluster_name
    #   The name of the HyperPod cluster to which you want to add nodes.
    #   @return [String]
    #
    # @!attribute [rw] client_token
    #   A unique, case-sensitive identifier that you provide to ensure the
    #   idempotency of the request. This token is valid for 8 hours. If you
    #   retry the request with the same client token within this timeframe
    #   and the same parameters, the API returns the same set of
    #   `NodeLogicalIds` with their latest status.
    #
    #   **A suitable default value is auto-generated.** You should normally
    #   not need to pass this option.
    #   @return [String]
    #
    # @!attribute [rw] nodes_to_add
    #   A list of instance groups and the number of nodes to add to each.
    #   You can specify up to 5 instance groups in a single request, with a
    #   maximum of 50 nodes total across all instance groups.
    #   @return [Array<Types::AddClusterNodeSpecification>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/BatchAddClusterNodesRequest AWS API Documentation
    #
    class BatchAddClusterNodesRequest < Struct.new(
      :cluster_name,
      :client_token,
      :nodes_to_add)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] successful
    #   A list of `NodeLogicalIDs` that were successfully added to the
    #   cluster. The `NodeLogicalID` is unique per cluster and does not
    #   change between instance replacements. Each entry includes a
    #   `NodeLogicalId` that can be used to track the node's provisioning
    #   status (with `DescribeClusterNode`), the instance group name, and
    #   the current status of the node.
    #   @return [Array<Types::NodeAdditionResult>]
    #
    # @!attribute [rw] failed
    #   A list of errors that occurred during the node addition operation.
    #   Each entry includes the instance group name, error code, number of
    #   failed additions, and an error message.
    #   @return [Array<Types::BatchAddClusterNodesError>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/BatchAddClusterNodesResponse AWS API Documentation
    #
    class BatchAddClusterNodesResponse < Struct.new(
      :successful,
      :failed)
      SENSITIVE = []
      include Aws::Structure
    end

    # Configuration to control how SageMaker captures inference data for
    # batch transform jobs.
    #
    # @!attribute [rw] destination_s3_uri
    #   The Amazon S3 location being used to capture the data.
    #   @return [String]
    #
    # @!attribute [rw] kms_key_id
    #   The Amazon Resource Name (ARN) of a Amazon Web Services Key
    #   Management Service key that SageMaker uses to encrypt data on the
    #   storage volume attached to the ML compute instance that hosts the
    #   batch transform job.
    #
    #   The KmsKeyId can be any of the following formats:
    #
    #   * Key ID: `1234abcd-12ab-34cd-56ef-1234567890ab`
    #
    #   * Key ARN:
    #     `arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab`
    #
    #   * Alias name: `alias/ExampleAlias`
    #
    #   * Alias name ARN:
    #     `arn:aws:kms:us-west-2:111122223333:alias/ExampleAlias`
    #   @return [String]
    #
    # @!attribute [rw] generate_inference_id
    #   Flag that indicates whether to append inference id to the output.
    #   @return [Boolean]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/BatchDataCaptureConfig AWS API Documentation
    #
    class BatchDataCaptureConfig < Struct.new(
      :destination_s3_uri,
      :kms_key_id,
      :generate_inference_id)
      SENSITIVE = []
      include Aws::Structure
    end

    # Information about an error that occurred when attempting to delete a
    # node identified by its `NodeLogicalId`.
    #
    # @!attribute [rw] code
    #   The error code associated with the failure. Possible values include
    #   `NodeLogicalIdNotFound`, `InvalidNodeStatus`, and `InternalError`.
    #   @return [String]
    #
    # @!attribute [rw] message
    #   A descriptive message providing additional details about the error.
    #   @return [String]
    #
    # @!attribute [rw] node_logical_id
    #   The `NodeLogicalId` of the node that could not be deleted.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/BatchDeleteClusterNodeLogicalIdsError AWS API Documentation
    #
    class BatchDeleteClusterNodeLogicalIdsError < Struct.new(
      :code,
      :message,
      :node_logical_id)
      SENSITIVE = []
      include Aws::Structure
    end

    # Represents an error encountered when deleting a node from a SageMaker
    # HyperPod cluster.
    #
    # @!attribute [rw] code
    #   The error code associated with the error encountered when deleting a
    #   node.
    #
    #   The code provides information about the specific issue encountered,
    #   such as the node not being found, the node's status being invalid
    #   for deletion, or the node ID being in use by another process.
    #   @return [String]
    #
    # @!attribute [rw] message
    #   A message describing the error encountered when deleting a node.
    #   @return [String]
    #
    # @!attribute [rw] node_id
    #   The ID of the node that encountered an error during the deletion
    #   process.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/BatchDeleteClusterNodesError AWS API Documentation
    #
    class BatchDeleteClusterNodesError < Struct.new(
      :code,
      :message,
      :node_id)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] cluster_name
    #   The name of the SageMaker HyperPod cluster from which to delete the
    #   specified nodes.
    #   @return [String]
    #
    # @!attribute [rw] node_ids
    #   A list of node IDs to be deleted from the specified cluster.
    #
    #   <note markdown="1"> * For SageMaker HyperPod clusters using the Slurm workload manager,
    #     you cannot remove instances that are configured as Slurm
    #     controller nodes.
    #
    #   * If you need to delete more than 99 instances, contact [Support][1]
    #     for assistance.
    #
    #    </note>
    #
    #
    #
    #   [1]: http://aws.amazon.com/contact-us/
    #   @return [Array<String>]
    #
    # @!attribute [rw] node_logical_ids
    #   A list of `NodeLogicalIds` identifying the nodes to be deleted. You
    #   can specify up to 50 `NodeLogicalIds`. You must specify either
    #   `NodeLogicalIds`, `InstanceIds`, or both, with a combined maximum of
    #   50 identifiers.
    #   @return [Array<String>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/BatchDeleteClusterNodesRequest AWS API Documentation
    #
    class BatchDeleteClusterNodesRequest < Struct.new(
      :cluster_name,
      :node_ids,
      :node_logical_ids)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] failed
    #   A list of errors encountered when deleting the specified nodes.
    #   @return [Array<Types::BatchDeleteClusterNodesError>]
    #
    # @!attribute [rw] successful
    #   A list of node IDs that were successfully deleted from the specified
    #   cluster.
    #   @return [Array<String>]
    #
    # @!attribute [rw] failed_node_logical_ids
    #   A list of `NodeLogicalIds` that could not be deleted, along with
    #   error information explaining why the deletion failed.
    #   @return [Array<Types::BatchDeleteClusterNodeLogicalIdsError>]
    #
    # @!attribute [rw] successful_node_logical_ids
    #   A list of `NodeLogicalIds` that were successfully deleted from the
    #   cluster.
    #   @return [Array<String>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/BatchDeleteClusterNodesResponse AWS API Documentation
    #
    class BatchDeleteClusterNodesResponse < Struct.new(
      :failed,
      :successful,
      :failed_node_logical_ids,
      :successful_node_logical_ids)
      SENSITIVE = []
      include Aws::Structure
    end

    # The error code and error description associated with the resource.
    #
    # @!attribute [rw] error_code
    #   @return [String]
    #
    # @!attribute [rw] error_response
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/BatchDescribeModelPackageError AWS API Documentation
    #
    class BatchDescribeModelPackageError < Struct.new(
      :error_code,
      :error_response)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] model_package_arn_list
    #   The list of Amazon Resource Name (ARN) of the model package groups.
    #   @return [Array<String>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/BatchDescribeModelPackageInput AWS API Documentation
    #
    class BatchDescribeModelPackageInput < Struct.new(
      :model_package_arn_list)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] model_package_summaries
    #   The summaries for the model package versions
    #   @return [Hash<String,Types::BatchDescribeModelPackageSummary>]
    #
    # @!attribute [rw] batch_describe_model_package_error_map
    #   A map of the resource and BatchDescribeModelPackageError objects
    #   reporting the error associated with describing the model package.
    #   @return [Hash<String,Types::BatchDescribeModelPackageError>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/BatchDescribeModelPackageOutput AWS API Documentation
    #
    class BatchDescribeModelPackageOutput < Struct.new(
      :model_package_summaries,
      :batch_describe_model_package_error_map)
      SENSITIVE = []
      include Aws::Structure
    end

    # Provides summary information about the model package.
    #
    # @!attribute [rw] model_package_group_name
    #   The group name for the model package
    #   @return [String]
    #
    # @!attribute [rw] model_package_version
    #   The version number of a versioned model.
    #   @return [Integer]
    #
    # @!attribute [rw] model_package_arn
    #   The Amazon Resource Name (ARN) of the model package.
    #   @return [String]
    #
    # @!attribute [rw] model_package_description
    #   The description of the model package.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   The creation time of the mortgage package summary.
    #   @return [Time]
    #
    # @!attribute [rw] inference_specification
    #   Defines how to perform inference generation after a training job is
    #   run.
    #   @return [Types::InferenceSpecification]
    #
    # @!attribute [rw] model_package_status
    #   The status of the mortgage package.
    #   @return [String]
    #
    # @!attribute [rw] model_approval_status
    #   The approval status of the model.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/BatchDescribeModelPackageSummary AWS API Documentation
    #
    class BatchDescribeModelPackageSummary < Struct.new(
      :model_package_group_name,
      :model_package_version,
      :model_package_arn,
      :model_package_description,
      :creation_time,
      :inference_specification,
      :model_package_status,
      :model_approval_status)
      SENSITIVE = []
      include Aws::Structure
    end

    # Input object for the batch transform job.
    #
    # @!attribute [rw] data_captured_destination_s3_uri
    #   The Amazon S3 location being used to capture the data.
    #   @return [String]
    #
    # @!attribute [rw] dataset_format
    #   The dataset format for your batch transform job.
    #   @return [Types::MonitoringDatasetFormat]
    #
    # @!attribute [rw] local_path
    #   Path to the filesystem where the batch transform data is available
    #   to the container.
    #   @return [String]
    #
    # @!attribute [rw] s3_input_mode
    #   Whether the `Pipe` or `File` is used as the input mode for
    #   transferring data for the monitoring job. `Pipe` mode is recommended
    #   for large datasets. `File` mode is useful for small files that fit
    #   in memory. Defaults to `File`.
    #   @return [String]
    #
    # @!attribute [rw] s3_data_distribution_type
    #   Whether input data distributed in Amazon S3 is fully replicated or
    #   sharded by an S3 key. Defaults to `FullyReplicated`
    #   @return [String]
    #
    # @!attribute [rw] features_attribute
    #   The attributes of the input data that are the input features.
    #   @return [String]
    #
    # @!attribute [rw] inference_attribute
    #   The attribute of the input data that represents the ground truth
    #   label.
    #   @return [String]
    #
    # @!attribute [rw] probability_attribute
    #   In a classification problem, the attribute that represents the class
    #   probability.
    #   @return [String]
    #
    # @!attribute [rw] probability_threshold_attribute
    #   The threshold for the class probability to be evaluated as a
    #   positive result.
    #   @return [Float]
    #
    # @!attribute [rw] start_time_offset
    #   If specified, monitoring jobs substract this time from the start
    #   time. For information about using offsets for scheduling monitoring
    #   jobs, see [Schedule Model Quality Monitoring Jobs][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/model-monitor-model-quality-schedule.html
    #   @return [String]
    #
    # @!attribute [rw] end_time_offset
    #   If specified, monitoring jobs subtract this time from the end time.
    #   For information about using offsets for scheduling monitoring jobs,
    #   see [Schedule Model Quality Monitoring Jobs][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/model-monitor-model-quality-schedule.html
    #   @return [String]
    #
    # @!attribute [rw] exclude_features_attribute
    #   The attributes of the input data to exclude from the analysis.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/BatchTransformInput AWS API Documentation
    #
    class BatchTransformInput < Struct.new(
      :data_captured_destination_s3_uri,
      :dataset_format,
      :local_path,
      :s3_input_mode,
      :s3_data_distribution_type,
      :features_attribute,
      :inference_attribute,
      :probability_attribute,
      :probability_threshold_attribute,
      :start_time_offset,
      :end_time_offset,
      :exclude_features_attribute)
      SENSITIVE = []
      include Aws::Structure
    end

    # A structure that keeps track of which training jobs launched by your
    # hyperparameter tuning job are not improving model performance as
    # evaluated against an objective function.
    #
    # @!attribute [rw] max_number_of_training_jobs_not_improving
    #   The number of training jobs that have failed to improve model
    #   performance by 1% or greater over prior training jobs as evaluated
    #   against an objective function.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/BestObjectiveNotImproving AWS API Documentation
    #
    class BestObjectiveNotImproving < Struct.new(
      :max_number_of_training_jobs_not_improving)
      SENSITIVE = []
      include Aws::Structure
    end

    # Contains bias metrics for a model.
    #
    # @!attribute [rw] report
    #   The bias report for a model
    #   @return [Types::MetricsSource]
    #
    # @!attribute [rw] pre_training_report
    #   The pre-training bias report for a model.
    #   @return [Types::MetricsSource]
    #
    # @!attribute [rw] post_training_report
    #   The post-training bias report for a model.
    #   @return [Types::MetricsSource]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/Bias AWS API Documentation
    #
    class Bias < Struct.new(
      :report,
      :pre_training_report,
      :post_training_report)
      SENSITIVE = []
      include Aws::Structure
    end

    # Update policy for a blue/green deployment. If this update policy is
    # specified, SageMaker creates a new fleet during the deployment while
    # maintaining the old fleet. SageMaker flips traffic to the new fleet
    # according to the specified traffic routing configuration. Only one
    # update policy should be used in the deployment configuration. If no
    # update policy is specified, SageMaker uses a blue/green deployment
    # strategy with all at once traffic shifting by default.
    #
    # @!attribute [rw] traffic_routing_configuration
    #   Defines the traffic routing strategy to shift traffic from the old
    #   fleet to the new fleet during an endpoint deployment.
    #   @return [Types::TrafficRoutingConfig]
    #
    # @!attribute [rw] termination_wait_in_seconds
    #   Additional waiting time in seconds after the completion of an
    #   endpoint deployment before terminating the old endpoint fleet.
    #   Default is 0.
    #   @return [Integer]
    #
    # @!attribute [rw] maximum_execution_timeout_in_seconds
    #   Maximum execution timeout for the deployment. Note that the timeout
    #   value should be larger than the total waiting time specified in
    #   `TerminationWaitInSeconds` and `WaitIntervalInSeconds`.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/BlueGreenUpdatePolicy AWS API Documentation
    #
    class BlueGreenUpdatePolicy < Struct.new(
      :traffic_routing_configuration,
      :termination_wait_in_seconds,
      :maximum_execution_timeout_in_seconds)
      SENSITIVE = []
      include Aws::Structure
    end

    # Details on the cache hit of a pipeline execution step.
    #
    # @!attribute [rw] source_pipeline_execution_arn
    #   The Amazon Resource Name (ARN) of the pipeline execution.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CacheHitResult AWS API Documentation
    #
    class CacheHitResult < Struct.new(
      :source_pipeline_execution_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # Metadata about a callback step.
    #
    # @!attribute [rw] callback_token
    #   The pipeline generated token from the Amazon SQS queue.
    #   @return [String]
    #
    # @!attribute [rw] sqs_queue_url
    #   The URL of the Amazon Simple Queue Service (Amazon SQS) queue used
    #   by the callback step.
    #   @return [String]
    #
    # @!attribute [rw] output_parameters
    #   A list of the output parameters of the callback step.
    #   @return [Array<Types::OutputParameter>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CallbackStepMetadata AWS API Documentation
    #
    class CallbackStepMetadata < Struct.new(
      :callback_token,
      :sqs_queue_url,
      :output_parameters)
      SENSITIVE = []
      include Aws::Structure
    end

    # The location of artifacts for an AutoML candidate job.
    #
    # @!attribute [rw] explainability
    #   The Amazon S3 prefix to the explainability artifacts generated for
    #   the AutoML candidate.
    #   @return [String]
    #
    # @!attribute [rw] model_insights
    #   The Amazon S3 prefix to the model insight artifacts generated for
    #   the AutoML candidate.
    #   @return [String]
    #
    # @!attribute [rw] backtest_results
    #   The Amazon S3 prefix to the accuracy metrics and the inference
    #   results observed over the testing window. Available only for the
    #   time-series forecasting problem type.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CandidateArtifactLocations AWS API Documentation
    #
    class CandidateArtifactLocations < Struct.new(
      :explainability,
      :model_insights,
      :backtest_results)
      SENSITIVE = []
      include Aws::Structure
    end

    # Stores the configuration information for how model candidates are
    # generated using an AutoML job V2.
    #
    # @!attribute [rw] algorithms_config
    #   Your Autopilot job trains a default set of algorithms on your
    #   dataset. For tabular and time-series data, you can customize the
    #   algorithm list by selecting a subset of algorithms for your problem
    #   type.
    #
    #   `AlgorithmsConfig` stores the customized selection of algorithms to
    #   train on your data.
    #
    #   * **For the tabular problem type `TabularJobConfig`,** the list of
    #     available algorithms to choose from depends on the training mode
    #     set in [ `AutoMLJobConfig.Mode` ][1].
    #
    #     * `AlgorithmsConfig` should not be set when the training mode
    #       `AutoMLJobConfig.Mode` is set to `AUTO`.
    #
    #     * When `AlgorithmsConfig` is provided, one `AutoMLAlgorithms`
    #       attribute must be set and one only.
    #
    #       If the list of algorithms provided as values for
    #       `AutoMLAlgorithms` is empty, `CandidateGenerationConfig` uses
    #       the full set of algorithms for the given training mode.
    #
    #     * When `AlgorithmsConfig` is not provided,
    #       `CandidateGenerationConfig` uses the full set of algorithms for
    #       the given training mode.
    #     For the list of all algorithms per training mode, see [
    #     AlgorithmConfig][2].
    #
    #     For more information on each algorithm, see the [Algorithm
    #     support][3] section in the Autopilot developer guide.
    #
    #   * **For the time-series forecasting problem type
    #     `TimeSeriesForecastingJobConfig`,** choose your algorithms from
    #     the list provided in [ AlgorithmConfig][2].
    #
    #     For more information on each algorithm, see the [Algorithms
    #     support for time-series forecasting][4] section in the Autopilot
    #     developer guide.
    #
    #     * When `AlgorithmsConfig` is provided, one `AutoMLAlgorithms`
    #       attribute must be set and one only.
    #
    #       If the list of algorithms provided as values for
    #       `AutoMLAlgorithms` is empty, `CandidateGenerationConfig` uses
    #       the full set of algorithms for time-series forecasting.
    #
    #     * When `AlgorithmsConfig` is not provided,
    #       `CandidateGenerationConfig` uses the full set of algorithms for
    #       time-series forecasting.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLJobConfig.html
    #   [2]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLAlgorithmConfig.html
    #   [3]: https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-model-support-validation.html#autopilot-algorithm-support
    #   [4]: https://docs.aws.amazon.com/sagemaker/latest/dg/timeseries-forecasting-algorithms.html
    #   @return [Array<Types::AutoMLAlgorithmConfig>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CandidateGenerationConfig AWS API Documentation
    #
    class CandidateGenerationConfig < Struct.new(
      :algorithms_config)
      SENSITIVE = []
      include Aws::Structure
    end

    # The properties of an AutoML candidate job.
    #
    # @!attribute [rw] candidate_artifact_locations
    #   The Amazon S3 prefix to the artifacts generated for an AutoML
    #   candidate.
    #   @return [Types::CandidateArtifactLocations]
    #
    # @!attribute [rw] candidate_metrics
    #   Information about the candidate metrics for an AutoML job.
    #   @return [Array<Types::MetricDatum>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CandidateProperties AWS API Documentation
    #
    class CandidateProperties < Struct.new(
      :candidate_artifact_locations,
      :candidate_metrics)
      SENSITIVE = []
      include Aws::Structure
    end

    # The SageMaker Canvas application settings.
    #
    # @!attribute [rw] time_series_forecasting_settings
    #   Time series forecast settings for the SageMaker Canvas application.
    #   @return [Types::TimeSeriesForecastingSettings]
    #
    # @!attribute [rw] model_register_settings
    #   The model registry settings for the SageMaker Canvas application.
    #   @return [Types::ModelRegisterSettings]
    #
    # @!attribute [rw] workspace_settings
    #   The workspace settings for the SageMaker Canvas application.
    #   @return [Types::WorkspaceSettings]
    #
    # @!attribute [rw] identity_provider_o_auth_settings
    #   The settings for connecting to an external data source with OAuth.
    #   @return [Array<Types::IdentityProviderOAuthSetting>]
    #
    # @!attribute [rw] direct_deploy_settings
    #   The model deployment settings for the SageMaker Canvas application.
    #   @return [Types::DirectDeploySettings]
    #
    # @!attribute [rw] kendra_settings
    #   The settings for document querying.
    #   @return [Types::KendraSettings]
    #
    # @!attribute [rw] generative_ai_settings
    #   The generative AI settings for the SageMaker Canvas application.
    #   @return [Types::GenerativeAiSettings]
    #
    # @!attribute [rw] emr_serverless_settings
    #   The settings for running Amazon EMR Serverless data processing jobs
    #   in SageMaker Canvas.
    #   @return [Types::EmrServerlessSettings]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CanvasAppSettings AWS API Documentation
    #
    class CanvasAppSettings < Struct.new(
      :time_series_forecasting_settings,
      :model_register_settings,
      :workspace_settings,
      :identity_provider_o_auth_settings,
      :direct_deploy_settings,
      :kendra_settings,
      :generative_ai_settings,
      :emr_serverless_settings)
      SENSITIVE = []
      include Aws::Structure
    end

    # Information about the Capacity Reservation used by an instance or
    # instance group.
    #
    # @!attribute [rw] arn
    #   The Amazon Resource Name (ARN) of the Capacity Reservation.
    #   @return [String]
    #
    # @!attribute [rw] type
    #   The type of Capacity Reservation. Valid values are `ODCR` (On-Demand
    #   Capacity Reservation) or `CRG` (Capacity Reservation Group).
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CapacityReservation AWS API Documentation
    #
    class CapacityReservation < Struct.new(
      :arn,
      :type)
      SENSITIVE = []
      include Aws::Structure
    end

    # Specifies the type and size of the endpoint capacity to activate for a
    # blue/green deployment, a rolling deployment, or a rollback strategy.
    # You can specify your batches as either instance count or the overall
    # percentage or your fleet.
    #
    # For a rollback strategy, if you don't specify the fields in this
    # object, or if you set the `Value` to 100%, then SageMaker uses a
    # blue/green rollback strategy and rolls all traffic back to the blue
    # fleet.
    #
    # @!attribute [rw] type
    #   Specifies the endpoint capacity type.
    #
    #   * `INSTANCE_COUNT`: The endpoint activates based on the number of
    #     instances.
    #
    #   * `CAPACITY_PERCENT`: The endpoint activates based on the specified
    #     percentage of capacity.
    #   @return [String]
    #
    # @!attribute [rw] value
    #   Defines the capacity size, either as a number of instances or a
    #   capacity percentage.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CapacitySize AWS API Documentation
    #
    class CapacitySize < Struct.new(
      :type,
      :value)
      SENSITIVE = []
      include Aws::Structure
    end

    # The configuration of the size measurements of the AMI update. Using
    # this configuration, you can specify whether SageMaker should update
    # your instance group by an amount or percentage of instances.
    #
    # @!attribute [rw] type
    #   Specifies whether SageMaker should process the update by amount or
    #   percentage of instances.
    #   @return [String]
    #
    # @!attribute [rw] value
    #   Specifies the amount or percentage of instances SageMaker updates at
    #   a time.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CapacitySizeConfig AWS API Documentation
    #
    class CapacitySizeConfig < Struct.new(
      :type,
      :value)
      SENSITIVE = []
      include Aws::Structure
    end

    # Configuration specifying how to treat different headers. If no headers
    # are specified Amazon SageMaker AI will by default base64 encode when
    # capturing the data.
    #
    # @!attribute [rw] csv_content_types
    #   The list of all content type headers that Amazon SageMaker AI will
    #   treat as CSV and capture accordingly.
    #   @return [Array<String>]
    #
    # @!attribute [rw] json_content_types
    #   The list of all content type headers that SageMaker AI will treat as
    #   JSON and capture accordingly.
    #   @return [Array<String>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CaptureContentTypeHeader AWS API Documentation
    #
    class CaptureContentTypeHeader < Struct.new(
      :csv_content_types,
      :json_content_types)
      SENSITIVE = []
      include Aws::Structure
    end

    # Specifies data Model Monitor will capture.
    #
    # @!attribute [rw] capture_mode
    #   Specify the boundary of data to capture.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CaptureOption AWS API Documentation
    #
    class CaptureOption < Struct.new(
      :capture_mode)
      SENSITIVE = []
      include Aws::Structure
    end

    # Environment parameters you want to benchmark your load test against.
    #
    # @!attribute [rw] name
    #   The Name of the environment variable.
    #   @return [String]
    #
    # @!attribute [rw] value
    #   The list of values you can pass.
    #   @return [Array<String>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CategoricalParameter AWS API Documentation
    #
    class CategoricalParameter < Struct.new(
      :name,
      :value)
      SENSITIVE = []
      include Aws::Structure
    end

    # A list of categorical hyperparameters to tune.
    #
    # @!attribute [rw] name
    #   The name of the categorical hyperparameter to tune.
    #   @return [String]
    #
    # @!attribute [rw] values
    #   A list of the categories for the hyperparameter.
    #   @return [Array<String>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CategoricalParameterRange AWS API Documentation
    #
    class CategoricalParameterRange < Struct.new(
      :name,
      :values)
      SENSITIVE = []
      include Aws::Structure
    end

    # Defines the possible values for a categorical hyperparameter.
    #
    # @!attribute [rw] values
    #   The allowed categories for the hyperparameter.
    #   @return [Array<String>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CategoricalParameterRangeSpecification AWS API Documentation
    #
    class CategoricalParameterRangeSpecification < Struct.new(
      :values)
      SENSITIVE = []
      include Aws::Structure
    end

    # The CloudFormation template provider configuration for creating
    # infrastructure resources.
    #
    # @!attribute [rw] template_name
    #   A unique identifier for the template within the project.
    #   @return [String]
    #
    # @!attribute [rw] template_url
    #   The Amazon S3 URL of the CloudFormation template.
    #   @return [String]
    #
    # @!attribute [rw] role_arn
    #   The IAM role that CloudFormation assumes when creating the stack.
    #   @return [String]
    #
    # @!attribute [rw] parameters
    #   An array of CloudFormation stack parameters.
    #   @return [Array<Types::CfnStackCreateParameter>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CfnCreateTemplateProvider AWS API Documentation
    #
    class CfnCreateTemplateProvider < Struct.new(
      :template_name,
      :template_url,
      :role_arn,
      :parameters)
      SENSITIVE = []
      include Aws::Structure
    end

    # A key-value pair that represents a parameter for the CloudFormation
    # stack.
    #
    # @!attribute [rw] key
    #   The name of the CloudFormation parameter.
    #   @return [String]
    #
    # @!attribute [rw] value
    #   The value of the CloudFormation parameter.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CfnStackCreateParameter AWS API Documentation
    #
    class CfnStackCreateParameter < Struct.new(
      :key,
      :value)
      SENSITIVE = []
      include Aws::Structure
    end

    # Details about the CloudFormation stack.
    #
    # @!attribute [rw] name
    #   The name of the CloudFormation stack.
    #   @return [String]
    #
    # @!attribute [rw] id
    #   The unique identifier of the CloudFormation stack.
    #   @return [String]
    #
    # @!attribute [rw] status_message
    #   A human-readable message about the stack's current status.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CfnStackDetail AWS API Documentation
    #
    class CfnStackDetail < Struct.new(
      :name,
      :id,
      :status_message)
      SENSITIVE = []
      include Aws::Structure
    end

    # A key-value pair representing a parameter used in the CloudFormation
    # stack.
    #
    # @!attribute [rw] key
    #   The name of the CloudFormation parameter.
    #   @return [String]
    #
    # @!attribute [rw] value
    #   The value of the CloudFormation parameter.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CfnStackParameter AWS API Documentation
    #
    class CfnStackParameter < Struct.new(
      :key,
      :value)
      SENSITIVE = []
      include Aws::Structure
    end

    # A key-value pair representing a parameter used in the CloudFormation
    # stack.
    #
    # @!attribute [rw] key
    #   The name of the CloudFormation parameter.
    #   @return [String]
    #
    # @!attribute [rw] value
    #   The value of the CloudFormation parameter.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CfnStackUpdateParameter AWS API Documentation
    #
    class CfnStackUpdateParameter < Struct.new(
      :key,
      :value)
      SENSITIVE = []
      include Aws::Structure
    end

    # Details about a CloudFormation template provider configuration and
    # associated provisioning information.
    #
    # @!attribute [rw] template_name
    #   The unique identifier of the template within the project.
    #   @return [String]
    #
    # @!attribute [rw] template_url
    #   The Amazon S3 URL of the CloudFormation template.
    #   @return [String]
    #
    # @!attribute [rw] role_arn
    #   The IAM role used by CloudFormation to create the stack.
    #   @return [String]
    #
    # @!attribute [rw] parameters
    #   An array of CloudFormation stack parameters.
    #   @return [Array<Types::CfnStackParameter>]
    #
    # @!attribute [rw] stack_detail
    #   Information about the CloudFormation stack created by the template
    #   provider.
    #   @return [Types::CfnStackDetail]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CfnTemplateProviderDetail AWS API Documentation
    #
    class CfnTemplateProviderDetail < Struct.new(
      :template_name,
      :template_url,
      :role_arn,
      :parameters,
      :stack_detail)
      SENSITIVE = []
      include Aws::Structure
    end

    # Contains configuration details for updating an existing CloudFormation
    # template provider in the project.
    #
    # @!attribute [rw] template_name
    #   The unique identifier of the template to update within the project.
    #   @return [String]
    #
    # @!attribute [rw] template_url
    #   The Amazon S3 URL of the CloudFormation template.
    #   @return [String]
    #
    # @!attribute [rw] parameters
    #   An array of CloudFormation stack parameters.
    #   @return [Array<Types::CfnStackUpdateParameter>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CfnUpdateTemplateProvider AWS API Documentation
    #
    class CfnUpdateTemplateProvider < Struct.new(
      :template_name,
      :template_url,
      :parameters)
      SENSITIVE = []
      include Aws::Structure
    end

    # A channel is a named input source that training algorithms can
    # consume.
    #
    # @!attribute [rw] channel_name
    #   The name of the channel.
    #   @return [String]
    #
    # @!attribute [rw] data_source
    #   The location of the channel data.
    #   @return [Types::DataSource]
    #
    # @!attribute [rw] content_type
    #   The MIME type of the data.
    #   @return [String]
    #
    # @!attribute [rw] compression_type
    #   If training data is compressed, the compression type. The default
    #   value is `None`. `CompressionType` is used only in Pipe input mode.
    #   In File mode, leave this field unset or set it to None.
    #   @return [String]
    #
    # @!attribute [rw] record_wrapper_type
    #   Specify RecordIO as the value when input data is in raw format but
    #   the training algorithm requires the RecordIO format. In this case,
    #   SageMaker wraps each individual S3 object in a RecordIO record. If
    #   the input data is already in RecordIO format, you don't need to set
    #   this attribute. For more information, see [Create a Dataset Using
    #   RecordIO][1].
    #
    #   In File mode, leave this field unset or set it to None.
    #
    #
    #
    #   [1]: https://mxnet.apache.org/api/architecture/note_data_loading#data-format
    #   @return [String]
    #
    # @!attribute [rw] input_mode
    #   (Optional) The input mode to use for the data channel in a training
    #   job. If you don't set a value for `InputMode`, SageMaker uses the
    #   value set for `TrainingInputMode`. Use this parameter to override
    #   the `TrainingInputMode` setting in a [AlgorithmSpecification][1]
    #   request when you have a channel that needs a different input mode
    #   from the training job's general setting. To download the data from
    #   Amazon Simple Storage Service (Amazon S3) to the provisioned ML
    #   storage volume, and mount the directory to a Docker volume, use
    #   `File` input mode. To stream data directly from Amazon S3 to the
    #   container, choose `Pipe` input mode.
    #
    #   To use a model for incremental training, choose `File` input model.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AlgorithmSpecification.html
    #   @return [String]
    #
    # @!attribute [rw] shuffle_config
    #   A configuration for a shuffle option for input data in a channel. If
    #   you use `S3Prefix` for `S3DataType`, this shuffles the results of
    #   the S3 key prefix matches. If you use `ManifestFile`, the order of
    #   the S3 object references in the `ManifestFile` is shuffled. If you
    #   use `AugmentedManifestFile`, the order of the JSON lines in the
    #   `AugmentedManifestFile` is shuffled. The shuffling order is
    #   determined using the `Seed` value.
    #
    #   For Pipe input mode, shuffling is done at the start of every epoch.
    #   With large datasets this ensures that the order of the training data
    #   is different for each epoch, it helps reduce bias and possible
    #   overfitting. In a multi-node training job when ShuffleConfig is
    #   combined with `S3DataDistributionType` of `ShardedByS3Key`, the data
    #   is shuffled across nodes so that the content sent to a particular
    #   node on the first epoch might be sent to a different node on the
    #   second epoch.
    #   @return [Types::ShuffleConfig]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/Channel AWS API Documentation
    #
    class Channel < Struct.new(
      :channel_name,
      :data_source,
      :content_type,
      :compression_type,
      :record_wrapper_type,
      :input_mode,
      :shuffle_config)
      SENSITIVE = []
      include Aws::Structure
    end

    # Defines a named input source, called a channel, to be used by an
    # algorithm.
    #
    # @!attribute [rw] name
    #   The name of the channel.
    #   @return [String]
    #
    # @!attribute [rw] description
    #   A brief description of the channel.
    #   @return [String]
    #
    # @!attribute [rw] is_required
    #   Indicates whether the channel is required by the algorithm.
    #   @return [Boolean]
    #
    # @!attribute [rw] supported_content_types
    #   The supported MIME types for the data.
    #   @return [Array<String>]
    #
    # @!attribute [rw] supported_compression_types
    #   The allowed compression types, if data compression is used.
    #   @return [Array<String>]
    #
    # @!attribute [rw] supported_input_modes
    #   The allowed input mode, either FILE or PIPE.
    #
    #   In FILE mode, Amazon SageMaker copies the data from the input source
    #   onto the local Amazon Elastic Block Store (Amazon EBS) volumes
    #   before starting your training algorithm. This is the most commonly
    #   used input mode.
    #
    #   In PIPE mode, Amazon SageMaker streams input data from the source
    #   directly to your algorithm without using the EBS volume.
    #   @return [Array<String>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ChannelSpecification AWS API Documentation
    #
    class ChannelSpecification < Struct.new(
      :name,
      :description,
      :is_required,
      :supported_content_types,
      :supported_compression_types,
      :supported_input_modes)
      SENSITIVE = []
      include Aws::Structure
    end

    # Contains information about the output location for managed spot
    # training checkpoint data.
    #
    # @!attribute [rw] s3_uri
    #   Identifies the S3 path where you want SageMaker to store
    #   checkpoints. For example, `s3://bucket-name/key-name-prefix`.
    #   @return [String]
    #
    # @!attribute [rw] local_path
    #   (Optional) The local directory where checkpoints are written. The
    #   default directory is `/opt/ml/checkpoints/`.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CheckpointConfig AWS API Documentation
    #
    class CheckpointConfig < Struct.new(
      :s3_uri,
      :local_path)
      SENSITIVE = []
      include Aws::Structure
    end

    # The container for the metadata for the ClarifyCheck step. For more
    # information, see the topic on [ClarifyCheck step][1] in the *Amazon
    # SageMaker Developer Guide*.
    #
    #
    #
    # [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/build-and-manage-steps.html#step-type-clarify-check
    #
    # @!attribute [rw] check_type
    #   The type of the Clarify Check step
    #   @return [String]
    #
    # @!attribute [rw] baseline_used_for_drift_check_constraints
    #   The Amazon S3 URI of baseline constraints file to be used for the
    #   drift check.
    #   @return [String]
    #
    # @!attribute [rw] calculated_baseline_constraints
    #   The Amazon S3 URI of the newly calculated baseline constraints file.
    #   @return [String]
    #
    # @!attribute [rw] model_package_group_name
    #   The model package group name.
    #   @return [String]
    #
    # @!attribute [rw] violation_report
    #   The Amazon S3 URI of the violation report if violations are
    #   detected.
    #   @return [String]
    #
    # @!attribute [rw] check_job_arn
    #   The Amazon Resource Name (ARN) of the check processing job that was
    #   run by this step's execution.
    #   @return [String]
    #
    # @!attribute [rw] skip_check
    #   This flag indicates if the drift check against the previous baseline
    #   will be skipped or not. If it is set to `False`, the previous
    #   baseline of the configured check type must be available.
    #   @return [Boolean]
    #
    # @!attribute [rw] register_new_baseline
    #   This flag indicates if a newly calculated baseline can be accessed
    #   through step properties `BaselineUsedForDriftCheckConstraints` and
    #   `BaselineUsedForDriftCheckStatistics`. If it is set to `False`, the
    #   previous baseline of the configured check type must also be
    #   available. These can be accessed through the
    #   `BaselineUsedForDriftCheckConstraints` property.
    #   @return [Boolean]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ClarifyCheckStepMetadata AWS API Documentation
    #
    class ClarifyCheckStepMetadata < Struct.new(
      :check_type,
      :baseline_used_for_drift_check_constraints,
      :calculated_baseline_constraints,
      :model_package_group_name,
      :violation_report,
      :check_job_arn,
      :skip_check,
      :register_new_baseline)
      SENSITIVE = []
      include Aws::Structure
    end

    # The configuration parameters for the SageMaker Clarify explainer.
    #
    # @!attribute [rw] enable_explanations
    #   A JMESPath boolean expression used to filter which records to
    #   explain. Explanations are activated by default. See [
    #   `EnableExplanations` ][1]for additional information.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/clarify-online-explainability-create-endpoint.html#clarify-online-explainability-create-endpoint-enable
    #   @return [String]
    #
    # @!attribute [rw] inference_config
    #   The inference configuration parameter for the model container.
    #   @return [Types::ClarifyInferenceConfig]
    #
    # @!attribute [rw] shap_config
    #   The configuration for SHAP analysis.
    #   @return [Types::ClarifyShapConfig]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ClarifyExplainerConfig AWS API Documentation
    #
    class ClarifyExplainerConfig < Struct.new(
      :enable_explanations,
      :inference_config,
      :shap_config)
      SENSITIVE = []
      include Aws::Structure
    end

    # The inference configuration parameter for the model container.
    #
    # @!attribute [rw] features_attribute
    #   Provides the JMESPath expression to extract the features from a
    #   model container input in JSON Lines format. For example, if
    #   `FeaturesAttribute` is the JMESPath expression `'myfeatures'`, it
    #   extracts a list of features `[1,2,3]` from request data
    #   `'{"myfeatures":[1,2,3]}'`.
    #   @return [String]
    #
    # @!attribute [rw] content_template
    #   A template string used to format a JSON record into an acceptable
    #   model container input. For example, a `ContentTemplate` string
    #   `'{"myfeatures":$features}'` will format a list of features
    #   `[1,2,3]` into the record string `'{"myfeatures":[1,2,3]}'`.
    #   Required only when the model container input is in JSON Lines
    #   format.
    #   @return [String]
    #
    # @!attribute [rw] max_record_count
    #   The maximum number of records in a request that the model container
    #   can process when querying the model container for the predictions of
    #   a [synthetic dataset][1]. A record is a unit of input data that
    #   inference can be made on, for example, a single line in CSV data. If
    #   `MaxRecordCount` is `1`, the model container expects one record per
    #   request. A value of 2 or greater means that the model expects batch
    #   requests, which can reduce overhead and speed up the inferencing
    #   process. If this parameter is not provided, the explainer will tune
    #   the record count per request according to the model container's
    #   capacity at runtime.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/clarify-online-explainability-create-endpoint.html#clarify-online-explainability-create-endpoint-synthetic
    #   @return [Integer]
    #
    # @!attribute [rw] max_payload_in_mb
    #   The maximum payload size (MB) allowed of a request from the
    #   explainer to the model container. Defaults to `6` MB.
    #   @return [Integer]
    #
    # @!attribute [rw] probability_index
    #   A zero-based index used to extract a probability value (score) or
    #   list from model container output in CSV format. If this value is not
    #   provided, the entire model container output will be treated as a
    #   probability value (score) or list.
    #
    #   **Example for a single class model:** If the model container output
    #   consists of a string-formatted prediction label followed by its
    #   probability: `'1,0.6'`, set `ProbabilityIndex` to `1` to select the
    #   probability value `0.6`.
    #
    #   **Example for a multiclass model:** If the model container output
    #   consists of a string-formatted prediction label followed by its
    #   probability: `'"['cat','dog','fish']","[0.1,0.6,0.3]"'`, set
    #   `ProbabilityIndex` to `1` to select the probability values
    #   `[0.1,0.6,0.3]`.
    #   @return [Integer]
    #
    # @!attribute [rw] label_index
    #   A zero-based index used to extract a label header or list of label
    #   headers from model container output in CSV format.
    #
    #   **Example for a multiclass model:** If the model container output
    #   consists of label headers followed by probabilities:
    #   `'"['cat','dog','fish']","[0.1,0.6,0.3]"'`, set `LabelIndex`
    #   to `0` to select the label headers `['cat','dog','fish']`.
    #   @return [Integer]
    #
    # @!attribute [rw] probability_attribute
    #   A JMESPath expression used to extract the probability (or score)
    #   from the model container output if the model container is in JSON
    #   Lines format.
    #
    #   **Example**: If the model container output of a single request is
    #   `'{"predicted_label":1,"probability":0.6}'`, then set
    #   `ProbabilityAttribute` to `'probability'`.
    #   @return [String]
    #
    # @!attribute [rw] label_attribute
    #   A JMESPath expression used to locate the list of label headers in
    #   the model container output.
    #
    #   **Example**: If the model container output of a batch request is
    #   `'{"labels":["cat","dog","fish"],"probability":[0.6,0.3,0.1]}'`,
    #   then set `LabelAttribute` to `'labels'` to extract the list of label
    #   headers `["cat","dog","fish"]`
    #   @return [String]
    #
    # @!attribute [rw] label_headers
    #   For multiclass classification problems, the label headers are the
    #   names of the classes. Otherwise, the label header is the name of the
    #   predicted label. These are used to help readability for the output
    #   of the `InvokeEndpoint` API. See the [response][1] section under
    #   **Invoke the endpoint** in the Developer Guide for more information.
    #   If there are no label headers in the model container output, provide
    #   them manually using this parameter.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/clarify-online-explainability-invoke-endpoint.html#clarify-online-explainability-response
    #   @return [Array<String>]
    #
    # @!attribute [rw] feature_headers
    #   The names of the features. If provided, these are included in the
    #   endpoint response payload to help readability of the
    #   `InvokeEndpoint` output. See the [Response][1] section under
    #   **Invoke the endpoint** in the Developer Guide for more information.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/clarify-online-explainability-invoke-endpoint.html#clarify-online-explainability-response
    #   @return [Array<String>]
    #
    # @!attribute [rw] feature_types
    #   A list of data types of the features (optional). Applicable only to
    #   NLP explainability. If provided, `FeatureTypes` must have at least
    #   one `'text'` string (for example, `['text']`). If `FeatureTypes` is
    #   not provided, the explainer infers the feature types based on the
    #   baseline data. The feature types are included in the endpoint
    #   response payload. For additional information see the [response][1]
    #   section under **Invoke the endpoint** in the Developer Guide for
    #   more information.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/clarify-online-explainability-invoke-endpoint.html#clarify-online-explainability-response
    #   @return [Array<String>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ClarifyInferenceConfig AWS API Documentation
    #
    class ClarifyInferenceConfig < Struct.new(
      :features_attribute,
      :content_template,
      :max_record_count,
      :max_payload_in_mb,
      :probability_index,
      :label_index,
      :probability_attribute,
      :label_attribute,
      :label_headers,
      :feature_headers,
      :feature_types)
      SENSITIVE = []
      include Aws::Structure
    end

    # The configuration for the [SHAP baseline][1] (also called the
    # background or reference dataset) of the Kernal SHAP algorithm.
    #
    # <note markdown="1"> * The number of records in the baseline data determines the size of
    #   the synthetic dataset, which has an impact on latency of
    #   explainability requests. For more information, see the **Synthetic
    #   data** of [Configure and create an endpoint][2].
    #
    # * `ShapBaseline` and `ShapBaselineUri` are mutually exclusive
    #   parameters. One or the either is required to configure a SHAP
    #   baseline.
    #
    #  </note>
    #
    #
    #
    # [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/clarify-feature-attribute-shap-baselines.html
    # [2]: https://docs.aws.amazon.com/sagemaker/latest/dg/clarify-online-explainability-create-endpoint.html
    #
    # @!attribute [rw] mime_type
    #   The MIME type of the baseline data. Choose from `'text/csv'` or
    #   `'application/jsonlines'`. Defaults to `'text/csv'`.
    #   @return [String]
    #
    # @!attribute [rw] shap_baseline
    #   The inline SHAP baseline data in string format. `ShapBaseline` can
    #   have one or multiple records to be used as the baseline dataset. The
    #   format of the SHAP baseline file should be the same format as the
    #   training dataset. For example, if the training dataset is in CSV
    #   format and each record contains four features, and all features are
    #   numerical, then the format of the baseline data should also share
    #   these characteristics. For natural language processing (NLP) of text
    #   columns, the baseline value should be the value used to replace the
    #   unit of text specified by the `Granularity` of the `TextConfig`
    #   parameter. The size limit for `ShapBasline` is 4 KB. Use the
    #   `ShapBaselineUri` parameter if you want to provide more than 4 KB of
    #   baseline data.
    #   @return [String]
    #
    # @!attribute [rw] shap_baseline_uri
    #   The uniform resource identifier (URI) of the S3 bucket where the
    #   SHAP baseline file is stored. The format of the SHAP baseline file
    #   should be the same format as the format of the training dataset. For
    #   example, if the training dataset is in CSV format, and each record
    #   in the training dataset has four features, and all features are
    #   numerical, then the baseline file should also have this same format.
    #   Each record should contain only the features. If you are using a
    #   virtual private cloud (VPC), the `ShapBaselineUri` should be
    #   accessible to the VPC. For more information about setting up
    #   endpoints with Amazon Virtual Private Cloud, see [Give SageMaker
    #   access to Resources in your Amazon Virtual Private Cloud][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/infrastructure-give-access.html
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ClarifyShapBaselineConfig AWS API Documentation
    #
    class ClarifyShapBaselineConfig < Struct.new(
      :mime_type,
      :shap_baseline,
      :shap_baseline_uri)
      SENSITIVE = []
      include Aws::Structure
    end

    # The configuration for SHAP analysis using SageMaker Clarify Explainer.
    #
    # @!attribute [rw] shap_baseline_config
    #   The configuration for the SHAP baseline of the Kernal SHAP
    #   algorithm.
    #   @return [Types::ClarifyShapBaselineConfig]
    #
    # @!attribute [rw] number_of_samples
    #   The number of samples to be used for analysis by the Kernal SHAP
    #   algorithm.
    #
    #   <note markdown="1"> The number of samples determines the size of the synthetic dataset,
    #   which has an impact on latency of explainability requests. For more
    #   information, see the **Synthetic data** of [Configure and create an
    #   endpoint][1].
    #
    #    </note>
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/clarify-online-explainability-create-endpoint.html
    #   @return [Integer]
    #
    # @!attribute [rw] use_logit
    #   A Boolean toggle to indicate if you want to use the logit function
    #   (true) or log-odds units (false) for model predictions. Defaults to
    #   false.
    #   @return [Boolean]
    #
    # @!attribute [rw] seed
    #   The starting value used to initialize the random number generator in
    #   the explainer. Provide a value for this parameter to obtain a
    #   deterministic SHAP result.
    #   @return [Integer]
    #
    # @!attribute [rw] text_config
    #   A parameter that indicates if text features are treated as text and
    #   explanations are provided for individual units of text. Required for
    #   natural language processing (NLP) explainability only.
    #   @return [Types::ClarifyTextConfig]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ClarifyShapConfig AWS API Documentation
    #
    class ClarifyShapConfig < Struct.new(
      :shap_baseline_config,
      :number_of_samples,
      :use_logit,
      :seed,
      :text_config)
      SENSITIVE = []
      include Aws::Structure
    end

    # A parameter used to configure the SageMaker Clarify explainer to treat
    # text features as text so that explanations are provided for individual
    # units of text. Required only for natural language processing (NLP)
    # explainability.
    #
    # @!attribute [rw] language
    #   Specifies the language of the text features in [ISO 639-1](
    #   https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) or [ISO
    #   639-3][1] code of a supported language.
    #
    #   <note markdown="1"> For a mix of multiple languages, use code `'xx'`.
    #
    #    </note>
    #
    #
    #
    #   [1]: https://en.wikipedia.org/wiki/ISO_639-3
    #   @return [String]
    #
    # @!attribute [rw] granularity
    #   The unit of granularity for the analysis of text features. For
    #   example, if the unit is `'token'`, then each token (like a word in
    #   English) of the text is treated as a feature. SHAP values are
    #   computed for each unit/feature.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ClarifyTextConfig AWS API Documentation
    #
    class ClarifyTextConfig < Struct.new(
      :language,
      :granularity)
      SENSITIVE = []
      include Aws::Structure
    end

    # Specifies the autoscaling configuration for a HyperPod cluster.
    #
    # @!attribute [rw] mode
    #   Describes whether autoscaling is enabled or disabled for the
    #   cluster. Valid values are `Enable` and `Disable`.
    #   @return [String]
    #
    # @!attribute [rw] auto_scaler_type
    #   The type of autoscaler to use. Currently supported value is
    #   `Karpenter`.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ClusterAutoScalingConfig AWS API Documentation
    #
    class ClusterAutoScalingConfig < Struct.new(
      :mode,
      :auto_scaler_type)
      SENSITIVE = []
      include Aws::Structure
    end

    # The autoscaling configuration and status information for a HyperPod
    # cluster.
    #
    # @!attribute [rw] mode
    #   Describes whether autoscaling is enabled or disabled for the
    #   cluster.
    #   @return [String]
    #
    # @!attribute [rw] auto_scaler_type
    #   The type of autoscaler configured for the cluster.
    #   @return [String]
    #
    # @!attribute [rw] status
    #   The current status of the autoscaling configuration. Valid values
    #   are `InService`, `Failed`, `Creating`, and `Deleting`.
    #   @return [String]
    #
    # @!attribute [rw] failure_message
    #   If the autoscaling status is `Failed`, this field contains a message
    #   describing the failure.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ClusterAutoScalingConfigOutput AWS API Documentation
    #
    class ClusterAutoScalingConfigOutput < Struct.new(
      :mode,
      :auto_scaler_type,
      :status,
      :failure_message)
      SENSITIVE = []
      include Aws::Structure
    end

    # Defines the configuration for attaching an additional Amazon Elastic
    # Block Store (EBS) volume to each instance of the SageMaker HyperPod
    # cluster instance group. To learn more, see [SageMaker HyperPod release
    # notes: June 20, 2024][1].
    #
    #
    #
    # [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-release-notes.html#sagemaker-hyperpod-release-notes-20240620
    #
    # @!attribute [rw] volume_size_in_gb
    #   The size in gigabytes (GB) of the additional EBS volume to be
    #   attached to the instances in the SageMaker HyperPod cluster instance
    #   group. The additional EBS volume is attached to each instance within
    #   the SageMaker HyperPod cluster instance group and mounted to
    #   `/opt/sagemaker`.
    #   @return [Integer]
    #
    # @!attribute [rw] volume_kms_key_id
    #   The ID of a KMS key to encrypt the Amazon EBS volume.
    #   @return [String]
    #
    # @!attribute [rw] root_volume
    #   Specifies whether the configuration is for the cluster's root or
    #   secondary Amazon EBS volume. You can specify two
    #   `ClusterEbsVolumeConfig` fields to configure both the root and
    #   secondary volumes. Set the value to `True` if you'd like to provide
    #   your own customer managed Amazon Web Services KMS key to encrypt the
    #   root volume. When `True`:
    #
    #   * The configuration is applied to the root volume.
    #
    #   * You can't specify the `VolumeSizeInGB` field. The size of the
    #     root volume is determined for you.
    #
    #   * You must specify a KMS key ID for `VolumeKmsKeyId` to encrypt the
    #     root volume with your own KMS key instead of an Amazon Web
    #     Services owned KMS key.
    #
    #   Otherwise, by default, the value is `False`, and the following
    #   applies:
    #
    #   * The configuration is applied to the secondary volume, while the
    #     root volume is encrypted with an Amazon Web Services owned key.
    #
    #   * You must specify the `VolumeSizeInGB` field.
    #
    #   * You can optionally specify the `VolumeKmsKeyId` to encrypt the
    #     secondary volume with your own KMS key instead of an Amazon Web
    #     Services owned KMS key.
    #   @return [Boolean]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ClusterEbsVolumeConfig AWS API Documentation
    #
    class ClusterEbsVolumeConfig < Struct.new(
      :volume_size_in_gb,
      :volume_kms_key_id,
      :root_volume)
      SENSITIVE = []
      include Aws::Structure
    end

    # Detailed information about a specific event in a HyperPod cluster.
    #
    # @!attribute [rw] event_id
    #   The unique identifier (UUID) of the event.
    #   @return [String]
    #
    # @!attribute [rw] cluster_arn
    #   The Amazon Resource Name (ARN) of the HyperPod cluster associated
    #   with the event.
    #   @return [String]
    #
    # @!attribute [rw] cluster_name
    #   The name of the HyperPod cluster associated with the event.
    #   @return [String]
    #
    # @!attribute [rw] instance_group_name
    #   The name of the instance group associated with the event, if
    #   applicable.
    #   @return [String]
    #
    # @!attribute [rw] instance_id
    #   The EC2 instance ID associated with the event, if applicable.
    #   @return [String]
    #
    # @!attribute [rw] resource_type
    #   The type of resource associated with the event. Valid values are
    #   `Cluster`, `InstanceGroup`, or `Instance`.
    #   @return [String]
    #
    # @!attribute [rw] event_time
    #   The timestamp when the event occurred.
    #   @return [Time]
    #
    # @!attribute [rw] event_details
    #   Additional details about the event, including event-specific
    #   metadata.
    #   @return [Types::EventDetails]
    #
    # @!attribute [rw] description
    #   A human-readable description of the event.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ClusterEventDetail AWS API Documentation
    #
    class ClusterEventDetail < Struct.new(
      :event_id,
      :cluster_arn,
      :cluster_name,
      :instance_group_name,
      :instance_id,
      :resource_type,
      :event_time,
      :event_details,
      :description)
      SENSITIVE = []
      include Aws::Structure
    end

    # A summary of an event in a HyperPod cluster.
    #
    # @!attribute [rw] event_id
    #   The unique identifier (UUID) of the event.
    #   @return [String]
    #
    # @!attribute [rw] cluster_arn
    #   The Amazon Resource Name (ARN) of the HyperPod cluster associated
    #   with the event.
    #   @return [String]
    #
    # @!attribute [rw] cluster_name
    #   The name of the HyperPod cluster associated with the event.
    #   @return [String]
    #
    # @!attribute [rw] instance_group_name
    #   The name of the instance group associated with the event, if
    #   applicable.
    #   @return [String]
    #
    # @!attribute [rw] instance_id
    #   The Amazon Elastic Compute Cloud (EC2) instance ID associated with
    #   the event, if applicable.
    #   @return [String]
    #
    # @!attribute [rw] resource_type
    #   The type of resource associated with the event. Valid values are
    #   `Cluster`, `InstanceGroup`, or `Instance`.
    #   @return [String]
    #
    # @!attribute [rw] event_time
    #   The timestamp when the event occurred.
    #   @return [Time]
    #
    # @!attribute [rw] description
    #   A brief, human-readable description of the event.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ClusterEventSummary AWS API Documentation
    #
    class ClusterEventSummary < Struct.new(
      :event_id,
      :cluster_arn,
      :cluster_name,
      :instance_group_name,
      :instance_id,
      :resource_type,
      :event_time,
      :description)
      SENSITIVE = []
      include Aws::Structure
    end

    # Details of an instance group in a SageMaker HyperPod cluster.
    #
    # @!attribute [rw] current_count
    #   The number of instances that are currently in the instance group of
    #   a SageMaker HyperPod cluster.
    #   @return [Integer]
    #
    # @!attribute [rw] target_count
    #   The number of instances you specified to add to the instance group
    #   of a SageMaker HyperPod cluster.
    #   @return [Integer]
    #
    # @!attribute [rw] instance_group_name
    #   The name of the instance group of a SageMaker HyperPod cluster.
    #   @return [String]
    #
    # @!attribute [rw] instance_type
    #   The instance type of the instance group of a SageMaker HyperPod
    #   cluster.
    #   @return [String]
    #
    # @!attribute [rw] life_cycle_config
    #   Details of LifeCycle configuration for the instance group.
    #   @return [Types::ClusterLifeCycleConfig]
    #
    # @!attribute [rw] execution_role
    #   The execution role for the instance group to assume.
    #   @return [String]
    #
    # @!attribute [rw] threads_per_core
    #   The number you specified to `TreadsPerCore` in `CreateCluster` for
    #   enabling or disabling multithreading. For instance types that
    #   support multithreading, you can specify 1 for disabling
    #   multithreading and 2 for enabling multithreading. For more
    #   information, see the reference table of [CPU cores and threads per
    #   CPU core per instance type][1] in the *Amazon Elastic Compute Cloud
    #   User Guide*.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/cpu-options-supported-instances-values.html
    #   @return [Integer]
    #
    # @!attribute [rw] instance_storage_configs
    #   The additional storage configurations for the instances in the
    #   SageMaker HyperPod cluster instance group.
    #   @return [Array<Types::ClusterInstanceStorageConfig>]
    #
    # @!attribute [rw] on_start_deep_health_checks
    #   A flag indicating whether deep health checks should be performed
    #   when the cluster instance group is created or updated.
    #   @return [Array<String>]
    #
    # @!attribute [rw] status
    #   The current status of the cluster instance group.
    #
    #   * `InService`: The instance group is active and healthy.
    #
    #   * `Creating`: The instance group is being provisioned.
    #
    #   * `Updating`: The instance group is being updated.
    #
    #   * `Failed`: The instance group has failed to provision or is no
    #     longer healthy.
    #
    #   * `Degraded`: The instance group is degraded, meaning that some
    #     instances have failed to provision or are no longer healthy.
    #
    #   * `Deleting`: The instance group is being deleted.
    #   @return [String]
    #
    # @!attribute [rw] training_plan_arn
    #   The Amazon Resource Name (ARN); of the training plan associated with
    #   this cluster instance group.
    #
    #   For more information about how to reserve GPU capacity for your
    #   SageMaker HyperPod clusters using Amazon SageMaker Training Plan,
    #   see ` CreateTrainingPlan `.
    #   @return [String]
    #
    # @!attribute [rw] training_plan_status
    #   The current status of the training plan associated with this cluster
    #   instance group.
    #   @return [String]
    #
    # @!attribute [rw] override_vpc_config
    #   The customized Amazon VPC configuration at the instance group level
    #   that overrides the default Amazon VPC configuration of the SageMaker
    #   HyperPod cluster.
    #   @return [Types::VpcConfig]
    #
    # @!attribute [rw] scheduled_update_config
    #   The configuration object of the schedule that SageMaker follows when
    #   updating the AMI.
    #   @return [Types::ScheduledUpdateConfig]
    #
    # @!attribute [rw] current_image_id
    #   The ID of the Amazon Machine Image (AMI) currently in use by the
    #   instance group.
    #   @return [String]
    #
    # @!attribute [rw] desired_image_id
    #   The ID of the Amazon Machine Image (AMI) desired for the instance
    #   group.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ClusterInstanceGroupDetails AWS API Documentation
    #
    class ClusterInstanceGroupDetails < Struct.new(
      :current_count,
      :target_count,
      :instance_group_name,
      :instance_type,
      :life_cycle_config,
      :execution_role,
      :threads_per_core,
      :instance_storage_configs,
      :on_start_deep_health_checks,
      :status,
      :training_plan_arn,
      :training_plan_status,
      :override_vpc_config,
      :scheduled_update_config,
      :current_image_id,
      :desired_image_id)
      SENSITIVE = []
      include Aws::Structure
    end

    # The specifications of an instance group that you need to define.
    #
    # @!attribute [rw] instance_count
    #   Specifies the number of instances to add to the instance group of a
    #   SageMaker HyperPod cluster.
    #   @return [Integer]
    #
    # @!attribute [rw] instance_group_name
    #   Specifies the name of the instance group.
    #   @return [String]
    #
    # @!attribute [rw] instance_type
    #   Specifies the instance type of the instance group.
    #   @return [String]
    #
    # @!attribute [rw] life_cycle_config
    #   Specifies the LifeCycle configuration for the instance group.
    #   @return [Types::ClusterLifeCycleConfig]
    #
    # @!attribute [rw] execution_role
    #   Specifies an IAM execution role to be assumed by the instance group.
    #   @return [String]
    #
    # @!attribute [rw] threads_per_core
    #   Specifies the value for **Threads per core**. For instance types
    #   that support multithreading, you can specify `1` for disabling
    #   multithreading and `2` for enabling multithreading. For instance
    #   types that doesn't support multithreading, specify `1`. For more
    #   information, see the reference table of [CPU cores and threads per
    #   CPU core per instance type][1] in the *Amazon Elastic Compute Cloud
    #   User Guide*.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/cpu-options-supported-instances-values.html
    #   @return [Integer]
    #
    # @!attribute [rw] instance_storage_configs
    #   Specifies the additional storage configurations for the instances in
    #   the SageMaker HyperPod cluster instance group.
    #   @return [Array<Types::ClusterInstanceStorageConfig>]
    #
    # @!attribute [rw] on_start_deep_health_checks
    #   A flag indicating whether deep health checks should be performed
    #   when the cluster instance group is created or updated.
    #   @return [Array<String>]
    #
    # @!attribute [rw] training_plan_arn
    #   The Amazon Resource Name (ARN); of the training plan to use for this
    #   cluster instance group.
    #
    #   For more information about how to reserve GPU capacity for your
    #   SageMaker HyperPod clusters using Amazon SageMaker Training Plan,
    #   see ` CreateTrainingPlan `.
    #   @return [String]
    #
    # @!attribute [rw] override_vpc_config
    #   To configure multi-AZ deployments, customize the Amazon VPC
    #   configuration at the instance group level. You can specify different
    #   subnets and security groups across different AZs in the instance
    #   group specification to override a SageMaker HyperPod cluster's
    #   default Amazon VPC configuration. For more information about
    #   deploying a cluster in multiple AZs, see [Setting up SageMaker
    #   HyperPod clusters across multiple AZs][1].
    #
    #   <note markdown="1"> When your Amazon VPC and subnets support IPv6, network
    #   communications differ based on the cluster orchestration platform:
    #
    #    * Slurm-orchestrated clusters automatically configure nodes with
    #     dual IPv6 and IPv4 addresses, allowing immediate IPv6 network
    #     communications.
    #
    #   * In Amazon EKS-orchestrated clusters, nodes receive dual-stack
    #     addressing, but pods can only use IPv6 when the Amazon EKS cluster
    #     is explicitly IPv6-enabled. For information about deploying an
    #     IPv6 Amazon EKS cluster, see [Amazon EKS IPv6 Cluster
    #     Deployment][2].
    #
    #    Additional resources for IPv6 configuration:
    #
    #    * For information about adding IPv6 support to your VPC, see to
    #     [IPv6 Support for VPC][3].
    #
    #   * For information about creating a new IPv6-compatible VPC, see
    #     [Amazon VPC Creation Guide][4].
    #
    #   * To configure SageMaker HyperPod with a custom Amazon VPC, see
    #     [Custom Amazon VPC Setup for SageMaker HyperPod][5].
    #
    #    </note>
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-prerequisites.html#sagemaker-hyperpod-prerequisites-multiple-availability-zones
    #   [2]: https://docs.aws.amazon.com/eks/latest/userguide/deploy-ipv6-cluster.html#_deploy_an_ipv6_cluster_with_eksctl
    #   [3]: https://docs.aws.amazon.com/vpc/latest/userguide/vpc-migrate-ipv6.html
    #   [4]: https://docs.aws.amazon.com/vpc/latest/userguide/create-vpc.html
    #   [5]: https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-prerequisites.html#sagemaker-hyperpod-prerequisites-optional-vpc
    #   @return [Types::VpcConfig]
    #
    # @!attribute [rw] scheduled_update_config
    #   The configuration object of the schedule that SageMaker uses to
    #   update the AMI.
    #   @return [Types::ScheduledUpdateConfig]
    #
    # @!attribute [rw] image_id
    #   When configuring your HyperPod cluster, you can specify an image ID
    #   using one of the following options:
    #
    #   * `HyperPodPublicAmiId`: Use a HyperPod public AMI
    #
    #   * `CustomAmiId`: Use your custom AMI
    #
    #   * `default`: Use the default latest system image
    #
    #   If you choose to use a custom AMI (`CustomAmiId`), ensure it meets
    #   the following requirements:
    #
    #   * Encryption: The custom AMI must be unencrypted.
    #
    #   * Ownership: The custom AMI must be owned by the same Amazon Web
    #     Services account that is creating the HyperPod cluster.
    #
    #   * Volume support: Only the primary AMI snapshot volume is supported;
    #     additional AMI volumes are not supported.
    #
    #   When updating the instance group's AMI through the
    #   `UpdateClusterSoftware` operation, if an instance group uses a
    #   custom AMI, you must provide an `ImageId` or use the default as
    #   input. Note that if you don't specify an instance group in your
    #   `UpdateClusterSoftware` request, then all of the instance groups are
    #   patched with the specified image.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ClusterInstanceGroupSpecification AWS API Documentation
    #
    class ClusterInstanceGroupSpecification < Struct.new(
      :instance_count,
      :instance_group_name,
      :instance_type,
      :life_cycle_config,
      :execution_role,
      :threads_per_core,
      :instance_storage_configs,
      :on_start_deep_health_checks,
      :training_plan_arn,
      :override_vpc_config,
      :scheduled_update_config,
      :image_id)
      SENSITIVE = []
      include Aws::Structure
    end

    # Specifies the placement details for the node in the SageMaker HyperPod
    # cluster, including the Availability Zone and the unique identifier
    # (ID) of the Availability Zone.
    #
    # @!attribute [rw] availability_zone
    #   The Availability Zone where the node in the SageMaker HyperPod
    #   cluster is launched.
    #   @return [String]
    #
    # @!attribute [rw] availability_zone_id
    #   The unique identifier (ID) of the Availability Zone where the node
    #   in the SageMaker HyperPod cluster is launched.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ClusterInstancePlacement AWS API Documentation
    #
    class ClusterInstancePlacement < Struct.new(
      :availability_zone,
      :availability_zone_id)
      SENSITIVE = []
      include Aws::Structure
    end

    # Details of an instance in a SageMaker HyperPod cluster.
    #
    # @!attribute [rw] status
    #   The status of an instance in a SageMaker HyperPod cluster.
    #   @return [String]
    #
    # @!attribute [rw] message
    #   The message from an instance in a SageMaker HyperPod cluster.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ClusterInstanceStatusDetails AWS API Documentation
    #
    class ClusterInstanceStatusDetails < Struct.new(
      :status,
      :message)
      SENSITIVE = []
      include Aws::Structure
    end

    # Defines the configuration for attaching additional storage to the
    # instances in the SageMaker HyperPod cluster instance group. To learn
    # more, see [SageMaker HyperPod release notes: June 20, 2024][1].
    #
    #
    #
    # [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-release-notes.html#sagemaker-hyperpod-release-notes-20240620
    #
    # @note ClusterInstanceStorageConfig is a union - when making an API calls you must set exactly one of the members.
    #
    # @note ClusterInstanceStorageConfig is a union - when returned from an API call exactly one value will be set and the returned type will be a subclass of ClusterInstanceStorageConfig corresponding to the set member.
    #
    # @!attribute [rw] ebs_volume_config
    #   Defines the configuration for attaching additional Amazon Elastic
    #   Block Store (EBS) volumes to the instances in the SageMaker HyperPod
    #   cluster instance group. The additional EBS volume is attached to
    #   each instance within the SageMaker HyperPod cluster instance group
    #   and mounted to `/opt/sagemaker`.
    #   @return [Types::ClusterEbsVolumeConfig]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ClusterInstanceStorageConfig AWS API Documentation
    #
    class ClusterInstanceStorageConfig < Struct.new(
      :ebs_volume_config,
      :unknown)
      SENSITIVE = []
      include Aws::Structure
      include Aws::Structure::Union

      class EbsVolumeConfig < ClusterInstanceStorageConfig; end
      class Unknown < ClusterInstanceStorageConfig; end
    end

    # The lifecycle configuration for a SageMaker HyperPod cluster.
    #
    # @!attribute [rw] source_s3_uri
    #   An Amazon S3 bucket path where your lifecycle scripts are stored.
    #
    #   Make sure that the S3 bucket path starts with `s3://sagemaker-`. The
    #   [IAM role for SageMaker HyperPod][1] has the managed [
    #   `AmazonSageMakerClusterInstanceRolePolicy` ][2] attached, which
    #   allows access to S3 buckets with the specific prefix `sagemaker-`.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-prerequisites.html#sagemaker-hyperpod-prerequisites-iam-role-for-hyperpod
    #   [2]: https://docs.aws.amazon.com/sagemaker/latest/dg/security-iam-awsmanpol-cluster.html
    #   @return [String]
    #
    # @!attribute [rw] on_create
    #   The file name of the entrypoint script of lifecycle scripts under
    #   `SourceS3Uri`. This entrypoint script runs during cluster creation.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ClusterLifeCycleConfig AWS API Documentation
    #
    class ClusterLifeCycleConfig < Struct.new(
      :source_s3_uri,
      :on_create)
      SENSITIVE = []
      include Aws::Structure
    end

    # Metadata information about a HyperPod cluster showing information
    # about the cluster level operations, such as creating, updating, and
    # deleting.
    #
    # @!attribute [rw] failure_message
    #   An error message describing why the cluster level operation (such as
    #   creating, updating, or deleting) failed.
    #   @return [String]
    #
    # @!attribute [rw] eks_role_access_entries
    #   A list of Amazon EKS IAM role ARNs associated with the cluster. This
    #   is created by HyperPod on your behalf and only applies for EKS
    #   orchestrated clusters.
    #   @return [Array<String>]
    #
    # @!attribute [rw] slr_access_entry
    #   The Service-Linked Role (SLR) associated with the cluster. This is
    #   created by HyperPod on your behalf and only applies for EKS
    #   orchestrated clusters.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ClusterMetadata AWS API Documentation
    #
    class ClusterMetadata < Struct.new(
      :failure_message,
      :eks_role_access_entries,
      :slr_access_entry)
      SENSITIVE = []
      include Aws::Structure
    end

    # Details of an instance (also called a *node* interchangeably) in a
    # SageMaker HyperPod cluster.
    #
    # @!attribute [rw] instance_group_name
    #   The instance group name in which the instance is.
    #   @return [String]
    #
    # @!attribute [rw] instance_id
    #   The ID of the instance.
    #   @return [String]
    #
    # @!attribute [rw] node_logical_id
    #   A unique identifier for the node that persists throughout its
    #   lifecycle, from provisioning request to termination. This identifier
    #   can be used to track the node even before it has an assigned
    #   `InstanceId`.
    #   @return [String]
    #
    # @!attribute [rw] instance_status
    #   The status of the instance.
    #   @return [Types::ClusterInstanceStatusDetails]
    #
    # @!attribute [rw] instance_type
    #   The type of the instance.
    #   @return [String]
    #
    # @!attribute [rw] launch_time
    #   The time when the instance is launched.
    #   @return [Time]
    #
    # @!attribute [rw] last_software_update_time
    #   The time when the cluster was last updated.
    #   @return [Time]
    #
    # @!attribute [rw] life_cycle_config
    #   The LifeCycle configuration applied to the instance.
    #   @return [Types::ClusterLifeCycleConfig]
    #
    # @!attribute [rw] override_vpc_config
    #   The customized Amazon VPC configuration at the instance group level
    #   that overrides the default Amazon VPC configuration of the SageMaker
    #   HyperPod cluster.
    #   @return [Types::VpcConfig]
    #
    # @!attribute [rw] threads_per_core
    #   The number of threads per CPU core you specified under
    #   `CreateCluster`.
    #   @return [Integer]
    #
    # @!attribute [rw] instance_storage_configs
    #   The configurations of additional storage specified to the instance
    #   group where the instance (node) is launched.
    #   @return [Array<Types::ClusterInstanceStorageConfig>]
    #
    # @!attribute [rw] private_primary_ip
    #   The private primary IP address of the SageMaker HyperPod cluster
    #   node.
    #   @return [String]
    #
    # @!attribute [rw] private_primary_ipv_6
    #   The private primary IPv6 address of the SageMaker HyperPod cluster
    #   node when configured with an Amazon VPC that supports IPv6 and
    #   includes subnets with IPv6 addressing enabled in either the cluster
    #   Amazon VPC configuration or the instance group Amazon VPC
    #   configuration.
    #   @return [String]
    #
    # @!attribute [rw] private_dns_hostname
    #   The private DNS hostname of the SageMaker HyperPod cluster node.
    #   @return [String]
    #
    # @!attribute [rw] placement
    #   The placement details of the SageMaker HyperPod cluster node.
    #   @return [Types::ClusterInstancePlacement]
    #
    # @!attribute [rw] current_image_id
    #   The ID of the Amazon Machine Image (AMI) currently in use by the
    #   node.
    #   @return [String]
    #
    # @!attribute [rw] desired_image_id
    #   The ID of the Amazon Machine Image (AMI) desired for the node.
    #   @return [String]
    #
    # @!attribute [rw] ultra_server_info
    #   Contains information about the UltraServer.
    #   @return [Types::UltraServerInfo]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ClusterNodeDetails AWS API Documentation
    #
    class ClusterNodeDetails < Struct.new(
      :instance_group_name,
      :instance_id,
      :node_logical_id,
      :instance_status,
      :instance_type,
      :launch_time,
      :last_software_update_time,
      :life_cycle_config,
      :override_vpc_config,
      :threads_per_core,
      :instance_storage_configs,
      :private_primary_ip,
      :private_primary_ipv_6,
      :private_dns_hostname,
      :placement,
      :current_image_id,
      :desired_image_id,
      :ultra_server_info)
      SENSITIVE = []
      include Aws::Structure
    end

    # Lists a summary of the properties of an instance (also called a *node*
    # interchangeably) of a SageMaker HyperPod cluster.
    #
    # @!attribute [rw] instance_group_name
    #   The name of the instance group in which the instance is.
    #   @return [String]
    #
    # @!attribute [rw] instance_id
    #   The ID of the instance.
    #   @return [String]
    #
    # @!attribute [rw] node_logical_id
    #   A unique identifier for the node that persists throughout its
    #   lifecycle, from provisioning request to termination. This identifier
    #   can be used to track the node even before it has an assigned
    #   `InstanceId`. This field is only included when
    #   `IncludeNodeLogicalIds` is set to `True` in the `ListClusterNodes`
    #   request.
    #   @return [String]
    #
    # @!attribute [rw] instance_type
    #   The type of the instance.
    #   @return [String]
    #
    # @!attribute [rw] launch_time
    #   The time when the instance is launched.
    #   @return [Time]
    #
    # @!attribute [rw] last_software_update_time
    #   The time when SageMaker last updated the software of the instances
    #   in the cluster.
    #   @return [Time]
    #
    # @!attribute [rw] instance_status
    #   The status of the instance.
    #   @return [Types::ClusterInstanceStatusDetails]
    #
    # @!attribute [rw] ultra_server_info
    #   Contains information about the UltraServer.
    #   @return [Types::UltraServerInfo]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ClusterNodeSummary AWS API Documentation
    #
    class ClusterNodeSummary < Struct.new(
      :instance_group_name,
      :instance_id,
      :node_logical_id,
      :instance_type,
      :launch_time,
      :last_software_update_time,
      :instance_status,
      :ultra_server_info)
      SENSITIVE = []
      include Aws::Structure
    end

    # The type of orchestrator used for the SageMaker HyperPod cluster.
    #
    # @!attribute [rw] eks
    #   The Amazon EKS cluster used as the orchestrator for the SageMaker
    #   HyperPod cluster.
    #   @return [Types::ClusterOrchestratorEksConfig]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ClusterOrchestrator AWS API Documentation
    #
    class ClusterOrchestrator < Struct.new(
      :eks)
      SENSITIVE = []
      include Aws::Structure
    end

    # The configuration settings for the Amazon EKS cluster used as the
    # orchestrator for the SageMaker HyperPod cluster.
    #
    # @!attribute [rw] cluster_arn
    #   The Amazon Resource Name (ARN) of the Amazon EKS cluster associated
    #   with the SageMaker HyperPod cluster.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ClusterOrchestratorEksConfig AWS API Documentation
    #
    class ClusterOrchestratorEksConfig < Struct.new(
      :cluster_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # The instance group details of the restricted instance group (RIG).
    #
    # @!attribute [rw] current_count
    #   The number of instances that are currently in the restricted
    #   instance group of a SageMaker HyperPod cluster.
    #   @return [Integer]
    #
    # @!attribute [rw] target_count
    #   The number of instances you specified to add to the restricted
    #   instance group of a SageMaker HyperPod cluster.
    #   @return [Integer]
    #
    # @!attribute [rw] instance_group_name
    #   The name of the restricted instance group of a SageMaker HyperPod
    #   cluster.
    #   @return [String]
    #
    # @!attribute [rw] instance_type
    #   The instance type of the restricted instance group of a SageMaker
    #   HyperPod cluster.
    #   @return [String]
    #
    # @!attribute [rw] execution_role
    #   The execution role for the restricted instance group to assume.
    #   @return [String]
    #
    # @!attribute [rw] threads_per_core
    #   The number you specified to `TreadsPerCore` in `CreateCluster` for
    #   enabling or disabling multithreading. For instance types that
    #   support multithreading, you can specify 1 for disabling
    #   multithreading and 2 for enabling multithreading. For more
    #   information, see the reference table of [CPU cores and threads per
    #   CPU core per instance type][1] in the *Amazon Elastic Compute Cloud
    #   User Guide*.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/cpu-options-supported-instances-values.html
    #   @return [Integer]
    #
    # @!attribute [rw] instance_storage_configs
    #   The additional storage configurations for the instances in the
    #   SageMaker HyperPod cluster restricted instance group.
    #   @return [Array<Types::ClusterInstanceStorageConfig>]
    #
    # @!attribute [rw] on_start_deep_health_checks
    #   A flag indicating whether deep health checks should be performed
    #   when the cluster's restricted instance group is created or updated.
    #   @return [Array<String>]
    #
    # @!attribute [rw] status
    #   The current status of the cluster's restricted instance group.
    #
    #   * `InService`: The restricted instance group is active and healthy.
    #
    #   * `Creating`: The restricted instance group is being provisioned.
    #
    #   * `Updating`: The restricted instance group is being updated.
    #
    #   * `Failed`: The restricted instance group has failed to provision or
    #     is no longer healthy.
    #
    #   * `Degraded`: The restricted instance group is degraded, meaning
    #     that some instances have failed to provision or are no longer
    #     healthy.
    #
    #   * `Deleting`: The restricted instance group is being deleted.
    #   @return [String]
    #
    # @!attribute [rw] training_plan_arn
    #   The Amazon Resource Name (ARN) of the training plan to filter
    #   clusters by. For more information about reserving GPU capacity for
    #   your SageMaker HyperPod clusters using Amazon SageMaker Training
    #   Plan, see ` CreateTrainingPlan `.
    #   @return [String]
    #
    # @!attribute [rw] training_plan_status
    #   The current status of the training plan associated with this cluster
    #   restricted instance group.
    #   @return [String]
    #
    # @!attribute [rw] override_vpc_config
    #   Specifies an Amazon Virtual Private Cloud (VPC) that your SageMaker
    #   jobs, hosted models, and compute resources have access to. You can
    #   control access to and from your resources by configuring a VPC. For
    #   more information, see [Give SageMaker Access to Resources in your
    #   Amazon VPC][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/infrastructure-give-access.html
    #   @return [Types::VpcConfig]
    #
    # @!attribute [rw] scheduled_update_config
    #   The configuration object of the schedule that SageMaker follows when
    #   updating the AMI.
    #   @return [Types::ScheduledUpdateConfig]
    #
    # @!attribute [rw] environment_config
    #   The configuration for the restricted instance groups (RIG)
    #   environment.
    #   @return [Types::EnvironmentConfigDetails]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ClusterRestrictedInstanceGroupDetails AWS API Documentation
    #
    class ClusterRestrictedInstanceGroupDetails < Struct.new(
      :current_count,
      :target_count,
      :instance_group_name,
      :instance_type,
      :execution_role,
      :threads_per_core,
      :instance_storage_configs,
      :on_start_deep_health_checks,
      :status,
      :training_plan_arn,
      :training_plan_status,
      :override_vpc_config,
      :scheduled_update_config,
      :environment_config)
      SENSITIVE = []
      include Aws::Structure
    end

    # The specifications of a restricted instance group that you need to
    # define.
    #
    # @!attribute [rw] instance_count
    #   Specifies the number of instances to add to the restricted instance
    #   group of a SageMaker HyperPod cluster.
    #   @return [Integer]
    #
    # @!attribute [rw] instance_group_name
    #   Specifies the name of the restricted instance group.
    #   @return [String]
    #
    # @!attribute [rw] instance_type
    #   Specifies the instance type of the restricted instance group.
    #   @return [String]
    #
    # @!attribute [rw] execution_role
    #   Specifies an IAM execution role to be assumed by the restricted
    #   instance group.
    #   @return [String]
    #
    # @!attribute [rw] threads_per_core
    #   The number you specified to `TreadsPerCore` in `CreateCluster` for
    #   enabling or disabling multithreading. For instance types that
    #   support multithreading, you can specify 1 for disabling
    #   multithreading and 2 for enabling multithreading. For more
    #   information, see the reference table of [CPU cores and threads per
    #   CPU core per instance type][1] in the *Amazon Elastic Compute Cloud
    #   User Guide*.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/cpu-options-supported-instances-values.html
    #   @return [Integer]
    #
    # @!attribute [rw] instance_storage_configs
    #   Specifies the additional storage configurations for the instances in
    #   the SageMaker HyperPod cluster restricted instance group.
    #   @return [Array<Types::ClusterInstanceStorageConfig>]
    #
    # @!attribute [rw] on_start_deep_health_checks
    #   A flag indicating whether deep health checks should be performed
    #   when the cluster restricted instance group is created or updated.
    #   @return [Array<String>]
    #
    # @!attribute [rw] training_plan_arn
    #   The Amazon Resource Name (ARN) of the training plan to filter
    #   clusters by. For more information about reserving GPU capacity for
    #   your SageMaker HyperPod clusters using Amazon SageMaker Training
    #   Plan, see ` CreateTrainingPlan `.
    #   @return [String]
    #
    # @!attribute [rw] override_vpc_config
    #   Specifies an Amazon Virtual Private Cloud (VPC) that your SageMaker
    #   jobs, hosted models, and compute resources have access to. You can
    #   control access to and from your resources by configuring a VPC. For
    #   more information, see [Give SageMaker Access to Resources in your
    #   Amazon VPC][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/infrastructure-give-access.html
    #   @return [Types::VpcConfig]
    #
    # @!attribute [rw] scheduled_update_config
    #   The configuration object of the schedule that SageMaker follows when
    #   updating the AMI.
    #   @return [Types::ScheduledUpdateConfig]
    #
    # @!attribute [rw] environment_config
    #   The configuration for the restricted instance groups (RIG)
    #   environment.
    #   @return [Types::EnvironmentConfig]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ClusterRestrictedInstanceGroupSpecification AWS API Documentation
    #
    class ClusterRestrictedInstanceGroupSpecification < Struct.new(
      :instance_count,
      :instance_group_name,
      :instance_type,
      :execution_role,
      :threads_per_core,
      :instance_storage_configs,
      :on_start_deep_health_checks,
      :training_plan_arn,
      :override_vpc_config,
      :scheduled_update_config,
      :environment_config)
      SENSITIVE = []
      include Aws::Structure
    end

    # Summary of the cluster policy.
    #
    # @!attribute [rw] cluster_scheduler_config_arn
    #   ARN of the cluster policy.
    #   @return [String]
    #
    # @!attribute [rw] cluster_scheduler_config_id
    #   ID of the cluster policy.
    #   @return [String]
    #
    # @!attribute [rw] cluster_scheduler_config_version
    #   Version of the cluster policy.
    #   @return [Integer]
    #
    # @!attribute [rw] name
    #   Name of the cluster policy.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   Creation time of the cluster policy.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time
    #   Last modified time of the cluster policy.
    #   @return [Time]
    #
    # @!attribute [rw] status
    #   Status of the cluster policy.
    #   @return [String]
    #
    # @!attribute [rw] cluster_arn
    #   ARN of the cluster.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ClusterSchedulerConfigSummary AWS API Documentation
    #
    class ClusterSchedulerConfigSummary < Struct.new(
      :cluster_scheduler_config_arn,
      :cluster_scheduler_config_id,
      :cluster_scheduler_config_version,
      :name,
      :creation_time,
      :last_modified_time,
      :status,
      :cluster_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # Lists a summary of the properties of a SageMaker HyperPod cluster.
    #
    # @!attribute [rw] cluster_arn
    #   The Amazon Resource Name (ARN) of the SageMaker HyperPod cluster.
    #   @return [String]
    #
    # @!attribute [rw] cluster_name
    #   The name of the SageMaker HyperPod cluster.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   The time when the SageMaker HyperPod cluster is created.
    #   @return [Time]
    #
    # @!attribute [rw] cluster_status
    #   The status of the SageMaker HyperPod cluster.
    #   @return [String]
    #
    # @!attribute [rw] training_plan_arns
    #   A list of Amazon Resource Names (ARNs) of the training plans
    #   associated with this cluster.
    #
    #   For more information about how to reserve GPU capacity for your
    #   SageMaker HyperPod clusters using Amazon SageMaker Training Plan,
    #   see ` CreateTrainingPlan `.
    #   @return [Array<String>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ClusterSummary AWS API Documentation
    #
    class ClusterSummary < Struct.new(
      :cluster_arn,
      :cluster_name,
      :creation_time,
      :cluster_status,
      :training_plan_arns)
      SENSITIVE = []
      include Aws::Structure
    end

    # Defines the configuration for managed tier checkpointing in a HyperPod
    # cluster. Managed tier checkpointing uses multiple storage tiers,
    # including cluster CPU memory, to provide faster checkpoint operations
    # and improved fault tolerance for large-scale model training. The
    # system automatically saves checkpoints at high frequency to memory and
    # periodically persists them to durable storage, like Amazon S3.
    #
    # @!attribute [rw] mode
    #   Specifies whether managed tier checkpointing is enabled or disabled
    #   for the HyperPod cluster. When set to `Enable`, the system installs
    #   a memory management daemon that provides disaggregated memory as a
    #   service for checkpoint storage. When set to `Disable`, the feature
    #   is turned off and the memory management daemon is removed from the
    #   cluster.
    #   @return [String]
    #
    # @!attribute [rw] instance_memory_allocation_percentage
    #   The percentage (int) of cluster memory to allocate for
    #   checkpointing.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ClusterTieredStorageConfig AWS API Documentation
    #
    class ClusterTieredStorageConfig < Struct.new(
      :mode,
      :instance_memory_allocation_percentage)
      SENSITIVE = []
      include Aws::Structure
    end

    # The configuration for the file system and kernels in a SageMaker image
    # running as a Code Editor app. The `FileSystemConfig` object is not
    # supported.
    #
    # @!attribute [rw] file_system_config
    #   The Amazon Elastic File System storage configuration for a SageMaker
    #   AI image.
    #   @return [Types::FileSystemConfig]
    #
    # @!attribute [rw] container_config
    #   The configuration used to run the application image container.
    #   @return [Types::ContainerConfig]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CodeEditorAppImageConfig AWS API Documentation
    #
    class CodeEditorAppImageConfig < Struct.new(
      :file_system_config,
      :container_config)
      SENSITIVE = []
      include Aws::Structure
    end

    # The Code Editor application settings.
    #
    # For more information about Code Editor, see [Get started with Code
    # Editor in Amazon SageMaker][1].
    #
    #
    #
    # [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/code-editor.html
    #
    # @!attribute [rw] default_resource_spec
    #   Specifies the ARN's of a SageMaker AI image and SageMaker AI image
    #   version, and the instance type that the version runs on.
    #
    #   <note markdown="1"> When both `SageMakerImageVersionArn` and `SageMakerImageArn` are
    #   passed, `SageMakerImageVersionArn` is used. Any updates to
    #   `SageMakerImageArn` will not take effect if
    #   `SageMakerImageVersionArn` already exists in the `ResourceSpec`
    #   because `SageMakerImageVersionArn` always takes precedence. To clear
    #   the value set for `SageMakerImageVersionArn`, pass `None` as the
    #   value.
    #
    #    </note>
    #   @return [Types::ResourceSpec]
    #
    # @!attribute [rw] custom_images
    #   A list of custom SageMaker images that are configured to run as a
    #   Code Editor app.
    #   @return [Array<Types::CustomImage>]
    #
    # @!attribute [rw] lifecycle_config_arns
    #   The Amazon Resource Name (ARN) of the Code Editor application
    #   lifecycle configuration.
    #   @return [Array<String>]
    #
    # @!attribute [rw] app_lifecycle_management
    #   Settings that are used to configure and manage the lifecycle of
    #   CodeEditor applications.
    #   @return [Types::AppLifecycleManagement]
    #
    # @!attribute [rw] built_in_lifecycle_config_arn
    #   The lifecycle configuration that runs before the default lifecycle
    #   configuration. It can override changes made in the default lifecycle
    #   configuration.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CodeEditorAppSettings AWS API Documentation
    #
    class CodeEditorAppSettings < Struct.new(
      :default_resource_spec,
      :custom_images,
      :lifecycle_config_arns,
      :app_lifecycle_management,
      :built_in_lifecycle_config_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # A Git repository that SageMaker AI automatically displays to users for
    # cloning in the JupyterServer application.
    #
    # @!attribute [rw] repository_url
    #   The URL of the Git repository.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CodeRepository AWS API Documentation
    #
    class CodeRepository < Struct.new(
      :repository_url)
      SENSITIVE = []
      include Aws::Structure
    end

    # Specifies summary information about a Git repository.
    #
    # @!attribute [rw] code_repository_name
    #   The name of the Git repository.
    #   @return [String]
    #
    # @!attribute [rw] code_repository_arn
    #   The Amazon Resource Name (ARN) of the Git repository.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   The date and time that the Git repository was created.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time
    #   The date and time that the Git repository was last modified.
    #   @return [Time]
    #
    # @!attribute [rw] git_config
    #   Configuration details for the Git repository, including the URL
    #   where it is located and the ARN of the Amazon Web Services Secrets
    #   Manager secret that contains the credentials used to access the
    #   repository.
    #   @return [Types::GitConfig]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CodeRepositorySummary AWS API Documentation
    #
    class CodeRepositorySummary < Struct.new(
      :code_repository_name,
      :code_repository_arn,
      :creation_time,
      :last_modified_time,
      :git_config)
      SENSITIVE = []
      include Aws::Structure
    end

    # Use this parameter to configure your Amazon Cognito workforce. A
    # single Cognito workforce is created using and corresponds to a single
    # [ Amazon Cognito user pool][1].
    #
    #
    #
    # [1]: https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools.html
    #
    # @!attribute [rw] user_pool
    #   A [ user pool][1] is a user directory in Amazon Cognito. With a user
    #   pool, your users can sign in to your web or mobile app through
    #   Amazon Cognito. Your users can also sign in through social identity
    #   providers like Google, Facebook, Amazon, or Apple, and through SAML
    #   identity providers.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools.html
    #   @return [String]
    #
    # @!attribute [rw] client_id
    #   The client ID for your Amazon Cognito user pool.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CognitoConfig AWS API Documentation
    #
    class CognitoConfig < Struct.new(
      :user_pool,
      :client_id)
      SENSITIVE = []
      include Aws::Structure
    end

    # Identifies a Amazon Cognito user group. A user group can be used in on
    # or more work teams.
    #
    # @!attribute [rw] user_pool
    #   An identifier for a user pool. The user pool must be in the same
    #   region as the service that you are calling.
    #   @return [String]
    #
    # @!attribute [rw] user_group
    #   An identifier for a user group.
    #   @return [String]
    #
    # @!attribute [rw] client_id
    #   An identifier for an application client. You must create the app
    #   client ID using Amazon Cognito.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CognitoMemberDefinition AWS API Documentation
    #
    class CognitoMemberDefinition < Struct.new(
      :user_pool,
      :user_group,
      :client_id)
      SENSITIVE = []
      include Aws::Structure
    end

    # Configuration for your collection.
    #
    # @note CollectionConfig is a union - when making an API calls you must set exactly one of the members.
    #
    # @note CollectionConfig is a union - when returned from an API call exactly one value will be set and the returned type will be a subclass of CollectionConfig corresponding to the set member.
    #
    # @!attribute [rw] vector_config
    #   Configuration for your vector collection type.
    #
    #   * `Dimension`: The number of elements in your vector.
    #
    #   ^
    #   @return [Types::VectorConfig]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CollectionConfig AWS API Documentation
    #
    class CollectionConfig < Struct.new(
      :vector_config,
      :unknown)
      SENSITIVE = []
      include Aws::Structure
      include Aws::Structure::Union

      class VectorConfig < CollectionConfig; end
      class Unknown < CollectionConfig; end
    end

    # Configuration information for the Amazon SageMaker Debugger output
    # tensor collections.
    #
    # @!attribute [rw] collection_name
    #   The name of the tensor collection. The name must be unique relative
    #   to other rule configuration names.
    #   @return [String]
    #
    # @!attribute [rw] collection_parameters
    #   Parameter values for the tensor collection. The allowed parameters
    #   are `"name"`, `"include_regex"`, `"reduction_config"`,
    #   `"save_config"`, `"tensor_names"`, and `"save_histogram"`.
    #   @return [Hash<String,String>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CollectionConfiguration AWS API Documentation
    #
    class CollectionConfiguration < Struct.new(
      :collection_name,
      :collection_parameters)
      SENSITIVE = []
      include Aws::Structure
    end

    # A summary of a model compilation job.
    #
    # @!attribute [rw] compilation_job_name
    #   The name of the model compilation job that you want a summary for.
    #   @return [String]
    #
    # @!attribute [rw] compilation_job_arn
    #   The Amazon Resource Name (ARN) of the model compilation job.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   The time when the model compilation job was created.
    #   @return [Time]
    #
    # @!attribute [rw] compilation_start_time
    #   The time when the model compilation job started.
    #   @return [Time]
    #
    # @!attribute [rw] compilation_end_time
    #   The time when the model compilation job completed.
    #   @return [Time]
    #
    # @!attribute [rw] compilation_target_device
    #   The type of device that the model will run on after the compilation
    #   job has completed.
    #   @return [String]
    #
    # @!attribute [rw] compilation_target_platform_os
    #   The type of OS that the model will run on after the compilation job
    #   has completed.
    #   @return [String]
    #
    # @!attribute [rw] compilation_target_platform_arch
    #   The type of architecture that the model will run on after the
    #   compilation job has completed.
    #   @return [String]
    #
    # @!attribute [rw] compilation_target_platform_accelerator
    #   The type of accelerator that the model will run on after the
    #   compilation job has completed.
    #   @return [String]
    #
    # @!attribute [rw] last_modified_time
    #   The time when the model compilation job was last modified.
    #   @return [Time]
    #
    # @!attribute [rw] compilation_job_status
    #   The status of the model compilation job.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CompilationJobSummary AWS API Documentation
    #
    class CompilationJobSummary < Struct.new(
      :compilation_job_name,
      :compilation_job_arn,
      :creation_time,
      :compilation_start_time,
      :compilation_end_time,
      :compilation_target_device,
      :compilation_target_platform_os,
      :compilation_target_platform_arch,
      :compilation_target_platform_accelerator,
      :last_modified_time,
      :compilation_job_status)
      SENSITIVE = []
      include Aws::Structure
    end

    # Configuration of the compute allocation definition for an entity. This
    # includes the resource sharing option and the setting to preempt low
    # priority tasks.
    #
    # @!attribute [rw] compute_quota_resources
    #   Allocate compute resources by instance types.
    #   @return [Array<Types::ComputeQuotaResourceConfig>]
    #
    # @!attribute [rw] resource_sharing_config
    #   Resource sharing configuration. This defines how an entity can lend
    #   and borrow idle compute with other entities within the cluster.
    #   @return [Types::ResourceSharingConfig]
    #
    # @!attribute [rw] preempt_team_tasks
    #   Allows workloads from within an entity to preempt same-team
    #   workloads. When set to `LowerPriority`, the entity's lower priority
    #   tasks are preempted by their own higher priority tasks.
    #
    #   Default is `LowerPriority`.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ComputeQuotaConfig AWS API Documentation
    #
    class ComputeQuotaConfig < Struct.new(
      :compute_quota_resources,
      :resource_sharing_config,
      :preempt_team_tasks)
      SENSITIVE = []
      include Aws::Structure
    end

    # Configuration of the resources used for the compute allocation
    # definition.
    #
    # @!attribute [rw] instance_type
    #   The instance type of the instance group for the cluster.
    #   @return [String]
    #
    # @!attribute [rw] count
    #   The number of instances to add to the instance group of a SageMaker
    #   HyperPod cluster.
    #   @return [Integer]
    #
    # @!attribute [rw] accelerators
    #   The number of accelerators to allocate. If you don't specify a
    #   value for vCPU and MemoryInGiB, SageMaker AI automatically allocates
    #   ratio-based values for those parameters based on the number of
    #   accelerators you provide. For example, if you allocate 16 out of 32
    #   total accelerators, SageMaker AI uses the ratio of 0.5 and allocates
    #   values to vCPU and MemoryInGiB.
    #   @return [Integer]
    #
    # @!attribute [rw] v_cpu
    #   The number of vCPU to allocate. If you specify a value only for
    #   vCPU, SageMaker AI automatically allocates ratio-based values for
    #   MemoryInGiB based on this vCPU parameter. For example, if you
    #   allocate 20 out of 40 total vCPU, SageMaker AI uses the ratio of 0.5
    #   and allocates values to MemoryInGiB. Accelerators are set to 0.
    #   @return [Float]
    #
    # @!attribute [rw] memory_in_gi_b
    #   The amount of memory in GiB to allocate. If you specify a value only
    #   for this parameter, SageMaker AI automatically allocates a
    #   ratio-based value for vCPU based on this memory that you provide.
    #   For example, if you allocate 200 out of 400 total memory in GiB,
    #   SageMaker AI uses the ratio of 0.5 and allocates values to vCPU.
    #   Accelerators are set to 0.
    #   @return [Float]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ComputeQuotaResourceConfig AWS API Documentation
    #
    class ComputeQuotaResourceConfig < Struct.new(
      :instance_type,
      :count,
      :accelerators,
      :v_cpu,
      :memory_in_gi_b)
      SENSITIVE = []
      include Aws::Structure
    end

    # Summary of the compute allocation definition.
    #
    # @!attribute [rw] compute_quota_arn
    #   ARN of the compute allocation definition.
    #   @return [String]
    #
    # @!attribute [rw] compute_quota_id
    #   ID of the compute allocation definition.
    #   @return [String]
    #
    # @!attribute [rw] name
    #   Name of the compute allocation definition.
    #   @return [String]
    #
    # @!attribute [rw] compute_quota_version
    #   Version of the compute allocation definition.
    #   @return [Integer]
    #
    # @!attribute [rw] status
    #   Status of the compute allocation definition.
    #   @return [String]
    #
    # @!attribute [rw] cluster_arn
    #   ARN of the cluster.
    #   @return [String]
    #
    # @!attribute [rw] compute_quota_config
    #   Configuration of the compute allocation definition. This includes
    #   the resource sharing option, and the setting to preempt low priority
    #   tasks.
    #   @return [Types::ComputeQuotaConfig]
    #
    # @!attribute [rw] compute_quota_target
    #   The target entity to allocate compute resources to.
    #   @return [Types::ComputeQuotaTarget]
    #
    # @!attribute [rw] activation_state
    #   The state of the compute allocation being described. Use to enable
    #   or disable compute allocation.
    #
    #   Default is `Enabled`.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   Creation time of the compute allocation definition.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time
    #   Last modified time of the compute allocation definition.
    #   @return [Time]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ComputeQuotaSummary AWS API Documentation
    #
    class ComputeQuotaSummary < Struct.new(
      :compute_quota_arn,
      :compute_quota_id,
      :name,
      :compute_quota_version,
      :status,
      :cluster_arn,
      :compute_quota_config,
      :compute_quota_target,
      :activation_state,
      :creation_time,
      :last_modified_time)
      SENSITIVE = []
      include Aws::Structure
    end

    # The target entity to allocate compute resources to.
    #
    # @!attribute [rw] team_name
    #   Name of the team to allocate compute resources to.
    #   @return [String]
    #
    # @!attribute [rw] fair_share_weight
    #   Assigned entity fair-share weight. Idle compute will be shared
    #   across entities based on these assigned weights. This weight is only
    #   used when `FairShare` is enabled.
    #
    #   A weight of 0 is the lowest priority and 100 is the highest. Weight
    #   0 is the default.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ComputeQuotaTarget AWS API Documentation
    #
    class ComputeQuotaTarget < Struct.new(
      :team_name,
      :fair_share_weight)
      SENSITIVE = []
      include Aws::Structure
    end

    # Metadata for a Condition step.
    #
    # @!attribute [rw] outcome
    #   The outcome of the Condition step evaluation.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ConditionStepMetadata AWS API Documentation
    #
    class ConditionStepMetadata < Struct.new(
      :outcome)
      SENSITIVE = []
      include Aws::Structure
    end

    # There was a conflict when you attempted to modify a SageMaker entity
    # such as an `Experiment` or `Artifact`.
    #
    # @!attribute [rw] message
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ConflictException AWS API Documentation
    #
    class ConflictException < Struct.new(
      :message)
      SENSITIVE = []
      include Aws::Structure
    end

    # The configuration used to run the application image container.
    #
    # @!attribute [rw] container_arguments
    #   The arguments for the container when you're running the
    #   application.
    #   @return [Array<String>]
    #
    # @!attribute [rw] container_entrypoint
    #   The entrypoint used to run the application in the container.
    #   @return [Array<String>]
    #
    # @!attribute [rw] container_environment_variables
    #   The environment variables to set in the container
    #   @return [Hash<String,String>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ContainerConfig AWS API Documentation
    #
    class ContainerConfig < Struct.new(
      :container_arguments,
      :container_entrypoint,
      :container_environment_variables)
      SENSITIVE = []
      include Aws::Structure
    end

    # Describes the container, as part of model definition.
    #
    # @!attribute [rw] container_hostname
    #   This parameter is ignored for models that contain only a
    #   `PrimaryContainer`.
    #
    #   When a `ContainerDefinition` is part of an inference pipeline, the
    #   value of the parameter uniquely identifies the container for the
    #   purposes of logging and metrics. For information, see [Use Logs and
    #   Metrics to Monitor an Inference Pipeline][1]. If you don't specify
    #   a value for this parameter for a `ContainerDefinition` that is part
    #   of an inference pipeline, a unique name is automatically assigned
    #   based on the position of the `ContainerDefinition` in the pipeline.
    #   If you specify a value for the `ContainerHostName` for any
    #   `ContainerDefinition` that is part of an inference pipeline, you
    #   must specify a value for the `ContainerHostName` parameter of every
    #   `ContainerDefinition` in that pipeline.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/inference-pipeline-logs-metrics.html
    #   @return [String]
    #
    # @!attribute [rw] image
    #   The path where inference code is stored. This can be either in
    #   Amazon EC2 Container Registry or in a Docker registry that is
    #   accessible from the same VPC that you configure for your endpoint.
    #   If you are using your own custom algorithm instead of an algorithm
    #   provided by SageMaker, the inference code must meet SageMaker
    #   requirements. SageMaker supports both `registry/repository[:tag]`
    #   and `registry/repository[@digest]` image path formats. For more
    #   information, see [Using Your Own Algorithms with Amazon
    #   SageMaker][1].
    #
    #   <note markdown="1"> The model artifacts in an Amazon S3 bucket and the Docker image for
    #   inference container in Amazon EC2 Container Registry must be in the
    #   same region as the model or endpoint you are creating.
    #
    #    </note>
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms.html
    #   @return [String]
    #
    # @!attribute [rw] image_config
    #   Specifies whether the model container is in Amazon ECR or a private
    #   Docker registry accessible from your Amazon Virtual Private Cloud
    #   (VPC). For information about storing containers in a private Docker
    #   registry, see [Use a Private Docker Registry for Real-Time Inference
    #   Containers][1].
    #
    #   <note markdown="1"> The model artifacts in an Amazon S3 bucket and the Docker image for
    #   inference container in Amazon EC2 Container Registry must be in the
    #   same region as the model or endpoint you are creating.
    #
    #    </note>
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms-containers-inference-private.html
    #   @return [Types::ImageConfig]
    #
    # @!attribute [rw] mode
    #   Whether the container hosts a single model or multiple models.
    #   @return [String]
    #
    # @!attribute [rw] model_data_url
    #   The S3 path where the model artifacts, which result from model
    #   training, are stored. This path must point to a single gzip
    #   compressed tar archive (.tar.gz suffix). The S3 path is required for
    #   SageMaker built-in algorithms, but not if you use your own
    #   algorithms. For more information on built-in algorithms, see [Common
    #   Parameters][1].
    #
    #   <note markdown="1"> The model artifacts must be in an S3 bucket that is in the same
    #   region as the model or endpoint you are creating.
    #
    #    </note>
    #
    #   If you provide a value for this parameter, SageMaker uses Amazon Web
    #   Services Security Token Service to download model artifacts from the
    #   S3 path you provide. Amazon Web Services STS is activated in your
    #   Amazon Web Services account by default. If you previously
    #   deactivated Amazon Web Services STS for a region, you need to
    #   reactivate Amazon Web Services STS for that region. For more
    #   information, see [Activating and Deactivating Amazon Web Services
    #   STS in an Amazon Web Services Region][2] in the *Amazon Web Services
    #   Identity and Access Management User Guide*.
    #
    #   If you use a built-in algorithm to create a model, SageMaker
    #   requires that you provide a S3 path to the model artifacts in
    #   `ModelDataUrl`.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-algo-docker-registry-paths.html
    #   [2]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html
    #   @return [String]
    #
    # @!attribute [rw] model_data_source
    #   Specifies the location of ML model data to deploy.
    #
    #   <note markdown="1"> Currently you cannot use `ModelDataSource` in conjunction with
    #   SageMaker batch transform, SageMaker serverless endpoints, SageMaker
    #   multi-model endpoints, and SageMaker Marketplace.
    #
    #    </note>
    #   @return [Types::ModelDataSource]
    #
    # @!attribute [rw] additional_model_data_sources
    #   Data sources that are available to your model in addition to the one
    #   that you specify for `ModelDataSource` when you use the
    #   `CreateModel` action.
    #   @return [Array<Types::AdditionalModelDataSource>]
    #
    # @!attribute [rw] environment
    #   The environment variables to set in the Docker container. Don't
    #   include any sensitive data in your environment variables.
    #
    #   The maximum length of each key and value in the `Environment` map is
    #   1024 bytes. The maximum length of all keys and values in the map,
    #   combined, is 32 KB. If you pass multiple containers to a
    #   `CreateModel` request, then the maximum length of all of their maps,
    #   combined, is also 32 KB.
    #   @return [Hash<String,String>]
    #
    # @!attribute [rw] model_package_name
    #   The name or Amazon Resource Name (ARN) of the model package to use
    #   to create the model.
    #   @return [String]
    #
    # @!attribute [rw] inference_specification_name
    #   The inference specification name in the model package version.
    #   @return [String]
    #
    # @!attribute [rw] multi_model_config
    #   Specifies additional configuration for multi-model endpoints.
    #   @return [Types::MultiModelConfig]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ContainerDefinition AWS API Documentation
    #
    class ContainerDefinition < Struct.new(
      :container_hostname,
      :image,
      :image_config,
      :mode,
      :model_data_url,
      :model_data_source,
      :additional_model_data_sources,
      :environment,
      :model_package_name,
      :inference_specification_name,
      :multi_model_config)
      SENSITIVE = []
      include Aws::Structure
    end

    # A structure describing the source of a context.
    #
    # @!attribute [rw] source_uri
    #   The URI of the source.
    #   @return [String]
    #
    # @!attribute [rw] source_type
    #   The type of the source.
    #   @return [String]
    #
    # @!attribute [rw] source_id
    #   The ID of the source.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ContextSource AWS API Documentation
    #
    class ContextSource < Struct.new(
      :source_uri,
      :source_type,
      :source_id)
      SENSITIVE = []
      include Aws::Structure
    end

    # Lists a summary of the properties of a context. A context provides a
    # logical grouping of other entities.
    #
    # @!attribute [rw] context_arn
    #   The Amazon Resource Name (ARN) of the context.
    #   @return [String]
    #
    # @!attribute [rw] context_name
    #   The name of the context.
    #   @return [String]
    #
    # @!attribute [rw] source
    #   The source of the context.
    #   @return [Types::ContextSource]
    #
    # @!attribute [rw] context_type
    #   The type of the context.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   When the context was created.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time
    #   When the context was last modified.
    #   @return [Time]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ContextSummary AWS API Documentation
    #
    class ContextSummary < Struct.new(
      :context_arn,
      :context_name,
      :source,
      :context_type,
      :creation_time,
      :last_modified_time)
      SENSITIVE = []
      include Aws::Structure
    end

    # A list of continuous hyperparameters to tune.
    #
    # @!attribute [rw] name
    #   The name of the continuous hyperparameter to tune.
    #   @return [String]
    #
    # @!attribute [rw] min_value
    #   The minimum value for the hyperparameter. The tuning job uses
    #   floating-point values between this value and `MaxValue`for tuning.
    #   @return [String]
    #
    # @!attribute [rw] max_value
    #   The maximum value for the hyperparameter. The tuning job uses
    #   floating-point values between `MinValue` value and this value for
    #   tuning.
    #   @return [String]
    #
    # @!attribute [rw] scaling_type
    #   The scale that hyperparameter tuning uses to search the
    #   hyperparameter range. For information about choosing a
    #   hyperparameter scale, see [Hyperparameter Scaling][1]. One of the
    #   following values:
    #
    #   Auto
    #
    #   : SageMaker hyperparameter tuning chooses the best scale for the
    #     hyperparameter.
    #
    #   Linear
    #
    #   : Hyperparameter tuning searches the values in the hyperparameter
    #     range by using a linear scale.
    #
    #   Logarithmic
    #
    #   : Hyperparameter tuning searches the values in the hyperparameter
    #     range by using a logarithmic scale.
    #
    #     Logarithmic scaling works only for ranges that have only values
    #     greater than 0.
    #
    #   ReverseLogarithmic
    #
    #   : Hyperparameter tuning searches the values in the hyperparameter
    #     range by using a reverse logarithmic scale.
    #
    #     Reverse logarithmic scaling works only for ranges that are
    #     entirely within the range 0&lt;=x&lt;1.0.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-define-ranges.html#scaling-type
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ContinuousParameterRange AWS API Documentation
    #
    class ContinuousParameterRange < Struct.new(
      :name,
      :min_value,
      :max_value,
      :scaling_type)
      SENSITIVE = []
      include Aws::Structure
    end

    # Defines the possible values for a continuous hyperparameter.
    #
    # @!attribute [rw] min_value
    #   The minimum floating-point value allowed.
    #   @return [String]
    #
    # @!attribute [rw] max_value
    #   The maximum floating-point value allowed.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ContinuousParameterRangeSpecification AWS API Documentation
    #
    class ContinuousParameterRangeSpecification < Struct.new(
      :min_value,
      :max_value)
      SENSITIVE = []
      include Aws::Structure
    end

    # A flag to indicating that automatic model tuning (AMT) has detected
    # model convergence, defined as a lack of significant improvement (1% or
    # less) against an objective metric.
    #
    # @!attribute [rw] complete_on_convergence
    #   A flag to stop a tuning job once AMT has detected that the job has
    #   converged.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ConvergenceDetected AWS API Documentation
    #
    class ConvergenceDetected < Struct.new(
      :complete_on_convergence)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] action_name
    #   The name of the action. Must be unique to your account in an Amazon
    #   Web Services Region.
    #   @return [String]
    #
    # @!attribute [rw] source
    #   The source type, ID, and URI.
    #   @return [Types::ActionSource]
    #
    # @!attribute [rw] action_type
    #   The action type.
    #   @return [String]
    #
    # @!attribute [rw] description
    #   The description of the action.
    #   @return [String]
    #
    # @!attribute [rw] status
    #   The status of the action.
    #   @return [String]
    #
    # @!attribute [rw] properties
    #   A list of properties to add to the action.
    #   @return [Hash<String,String>]
    #
    # @!attribute [rw] metadata_properties
    #   Metadata properties of the tracking entity, trial, or trial
    #   component.
    #   @return [Types::MetadataProperties]
    #
    # @!attribute [rw] tags
    #   A list of tags to apply to the action.
    #   @return [Array<Types::Tag>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateActionRequest AWS API Documentation
    #
    class CreateActionRequest < Struct.new(
      :action_name,
      :source,
      :action_type,
      :description,
      :status,
      :properties,
      :metadata_properties,
      :tags)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] action_arn
    #   The Amazon Resource Name (ARN) of the action.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateActionResponse AWS API Documentation
    #
    class CreateActionResponse < Struct.new(
      :action_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] algorithm_name
    #   The name of the algorithm.
    #   @return [String]
    #
    # @!attribute [rw] algorithm_description
    #   A description of the algorithm.
    #   @return [String]
    #
    # @!attribute [rw] training_specification
    #   Specifies details about training jobs run by this algorithm,
    #   including the following:
    #
    #   * The Amazon ECR path of the container and the version digest of the
    #     algorithm.
    #
    #   * The hyperparameters that the algorithm supports.
    #
    #   * The instance types that the algorithm supports for training.
    #
    #   * Whether the algorithm supports distributed training.
    #
    #   * The metrics that the algorithm emits to Amazon CloudWatch.
    #
    #   * Which metrics that the algorithm emits can be used as the
    #     objective metric for hyperparameter tuning jobs.
    #
    #   * The input channels that the algorithm supports for training data.
    #     For example, an algorithm might support `train`, `validation`, and
    #     `test` channels.
    #   @return [Types::TrainingSpecification]
    #
    # @!attribute [rw] inference_specification
    #   Specifies details about inference jobs that the algorithm runs,
    #   including the following:
    #
    #   * The Amazon ECR paths of containers that contain the inference code
    #     and model artifacts.
    #
    #   * The instance types that the algorithm supports for transform jobs
    #     and real-time endpoints used for inference.
    #
    #   * The input and output content formats that the algorithm supports
    #     for inference.
    #   @return [Types::InferenceSpecification]
    #
    # @!attribute [rw] validation_specification
    #   Specifies configurations for one or more training jobs and that
    #   SageMaker runs to test the algorithm's training code and,
    #   optionally, one or more batch transform jobs that SageMaker runs to
    #   test the algorithm's inference code.
    #   @return [Types::AlgorithmValidationSpecification]
    #
    # @!attribute [rw] certify_for_marketplace
    #   Whether to certify the algorithm so that it can be listed in Amazon
    #   Web Services Marketplace.
    #   @return [Boolean]
    #
    # @!attribute [rw] tags
    #   An array of key-value pairs. You can use tags to categorize your
    #   Amazon Web Services resources in different ways, for example, by
    #   purpose, owner, or environment. For more information, see [Tagging
    #   Amazon Web Services Resources][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html
    #   @return [Array<Types::Tag>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateAlgorithmInput AWS API Documentation
    #
    class CreateAlgorithmInput < Struct.new(
      :algorithm_name,
      :algorithm_description,
      :training_specification,
      :inference_specification,
      :validation_specification,
      :certify_for_marketplace,
      :tags)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] algorithm_arn
    #   The Amazon Resource Name (ARN) of the new algorithm.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateAlgorithmOutput AWS API Documentation
    #
    class CreateAlgorithmOutput < Struct.new(
      :algorithm_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] app_image_config_name
    #   The name of the AppImageConfig. Must be unique to your account.
    #   @return [String]
    #
    # @!attribute [rw] tags
    #   A list of tags to apply to the AppImageConfig.
    #   @return [Array<Types::Tag>]
    #
    # @!attribute [rw] kernel_gateway_image_config
    #   The KernelGatewayImageConfig. You can only specify one image kernel
    #   in the AppImageConfig API. This kernel will be shown to users before
    #   the image starts. Once the image runs, all kernels are visible in
    #   JupyterLab.
    #   @return [Types::KernelGatewayImageConfig]
    #
    # @!attribute [rw] jupyter_lab_app_image_config
    #   The `JupyterLabAppImageConfig`. You can only specify one image
    #   kernel in the `AppImageConfig` API. This kernel is shown to users
    #   before the image starts. After the image runs, all kernels are
    #   visible in JupyterLab.
    #   @return [Types::JupyterLabAppImageConfig]
    #
    # @!attribute [rw] code_editor_app_image_config
    #   The `CodeEditorAppImageConfig`. You can only specify one image
    #   kernel in the AppImageConfig API. This kernel is shown to users
    #   before the image starts. After the image runs, all kernels are
    #   visible in Code Editor.
    #   @return [Types::CodeEditorAppImageConfig]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateAppImageConfigRequest AWS API Documentation
    #
    class CreateAppImageConfigRequest < Struct.new(
      :app_image_config_name,
      :tags,
      :kernel_gateway_image_config,
      :jupyter_lab_app_image_config,
      :code_editor_app_image_config)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] app_image_config_arn
    #   The ARN of the AppImageConfig.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateAppImageConfigResponse AWS API Documentation
    #
    class CreateAppImageConfigResponse < Struct.new(
      :app_image_config_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] domain_id
    #   The domain ID.
    #   @return [String]
    #
    # @!attribute [rw] user_profile_name
    #   The user profile name. If this value is not set, then `SpaceName`
    #   must be set.
    #   @return [String]
    #
    # @!attribute [rw] space_name
    #   The name of the space. If this value is not set, then
    #   `UserProfileName` must be set.
    #   @return [String]
    #
    # @!attribute [rw] app_type
    #   The type of app.
    #   @return [String]
    #
    # @!attribute [rw] app_name
    #   The name of the app.
    #   @return [String]
    #
    # @!attribute [rw] tags
    #   Each tag consists of a key and an optional value. Tag keys must be
    #   unique per resource.
    #   @return [Array<Types::Tag>]
    #
    # @!attribute [rw] resource_spec
    #   The instance type and the Amazon Resource Name (ARN) of the
    #   SageMaker AI image created on the instance.
    #
    #   <note markdown="1"> The value of `InstanceType` passed as part of the `ResourceSpec` in
    #   the `CreateApp` call overrides the value passed as part of the
    #   `ResourceSpec` configured for the user profile or the domain. If
    #   `InstanceType` is not specified in any of those three `ResourceSpec`
    #   values for a `KernelGateway` app, the `CreateApp` call fails with a
    #   request validation error.
    #
    #    </note>
    #   @return [Types::ResourceSpec]
    #
    # @!attribute [rw] recovery_mode
    #   Indicates whether the application is launched in recovery mode.
    #   @return [Boolean]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateAppRequest AWS API Documentation
    #
    class CreateAppRequest < Struct.new(
      :domain_id,
      :user_profile_name,
      :space_name,
      :app_type,
      :app_name,
      :tags,
      :resource_spec,
      :recovery_mode)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] app_arn
    #   The Amazon Resource Name (ARN) of the app.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateAppResponse AWS API Documentation
    #
    class CreateAppResponse < Struct.new(
      :app_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] artifact_name
    #   The name of the artifact. Must be unique to your account in an
    #   Amazon Web Services Region.
    #   @return [String]
    #
    # @!attribute [rw] source
    #   The ID, ID type, and URI of the source.
    #   @return [Types::ArtifactSource]
    #
    # @!attribute [rw] artifact_type
    #   The artifact type.
    #   @return [String]
    #
    # @!attribute [rw] properties
    #   A list of properties to add to the artifact.
    #   @return [Hash<String,String>]
    #
    # @!attribute [rw] metadata_properties
    #   Metadata properties of the tracking entity, trial, or trial
    #   component.
    #   @return [Types::MetadataProperties]
    #
    # @!attribute [rw] tags
    #   A list of tags to apply to the artifact.
    #   @return [Array<Types::Tag>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateArtifactRequest AWS API Documentation
    #
    class CreateArtifactRequest < Struct.new(
      :artifact_name,
      :source,
      :artifact_type,
      :properties,
      :metadata_properties,
      :tags)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] artifact_arn
    #   The Amazon Resource Name (ARN) of the artifact.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateArtifactResponse AWS API Documentation
    #
    class CreateArtifactResponse < Struct.new(
      :artifact_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] auto_ml_job_name
    #   Identifies an Autopilot job. The name must be unique to your account
    #   and is case insensitive.
    #   @return [String]
    #
    # @!attribute [rw] input_data_config
    #   An array of channel objects that describes the input data and its
    #   location. Each channel is a named input source. Similar to
    #   `InputDataConfig` supported by
    #   [HyperParameterTrainingJobDefinition][1]. Format(s) supported: CSV,
    #   Parquet. A minimum of 500 rows is required for the training dataset.
    #   There is not a minimum number of rows required for the validation
    #   dataset.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_HyperParameterTrainingJobDefinition.html
    #   @return [Array<Types::AutoMLChannel>]
    #
    # @!attribute [rw] output_data_config
    #   Provides information about encryption and the Amazon S3 output path
    #   needed to store artifacts from an AutoML job. Format(s) supported:
    #   CSV.
    #   @return [Types::AutoMLOutputDataConfig]
    #
    # @!attribute [rw] problem_type
    #   Defines the type of supervised learning problem available for the
    #   candidates. For more information, see [ SageMaker Autopilot problem
    #   types][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-datasets-problem-types.html#autopilot-problem-types
    #   @return [String]
    #
    # @!attribute [rw] auto_ml_job_objective
    #   Specifies a metric to minimize or maximize as the objective of a
    #   job. If not specified, the default objective metric depends on the
    #   problem type. See [AutoMLJobObjective][1] for the default values.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLJobObjective.html
    #   @return [Types::AutoMLJobObjective]
    #
    # @!attribute [rw] auto_ml_job_config
    #   A collection of settings used to configure an AutoML job.
    #   @return [Types::AutoMLJobConfig]
    #
    # @!attribute [rw] role_arn
    #   The ARN of the role that is used to access the data.
    #   @return [String]
    #
    # @!attribute [rw] generate_candidate_definitions_only
    #   Generates possible candidates without training the models. A
    #   candidate is a combination of data preprocessors, algorithms, and
    #   algorithm parameter settings.
    #   @return [Boolean]
    #
    # @!attribute [rw] tags
    #   An array of key-value pairs. You can use tags to categorize your
    #   Amazon Web Services resources in different ways, for example, by
    #   purpose, owner, or environment. For more information, see [Tagging
    #   Amazon Web ServicesResources][1]. Tag keys must be unique per
    #   resource.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html
    #   @return [Array<Types::Tag>]
    #
    # @!attribute [rw] model_deploy_config
    #   Specifies how to generate the endpoint name for an automatic
    #   one-click Autopilot model deployment.
    #   @return [Types::ModelDeployConfig]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateAutoMLJobRequest AWS API Documentation
    #
    class CreateAutoMLJobRequest < Struct.new(
      :auto_ml_job_name,
      :input_data_config,
      :output_data_config,
      :problem_type,
      :auto_ml_job_objective,
      :auto_ml_job_config,
      :role_arn,
      :generate_candidate_definitions_only,
      :tags,
      :model_deploy_config)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] auto_ml_job_arn
    #   The unique ARN assigned to the AutoML job when it is created.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateAutoMLJobResponse AWS API Documentation
    #
    class CreateAutoMLJobResponse < Struct.new(
      :auto_ml_job_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] auto_ml_job_name
    #   Identifies an Autopilot job. The name must be unique to your account
    #   and is case insensitive.
    #   @return [String]
    #
    # @!attribute [rw] auto_ml_job_input_data_config
    #   An array of channel objects describing the input data and their
    #   location. Each channel is a named input source. Similar to the
    #   [InputDataConfig][1] attribute in the `CreateAutoMLJob` input
    #   parameters. The supported formats depend on the problem type:
    #
    #   * For tabular problem types: `S3Prefix`, `ManifestFile`.
    #
    #   * For image classification: `S3Prefix`, `ManifestFile`,
    #     `AugmentedManifestFile`.
    #
    #   * For text classification: `S3Prefix`.
    #
    #   * For time-series forecasting: `S3Prefix`.
    #
    #   * For text generation (LLMs fine-tuning): `S3Prefix`.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJob.html#sagemaker-CreateAutoMLJob-request-InputDataConfig
    #   @return [Array<Types::AutoMLJobChannel>]
    #
    # @!attribute [rw] output_data_config
    #   Provides information about encryption and the Amazon S3 output path
    #   needed to store artifacts from an AutoML job.
    #   @return [Types::AutoMLOutputDataConfig]
    #
    # @!attribute [rw] auto_ml_problem_type_config
    #   Defines the configuration settings of one of the supported problem
    #   types.
    #   @return [Types::AutoMLProblemTypeConfig]
    #
    # @!attribute [rw] role_arn
    #   The ARN of the role that is used to access the data.
    #   @return [String]
    #
    # @!attribute [rw] tags
    #   An array of key-value pairs. You can use tags to categorize your
    #   Amazon Web Services resources in different ways, such as by purpose,
    #   owner, or environment. For more information, see [Tagging Amazon Web
    #   ServicesResources][1]. Tag keys must be unique per resource.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html
    #   @return [Array<Types::Tag>]
    #
    # @!attribute [rw] security_config
    #   The security configuration for traffic encryption or Amazon VPC
    #   settings.
    #   @return [Types::AutoMLSecurityConfig]
    #
    # @!attribute [rw] auto_ml_job_objective
    #   Specifies a metric to minimize or maximize as the objective of a
    #   job. If not specified, the default objective metric depends on the
    #   problem type. For the list of default values per problem type, see
    #   [AutoMLJobObjective][1].
    #
    #   <note markdown="1"> * For tabular problem types: You must either provide both the
    #     `AutoMLJobObjective` and indicate the type of supervised learning
    #     problem in `AutoMLProblemTypeConfig`
    #     (`TabularJobConfig.ProblemType`), or none at all.
    #
    #   * For text generation problem types (LLMs fine-tuning): Fine-tuning
    #     language models in Autopilot does not require setting the
    #     `AutoMLJobObjective` field. Autopilot fine-tunes LLMs without
    #     requiring multiple candidates to be trained and evaluated.
    #     Instead, using your dataset, Autopilot directly fine-tunes your
    #     target model to enhance a default objective metric, the
    #     cross-entropy loss. After fine-tuning a language model, you can
    #     evaluate the quality of its generated text using different
    #     metrics. For a list of the available metrics, see [Metrics for
    #     fine-tuning LLMs in Autopilot][2].
    #
    #    </note>
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLJobObjective.html
    #   [2]: https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-llms-finetuning-metrics.html
    #   @return [Types::AutoMLJobObjective]
    #
    # @!attribute [rw] model_deploy_config
    #   Specifies how to generate the endpoint name for an automatic
    #   one-click Autopilot model deployment.
    #   @return [Types::ModelDeployConfig]
    #
    # @!attribute [rw] data_split_config
    #   This structure specifies how to split the data into train and
    #   validation datasets.
    #
    #   The validation and training datasets must contain the same headers.
    #   For jobs created by calling `CreateAutoMLJob`, the validation
    #   dataset must be less than 2 GB in size.
    #
    #   <note markdown="1"> This attribute must not be set for the time-series forecasting
    #   problem type, as Autopilot automatically splits the input dataset
    #   into training and validation sets.
    #
    #    </note>
    #   @return [Types::AutoMLDataSplitConfig]
    #
    # @!attribute [rw] auto_ml_compute_config
    #   Specifies the compute configuration for the AutoML job V2.
    #   @return [Types::AutoMLComputeConfig]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateAutoMLJobV2Request AWS API Documentation
    #
    class CreateAutoMLJobV2Request < Struct.new(
      :auto_ml_job_name,
      :auto_ml_job_input_data_config,
      :output_data_config,
      :auto_ml_problem_type_config,
      :role_arn,
      :tags,
      :security_config,
      :auto_ml_job_objective,
      :model_deploy_config,
      :data_split_config,
      :auto_ml_compute_config)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] auto_ml_job_arn
    #   The unique ARN assigned to the AutoMLJob when it is created.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateAutoMLJobV2Response AWS API Documentation
    #
    class CreateAutoMLJobV2Response < Struct.new(
      :auto_ml_job_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] cluster_name
    #   The name for the new SageMaker HyperPod cluster.
    #   @return [String]
    #
    # @!attribute [rw] instance_groups
    #   The instance groups to be created in the SageMaker HyperPod cluster.
    #   @return [Array<Types::ClusterInstanceGroupSpecification>]
    #
    # @!attribute [rw] restricted_instance_groups
    #   The specialized instance groups for training models like Amazon Nova
    #   to be created in the SageMaker HyperPod cluster.
    #   @return [Array<Types::ClusterRestrictedInstanceGroupSpecification>]
    #
    # @!attribute [rw] vpc_config
    #   Specifies the Amazon Virtual Private Cloud (VPC) that is associated
    #   with the Amazon SageMaker HyperPod cluster. You can control access
    #   to and from your resources by configuring your VPC. For more
    #   information, see [Give SageMaker access to resources in your Amazon
    #   VPC][1].
    #
    #   <note markdown="1"> When your Amazon VPC and subnets support IPv6, network
    #   communications differ based on the cluster orchestration platform:
    #
    #    * Slurm-orchestrated clusters automatically configure nodes with
    #     dual IPv6 and IPv4 addresses, allowing immediate IPv6 network
    #     communications.
    #
    #   * In Amazon EKS-orchestrated clusters, nodes receive dual-stack
    #     addressing, but pods can only use IPv6 when the Amazon EKS cluster
    #     is explicitly IPv6-enabled. For information about deploying an
    #     IPv6 Amazon EKS cluster, see [Amazon EKS IPv6 Cluster
    #     Deployment][2].
    #
    #    Additional resources for IPv6 configuration:
    #
    #    * For information about adding IPv6 support to your VPC, see to
    #     [IPv6 Support for VPC][3].
    #
    #   * For information about creating a new IPv6-compatible VPC, see
    #     [Amazon VPC Creation Guide][4].
    #
    #   * To configure SageMaker HyperPod with a custom Amazon VPC, see
    #     [Custom Amazon VPC Setup for SageMaker HyperPod][5].
    #
    #    </note>
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/infrastructure-give-access.html
    #   [2]: https://docs.aws.amazon.com/eks/latest/userguide/deploy-ipv6-cluster.html#_deploy_an_ipv6_cluster_with_eksctl
    #   [3]: https://docs.aws.amazon.com/vpc/latest/userguide/vpc-migrate-ipv6.html
    #   [4]: https://docs.aws.amazon.com/vpc/latest/userguide/create-vpc.html
    #   [5]: https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-prerequisites.html#sagemaker-hyperpod-prerequisites-optional-vpc
    #   @return [Types::VpcConfig]
    #
    # @!attribute [rw] tags
    #   Custom tags for managing the SageMaker HyperPod cluster as an Amazon
    #   Web Services resource. You can add tags to your cluster in the same
    #   way you add them in other Amazon Web Services services that support
    #   tagging. To learn more about tagging Amazon Web Services resources
    #   in general, see [Tagging Amazon Web Services Resources User
    #   Guide][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html
    #   @return [Array<Types::Tag>]
    #
    # @!attribute [rw] orchestrator
    #   The type of orchestrator to use for the SageMaker HyperPod cluster.
    #   Currently, the only supported value is `"eks"`, which is to use an
    #   Amazon Elastic Kubernetes Service cluster as the orchestrator.
    #   @return [Types::ClusterOrchestrator]
    #
    # @!attribute [rw] node_recovery
    #   The node recovery mode for the SageMaker HyperPod cluster. When set
    #   to `Automatic`, SageMaker HyperPod will automatically reboot or
    #   replace faulty nodes when issues are detected. When set to `None`,
    #   cluster administrators will need to manually manage any faulty
    #   cluster instances.
    #   @return [String]
    #
    # @!attribute [rw] tiered_storage_config
    #   The configuration for managed tier checkpointing on the HyperPod
    #   cluster. When enabled, this feature uses a multi-tier storage
    #   approach for storing model checkpoints, providing faster checkpoint
    #   operations and improved fault tolerance across cluster nodes.
    #   @return [Types::ClusterTieredStorageConfig]
    #
    # @!attribute [rw] node_provisioning_mode
    #   The mode for provisioning nodes in the cluster. You can specify the
    #   following modes:
    #
    #   * **Continuous**: Scaling behavior that enables 1) concurrent
    #     operation execution within instance groups, 2) continuous retry
    #     mechanisms for failed operations, 3) enhanced customer visibility
    #     into cluster events through detailed event streams, 4) partial
    #     provisioning capabilities. Your clusters and instance groups
    #     remain `InService` while scaling. This mode is only supported for
    #     EKS orchestrated clusters.
    #
    #   ^
    #   @return [String]
    #
    # @!attribute [rw] cluster_role
    #   The Amazon Resource Name (ARN) of the IAM role that HyperPod assumes
    #   to perform cluster autoscaling operations. This role must have
    #   permissions for `sagemaker:BatchAddClusterNodes` and
    #   `sagemaker:BatchDeleteClusterNodes`. This is only required when
    #   autoscaling is enabled and when HyperPod is performing autoscaling
    #   operations.
    #   @return [String]
    #
    # @!attribute [rw] auto_scaling
    #   The autoscaling configuration for the cluster. Enables automatic
    #   scaling of cluster nodes based on workload demand using a
    #   Karpenter-based system.
    #   @return [Types::ClusterAutoScalingConfig]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateClusterRequest AWS API Documentation
    #
    class CreateClusterRequest < Struct.new(
      :cluster_name,
      :instance_groups,
      :restricted_instance_groups,
      :vpc_config,
      :tags,
      :orchestrator,
      :node_recovery,
      :tiered_storage_config,
      :node_provisioning_mode,
      :cluster_role,
      :auto_scaling)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] cluster_arn
    #   The Amazon Resource Name (ARN) of the cluster.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateClusterResponse AWS API Documentation
    #
    class CreateClusterResponse < Struct.new(
      :cluster_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] name
    #   Name for the cluster policy.
    #   @return [String]
    #
    # @!attribute [rw] cluster_arn
    #   ARN of the cluster.
    #   @return [String]
    #
    # @!attribute [rw] scheduler_config
    #   Configuration about the monitoring schedule.
    #   @return [Types::SchedulerConfig]
    #
    # @!attribute [rw] description
    #   Description of the cluster policy.
    #   @return [String]
    #
    # @!attribute [rw] tags
    #   Tags of the cluster policy.
    #   @return [Array<Types::Tag>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateClusterSchedulerConfigRequest AWS API Documentation
    #
    class CreateClusterSchedulerConfigRequest < Struct.new(
      :name,
      :cluster_arn,
      :scheduler_config,
      :description,
      :tags)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] cluster_scheduler_config_arn
    #   ARN of the cluster policy.
    #   @return [String]
    #
    # @!attribute [rw] cluster_scheduler_config_id
    #   ID of the cluster policy.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateClusterSchedulerConfigResponse AWS API Documentation
    #
    class CreateClusterSchedulerConfigResponse < Struct.new(
      :cluster_scheduler_config_arn,
      :cluster_scheduler_config_id)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] code_repository_name
    #   The name of the Git repository. The name must have 1 to 63
    #   characters. Valid characters are a-z, A-Z, 0-9, and - (hyphen).
    #   @return [String]
    #
    # @!attribute [rw] git_config
    #   Specifies details about the repository, including the URL where the
    #   repository is located, the default branch, and credentials to use to
    #   access the repository.
    #   @return [Types::GitConfig]
    #
    # @!attribute [rw] tags
    #   An array of key-value pairs. You can use tags to categorize your
    #   Amazon Web Services resources in different ways, for example, by
    #   purpose, owner, or environment. For more information, see [Tagging
    #   Amazon Web Services Resources][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html
    #   @return [Array<Types::Tag>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateCodeRepositoryInput AWS API Documentation
    #
    class CreateCodeRepositoryInput < Struct.new(
      :code_repository_name,
      :git_config,
      :tags)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] code_repository_arn
    #   The Amazon Resource Name (ARN) of the new repository.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateCodeRepositoryOutput AWS API Documentation
    #
    class CreateCodeRepositoryOutput < Struct.new(
      :code_repository_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] compilation_job_name
    #   A name for the model compilation job. The name must be unique within
    #   the Amazon Web Services Region and within your Amazon Web Services
    #   account.
    #   @return [String]
    #
    # @!attribute [rw] role_arn
    #   The Amazon Resource Name (ARN) of an IAM role that enables Amazon
    #   SageMaker AI to perform tasks on your behalf.
    #
    #   During model compilation, Amazon SageMaker AI needs your permission
    #   to:
    #
    #   * Read input data from an S3 bucket
    #
    #   * Write model artifacts to an S3 bucket
    #
    #   * Write logs to Amazon CloudWatch Logs
    #
    #   * Publish metrics to Amazon CloudWatch
    #
    #   You grant permissions for all of these tasks to an IAM role. To pass
    #   this role to Amazon SageMaker AI, the caller of this API must have
    #   the `iam:PassRole` permission. For more information, see [Amazon
    #   SageMaker AI Roles.][1]
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html
    #   @return [String]
    #
    # @!attribute [rw] model_package_version_arn
    #   The Amazon Resource Name (ARN) of a versioned model package. Provide
    #   either a `ModelPackageVersionArn` or an `InputConfig` object in the
    #   request syntax. The presence of both objects in the
    #   `CreateCompilationJob` request will return an exception.
    #   @return [String]
    #
    # @!attribute [rw] input_config
    #   Provides information about the location of input model artifacts,
    #   the name and shape of the expected data inputs, and the framework in
    #   which the model was trained.
    #   @return [Types::InputConfig]
    #
    # @!attribute [rw] output_config
    #   Provides information about the output location for the compiled
    #   model and the target device the model runs on.
    #   @return [Types::OutputConfig]
    #
    # @!attribute [rw] vpc_config
    #   A [VpcConfig][1] object that specifies the VPC that you want your
    #   compilation job to connect to. Control access to your models by
    #   configuring the VPC. For more information, see [Protect Compilation
    #   Jobs by Using an Amazon Virtual Private Cloud][2].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_VpcConfig.html
    #   [2]: https://docs.aws.amazon.com/sagemaker/latest/dg/neo-vpc.html
    #   @return [Types::NeoVpcConfig]
    #
    # @!attribute [rw] stopping_condition
    #   Specifies a limit to how long a model compilation job can run. When
    #   the job reaches the time limit, Amazon SageMaker AI ends the
    #   compilation job. Use this API to cap model training costs.
    #   @return [Types::StoppingCondition]
    #
    # @!attribute [rw] tags
    #   An array of key-value pairs. You can use tags to categorize your
    #   Amazon Web Services resources in different ways, for example, by
    #   purpose, owner, or environment. For more information, see [Tagging
    #   Amazon Web Services Resources][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html
    #   @return [Array<Types::Tag>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateCompilationJobRequest AWS API Documentation
    #
    class CreateCompilationJobRequest < Struct.new(
      :compilation_job_name,
      :role_arn,
      :model_package_version_arn,
      :input_config,
      :output_config,
      :vpc_config,
      :stopping_condition,
      :tags)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] compilation_job_arn
    #   If the action is successful, the service sends back an HTTP 200
    #   response. Amazon SageMaker AI returns the following data in JSON
    #   format:
    #
    #   * `CompilationJobArn`: The Amazon Resource Name (ARN) of the
    #     compiled job.
    #
    #   ^
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateCompilationJobResponse AWS API Documentation
    #
    class CreateCompilationJobResponse < Struct.new(
      :compilation_job_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] name
    #   Name to the compute allocation definition.
    #   @return [String]
    #
    # @!attribute [rw] description
    #   Description of the compute allocation definition.
    #   @return [String]
    #
    # @!attribute [rw] cluster_arn
    #   ARN of the cluster.
    #   @return [String]
    #
    # @!attribute [rw] compute_quota_config
    #   Configuration of the compute allocation definition. This includes
    #   the resource sharing option, and the setting to preempt low priority
    #   tasks.
    #   @return [Types::ComputeQuotaConfig]
    #
    # @!attribute [rw] compute_quota_target
    #   The target entity to allocate compute resources to.
    #   @return [Types::ComputeQuotaTarget]
    #
    # @!attribute [rw] activation_state
    #   The state of the compute allocation being described. Use to enable
    #   or disable compute allocation.
    #
    #   Default is `Enabled`.
    #   @return [String]
    #
    # @!attribute [rw] tags
    #   Tags of the compute allocation definition.
    #   @return [Array<Types::Tag>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateComputeQuotaRequest AWS API Documentation
    #
    class CreateComputeQuotaRequest < Struct.new(
      :name,
      :description,
      :cluster_arn,
      :compute_quota_config,
      :compute_quota_target,
      :activation_state,
      :tags)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] compute_quota_arn
    #   ARN of the compute allocation definition.
    #   @return [String]
    #
    # @!attribute [rw] compute_quota_id
    #   ID of the compute allocation definition.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateComputeQuotaResponse AWS API Documentation
    #
    class CreateComputeQuotaResponse < Struct.new(
      :compute_quota_arn,
      :compute_quota_id)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] context_name
    #   The name of the context. Must be unique to your account in an Amazon
    #   Web Services Region.
    #   @return [String]
    #
    # @!attribute [rw] source
    #   The source type, ID, and URI.
    #   @return [Types::ContextSource]
    #
    # @!attribute [rw] context_type
    #   The context type.
    #   @return [String]
    #
    # @!attribute [rw] description
    #   The description of the context.
    #   @return [String]
    #
    # @!attribute [rw] properties
    #   A list of properties to add to the context.
    #   @return [Hash<String,String>]
    #
    # @!attribute [rw] tags
    #   A list of tags to apply to the context.
    #   @return [Array<Types::Tag>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateContextRequest AWS API Documentation
    #
    class CreateContextRequest < Struct.new(
      :context_name,
      :source,
      :context_type,
      :description,
      :properties,
      :tags)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] context_arn
    #   The Amazon Resource Name (ARN) of the context.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateContextResponse AWS API Documentation
    #
    class CreateContextResponse < Struct.new(
      :context_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] job_definition_name
    #   The name for the monitoring job definition.
    #   @return [String]
    #
    # @!attribute [rw] data_quality_baseline_config
    #   Configures the constraints and baselines for the monitoring job.
    #   @return [Types::DataQualityBaselineConfig]
    #
    # @!attribute [rw] data_quality_app_specification
    #   Specifies the container that runs the monitoring job.
    #   @return [Types::DataQualityAppSpecification]
    #
    # @!attribute [rw] data_quality_job_input
    #   A list of inputs for the monitoring job. Currently endpoints are
    #   supported as monitoring inputs.
    #   @return [Types::DataQualityJobInput]
    #
    # @!attribute [rw] data_quality_job_output_config
    #   The output configuration for monitoring jobs.
    #   @return [Types::MonitoringOutputConfig]
    #
    # @!attribute [rw] job_resources
    #   Identifies the resources to deploy for a monitoring job.
    #   @return [Types::MonitoringResources]
    #
    # @!attribute [rw] network_config
    #   Specifies networking configuration for the monitoring job.
    #   @return [Types::MonitoringNetworkConfig]
    #
    # @!attribute [rw] role_arn
    #   The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker
    #   AI can assume to perform tasks on your behalf.
    #   @return [String]
    #
    # @!attribute [rw] stopping_condition
    #   A time limit for how long the monitoring job is allowed to run
    #   before stopping.
    #   @return [Types::MonitoringStoppingCondition]
    #
    # @!attribute [rw] tags
    #   (Optional) An array of key-value pairs. For more information, see [
    #   Using Cost Allocation Tags][1] in the *Amazon Web Services Billing
    #   and Cost Management User Guide*.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html#allocation-whatURL
    #   @return [Array<Types::Tag>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateDataQualityJobDefinitionRequest AWS API Documentation
    #
    class CreateDataQualityJobDefinitionRequest < Struct.new(
      :job_definition_name,
      :data_quality_baseline_config,
      :data_quality_app_specification,
      :data_quality_job_input,
      :data_quality_job_output_config,
      :job_resources,
      :network_config,
      :role_arn,
      :stopping_condition,
      :tags)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] job_definition_arn
    #   The Amazon Resource Name (ARN) of the job definition.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateDataQualityJobDefinitionResponse AWS API Documentation
    #
    class CreateDataQualityJobDefinitionResponse < Struct.new(
      :job_definition_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] device_fleet_name
    #   The name of the fleet that the device belongs to.
    #   @return [String]
    #
    # @!attribute [rw] role_arn
    #   The Amazon Resource Name (ARN) that has access to Amazon Web
    #   Services Internet of Things (IoT).
    #   @return [String]
    #
    # @!attribute [rw] description
    #   A description of the fleet.
    #   @return [String]
    #
    # @!attribute [rw] output_config
    #   The output configuration for storing sample data collected by the
    #   fleet.
    #   @return [Types::EdgeOutputConfig]
    #
    # @!attribute [rw] tags
    #   Creates tags for the specified fleet.
    #   @return [Array<Types::Tag>]
    #
    # @!attribute [rw] enable_iot_role_alias
    #   Whether to create an Amazon Web Services IoT Role Alias during
    #   device fleet creation. The name of the role alias generated will
    #   match this pattern: "SageMakerEdge-\{DeviceFleetName}".
    #
    #   For example, if your device fleet is called "demo-fleet", the name
    #   of the role alias will be "SageMakerEdge-demo-fleet".
    #   @return [Boolean]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateDeviceFleetRequest AWS API Documentation
    #
    class CreateDeviceFleetRequest < Struct.new(
      :device_fleet_name,
      :role_arn,
      :description,
      :output_config,
      :tags,
      :enable_iot_role_alias)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] domain_name
    #   A name for the domain.
    #   @return [String]
    #
    # @!attribute [rw] auth_mode
    #   The mode of authentication that members use to access the domain.
    #   @return [String]
    #
    # @!attribute [rw] default_user_settings
    #   The default settings to use to create a user profile when
    #   `UserSettings` isn't specified in the call to the
    #   `CreateUserProfile` API.
    #
    #   `SecurityGroups` is aggregated when specified in both calls. For all
    #   other settings in `UserSettings`, the values specified in
    #   `CreateUserProfile` take precedence over those specified in
    #   `CreateDomain`.
    #   @return [Types::UserSettings]
    #
    # @!attribute [rw] domain_settings
    #   A collection of `Domain` settings.
    #   @return [Types::DomainSettings]
    #
    # @!attribute [rw] subnet_ids
    #   The VPC subnets that the domain uses for communication.
    #
    #   The field is optional when the `AppNetworkAccessType` parameter is
    #   set to `PublicInternetOnly` for domains created from Amazon
    #   SageMaker Unified Studio.
    #   @return [Array<String>]
    #
    # @!attribute [rw] vpc_id
    #   The ID of the Amazon Virtual Private Cloud (VPC) that the domain
    #   uses for communication.
    #
    #   The field is optional when the `AppNetworkAccessType` parameter is
    #   set to `PublicInternetOnly` for domains created from Amazon
    #   SageMaker Unified Studio.
    #   @return [String]
    #
    # @!attribute [rw] tags
    #   Tags to associated with the Domain. Each tag consists of a key and
    #   an optional value. Tag keys must be unique per resource. Tags are
    #   searchable using the `Search` API.
    #
    #   Tags that you specify for the Domain are also added to all Apps that
    #   the Domain launches.
    #   @return [Array<Types::Tag>]
    #
    # @!attribute [rw] app_network_access_type
    #   Specifies the VPC used for non-EFS traffic. The default value is
    #   `PublicInternetOnly`.
    #
    #   * `PublicInternetOnly` - Non-EFS traffic is through a VPC managed by
    #     Amazon SageMaker AI, which allows direct internet access
    #
    #   * `VpcOnly` - All traffic is through the specified VPC and subnets
    #   @return [String]
    #
    # @!attribute [rw] home_efs_file_system_kms_key_id
    #   Use `KmsKeyId`.
    #   @return [String]
    #
    # @!attribute [rw] kms_key_id
    #   SageMaker AI uses Amazon Web Services KMS to encrypt EFS and EBS
    #   volumes attached to the domain with an Amazon Web Services managed
    #   key by default. For more control, specify a customer managed key.
    #   @return [String]
    #
    # @!attribute [rw] app_security_group_management
    #   The entity that creates and manages the required security groups for
    #   inter-app communication in `VPCOnly` mode. Required when
    #   `CreateDomain.AppNetworkAccessType` is `VPCOnly` and
    #   `DomainSettings.RStudioServerProDomainSettings.DomainExecutionRoleArn`
    #   is provided. If setting up the domain for use with RStudio, this
    #   value must be set to `Service`.
    #   @return [String]
    #
    # @!attribute [rw] tag_propagation
    #   Indicates whether custom tag propagation is supported for the
    #   domain. Defaults to `DISABLED`.
    #   @return [String]
    #
    # @!attribute [rw] default_space_settings
    #   The default settings for shared spaces that users create in the
    #   domain.
    #   @return [Types::DefaultSpaceSettings]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateDomainRequest AWS API Documentation
    #
    class CreateDomainRequest < Struct.new(
      :domain_name,
      :auth_mode,
      :default_user_settings,
      :domain_settings,
      :subnet_ids,
      :vpc_id,
      :tags,
      :app_network_access_type,
      :home_efs_file_system_kms_key_id,
      :kms_key_id,
      :app_security_group_management,
      :tag_propagation,
      :default_space_settings)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] domain_arn
    #   The Amazon Resource Name (ARN) of the created domain.
    #   @return [String]
    #
    # @!attribute [rw] domain_id
    #   The ID of the created domain.
    #   @return [String]
    #
    # @!attribute [rw] url
    #   The URL to the created domain.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateDomainResponse AWS API Documentation
    #
    class CreateDomainResponse < Struct.new(
      :domain_arn,
      :domain_id,
      :url)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] edge_deployment_plan_name
    #   The name of the edge deployment plan.
    #   @return [String]
    #
    # @!attribute [rw] model_configs
    #   List of models associated with the edge deployment plan.
    #   @return [Array<Types::EdgeDeploymentModelConfig>]
    #
    # @!attribute [rw] device_fleet_name
    #   The device fleet used for this edge deployment plan.
    #   @return [String]
    #
    # @!attribute [rw] stages
    #   List of stages of the edge deployment plan. The number of stages is
    #   limited to 10 per deployment.
    #   @return [Array<Types::DeploymentStage>]
    #
    # @!attribute [rw] tags
    #   List of tags with which to tag the edge deployment plan.
    #   @return [Array<Types::Tag>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateEdgeDeploymentPlanRequest AWS API Documentation
    #
    class CreateEdgeDeploymentPlanRequest < Struct.new(
      :edge_deployment_plan_name,
      :model_configs,
      :device_fleet_name,
      :stages,
      :tags)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] edge_deployment_plan_arn
    #   The ARN of the edge deployment plan.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateEdgeDeploymentPlanResponse AWS API Documentation
    #
    class CreateEdgeDeploymentPlanResponse < Struct.new(
      :edge_deployment_plan_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] edge_deployment_plan_name
    #   The name of the edge deployment plan.
    #   @return [String]
    #
    # @!attribute [rw] stages
    #   List of stages to be added to the edge deployment plan.
    #   @return [Array<Types::DeploymentStage>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateEdgeDeploymentStageRequest AWS API Documentation
    #
    class CreateEdgeDeploymentStageRequest < Struct.new(
      :edge_deployment_plan_name,
      :stages)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] edge_packaging_job_name
    #   The name of the edge packaging job.
    #   @return [String]
    #
    # @!attribute [rw] compilation_job_name
    #   The name of the SageMaker Neo compilation job that will be used to
    #   locate model artifacts for packaging.
    #   @return [String]
    #
    # @!attribute [rw] model_name
    #   The name of the model.
    #   @return [String]
    #
    # @!attribute [rw] model_version
    #   The version of the model.
    #   @return [String]
    #
    # @!attribute [rw] role_arn
    #   The Amazon Resource Name (ARN) of an IAM role that enables Amazon
    #   SageMaker to download and upload the model, and to contact SageMaker
    #   Neo.
    #   @return [String]
    #
    # @!attribute [rw] output_config
    #   Provides information about the output location for the packaged
    #   model.
    #   @return [Types::EdgeOutputConfig]
    #
    # @!attribute [rw] resource_key
    #   The Amazon Web Services KMS key to use when encrypting the EBS
    #   volume the edge packaging job runs on.
    #   @return [String]
    #
    # @!attribute [rw] tags
    #   Creates tags for the packaging job.
    #   @return [Array<Types::Tag>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateEdgePackagingJobRequest AWS API Documentation
    #
    class CreateEdgePackagingJobRequest < Struct.new(
      :edge_packaging_job_name,
      :compilation_job_name,
      :model_name,
      :model_version,
      :role_arn,
      :output_config,
      :resource_key,
      :tags)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] endpoint_config_name
    #   The name of the endpoint configuration. You specify this name in a
    #   [CreateEndpoint][1] request.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpoint.html
    #   @return [String]
    #
    # @!attribute [rw] production_variants
    #   An array of `ProductionVariant` objects, one for each model that you
    #   want to host at this endpoint.
    #   @return [Array<Types::ProductionVariant>]
    #
    # @!attribute [rw] data_capture_config
    #   Configuration to control how SageMaker AI captures inference data.
    #   @return [Types::DataCaptureConfig]
    #
    # @!attribute [rw] tags
    #   An array of key-value pairs. You can use tags to categorize your
    #   Amazon Web Services resources in different ways, for example, by
    #   purpose, owner, or environment. For more information, see [Tagging
    #   Amazon Web Services Resources][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html
    #   @return [Array<Types::Tag>]
    #
    # @!attribute [rw] kms_key_id
    #   The Amazon Resource Name (ARN) of a Amazon Web Services Key
    #   Management Service key that SageMaker uses to encrypt data on the
    #   storage volume attached to the ML compute instance that hosts the
    #   endpoint.
    #
    #   The KmsKeyId can be any of the following formats:
    #
    #   * Key ID: `1234abcd-12ab-34cd-56ef-1234567890ab`
    #
    #   * Key ARN:
    #     `arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab`
    #
    #   * Alias name: `alias/ExampleAlias`
    #
    #   * Alias name ARN:
    #     `arn:aws:kms:us-west-2:111122223333:alias/ExampleAlias`
    #
    #   The KMS key policy must grant permission to the IAM role that you
    #   specify in your `CreateEndpoint`, `UpdateEndpoint` requests. For
    #   more information, refer to the Amazon Web Services Key Management
    #   Service section[ Using Key Policies in Amazon Web Services KMS ][1]
    #
    #   <note markdown="1"> Certain Nitro-based instances include local storage, dependent on
    #   the instance type. Local storage volumes are encrypted using a
    #   hardware module on the instance. You can't request a `KmsKeyId`
    #   when using an instance type with local storage. If any of the models
    #   that you specify in the `ProductionVariants` parameter use
    #   nitro-based instances with local storage, do not specify a value for
    #   the `KmsKeyId` parameter. If you specify a value for `KmsKeyId` when
    #   using any nitro-based instances with local storage, the call to
    #   `CreateEndpointConfig` fails.
    #
    #    For a list of instance types that support local instance storage,
    #   see [Instance Store Volumes][2].
    #
    #    For more information about local instance storage encryption, see
    #   [SSD Instance Store Volumes][3].
    #
    #    </note>
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html
    #   [2]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#instance-store-volumes
    #   [3]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ssd-instance-store.html
    #   @return [String]
    #
    # @!attribute [rw] async_inference_config
    #   Specifies configuration for how an endpoint performs asynchronous
    #   inference. This is a required field in order for your Endpoint to be
    #   invoked using [InvokeEndpointAsync][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_runtime_InvokeEndpointAsync.html
    #   @return [Types::AsyncInferenceConfig]
    #
    # @!attribute [rw] explainer_config
    #   A member of `CreateEndpointConfig` that enables explainers.
    #   @return [Types::ExplainerConfig]
    #
    # @!attribute [rw] shadow_production_variants
    #   An array of `ProductionVariant` objects, one for each model that you
    #   want to host at this endpoint in shadow mode with production traffic
    #   replicated from the model specified on `ProductionVariants`. If you
    #   use this field, you can only specify one variant for
    #   `ProductionVariants` and one variant for `ShadowProductionVariants`.
    #   @return [Array<Types::ProductionVariant>]
    #
    # @!attribute [rw] execution_role_arn
    #   The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker
    #   AI can assume to perform actions on your behalf. For more
    #   information, see [SageMaker AI Roles][1].
    #
    #   <note markdown="1"> To be able to pass this role to Amazon SageMaker AI, the caller of
    #   this action must have the `iam:PassRole` permission.
    #
    #    </note>
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html
    #   @return [String]
    #
    # @!attribute [rw] vpc_config
    #   Specifies an Amazon Virtual Private Cloud (VPC) that your SageMaker
    #   jobs, hosted models, and compute resources have access to. You can
    #   control access to and from your resources by configuring a VPC. For
    #   more information, see [Give SageMaker Access to Resources in your
    #   Amazon VPC][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/infrastructure-give-access.html
    #   @return [Types::VpcConfig]
    #
    # @!attribute [rw] enable_network_isolation
    #   Sets whether all model containers deployed to the endpoint are
    #   isolated. If they are, no inbound or outbound network calls can be
    #   made to or from the model containers.
    #   @return [Boolean]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateEndpointConfigInput AWS API Documentation
    #
    class CreateEndpointConfigInput < Struct.new(
      :endpoint_config_name,
      :production_variants,
      :data_capture_config,
      :tags,
      :kms_key_id,
      :async_inference_config,
      :explainer_config,
      :shadow_production_variants,
      :execution_role_arn,
      :vpc_config,
      :enable_network_isolation)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] endpoint_config_arn
    #   The Amazon Resource Name (ARN) of the endpoint configuration.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateEndpointConfigOutput AWS API Documentation
    #
    class CreateEndpointConfigOutput < Struct.new(
      :endpoint_config_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] endpoint_name
    #   The name of the endpoint.The name must be unique within an Amazon
    #   Web Services Region in your Amazon Web Services account. The name is
    #   case-insensitive in `CreateEndpoint`, but the case is preserved and
    #   must be matched in [InvokeEndpoint][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_runtime_InvokeEndpoint.html
    #   @return [String]
    #
    # @!attribute [rw] endpoint_config_name
    #   The name of an endpoint configuration. For more information, see
    #   [CreateEndpointConfig][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpointConfig.html
    #   @return [String]
    #
    # @!attribute [rw] deployment_config
    #   The deployment configuration for an endpoint, which contains the
    #   desired deployment strategy and rollback configurations.
    #   @return [Types::DeploymentConfig]
    #
    # @!attribute [rw] tags
    #   An array of key-value pairs. You can use tags to categorize your
    #   Amazon Web Services resources in different ways, for example, by
    #   purpose, owner, or environment. For more information, see [Tagging
    #   Amazon Web Services Resources][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html
    #   @return [Array<Types::Tag>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateEndpointInput AWS API Documentation
    #
    class CreateEndpointInput < Struct.new(
      :endpoint_name,
      :endpoint_config_name,
      :deployment_config,
      :tags)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] endpoint_arn
    #   The Amazon Resource Name (ARN) of the endpoint.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateEndpointOutput AWS API Documentation
    #
    class CreateEndpointOutput < Struct.new(
      :endpoint_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] experiment_name
    #   The name of the experiment. The name must be unique in your Amazon
    #   Web Services account and is not case-sensitive.
    #   @return [String]
    #
    # @!attribute [rw] display_name
    #   The name of the experiment as displayed. The name doesn't need to
    #   be unique. If you don't specify `DisplayName`, the value in
    #   `ExperimentName` is displayed.
    #   @return [String]
    #
    # @!attribute [rw] description
    #   The description of the experiment.
    #   @return [String]
    #
    # @!attribute [rw] tags
    #   A list of tags to associate with the experiment. You can use
    #   [Search][1] API to search on the tags.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_Search.html
    #   @return [Array<Types::Tag>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateExperimentRequest AWS API Documentation
    #
    class CreateExperimentRequest < Struct.new(
      :experiment_name,
      :display_name,
      :description,
      :tags)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] experiment_arn
    #   The Amazon Resource Name (ARN) of the experiment.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateExperimentResponse AWS API Documentation
    #
    class CreateExperimentResponse < Struct.new(
      :experiment_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] feature_group_name
    #   The name of the `FeatureGroup`. The name must be unique within an
    #   Amazon Web Services Region in an Amazon Web Services account.
    #
    #   The name:
    #
    #   * Must start with an alphanumeric character.
    #
    #   * Can only include alphanumeric characters, underscores, and
    #     hyphens. Spaces are not allowed.
    #   @return [String]
    #
    # @!attribute [rw] record_identifier_feature_name
    #   The name of the `Feature` whose value uniquely identifies a `Record`
    #   defined in the `FeatureStore`. Only the latest record per identifier
    #   value will be stored in the `OnlineStore`.
    #   `RecordIdentifierFeatureName` must be one of feature definitions'
    #   names.
    #
    #   You use the `RecordIdentifierFeatureName` to access data in a
    #   `FeatureStore`.
    #
    #   This name:
    #
    #   * Must start with an alphanumeric character.
    #
    #   * Can only contains alphanumeric characters, hyphens, underscores.
    #     Spaces are not allowed.
    #   @return [String]
    #
    # @!attribute [rw] event_time_feature_name
    #   The name of the feature that stores the `EventTime` of a `Record` in
    #   a `FeatureGroup`.
    #
    #   An `EventTime` is a point in time when a new event occurs that
    #   corresponds to the creation or update of a `Record` in a
    #   `FeatureGroup`. All `Records` in the `FeatureGroup` must have a
    #   corresponding `EventTime`.
    #
    #   An `EventTime` can be a `String` or `Fractional`.
    #
    #   * `Fractional`: `EventTime` feature values must be a Unix timestamp
    #     in seconds.
    #
    #   * `String`: `EventTime` feature values must be an ISO-8601 string in
    #     the format. The following formats are supported
    #     `yyyy-MM-dd'T'HH:mm:ssZ` and `yyyy-MM-dd'T'HH:mm:ss.SSSZ` where
    #     `yyyy`, `MM`, and `dd` represent the year, month, and day
    #     respectively and `HH`, `mm`, `ss`, and if applicable, `SSS`
    #     represent the hour, month, second and milliseconds respsectively.
    #     `'T'` and `Z` are constants.
    #   @return [String]
    #
    # @!attribute [rw] feature_definitions
    #   A list of `Feature` names and types. `Name` and `Type` is compulsory
    #   per `Feature`.
    #
    #   Valid feature `FeatureType`s are `Integral`, `Fractional` and
    #   `String`.
    #
    #   `FeatureName`s cannot be any of the following: `is_deleted`,
    #   `write_time`, `api_invocation_time`
    #
    #   You can create up to 2,500 `FeatureDefinition`s per `FeatureGroup`.
    #   @return [Array<Types::FeatureDefinition>]
    #
    # @!attribute [rw] online_store_config
    #   You can turn the `OnlineStore` on or off by specifying `True` for
    #   the `EnableOnlineStore` flag in `OnlineStoreConfig`.
    #
    #   You can also include an Amazon Web Services KMS key ID (`KMSKeyId`)
    #   for at-rest encryption of the `OnlineStore`.
    #
    #   The default value is `False`.
    #   @return [Types::OnlineStoreConfig]
    #
    # @!attribute [rw] offline_store_config
    #   Use this to configure an `OfflineFeatureStore`. This parameter
    #   allows you to specify:
    #
    #   * The Amazon Simple Storage Service (Amazon S3) location of an
    #     `OfflineStore`.
    #
    #   * A configuration for an Amazon Web Services Glue or Amazon Web
    #     Services Hive data catalog.
    #
    #   * An KMS encryption key to encrypt the Amazon S3 location used for
    #     `OfflineStore`. If KMS encryption key is not specified, by default
    #     we encrypt all data at rest using Amazon Web Services KMS key. By
    #     defining your [bucket-level key][1] for SSE, you can reduce Amazon
    #     Web Services KMS requests costs by up to 99 percent.
    #
    #   * Format for the offline store table. Supported formats are Glue
    #     (Default) and [Apache Iceberg][2].
    #
    #   To learn more about this parameter, see [OfflineStoreConfig][3].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-key.html
    #   [2]: https://iceberg.apache.org/
    #   [3]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_OfflineStoreConfig.html
    #   @return [Types::OfflineStoreConfig]
    #
    # @!attribute [rw] throughput_config
    #   Used to set feature group throughput configuration. There are two
    #   modes: `ON_DEMAND` and `PROVISIONED`. With on-demand mode, you are
    #   charged for data reads and writes that your application performs on
    #   your feature group. You do not need to specify read and write
    #   throughput because Feature Store accommodates your workloads as they
    #   ramp up and down. You can switch a feature group to on-demand only
    #   once in a 24 hour period. With provisioned throughput mode, you
    #   specify the read and write capacity per second that you expect your
    #   application to require, and you are billed based on those limits.
    #   Exceeding provisioned throughput will result in your requests being
    #   throttled.
    #
    #   Note: `PROVISIONED` throughput mode is supported only for feature
    #   groups that are offline-only, or use the [ `Standard` ][1] tier
    #   online store.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_OnlineStoreConfig.html#sagemaker-Type-OnlineStoreConfig-StorageType
    #   @return [Types::ThroughputConfig]
    #
    # @!attribute [rw] role_arn
    #   The Amazon Resource Name (ARN) of the IAM execution role used to
    #   persist data into the `OfflineStore` if an `OfflineStoreConfig` is
    #   provided.
    #   @return [String]
    #
    # @!attribute [rw] description
    #   A free-form description of a `FeatureGroup`.
    #   @return [String]
    #
    # @!attribute [rw] tags
    #   Tags used to identify `Features` in each `FeatureGroup`.
    #   @return [Array<Types::Tag>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateFeatureGroupRequest AWS API Documentation
    #
    class CreateFeatureGroupRequest < Struct.new(
      :feature_group_name,
      :record_identifier_feature_name,
      :event_time_feature_name,
      :feature_definitions,
      :online_store_config,
      :offline_store_config,
      :throughput_config,
      :role_arn,
      :description,
      :tags)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] feature_group_arn
    #   The Amazon Resource Name (ARN) of the `FeatureGroup`. This is a
    #   unique identifier for the feature group.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateFeatureGroupResponse AWS API Documentation
    #
    class CreateFeatureGroupResponse < Struct.new(
      :feature_group_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] flow_definition_name
    #   The name of your flow definition.
    #   @return [String]
    #
    # @!attribute [rw] human_loop_request_source
    #   Container for configuring the source of human task requests. Use to
    #   specify if Amazon Rekognition or Amazon Textract is used as an
    #   integration source.
    #   @return [Types::HumanLoopRequestSource]
    #
    # @!attribute [rw] human_loop_activation_config
    #   An object containing information about the events that trigger a
    #   human workflow.
    #   @return [Types::HumanLoopActivationConfig]
    #
    # @!attribute [rw] human_loop_config
    #   An object containing information about the tasks the human reviewers
    #   will perform.
    #   @return [Types::HumanLoopConfig]
    #
    # @!attribute [rw] output_config
    #   An object containing information about where the human review
    #   results will be uploaded.
    #   @return [Types::FlowDefinitionOutputConfig]
    #
    # @!attribute [rw] role_arn
    #   The Amazon Resource Name (ARN) of the role needed to call other
    #   services on your behalf. For example,
    #   `arn:aws:iam::1234567890:role/service-role/AmazonSageMaker-ExecutionRole-20180111T151298`.
    #   @return [String]
    #
    # @!attribute [rw] tags
    #   An array of key-value pairs that contain metadata to help you
    #   categorize and organize a flow definition. Each tag consists of a
    #   key and a value, both of which you define.
    #   @return [Array<Types::Tag>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateFlowDefinitionRequest AWS API Documentation
    #
    class CreateFlowDefinitionRequest < Struct.new(
      :flow_definition_name,
      :human_loop_request_source,
      :human_loop_activation_config,
      :human_loop_config,
      :output_config,
      :role_arn,
      :tags)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] flow_definition_arn
    #   The Amazon Resource Name (ARN) of the flow definition you create.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateFlowDefinitionResponse AWS API Documentation
    #
    class CreateFlowDefinitionResponse < Struct.new(
      :flow_definition_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] hub_name
    #   The name or Amazon Resource Name (ARN) of the hub that contains the
    #   content. For public content, use `SageMakerPublicHub`.
    #   @return [String]
    #
    # @!attribute [rw] hub_content_type
    #   The type of hub content to access. Valid values include `Model`,
    #   `Notebook`, and `ModelReference`.
    #   @return [String]
    #
    # @!attribute [rw] hub_content_name
    #   The name of the hub content for which to generate presigned URLs.
    #   This identifies the specific model or content within the hub.
    #   @return [String]
    #
    # @!attribute [rw] hub_content_version
    #   The version of the hub content. If not specified, the latest version
    #   is used.
    #   @return [String]
    #
    # @!attribute [rw] access_config
    #   Configuration settings for accessing the hub content, including
    #   end-user license agreement acceptance for gated models and expected
    #   S3 URL validation.
    #   @return [Types::PresignedUrlAccessConfig]
    #
    # @!attribute [rw] max_results
    #   The maximum number of presigned URLs to return in the response.
    #   Default value is 100. Large models may contain hundreds of files,
    #   requiring pagination to retrieve all URLs.
    #   @return [Integer]
    #
    # @!attribute [rw] next_token
    #   A token for pagination. Use this token to retrieve the next set of
    #   presigned URLs when the response is truncated.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateHubContentPresignedUrlsRequest AWS API Documentation
    #
    class CreateHubContentPresignedUrlsRequest < Struct.new(
      :hub_name,
      :hub_content_type,
      :hub_content_name,
      :hub_content_version,
      :access_config,
      :max_results,
      :next_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] authorized_url_configs
    #   An array of authorized URL configurations, each containing a
    #   presigned URL and its corresponding local file path for proper file
    #   organization during download.
    #   @return [Array<Types::AuthorizedUrl>]
    #
    # @!attribute [rw] next_token
    #   A token for pagination. If present, indicates that more presigned
    #   URLs are available. Use this token in a subsequent request to
    #   retrieve additional URLs.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateHubContentPresignedUrlsResponse AWS API Documentation
    #
    class CreateHubContentPresignedUrlsResponse < Struct.new(
      :authorized_url_configs,
      :next_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] hub_name
    #   The name of the hub to add the hub content reference to.
    #   @return [String]
    #
    # @!attribute [rw] sage_maker_public_hub_content_arn
    #   The ARN of the public hub content to reference.
    #   @return [String]
    #
    # @!attribute [rw] hub_content_name
    #   The name of the hub content to reference.
    #   @return [String]
    #
    # @!attribute [rw] min_version
    #   The minimum version of the hub content to reference.
    #   @return [String]
    #
    # @!attribute [rw] tags
    #   Any tags associated with the hub content to reference.
    #   @return [Array<Types::Tag>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateHubContentReferenceRequest AWS API Documentation
    #
    class CreateHubContentReferenceRequest < Struct.new(
      :hub_name,
      :sage_maker_public_hub_content_arn,
      :hub_content_name,
      :min_version,
      :tags)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] hub_arn
    #   The ARN of the hub that the hub content reference was added to.
    #   @return [String]
    #
    # @!attribute [rw] hub_content_arn
    #   The ARN of the hub content.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateHubContentReferenceResponse AWS API Documentation
    #
    class CreateHubContentReferenceResponse < Struct.new(
      :hub_arn,
      :hub_content_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] hub_name
    #   The name of the hub to create.
    #   @return [String]
    #
    # @!attribute [rw] hub_description
    #   A description of the hub.
    #   @return [String]
    #
    # @!attribute [rw] hub_display_name
    #   The display name of the hub.
    #   @return [String]
    #
    # @!attribute [rw] hub_search_keywords
    #   The searchable keywords for the hub.
    #   @return [Array<String>]
    #
    # @!attribute [rw] s3_storage_config
    #   The Amazon S3 storage configuration for the hub.
    #   @return [Types::HubS3StorageConfig]
    #
    # @!attribute [rw] tags
    #   Any tags to associate with the hub.
    #   @return [Array<Types::Tag>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateHubRequest AWS API Documentation
    #
    class CreateHubRequest < Struct.new(
      :hub_name,
      :hub_description,
      :hub_display_name,
      :hub_search_keywords,
      :s3_storage_config,
      :tags)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] hub_arn
    #   The Amazon Resource Name (ARN) of the hub.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateHubResponse AWS API Documentation
    #
    class CreateHubResponse < Struct.new(
      :hub_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] human_task_ui_name
    #   The name of the user interface you are creating.
    #   @return [String]
    #
    # @!attribute [rw] ui_template
    #   The Liquid template for the worker user interface.
    #   @return [Types::UiTemplate]
    #
    # @!attribute [rw] tags
    #   An array of key-value pairs that contain metadata to help you
    #   categorize and organize a human review workflow user interface. Each
    #   tag consists of a key and a value, both of which you define.
    #   @return [Array<Types::Tag>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateHumanTaskUiRequest AWS API Documentation
    #
    class CreateHumanTaskUiRequest < Struct.new(
      :human_task_ui_name,
      :ui_template,
      :tags)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] human_task_ui_arn
    #   The Amazon Resource Name (ARN) of the human review workflow user
    #   interface you create.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateHumanTaskUiResponse AWS API Documentation
    #
    class CreateHumanTaskUiResponse < Struct.new(
      :human_task_ui_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] hyper_parameter_tuning_job_name
    #   The name of the tuning job. This name is the prefix for the names of
    #   all training jobs that this tuning job launches. The name must be
    #   unique within the same Amazon Web Services account and Amazon Web
    #   Services Region. The name must have 1 to 32 characters. Valid
    #   characters are a-z, A-Z, 0-9, and : + = @ \_ % - (hyphen). The name
    #   is not case sensitive.
    #   @return [String]
    #
    # @!attribute [rw] hyper_parameter_tuning_job_config
    #   The [HyperParameterTuningJobConfig][1] object that describes the
    #   tuning job, including the search strategy, the objective metric used
    #   to evaluate training jobs, ranges of parameters to search, and
    #   resource limits for the tuning job. For more information, see [How
    #   Hyperparameter Tuning Works][2].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_HyperParameterTuningJobConfig.html
    #   [2]: https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-how-it-works.html
    #   @return [Types::HyperParameterTuningJobConfig]
    #
    # @!attribute [rw] training_job_definition
    #   The [HyperParameterTrainingJobDefinition][1] object that describes
    #   the training jobs that this tuning job launches, including static
    #   hyperparameters, input data configuration, output data
    #   configuration, resource configuration, and stopping condition.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_HyperParameterTrainingJobDefinition.html
    #   @return [Types::HyperParameterTrainingJobDefinition]
    #
    # @!attribute [rw] training_job_definitions
    #   A list of the [HyperParameterTrainingJobDefinition][1] objects
    #   launched for this tuning job.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_HyperParameterTrainingJobDefinition.html
    #   @return [Array<Types::HyperParameterTrainingJobDefinition>]
    #
    # @!attribute [rw] warm_start_config
    #   Specifies the configuration for starting the hyperparameter tuning
    #   job using one or more previous tuning jobs as a starting point. The
    #   results of previous tuning jobs are used to inform which
    #   combinations of hyperparameters to search over in the new tuning
    #   job.
    #
    #   All training jobs launched by the new hyperparameter tuning job are
    #   evaluated by using the objective metric. If you specify
    #   `IDENTICAL_DATA_AND_ALGORITHM` as the `WarmStartType` value for the
    #   warm start configuration, the training job that performs the best in
    #   the new tuning job is compared to the best training jobs from the
    #   parent tuning jobs. From these, the training job that performs the
    #   best as measured by the objective metric is returned as the overall
    #   best training job.
    #
    #   <note markdown="1"> All training jobs launched by parent hyperparameter tuning jobs and
    #   the new hyperparameter tuning jobs count against the limit of
    #   training jobs for the tuning job.
    #
    #    </note>
    #   @return [Types::HyperParameterTuningJobWarmStartConfig]
    #
    # @!attribute [rw] tags
    #   An array of key-value pairs. You can use tags to categorize your
    #   Amazon Web Services resources in different ways, for example, by
    #   purpose, owner, or environment. For more information, see [Tagging
    #   Amazon Web Services Resources][1].
    #
    #   Tags that you specify for the tuning job are also added to all
    #   training jobs that the tuning job launches.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html
    #   @return [Array<Types::Tag>]
    #
    # @!attribute [rw] autotune
    #   Configures SageMaker Automatic model tuning (AMT) to automatically
    #   find optimal parameters for the following fields:
    #
    #   * [ParameterRanges][1]: The names and ranges of parameters that a
    #     hyperparameter tuning job can optimize.
    #
    #   * [ResourceLimits][2]: The maximum resources that can be used for a
    #     training job. These resources include the maximum number of
    #     training jobs, the maximum runtime of a tuning job, and the
    #     maximum number of training jobs to run at the same time.
    #
    #   * [TrainingJobEarlyStoppingType][3]: A flag that specifies whether
    #     or not to use early stopping for training jobs launched by a
    #     hyperparameter tuning job.
    #
    #   * [RetryStrategy][4]: The number of times to retry a training job.
    #
    #   * [Strategy][5]: Specifies how hyperparameter tuning chooses the
    #     combinations of hyperparameter values to use for the training jobs
    #     that it launches.
    #
    #   * [ConvergenceDetected][6]: A flag to indicate that Automatic model
    #     tuning (AMT) has detected model convergence.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_HyperParameterTuningJobConfig.html#sagemaker-Type-HyperParameterTuningJobConfig-ParameterRanges
    #   [2]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ResourceLimits.html
    #   [3]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_HyperParameterTuningJobConfig.html#sagemaker-Type-HyperParameterTuningJobConfig-TrainingJobEarlyStoppingType
    #   [4]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_HyperParameterTrainingJobDefinition.html#sagemaker-Type-HyperParameterTrainingJobDefinition-RetryStrategy
    #   [5]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_HyperParameterTuningJobConfig.html
    #   [6]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ConvergenceDetected.html
    #   @return [Types::Autotune]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateHyperParameterTuningJobRequest AWS API Documentation
    #
    class CreateHyperParameterTuningJobRequest < Struct.new(
      :hyper_parameter_tuning_job_name,
      :hyper_parameter_tuning_job_config,
      :training_job_definition,
      :training_job_definitions,
      :warm_start_config,
      :tags,
      :autotune)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] hyper_parameter_tuning_job_arn
    #   The Amazon Resource Name (ARN) of the tuning job. SageMaker assigns
    #   an ARN to a hyperparameter tuning job when you create it.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateHyperParameterTuningJobResponse AWS API Documentation
    #
    class CreateHyperParameterTuningJobResponse < Struct.new(
      :hyper_parameter_tuning_job_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] description
    #   The description of the image.
    #   @return [String]
    #
    # @!attribute [rw] display_name
    #   The display name of the image. If not provided, `ImageName` is
    #   displayed.
    #   @return [String]
    #
    # @!attribute [rw] image_name
    #   The name of the image. Must be unique to your account.
    #   @return [String]
    #
    # @!attribute [rw] role_arn
    #   The ARN of an IAM role that enables Amazon SageMaker AI to perform
    #   tasks on your behalf.
    #   @return [String]
    #
    # @!attribute [rw] tags
    #   A list of tags to apply to the image.
    #   @return [Array<Types::Tag>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateImageRequest AWS API Documentation
    #
    class CreateImageRequest < Struct.new(
      :description,
      :display_name,
      :image_name,
      :role_arn,
      :tags)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] image_arn
    #   The ARN of the image.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateImageResponse AWS API Documentation
    #
    class CreateImageResponse < Struct.new(
      :image_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] base_image
    #   The registry path of the container image to use as the starting
    #   point for this version. The path is an Amazon ECR URI in the
    #   following format:
    #
    #   `<acct-id>.dkr.ecr.<region>.amazonaws.com/<repo-name[:tag] or
    #   [@digest]>`
    #   @return [String]
    #
    # @!attribute [rw] client_token
    #   A unique ID. If not specified, the Amazon Web Services CLI and
    #   Amazon Web Services SDKs, such as the SDK for Python (Boto3), add a
    #   unique value to the call.
    #
    #   **A suitable default value is auto-generated.** You should normally
    #   not need to pass this option.
    #   @return [String]
    #
    # @!attribute [rw] image_name
    #   The `ImageName` of the `Image` to create a version of.
    #   @return [String]
    #
    # @!attribute [rw] aliases
    #   A list of aliases created with the image version.
    #   @return [Array<String>]
    #
    # @!attribute [rw] vendor_guidance
    #   The stability of the image version, specified by the maintainer.
    #
    #   * `NOT_PROVIDED`: The maintainers did not provide a status for image
    #     version stability.
    #
    #   * `STABLE`: The image version is stable.
    #
    #   * `TO_BE_ARCHIVED`: The image version is set to be archived. Custom
    #     image versions that are set to be archived are automatically
    #     archived after three months.
    #
    #   * `ARCHIVED`: The image version is archived. Archived image versions
    #     are not searchable and are no longer actively supported.
    #   @return [String]
    #
    # @!attribute [rw] job_type
    #   Indicates SageMaker AI job type compatibility.
    #
    #   * `TRAINING`: The image version is compatible with SageMaker AI
    #     training jobs.
    #
    #   * `INFERENCE`: The image version is compatible with SageMaker AI
    #     inference jobs.
    #
    #   * `NOTEBOOK_KERNEL`: The image version is compatible with SageMaker
    #     AI notebook kernels.
    #   @return [String]
    #
    # @!attribute [rw] ml_framework
    #   The machine learning framework vended in the image version.
    #   @return [String]
    #
    # @!attribute [rw] programming_lang
    #   The supported programming language and its version.
    #   @return [String]
    #
    # @!attribute [rw] processor
    #   Indicates CPU or GPU compatibility.
    #
    #   * `CPU`: The image version is compatible with CPU.
    #
    #   * `GPU`: The image version is compatible with GPU.
    #   @return [String]
    #
    # @!attribute [rw] horovod
    #   Indicates Horovod compatibility.
    #   @return [Boolean]
    #
    # @!attribute [rw] release_notes
    #   The maintainer description of the image version.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateImageVersionRequest AWS API Documentation
    #
    class CreateImageVersionRequest < Struct.new(
      :base_image,
      :client_token,
      :image_name,
      :aliases,
      :vendor_guidance,
      :job_type,
      :ml_framework,
      :programming_lang,
      :processor,
      :horovod,
      :release_notes)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] image_version_arn
    #   The ARN of the image version.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateImageVersionResponse AWS API Documentation
    #
    class CreateImageVersionResponse < Struct.new(
      :image_version_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] inference_component_name
    #   A unique name to assign to the inference component.
    #   @return [String]
    #
    # @!attribute [rw] endpoint_name
    #   The name of an existing endpoint where you host the inference
    #   component.
    #   @return [String]
    #
    # @!attribute [rw] variant_name
    #   The name of an existing production variant where you host the
    #   inference component.
    #   @return [String]
    #
    # @!attribute [rw] specification
    #   Details about the resources to deploy with this inference component,
    #   including the model, container, and compute resources.
    #   @return [Types::InferenceComponentSpecification]
    #
    # @!attribute [rw] runtime_config
    #   Runtime settings for a model that is deployed with an inference
    #   component.
    #   @return [Types::InferenceComponentRuntimeConfig]
    #
    # @!attribute [rw] tags
    #   A list of key-value pairs associated with the model. For more
    #   information, see [Tagging Amazon Web Services resources][1] in the
    #   *Amazon Web Services General Reference*.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html
    #   @return [Array<Types::Tag>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateInferenceComponentInput AWS API Documentation
    #
    class CreateInferenceComponentInput < Struct.new(
      :inference_component_name,
      :endpoint_name,
      :variant_name,
      :specification,
      :runtime_config,
      :tags)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] inference_component_arn
    #   The Amazon Resource Name (ARN) of the inference component.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateInferenceComponentOutput AWS API Documentation
    #
    class CreateInferenceComponentOutput < Struct.new(
      :inference_component_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] name
    #   The name for the inference experiment.
    #   @return [String]
    #
    # @!attribute [rw] type
    #   The type of the inference experiment that you want to run. The
    #   following types of experiments are possible:
    #
    #   * `ShadowMode`: You can use this type to validate a shadow variant.
    #     For more information, see [Shadow tests][1].
    #
    #   ^
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/shadow-tests.html
    #   @return [String]
    #
    # @!attribute [rw] schedule
    #   The duration for which you want the inference experiment to run. If
    #   you don't specify this field, the experiment automatically starts
    #   immediately upon creation and concludes after 7 days.
    #   @return [Types::InferenceExperimentSchedule]
    #
    # @!attribute [rw] description
    #   A description for the inference experiment.
    #   @return [String]
    #
    # @!attribute [rw] role_arn
    #   The ARN of the IAM role that Amazon SageMaker can assume to access
    #   model artifacts and container images, and manage Amazon SageMaker
    #   Inference endpoints for model deployment.
    #   @return [String]
    #
    # @!attribute [rw] endpoint_name
    #   The name of the Amazon SageMaker endpoint on which you want to run
    #   the inference experiment.
    #   @return [String]
    #
    # @!attribute [rw] model_variants
    #   An array of `ModelVariantConfig` objects. There is one for each
    #   variant in the inference experiment. Each `ModelVariantConfig`
    #   object in the array describes the infrastructure configuration for
    #   the corresponding variant.
    #   @return [Array<Types::ModelVariantConfig>]
    #
    # @!attribute [rw] data_storage_config
    #   The Amazon S3 location and configuration for storing inference
    #   request and response data.
    #
    #   This is an optional parameter that you can use for data capture. For
    #   more information, see [Capture data][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/model-monitor-data-capture.html
    #   @return [Types::InferenceExperimentDataStorageConfig]
    #
    # @!attribute [rw] shadow_mode_config
    #   The configuration of `ShadowMode` inference experiment type. Use
    #   this field to specify a production variant which takes all the
    #   inference requests, and a shadow variant to which Amazon SageMaker
    #   replicates a percentage of the inference requests. For the shadow
    #   variant also specify the percentage of requests that Amazon
    #   SageMaker replicates.
    #   @return [Types::ShadowModeConfig]
    #
    # @!attribute [rw] kms_key
    #   The Amazon Web Services Key Management Service (Amazon Web Services
    #   KMS) key that Amazon SageMaker uses to encrypt data on the storage
    #   volume attached to the ML compute instance that hosts the endpoint.
    #   The `KmsKey` can be any of the following formats:
    #
    #   * KMS key ID
    #
    #     `"1234abcd-12ab-34cd-56ef-1234567890ab"`
    #
    #   * Amazon Resource Name (ARN) of a KMS key
    #
    #     `"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"`
    #
    #   * KMS key Alias
    #
    #     `"alias/ExampleAlias"`
    #
    #   * Amazon Resource Name (ARN) of a KMS key Alias
    #
    #     `"arn:aws:kms:us-west-2:111122223333:alias/ExampleAlias"`
    #
    #   If you use a KMS key ID or an alias of your KMS key, the Amazon
    #   SageMaker execution role must include permissions to call
    #   `kms:Encrypt`. If you don't provide a KMS key ID, Amazon SageMaker
    #   uses the default KMS key for Amazon S3 for your role's account.
    #   Amazon SageMaker uses server-side encryption with KMS managed keys
    #   for `OutputDataConfig`. If you use a bucket policy with an
    #   `s3:PutObject` permission that only allows objects with server-side
    #   encryption, set the condition key of
    #   `s3:x-amz-server-side-encryption` to `"aws:kms"`. For more
    #   information, see [KMS managed Encryption Keys][1] in the *Amazon
    #   Simple Storage Service Developer Guide.*
    #
    #   The KMS key policy must grant permission to the IAM role that you
    #   specify in your `CreateEndpoint` and `UpdateEndpoint` requests. For
    #   more information, see [Using Key Policies in Amazon Web Services
    #   KMS][2] in the *Amazon Web Services Key Management Service Developer
    #   Guide*.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html
    #   [2]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html
    #   @return [String]
    #
    # @!attribute [rw] tags
    #   Array of key-value pairs. You can use tags to categorize your Amazon
    #   Web Services resources in different ways, for example, by purpose,
    #   owner, or environment. For more information, see [Tagging your
    #   Amazon Web Services Resources][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/ARG/latest/userguide/tagging.html
    #   @return [Array<Types::Tag>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateInferenceExperimentRequest AWS API Documentation
    #
    class CreateInferenceExperimentRequest < Struct.new(
      :name,
      :type,
      :schedule,
      :description,
      :role_arn,
      :endpoint_name,
      :model_variants,
      :data_storage_config,
      :shadow_mode_config,
      :kms_key,
      :tags)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] inference_experiment_arn
    #   The ARN for your inference experiment.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateInferenceExperimentResponse AWS API Documentation
    #
    class CreateInferenceExperimentResponse < Struct.new(
      :inference_experiment_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] job_name
    #   A name for the recommendation job. The name must be unique within
    #   the Amazon Web Services Region and within your Amazon Web Services
    #   account. The job name is passed down to the resources created by the
    #   recommendation job. The names of resources (such as the model,
    #   endpoint configuration, endpoint, and compilation) that are prefixed
    #   with the job name are truncated at 40 characters.
    #   @return [String]
    #
    # @!attribute [rw] job_type
    #   Defines the type of recommendation job. Specify `Default` to
    #   initiate an instance recommendation and `Advanced` to initiate a
    #   load test. If left unspecified, Amazon SageMaker Inference
    #   Recommender will run an instance recommendation (`DEFAULT`) job.
    #   @return [String]
    #
    # @!attribute [rw] role_arn
    #   The Amazon Resource Name (ARN) of an IAM role that enables Amazon
    #   SageMaker to perform tasks on your behalf.
    #   @return [String]
    #
    # @!attribute [rw] input_config
    #   Provides information about the versioned model package Amazon
    #   Resource Name (ARN), the traffic pattern, and endpoint
    #   configurations.
    #   @return [Types::RecommendationJobInputConfig]
    #
    # @!attribute [rw] job_description
    #   Description of the recommendation job.
    #   @return [String]
    #
    # @!attribute [rw] stopping_conditions
    #   A set of conditions for stopping a recommendation job. If any of the
    #   conditions are met, the job is automatically stopped.
    #   @return [Types::RecommendationJobStoppingConditions]
    #
    # @!attribute [rw] output_config
    #   Provides information about the output artifacts and the KMS key to
    #   use for Amazon S3 server-side encryption.
    #   @return [Types::RecommendationJobOutputConfig]
    #
    # @!attribute [rw] tags
    #   The metadata that you apply to Amazon Web Services resources to help
    #   you categorize and organize them. Each tag consists of a key and a
    #   value, both of which you define. For more information, see [Tagging
    #   Amazon Web Services Resources][1] in the Amazon Web Services General
    #   Reference.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html
    #   @return [Array<Types::Tag>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateInferenceRecommendationsJobRequest AWS API Documentation
    #
    class CreateInferenceRecommendationsJobRequest < Struct.new(
      :job_name,
      :job_type,
      :role_arn,
      :input_config,
      :job_description,
      :stopping_conditions,
      :output_config,
      :tags)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] job_arn
    #   The Amazon Resource Name (ARN) of the recommendation job.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateInferenceRecommendationsJobResponse AWS API Documentation
    #
    class CreateInferenceRecommendationsJobResponse < Struct.new(
      :job_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] labeling_job_name
    #   The name of the labeling job. This name is used to identify the job
    #   in a list of labeling jobs. Labeling job names must be unique within
    #   an Amazon Web Services account and region. `LabelingJobName` is not
    #   case sensitive. For example, Example-job and example-job are
    #   considered the same labeling job name by Ground Truth.
    #   @return [String]
    #
    # @!attribute [rw] label_attribute_name
    #   The attribute name to use for the label in the output manifest file.
    #   This is the key for the key/value pair formed with the label that a
    #   worker assigns to the object. The `LabelAttributeName` must meet the
    #   following requirements.
    #
    #   * The name can't end with "-metadata".
    #
    #   * If you are using one of the [built-in task types][1] or one of the
    #     following, the attribute name *must* end with "-ref".
    #
    #     * Image semantic segmentation (`SemanticSegmentation)` and
    #       adjustment (`AdjustmentSemanticSegmentation`) labeling jobs for
    #       this task type. One exception is that verification
    #       (`VerificationSemanticSegmentation`) *must not* end with
    #       -"ref".
    #
    #     * Video frame object detection (`VideoObjectDetection`), and
    #       adjustment and verification (`AdjustmentVideoObjectDetection`)
    #       labeling jobs for this task type.
    #
    #     * Video frame object tracking (`VideoObjectTracking`), and
    #       adjustment and verification (`AdjustmentVideoObjectTracking`)
    #       labeling jobs for this task type.
    #
    #     * 3D point cloud semantic segmentation
    #       (`3DPointCloudSemanticSegmentation`), and adjustment and
    #       verification (`Adjustment3DPointCloudSemanticSegmentation`)
    #       labeling jobs for this task type.
    #
    #     * 3D point cloud object tracking (`3DPointCloudObjectTracking`),
    #       and adjustment and verification
    #       (`Adjustment3DPointCloudObjectTracking`) labeling jobs for this
    #       task type.
    #
    #
    #
    #   If you are creating an adjustment or verification labeling job, you
    #   must use a *different* `LabelAttributeName` than the one used in the
    #   original labeling job. The original labeling job is the Ground Truth
    #   labeling job that produced the labels that you want verified or
    #   adjusted. To learn more about adjustment and verification labeling
    #   jobs, see [Verify and Adjust Labels][2].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/sms-task-types.html
    #   [2]: https://docs.aws.amazon.com/sagemaker/latest/dg/sms-verification-data.html
    #   @return [String]
    #
    # @!attribute [rw] input_config
    #   Input data for the labeling job, such as the Amazon S3 location of
    #   the data objects and the location of the manifest file that
    #   describes the data objects.
    #
    #   You must specify at least one of the following: `S3DataSource` or
    #   `SnsDataSource`.
    #
    #   * Use `SnsDataSource` to specify an SNS input topic for a streaming
    #     labeling job. If you do not specify and SNS input topic ARN,
    #     Ground Truth will create a one-time labeling job that stops after
    #     all data objects in the input manifest file have been labeled.
    #
    #   * Use `S3DataSource` to specify an input manifest file for both
    #     streaming and one-time labeling jobs. Adding an `S3DataSource` is
    #     optional if you use `SnsDataSource` to create a streaming labeling
    #     job.
    #
    #   If you use the Amazon Mechanical Turk workforce, your input data
    #   should not include confidential information, personal information or
    #   protected health information. Use `ContentClassifiers` to specify
    #   that your data is free of personally identifiable information and
    #   adult content.
    #   @return [Types::LabelingJobInputConfig]
    #
    # @!attribute [rw] output_config
    #   The location of the output data and the Amazon Web Services Key
    #   Management Service key ID for the key used to encrypt the output
    #   data, if any.
    #   @return [Types::LabelingJobOutputConfig]
    #
    # @!attribute [rw] role_arn
    #   The Amazon Resource Number (ARN) that Amazon SageMaker assumes to
    #   perform tasks on your behalf during data labeling. You must grant
    #   this role the necessary permissions so that Amazon SageMaker can
    #   successfully complete data labeling.
    #   @return [String]
    #
    # @!attribute [rw] label_category_config_s3_uri
    #   The S3 URI of the file, referred to as a *label category
    #   configuration file*, that defines the categories used to label the
    #   data objects.
    #
    #   For 3D point cloud and video frame task types, you can add label
    #   category attributes and frame attributes to your label category
    #   configuration file. To learn how, see [Create a Labeling Category
    #   Configuration File for 3D Point Cloud Labeling Jobs][1].
    #
    #   For named entity recognition jobs, in addition to `"labels"`, you
    #   must provide worker instructions in the label category configuration
    #   file using the `"instructions"` parameter: `"instructions":
    #   {"shortInstruction":"<h1>Add header</h1><p>Add Instructions</p>",
    #   "fullInstruction":"<p>Add additional instructions.</p>"}`. For
    #   details and an example, see [Create a Named Entity Recognition
    #   Labeling Job (API) ][2].
    #
    #   For all other [built-in task types][3] and [custom tasks][4], your
    #   label category configuration file must be a JSON file in the
    #   following format. Identify the labels you want to use by replacing
    #   `label_1`, `label_2`,`...`,`label_n` with your label categories.
    #
    #   `{ `
    #
    #   `"document-version": "2018-11-28",`
    #
    #   `"labels": [{"label": "label_1"},{"label": "label_2"},...{"label":
    #   "label_n"}]`
    #
    #   `}`
    #
    #   Note the following about the label category configuration file:
    #
    #   * For image classification and text classification (single and
    #     multi-label) you must specify at least two label categories. For
    #     all other task types, the minimum number of label categories
    #     required is one.
    #
    #   * Each label category must be unique, you cannot specify duplicate
    #     label categories.
    #
    #   * If you create a 3D point cloud or video frame adjustment or
    #     verification labeling job, you must include
    #     `auditLabelAttributeName` in the label category configuration. Use
    #     this parameter to enter the [ `LabelAttributeName` ][5] of the
    #     labeling job you want to adjust or verify annotations of.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/sms-point-cloud-label-category-config.html
    #   [2]: https://docs.aws.amazon.com/sagemaker/latest/dg/sms-named-entity-recg.html#sms-creating-ner-api
    #   [3]: https://docs.aws.amazon.com/sagemaker/latest/dg/sms-task-types.html
    #   [4]: https://docs.aws.amazon.com/sagemaker/latest/dg/sms-custom-templates.html
    #   [5]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateLabelingJob.html#sagemaker-CreateLabelingJob-request-LabelAttributeName
    #   @return [String]
    #
    # @!attribute [rw] stopping_conditions
    #   A set of conditions for stopping the labeling job. If any of the
    #   conditions are met, the job is automatically stopped. You can use
    #   these conditions to control the cost of data labeling.
    #   @return [Types::LabelingJobStoppingConditions]
    #
    # @!attribute [rw] labeling_job_algorithms_config
    #   Configures the information required to perform automated data
    #   labeling.
    #   @return [Types::LabelingJobAlgorithmsConfig]
    #
    # @!attribute [rw] human_task_config
    #   Configures the labeling task and how it is presented to workers;
    #   including, but not limited to price, keywords, and batch size (task
    #   count).
    #   @return [Types::HumanTaskConfig]
    #
    # @!attribute [rw] tags
    #   An array of key/value pairs. For more information, see [Using Cost
    #   Allocation Tags][1] in the *Amazon Web Services Billing and Cost
    #   Management User Guide*.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html#allocation-what
    #   @return [Array<Types::Tag>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateLabelingJobRequest AWS API Documentation
    #
    class CreateLabelingJobRequest < Struct.new(
      :labeling_job_name,
      :label_attribute_name,
      :input_config,
      :output_config,
      :role_arn,
      :label_category_config_s3_uri,
      :stopping_conditions,
      :labeling_job_algorithms_config,
      :human_task_config,
      :tags)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] labeling_job_arn
    #   The Amazon Resource Name (ARN) of the labeling job. You use this ARN
    #   to identify the labeling job.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateLabelingJobResponse AWS API Documentation
    #
    class CreateLabelingJobResponse < Struct.new(
      :labeling_job_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] tracking_server_name
    #   A unique string identifying the tracking server name. This string is
    #   part of the tracking server ARN.
    #   @return [String]
    #
    # @!attribute [rw] artifact_store_uri
    #   The S3 URI for a general purpose bucket to use as the MLflow
    #   Tracking Server artifact store.
    #   @return [String]
    #
    # @!attribute [rw] tracking_server_size
    #   The size of the tracking server you want to create. You can choose
    #   between `"Small"`, `"Medium"`, and `"Large"`. The default MLflow
    #   Tracking Server configuration size is `"Small"`. You can choose a
    #   size depending on the projected use of the tracking server such as
    #   the volume of data logged, number of users, and frequency of use.
    #
    #   We recommend using a small tracking server for teams of up to 25
    #   users, a medium tracking server for teams of up to 50 users, and a
    #   large tracking server for teams of up to 100 users.
    #   @return [String]
    #
    # @!attribute [rw] mlflow_version
    #   The version of MLflow that the tracking server uses. To see which
    #   MLflow versions are available to use, see [How it works][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/mlflow.html#mlflow-create-tracking-server-how-it-works
    #   @return [String]
    #
    # @!attribute [rw] role_arn
    #   The Amazon Resource Name (ARN) for an IAM role in your account that
    #   the MLflow Tracking Server uses to access the artifact store in
    #   Amazon S3. The role should have `AmazonS3FullAccess` permissions.
    #   For more information on IAM permissions for tracking server
    #   creation, see [Set up IAM permissions for MLflow][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/mlflow-create-tracking-server-iam.html
    #   @return [String]
    #
    # @!attribute [rw] automatic_model_registration
    #   Whether to enable or disable automatic registration of new MLflow
    #   models to the SageMaker Model Registry. To enable automatic model
    #   registration, set this value to `True`. To disable automatic model
    #   registration, set this value to `False`. If not specified,
    #   `AutomaticModelRegistration` defaults to `False`.
    #   @return [Boolean]
    #
    # @!attribute [rw] weekly_maintenance_window_start
    #   The day and time of the week in Coordinated Universal Time (UTC)
    #   24-hour standard time that weekly maintenance updates are scheduled.
    #   For example: TUE:03:30.
    #   @return [String]
    #
    # @!attribute [rw] tags
    #   Tags consisting of key-value pairs used to manage metadata for the
    #   tracking server.
    #   @return [Array<Types::Tag>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateMlflowTrackingServerRequest AWS API Documentation
    #
    class CreateMlflowTrackingServerRequest < Struct.new(
      :tracking_server_name,
      :artifact_store_uri,
      :tracking_server_size,
      :mlflow_version,
      :role_arn,
      :automatic_model_registration,
      :weekly_maintenance_window_start,
      :tags)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] tracking_server_arn
    #   The ARN of the tracking server.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateMlflowTrackingServerResponse AWS API Documentation
    #
    class CreateMlflowTrackingServerResponse < Struct.new(
      :tracking_server_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] job_definition_name
    #   The name of the bias job definition. The name must be unique within
    #   an Amazon Web Services Region in the Amazon Web Services account.
    #   @return [String]
    #
    # @!attribute [rw] model_bias_baseline_config
    #   The baseline configuration for a model bias job.
    #   @return [Types::ModelBiasBaselineConfig]
    #
    # @!attribute [rw] model_bias_app_specification
    #   Configures the model bias job to run a specified Docker container
    #   image.
    #   @return [Types::ModelBiasAppSpecification]
    #
    # @!attribute [rw] model_bias_job_input
    #   Inputs for the model bias job.
    #   @return [Types::ModelBiasJobInput]
    #
    # @!attribute [rw] model_bias_job_output_config
    #   The output configuration for monitoring jobs.
    #   @return [Types::MonitoringOutputConfig]
    #
    # @!attribute [rw] job_resources
    #   Identifies the resources to deploy for a monitoring job.
    #   @return [Types::MonitoringResources]
    #
    # @!attribute [rw] network_config
    #   Networking options for a model bias job.
    #   @return [Types::MonitoringNetworkConfig]
    #
    # @!attribute [rw] role_arn
    #   The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker
    #   AI can assume to perform tasks on your behalf.
    #   @return [String]
    #
    # @!attribute [rw] stopping_condition
    #   A time limit for how long the monitoring job is allowed to run
    #   before stopping.
    #   @return [Types::MonitoringStoppingCondition]
    #
    # @!attribute [rw] tags
    #   (Optional) An array of key-value pairs. For more information, see [
    #   Using Cost Allocation Tags][1] in the *Amazon Web Services Billing
    #   and Cost Management User Guide*.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html#allocation-whatURL
    #   @return [Array<Types::Tag>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateModelBiasJobDefinitionRequest AWS API Documentation
    #
    class CreateModelBiasJobDefinitionRequest < Struct.new(
      :job_definition_name,
      :model_bias_baseline_config,
      :model_bias_app_specification,
      :model_bias_job_input,
      :model_bias_job_output_config,
      :job_resources,
      :network_config,
      :role_arn,
      :stopping_condition,
      :tags)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] job_definition_arn
    #   The Amazon Resource Name (ARN) of the model bias job.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateModelBiasJobDefinitionResponse AWS API Documentation
    #
    class CreateModelBiasJobDefinitionResponse < Struct.new(
      :job_definition_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] model_card_name
    #   The name or Amazon Resource Name (ARN) of the model card to export.
    #   @return [String]
    #
    # @!attribute [rw] model_card_version
    #   The version of the model card to export. If a version is not
    #   provided, then the latest version of the model card is exported.
    #   @return [Integer]
    #
    # @!attribute [rw] model_card_export_job_name
    #   The name of the model card export job.
    #   @return [String]
    #
    # @!attribute [rw] output_config
    #   The model card output configuration that specifies the Amazon S3
    #   path for exporting.
    #   @return [Types::ModelCardExportOutputConfig]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateModelCardExportJobRequest AWS API Documentation
    #
    class CreateModelCardExportJobRequest < Struct.new(
      :model_card_name,
      :model_card_version,
      :model_card_export_job_name,
      :output_config)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] model_card_export_job_arn
    #   The Amazon Resource Name (ARN) of the model card export job.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateModelCardExportJobResponse AWS API Documentation
    #
    class CreateModelCardExportJobResponse < Struct.new(
      :model_card_export_job_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] model_card_name
    #   The unique name of the model card.
    #   @return [String]
    #
    # @!attribute [rw] security_config
    #   An optional Key Management Service key to encrypt, decrypt, and
    #   re-encrypt model card content for regulated workloads with highly
    #   sensitive data.
    #   @return [Types::ModelCardSecurityConfig]
    #
    # @!attribute [rw] content
    #   The content of the model card. Content must be in [model card JSON
    #   schema][1] and provided as a string.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/model-cards.html#model-cards-json-schema
    #   @return [String]
    #
    # @!attribute [rw] model_card_status
    #   The approval status of the model card within your organization.
    #   Different organizations might have different criteria for model card
    #   review and approval.
    #
    #   * `Draft`: The model card is a work in progress.
    #
    #   * `PendingReview`: The model card is pending review.
    #
    #   * `Approved`: The model card is approved.
    #
    #   * `Archived`: The model card is archived. No more updates should be
    #     made to the model card, but it can still be exported.
    #   @return [String]
    #
    # @!attribute [rw] tags
    #   Key-value pairs used to manage metadata for model cards.
    #   @return [Array<Types::Tag>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateModelCardRequest AWS API Documentation
    #
    class CreateModelCardRequest < Struct.new(
      :model_card_name,
      :security_config,
      :content,
      :model_card_status,
      :tags)
      SENSITIVE = [:content]
      include Aws::Structure
    end

    # @!attribute [rw] model_card_arn
    #   The Amazon Resource Name (ARN) of the successfully created model
    #   card.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateModelCardResponse AWS API Documentation
    #
    class CreateModelCardResponse < Struct.new(
      :model_card_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] job_definition_name
    #   The name of the model explainability job definition. The name must
    #   be unique within an Amazon Web Services Region in the Amazon Web
    #   Services account.
    #   @return [String]
    #
    # @!attribute [rw] model_explainability_baseline_config
    #   The baseline configuration for a model explainability job.
    #   @return [Types::ModelExplainabilityBaselineConfig]
    #
    # @!attribute [rw] model_explainability_app_specification
    #   Configures the model explainability job to run a specified Docker
    #   container image.
    #   @return [Types::ModelExplainabilityAppSpecification]
    #
    # @!attribute [rw] model_explainability_job_input
    #   Inputs for the model explainability job.
    #   @return [Types::ModelExplainabilityJobInput]
    #
    # @!attribute [rw] model_explainability_job_output_config
    #   The output configuration for monitoring jobs.
    #   @return [Types::MonitoringOutputConfig]
    #
    # @!attribute [rw] job_resources
    #   Identifies the resources to deploy for a monitoring job.
    #   @return [Types::MonitoringResources]
    #
    # @!attribute [rw] network_config
    #   Networking options for a model explainability job.
    #   @return [Types::MonitoringNetworkConfig]
    #
    # @!attribute [rw] role_arn
    #   The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker
    #   AI can assume to perform tasks on your behalf.
    #   @return [String]
    #
    # @!attribute [rw] stopping_condition
    #   A time limit for how long the monitoring job is allowed to run
    #   before stopping.
    #   @return [Types::MonitoringStoppingCondition]
    #
    # @!attribute [rw] tags
    #   (Optional) An array of key-value pairs. For more information, see [
    #   Using Cost Allocation Tags][1] in the *Amazon Web Services Billing
    #   and Cost Management User Guide*.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html#allocation-whatURL
    #   @return [Array<Types::Tag>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateModelExplainabilityJobDefinitionRequest AWS API Documentation
    #
    class CreateModelExplainabilityJobDefinitionRequest < Struct.new(
      :job_definition_name,
      :model_explainability_baseline_config,
      :model_explainability_app_specification,
      :model_explainability_job_input,
      :model_explainability_job_output_config,
      :job_resources,
      :network_config,
      :role_arn,
      :stopping_condition,
      :tags)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] job_definition_arn
    #   The Amazon Resource Name (ARN) of the model explainability job.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateModelExplainabilityJobDefinitionResponse AWS API Documentation
    #
    class CreateModelExplainabilityJobDefinitionResponse < Struct.new(
      :job_definition_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] model_name
    #   The name of the new model.
    #   @return [String]
    #
    # @!attribute [rw] primary_container
    #   The location of the primary docker image containing inference code,
    #   associated artifacts, and custom environment map that the inference
    #   code uses when the model is deployed for predictions.
    #   @return [Types::ContainerDefinition]
    #
    # @!attribute [rw] containers
    #   Specifies the containers in the inference pipeline.
    #   @return [Array<Types::ContainerDefinition>]
    #
    # @!attribute [rw] inference_execution_config
    #   Specifies details of how containers in a multi-container endpoint
    #   are called.
    #   @return [Types::InferenceExecutionConfig]
    #
    # @!attribute [rw] execution_role_arn
    #   The Amazon Resource Name (ARN) of the IAM role that SageMaker can
    #   assume to access model artifacts and docker image for deployment on
    #   ML compute instances or for batch transform jobs. Deploying on ML
    #   compute instances is part of model hosting. For more information,
    #   see [SageMaker Roles][1].
    #
    #   <note markdown="1"> To be able to pass this role to SageMaker, the caller of this API
    #   must have the `iam:PassRole` permission.
    #
    #    </note>
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html
    #   @return [String]
    #
    # @!attribute [rw] tags
    #   An array of key-value pairs. You can use tags to categorize your
    #   Amazon Web Services resources in different ways, for example, by
    #   purpose, owner, or environment. For more information, see [Tagging
    #   Amazon Web Services Resources][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html
    #   @return [Array<Types::Tag>]
    #
    # @!attribute [rw] vpc_config
    #   A [VpcConfig][1] object that specifies the VPC that you want your
    #   model to connect to. Control access to and from your model container
    #   by configuring the VPC. `VpcConfig` is used in hosting services and
    #   in batch transform. For more information, see [Protect Endpoints by
    #   Using an Amazon Virtual Private Cloud][2] and [Protect Data in Batch
    #   Transform Jobs by Using an Amazon Virtual Private Cloud][3].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_VpcConfig.html
    #   [2]: https://docs.aws.amazon.com/sagemaker/latest/dg/host-vpc.html
    #   [3]: https://docs.aws.amazon.com/sagemaker/latest/dg/batch-vpc.html
    #   @return [Types::VpcConfig]
    #
    # @!attribute [rw] enable_network_isolation
    #   Isolates the model container. No inbound or outbound network calls
    #   can be made to or from the model container.
    #   @return [Boolean]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateModelInput AWS API Documentation
    #
    class CreateModelInput < Struct.new(
      :model_name,
      :primary_container,
      :containers,
      :inference_execution_config,
      :execution_role_arn,
      :tags,
      :vpc_config,
      :enable_network_isolation)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] model_arn
    #   The ARN of the model created in SageMaker.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateModelOutput AWS API Documentation
    #
    class CreateModelOutput < Struct.new(
      :model_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] model_package_group_name
    #   The name of the model group.
    #   @return [String]
    #
    # @!attribute [rw] model_package_group_description
    #   A description for the model group.
    #   @return [String]
    #
    # @!attribute [rw] tags
    #   A list of key value pairs associated with the model group. For more
    #   information, see [Tagging Amazon Web Services resources][1] in the
    #   *Amazon Web Services General Reference Guide*.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html
    #   @return [Array<Types::Tag>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateModelPackageGroupInput AWS API Documentation
    #
    class CreateModelPackageGroupInput < Struct.new(
      :model_package_group_name,
      :model_package_group_description,
      :tags)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] model_package_group_arn
    #   The Amazon Resource Name (ARN) of the model group.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateModelPackageGroupOutput AWS API Documentation
    #
    class CreateModelPackageGroupOutput < Struct.new(
      :model_package_group_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] model_package_name
    #   The name of the model package. The name must have 1 to 63
    #   characters. Valid characters are a-z, A-Z, 0-9, and - (hyphen).
    #
    #   This parameter is required for unversioned models. It is not
    #   applicable to versioned models.
    #   @return [String]
    #
    # @!attribute [rw] model_package_group_name
    #   The name or Amazon Resource Name (ARN) of the model package group
    #   that this model version belongs to.
    #
    #   This parameter is required for versioned models, and does not apply
    #   to unversioned models.
    #   @return [String]
    #
    # @!attribute [rw] model_package_description
    #   A description of the model package.
    #   @return [String]
    #
    # @!attribute [rw] inference_specification
    #   Specifies details about inference jobs that you can run with models
    #   based on this model package, including the following information:
    #
    #   * The Amazon ECR paths of containers that contain the inference code
    #     and model artifacts.
    #
    #   * The instance types that the model package supports for transform
    #     jobs and real-time endpoints used for inference.
    #
    #   * The input and output content formats that the model package
    #     supports for inference.
    #   @return [Types::InferenceSpecification]
    #
    # @!attribute [rw] validation_specification
    #   Specifies configurations for one or more transform jobs that
    #   SageMaker runs to test the model package.
    #   @return [Types::ModelPackageValidationSpecification]
    #
    # @!attribute [rw] source_algorithm_specification
    #   Details about the algorithm that was used to create the model
    #   package.
    #   @return [Types::SourceAlgorithmSpecification]
    #
    # @!attribute [rw] certify_for_marketplace
    #   Whether to certify the model package for listing on Amazon Web
    #   Services Marketplace.
    #
    #   This parameter is optional for unversioned models, and does not
    #   apply to versioned models.
    #   @return [Boolean]
    #
    # @!attribute [rw] tags
    #   A list of key value pairs associated with the model. For more
    #   information, see [Tagging Amazon Web Services resources][1] in the
    #   *Amazon Web Services General Reference Guide*.
    #
    #   If you supply `ModelPackageGroupName`, your model package belongs to
    #   the model group you specify and uses the tags associated with the
    #   model group. In this case, you cannot supply a `tag` argument.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html
    #   @return [Array<Types::Tag>]
    #
    # @!attribute [rw] model_approval_status
    #   Whether the model is approved for deployment.
    #
    #   This parameter is optional for versioned models, and does not apply
    #   to unversioned models.
    #
    #   For versioned models, the value of this parameter must be set to
    #   `Approved` to deploy the model.
    #   @return [String]
    #
    # @!attribute [rw] metadata_properties
    #   Metadata properties of the tracking entity, trial, or trial
    #   component.
    #   @return [Types::MetadataProperties]
    #
    # @!attribute [rw] model_metrics
    #   A structure that contains model metrics reports.
    #   @return [Types::ModelMetrics]
    #
    # @!attribute [rw] client_token
    #   A unique token that guarantees that the call to this API is
    #   idempotent.
    #
    #   **A suitable default value is auto-generated.** You should normally
    #   not need to pass this option.
    #   @return [String]
    #
    # @!attribute [rw] domain
    #   The machine learning domain of your model package and its
    #   components. Common machine learning domains include computer vision
    #   and natural language processing.
    #   @return [String]
    #
    # @!attribute [rw] task
    #   The machine learning task your model package accomplishes. Common
    #   machine learning tasks include object detection and image
    #   classification. The following tasks are supported by Inference
    #   Recommender: `"IMAGE_CLASSIFICATION"` \| `"OBJECT_DETECTION"` \|
    #   `"TEXT_GENERATION"` \|`"IMAGE_SEGMENTATION"` \| `"FILL_MASK"` \|
    #   `"CLASSIFICATION"` \| `"REGRESSION"` \| `"OTHER"`.
    #
    #   Specify "OTHER" if none of the tasks listed fit your use case.
    #   @return [String]
    #
    # @!attribute [rw] sample_payload_url
    #   The Amazon Simple Storage Service (Amazon S3) path where the sample
    #   payload is stored. This path must point to a single gzip compressed
    #   tar archive (.tar.gz suffix). This archive can hold multiple files
    #   that are all equally used in the load test. Each file in the archive
    #   must satisfy the size constraints of the [InvokeEndpoint][1] call.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_runtime_InvokeEndpoint.html#API_runtime_InvokeEndpoint_RequestSyntax
    #   @return [String]
    #
    # @!attribute [rw] customer_metadata_properties
    #   The metadata properties associated with the model package versions.
    #   @return [Hash<String,String>]
    #
    # @!attribute [rw] drift_check_baselines
    #   Represents the drift check baselines that can be used when the model
    #   monitor is set using the model package. For more information, see
    #   the topic on [Drift Detection against Previous Baselines in
    #   SageMaker Pipelines][1] in the *Amazon SageMaker Developer Guide*.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/pipelines-quality-clarify-baseline-lifecycle.html#pipelines-quality-clarify-baseline-drift-detection
    #   @return [Types::DriftCheckBaselines]
    #
    # @!attribute [rw] additional_inference_specifications
    #   An array of additional Inference Specification objects. Each
    #   additional Inference Specification specifies artifacts based on this
    #   model package that can be used on inference endpoints. Generally
    #   used with SageMaker Neo to store the compiled artifacts.
    #   @return [Array<Types::AdditionalInferenceSpecificationDefinition>]
    #
    # @!attribute [rw] skip_model_validation
    #   Indicates if you want to skip model validation.
    #   @return [String]
    #
    # @!attribute [rw] source_uri
    #   The URI of the source for the model package. If you want to clone a
    #   model package, set it to the model package Amazon Resource Name
    #   (ARN). If you want to register a model, set it to the model ARN.
    #   @return [String]
    #
    # @!attribute [rw] security_config
    #   The KMS Key ID (`KMSKeyId`) used for encryption of model package
    #   information.
    #   @return [Types::ModelPackageSecurityConfig]
    #
    # @!attribute [rw] model_card
    #   The model card associated with the model package. Since
    #   `ModelPackageModelCard` is tied to a model package, it is a specific
    #   usage of a model card and its schema is simplified compared to the
    #   schema of `ModelCard`. The `ModelPackageModelCard` schema does not
    #   include `model_package_details`, and `model_overview` is composed of
    #   the `model_creator` and `model_artifact` properties. For more
    #   information about the model package model card schema, see [Model
    #   package model card schema][1]. For more information about the model
    #   card associated with the model package, see [View the Details of a
    #   Model Version][2].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/model-registry-details.html#model-card-schema
    #   [2]: https://docs.aws.amazon.com/sagemaker/latest/dg/model-registry-details.html
    #   @return [Types::ModelPackageModelCard]
    #
    # @!attribute [rw] model_life_cycle
    #   A structure describing the current state of the model in its life
    #   cycle.
    #   @return [Types::ModelLifeCycle]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateModelPackageInput AWS API Documentation
    #
    class CreateModelPackageInput < Struct.new(
      :model_package_name,
      :model_package_group_name,
      :model_package_description,
      :inference_specification,
      :validation_specification,
      :source_algorithm_specification,
      :certify_for_marketplace,
      :tags,
      :model_approval_status,
      :metadata_properties,
      :model_metrics,
      :client_token,
      :domain,
      :task,
      :sample_payload_url,
      :customer_metadata_properties,
      :drift_check_baselines,
      :additional_inference_specifications,
      :skip_model_validation,
      :source_uri,
      :security_config,
      :model_card,
      :model_life_cycle)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] model_package_arn
    #   The Amazon Resource Name (ARN) of the new model package.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateModelPackageOutput AWS API Documentation
    #
    class CreateModelPackageOutput < Struct.new(
      :model_package_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] job_definition_name
    #   The name of the monitoring job definition.
    #   @return [String]
    #
    # @!attribute [rw] model_quality_baseline_config
    #   Specifies the constraints and baselines for the monitoring job.
    #   @return [Types::ModelQualityBaselineConfig]
    #
    # @!attribute [rw] model_quality_app_specification
    #   The container that runs the monitoring job.
    #   @return [Types::ModelQualityAppSpecification]
    #
    # @!attribute [rw] model_quality_job_input
    #   A list of the inputs that are monitored. Currently endpoints are
    #   supported.
    #   @return [Types::ModelQualityJobInput]
    #
    # @!attribute [rw] model_quality_job_output_config
    #   The output configuration for monitoring jobs.
    #   @return [Types::MonitoringOutputConfig]
    #
    # @!attribute [rw] job_resources
    #   Identifies the resources to deploy for a monitoring job.
    #   @return [Types::MonitoringResources]
    #
    # @!attribute [rw] network_config
    #   Specifies the network configuration for the monitoring job.
    #   @return [Types::MonitoringNetworkConfig]
    #
    # @!attribute [rw] role_arn
    #   The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker
    #   AI can assume to perform tasks on your behalf.
    #   @return [String]
    #
    # @!attribute [rw] stopping_condition
    #   A time limit for how long the monitoring job is allowed to run
    #   before stopping.
    #   @return [Types::MonitoringStoppingCondition]
    #
    # @!attribute [rw] tags
    #   (Optional) An array of key-value pairs. For more information, see [
    #   Using Cost Allocation Tags][1] in the *Amazon Web Services Billing
    #   and Cost Management User Guide*.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html#allocation-whatURL
    #   @return [Array<Types::Tag>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateModelQualityJobDefinitionRequest AWS API Documentation
    #
    class CreateModelQualityJobDefinitionRequest < Struct.new(
      :job_definition_name,
      :model_quality_baseline_config,
      :model_quality_app_specification,
      :model_quality_job_input,
      :model_quality_job_output_config,
      :job_resources,
      :network_config,
      :role_arn,
      :stopping_condition,
      :tags)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] job_definition_arn
    #   The Amazon Resource Name (ARN) of the model quality monitoring job.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateModelQualityJobDefinitionResponse AWS API Documentation
    #
    class CreateModelQualityJobDefinitionResponse < Struct.new(
      :job_definition_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] monitoring_schedule_name
    #   The name of the monitoring schedule. The name must be unique within
    #   an Amazon Web Services Region within an Amazon Web Services account.
    #   @return [String]
    #
    # @!attribute [rw] monitoring_schedule_config
    #   The configuration object that specifies the monitoring schedule and
    #   defines the monitoring job.
    #   @return [Types::MonitoringScheduleConfig]
    #
    # @!attribute [rw] tags
    #   (Optional) An array of key-value pairs. For more information, see
    #   [Using Cost Allocation Tags](
    #   https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html#allocation-whatURL)
    #   in the *Amazon Web Services Billing and Cost Management User Guide*.
    #   @return [Array<Types::Tag>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateMonitoringScheduleRequest AWS API Documentation
    #
    class CreateMonitoringScheduleRequest < Struct.new(
      :monitoring_schedule_name,
      :monitoring_schedule_config,
      :tags)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] monitoring_schedule_arn
    #   The Amazon Resource Name (ARN) of the monitoring schedule.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateMonitoringScheduleResponse AWS API Documentation
    #
    class CreateMonitoringScheduleResponse < Struct.new(
      :monitoring_schedule_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] notebook_instance_name
    #   The name of the new notebook instance.
    #   @return [String]
    #
    # @!attribute [rw] instance_type
    #   The type of ML compute instance to launch for the notebook instance.
    #   @return [String]
    #
    # @!attribute [rw] subnet_id
    #   The ID of the subnet in a VPC to which you would like to have a
    #   connectivity from your ML compute instance.
    #   @return [String]
    #
    # @!attribute [rw] security_group_ids
    #   The VPC security group IDs, in the form sg-xxxxxxxx. The security
    #   groups must be for the same VPC as specified in the subnet.
    #   @return [Array<String>]
    #
    # @!attribute [rw] ip_address_type
    #   The IP address type for the notebook instance. Specify `ipv4` for
    #   IPv4-only connectivity or `dualstack` for both IPv4 and IPv6
    #   connectivity. When you specify `dualstack`, the subnet must support
    #   IPv6 CIDR blocks. If not specified, defaults to `ipv4`.
    #   @return [String]
    #
    # @!attribute [rw] role_arn
    #   When you send any requests to Amazon Web Services resources from the
    #   notebook instance, SageMaker AI assumes this role to perform tasks
    #   on your behalf. You must grant this role necessary permissions so
    #   SageMaker AI can perform these tasks. The policy must allow the
    #   SageMaker AI service principal (sagemaker.amazonaws.com) permissions
    #   to assume this role. For more information, see [SageMaker AI
    #   Roles][1].
    #
    #   <note markdown="1"> To be able to pass this role to SageMaker AI, the caller of this API
    #   must have the `iam:PassRole` permission.
    #
    #    </note>
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html
    #   @return [String]
    #
    # @!attribute [rw] kms_key_id
    #   The Amazon Resource Name (ARN) of a Amazon Web Services Key
    #   Management Service key that SageMaker AI uses to encrypt data on the
    #   storage volume attached to your notebook instance. The KMS key you
    #   provide must be enabled. For information, see [Enabling and
    #   Disabling Keys][1] in the *Amazon Web Services Key Management
    #   Service Developer Guide*.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/kms/latest/developerguide/enabling-keys.html
    #   @return [String]
    #
    # @!attribute [rw] tags
    #   An array of key-value pairs. You can use tags to categorize your
    #   Amazon Web Services resources in different ways, for example, by
    #   purpose, owner, or environment. For more information, see [Tagging
    #   Amazon Web Services Resources][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html
    #   @return [Array<Types::Tag>]
    #
    # @!attribute [rw] lifecycle_config_name
    #   The name of a lifecycle configuration to associate with the notebook
    #   instance. For information about lifestyle configurations, see [Step
    #   2.1: (Optional) Customize a Notebook Instance][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/notebook-lifecycle-config.html
    #   @return [String]
    #
    # @!attribute [rw] direct_internet_access
    #   Sets whether SageMaker AI provides internet access to the notebook
    #   instance. If you set this to `Disabled` this notebook instance is
    #   able to access resources only in your VPC, and is not be able to
    #   connect to SageMaker AI training and endpoint services unless you
    #   configure a NAT Gateway in your VPC.
    #
    #   For more information, see [Notebook Instances Are Internet-Enabled
    #   by Default][1]. You can set the value of this parameter to
    #   `Disabled` only if you set a value for the `SubnetId` parameter.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/appendix-additional-considerations.html#appendix-notebook-and-internet-access
    #   @return [String]
    #
    # @!attribute [rw] volume_size_in_gb
    #   The size, in GB, of the ML storage volume to attach to the notebook
    #   instance. The default value is 5 GB.
    #   @return [Integer]
    #
    # @!attribute [rw] accelerator_types
    #   This parameter is no longer supported. Elastic Inference (EI) is no
    #   longer available.
    #
    #   This parameter was used to specify a list of EI instance types to
    #   associate with this notebook instance.
    #   @return [Array<String>]
    #
    # @!attribute [rw] default_code_repository
    #   A Git repository to associate with the notebook instance as its
    #   default code repository. This can be either the name of a Git
    #   repository stored as a resource in your account, or the URL of a Git
    #   repository in [Amazon Web Services CodeCommit][1] or in any other
    #   Git repository. When you open a notebook instance, it opens in the
    #   directory that contains this repository. For more information, see
    #   [Associating Git Repositories with SageMaker AI Notebook
    #   Instances][2].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html
    #   [2]: https://docs.aws.amazon.com/sagemaker/latest/dg/nbi-git-repo.html
    #   @return [String]
    #
    # @!attribute [rw] additional_code_repositories
    #   An array of up to three Git repositories to associate with the
    #   notebook instance. These can be either the names of Git repositories
    #   stored as resources in your account, or the URL of Git repositories
    #   in [Amazon Web Services CodeCommit][1] or in any other Git
    #   repository. These repositories are cloned at the same level as the
    #   default repository of your notebook instance. For more information,
    #   see [Associating Git Repositories with SageMaker AI Notebook
    #   Instances][2].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html
    #   [2]: https://docs.aws.amazon.com/sagemaker/latest/dg/nbi-git-repo.html
    #   @return [Array<String>]
    #
    # @!attribute [rw] root_access
    #   Whether root access is enabled or disabled for users of the notebook
    #   instance. The default value is `Enabled`.
    #
    #   <note markdown="1"> Lifecycle configurations need root access to be able to set up a
    #   notebook instance. Because of this, lifecycle configurations
    #   associated with a notebook instance always run with root access even
    #   if you disable root access for users.
    #
    #    </note>
    #   @return [String]
    #
    # @!attribute [rw] platform_identifier
    #   The platform identifier of the notebook instance runtime
    #   environment.
    #   @return [String]
    #
    # @!attribute [rw] instance_metadata_service_configuration
    #   Information on the IMDS configuration of the notebook instance
    #   @return [Types::InstanceMetadataServiceConfiguration]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateNotebookInstanceInput AWS API Documentation
    #
    class CreateNotebookInstanceInput < Struct.new(
      :notebook_instance_name,
      :instance_type,
      :subnet_id,
      :security_group_ids,
      :ip_address_type,
      :role_arn,
      :kms_key_id,
      :tags,
      :lifecycle_config_name,
      :direct_internet_access,
      :volume_size_in_gb,
      :accelerator_types,
      :default_code_repository,
      :additional_code_repositories,
      :root_access,
      :platform_identifier,
      :instance_metadata_service_configuration)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] notebook_instance_lifecycle_config_name
    #   The name of the lifecycle configuration.
    #   @return [String]
    #
    # @!attribute [rw] on_create
    #   A shell script that runs only once, when you create a notebook
    #   instance. The shell script must be a base64-encoded string.
    #   @return [Array<Types::NotebookInstanceLifecycleHook>]
    #
    # @!attribute [rw] on_start
    #   A shell script that runs every time you start a notebook instance,
    #   including when you create the notebook instance. The shell script
    #   must be a base64-encoded string.
    #   @return [Array<Types::NotebookInstanceLifecycleHook>]
    #
    # @!attribute [rw] tags
    #   An array of key-value pairs. You can use tags to categorize your
    #   Amazon Web Services resources in different ways, for example, by
    #   purpose, owner, or environment. For more information, see [Tagging
    #   Amazon Web Services Resources][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html
    #   @return [Array<Types::Tag>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateNotebookInstanceLifecycleConfigInput AWS API Documentation
    #
    class CreateNotebookInstanceLifecycleConfigInput < Struct.new(
      :notebook_instance_lifecycle_config_name,
      :on_create,
      :on_start,
      :tags)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] notebook_instance_lifecycle_config_arn
    #   The Amazon Resource Name (ARN) of the lifecycle configuration.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateNotebookInstanceLifecycleConfigOutput AWS API Documentation
    #
    class CreateNotebookInstanceLifecycleConfigOutput < Struct.new(
      :notebook_instance_lifecycle_config_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] notebook_instance_arn
    #   The Amazon Resource Name (ARN) of the notebook instance.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateNotebookInstanceOutput AWS API Documentation
    #
    class CreateNotebookInstanceOutput < Struct.new(
      :notebook_instance_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] optimization_job_name
    #   A custom name for the new optimization job.
    #   @return [String]
    #
    # @!attribute [rw] role_arn
    #   The Amazon Resource Name (ARN) of an IAM role that enables Amazon
    #   SageMaker AI to perform tasks on your behalf.
    #
    #   During model optimization, Amazon SageMaker AI needs your permission
    #   to:
    #
    #   * Read input data from an S3 bucket
    #
    #   * Write model artifacts to an S3 bucket
    #
    #   * Write logs to Amazon CloudWatch Logs
    #
    #   * Publish metrics to Amazon CloudWatch
    #
    #   You grant permissions for all of these tasks to an IAM role. To pass
    #   this role to Amazon SageMaker AI, the caller of this API must have
    #   the `iam:PassRole` permission. For more information, see [Amazon
    #   SageMaker AI Roles.][1]
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html
    #   @return [String]
    #
    # @!attribute [rw] model_source
    #   The location of the source model to optimize with an optimization
    #   job.
    #   @return [Types::OptimizationJobModelSource]
    #
    # @!attribute [rw] deployment_instance_type
    #   The type of instance that hosts the optimized model that you create
    #   with the optimization job.
    #   @return [String]
    #
    # @!attribute [rw] optimization_environment
    #   The environment variables to set in the model container.
    #   @return [Hash<String,String>]
    #
    # @!attribute [rw] optimization_configs
    #   Settings for each of the optimization techniques that the job
    #   applies.
    #   @return [Array<Types::OptimizationConfig>]
    #
    # @!attribute [rw] output_config
    #   Details for where to store the optimized model that you create with
    #   the optimization job.
    #   @return [Types::OptimizationJobOutputConfig]
    #
    # @!attribute [rw] stopping_condition
    #   Specifies a limit to how long a job can run. When the job reaches
    #   the time limit, SageMaker ends the job. Use this API to cap costs.
    #
    #   To stop a training job, SageMaker sends the algorithm the `SIGTERM`
    #   signal, which delays job termination for 120 seconds. Algorithms can
    #   use this 120-second window to save the model artifacts, so the
    #   results of training are not lost.
    #
    #   The training algorithms provided by SageMaker automatically save the
    #   intermediate results of a model training job when possible. This
    #   attempt to save artifacts is only a best effort case as model might
    #   not be in a state from which it can be saved. For example, if
    #   training has just started, the model might not be ready to save.
    #   When saved, this intermediate data is a valid model artifact. You
    #   can use it to create a model with `CreateModel`.
    #
    #   <note markdown="1"> The Neural Topic Model (NTM) currently does not support saving
    #   intermediate model artifacts. When training NTMs, make sure that the
    #   maximum runtime is sufficient for the training job to complete.
    #
    #    </note>
    #   @return [Types::StoppingCondition]
    #
    # @!attribute [rw] tags
    #   A list of key-value pairs associated with the optimization job. For
    #   more information, see [Tagging Amazon Web Services resources][1] in
    #   the *Amazon Web Services General Reference Guide*.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html
    #   @return [Array<Types::Tag>]
    #
    # @!attribute [rw] vpc_config
    #   A VPC in Amazon VPC that your optimized model has access to.
    #   @return [Types::OptimizationVpcConfig]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateOptimizationJobRequest AWS API Documentation
    #
    class CreateOptimizationJobRequest < Struct.new(
      :optimization_job_name,
      :role_arn,
      :model_source,
      :deployment_instance_type,
      :optimization_environment,
      :optimization_configs,
      :output_config,
      :stopping_condition,
      :tags,
      :vpc_config)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] optimization_job_arn
    #   The Amazon Resource Name (ARN) of the optimization job.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateOptimizationJobResponse AWS API Documentation
    #
    class CreateOptimizationJobResponse < Struct.new(
      :optimization_job_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] arn
    #   The ARN of the SageMaker Partner AI App to create the presigned URL
    #   for.
    #   @return [String]
    #
    # @!attribute [rw] expires_in_seconds
    #   The time that will pass before the presigned URL expires.
    #   @return [Integer]
    #
    # @!attribute [rw] session_expiration_duration_in_seconds
    #   Indicates how long the Amazon SageMaker Partner AI App session can
    #   be accessed for after logging in.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreatePartnerAppPresignedUrlRequest AWS API Documentation
    #
    class CreatePartnerAppPresignedUrlRequest < Struct.new(
      :arn,
      :expires_in_seconds,
      :session_expiration_duration_in_seconds)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] url
    #   The presigned URL that you can use to access the SageMaker Partner
    #   AI App.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreatePartnerAppPresignedUrlResponse AWS API Documentation
    #
    class CreatePartnerAppPresignedUrlResponse < Struct.new(
      :url)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] name
    #   The name to give the SageMaker Partner AI App.
    #   @return [String]
    #
    # @!attribute [rw] type
    #   The type of SageMaker Partner AI App to create. Must be one of the
    #   following: `lakera-guard`, `comet`, `deepchecks-llm-evaluation`, or
    #   `fiddler`.
    #   @return [String]
    #
    # @!attribute [rw] execution_role_arn
    #   The ARN of the IAM role that the partner application uses.
    #   @return [String]
    #
    # @!attribute [rw] kms_key_id
    #   SageMaker Partner AI Apps uses Amazon Web Services KMS to encrypt
    #   data at rest using an Amazon Web Services managed key by default.
    #   For more control, specify a customer managed key.
    #   @return [String]
    #
    # @!attribute [rw] maintenance_config
    #   Maintenance configuration settings for the SageMaker Partner AI App.
    #   @return [Types::PartnerAppMaintenanceConfig]
    #
    # @!attribute [rw] tier
    #   Indicates the instance type and size of the cluster attached to the
    #   SageMaker Partner AI App.
    #   @return [String]
    #
    # @!attribute [rw] application_config
    #   Configuration settings for the SageMaker Partner AI App.
    #   @return [Types::PartnerAppConfig]
    #
    # @!attribute [rw] auth_type
    #   The authorization type that users use to access the SageMaker
    #   Partner AI App.
    #   @return [String]
    #
    # @!attribute [rw] enable_iam_session_based_identity
    #   When set to `TRUE`, the SageMaker Partner AI App sets the Amazon Web
    #   Services IAM session name or the authenticated IAM user as the
    #   identity of the SageMaker Partner AI App user.
    #   @return [Boolean]
    #
    # @!attribute [rw] client_token
    #   A unique token that guarantees that the call to this API is
    #   idempotent.
    #
    #   **A suitable default value is auto-generated.** You should normally
    #   not need to pass this option.
    #   @return [String]
    #
    # @!attribute [rw] tags
    #   Each tag consists of a key and an optional value. Tag keys must be
    #   unique per resource.
    #   @return [Array<Types::Tag>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreatePartnerAppRequest AWS API Documentation
    #
    class CreatePartnerAppRequest < Struct.new(
      :name,
      :type,
      :execution_role_arn,
      :kms_key_id,
      :maintenance_config,
      :tier,
      :application_config,
      :auth_type,
      :enable_iam_session_based_identity,
      :client_token,
      :tags)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] arn
    #   The ARN of the SageMaker Partner AI App.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreatePartnerAppResponse AWS API Documentation
    #
    class CreatePartnerAppResponse < Struct.new(
      :arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] pipeline_name
    #   The name of the pipeline.
    #   @return [String]
    #
    # @!attribute [rw] pipeline_display_name
    #   The display name of the pipeline.
    #   @return [String]
    #
    # @!attribute [rw] pipeline_definition
    #   The [JSON pipeline definition][1] of the pipeline.
    #
    #
    #
    #   [1]: https://aws-sagemaker-mlops.github.io/sagemaker-model-building-pipeline-definition-JSON-schema/
    #   @return [String]
    #
    # @!attribute [rw] pipeline_definition_s3_location
    #   The location of the pipeline definition stored in Amazon S3. If
    #   specified, SageMaker will retrieve the pipeline definition from this
    #   location.
    #   @return [Types::PipelineDefinitionS3Location]
    #
    # @!attribute [rw] pipeline_description
    #   A description of the pipeline.
    #   @return [String]
    #
    # @!attribute [rw] client_request_token
    #   A unique, case-sensitive identifier that you provide to ensure the
    #   idempotency of the operation. An idempotent operation completes no
    #   more than one time.
    #
    #   **A suitable default value is auto-generated.** You should normally
    #   not need to pass this option.
    #   @return [String]
    #
    # @!attribute [rw] role_arn
    #   The Amazon Resource Name (ARN) of the role used by the pipeline to
    #   access and create resources.
    #   @return [String]
    #
    # @!attribute [rw] tags
    #   A list of tags to apply to the created pipeline.
    #   @return [Array<Types::Tag>]
    #
    # @!attribute [rw] parallelism_configuration
    #   This is the configuration that controls the parallelism of the
    #   pipeline. If specified, it applies to all runs of this pipeline by
    #   default.
    #   @return [Types::ParallelismConfiguration]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreatePipelineRequest AWS API Documentation
    #
    class CreatePipelineRequest < Struct.new(
      :pipeline_name,
      :pipeline_display_name,
      :pipeline_definition,
      :pipeline_definition_s3_location,
      :pipeline_description,
      :client_request_token,
      :role_arn,
      :tags,
      :parallelism_configuration)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] pipeline_arn
    #   The Amazon Resource Name (ARN) of the created pipeline.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreatePipelineResponse AWS API Documentation
    #
    class CreatePipelineResponse < Struct.new(
      :pipeline_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] domain_id
    #   The domain ID.
    #   @return [String]
    #
    # @!attribute [rw] user_profile_name
    #   The name of the UserProfile to sign-in as.
    #   @return [String]
    #
    # @!attribute [rw] session_expiration_duration_in_seconds
    #   The session expiration duration in seconds. This value defaults to
    #   43200.
    #   @return [Integer]
    #
    # @!attribute [rw] expires_in_seconds
    #   The number of seconds until the pre-signed URL expires. This value
    #   defaults to 300.
    #   @return [Integer]
    #
    # @!attribute [rw] space_name
    #   The name of the space.
    #   @return [String]
    #
    # @!attribute [rw] landing_uri
    #   The landing page that the user is directed to when accessing the
    #   presigned URL. Using this value, users can access Studio or Studio
    #   Classic, even if it is not the default experience for the domain.
    #   The supported values are:
    #
    #   * `studio::relative/path`: Directs users to the relative path in
    #     Studio.
    #
    #   * `app:JupyterServer:relative/path`: Directs users to the relative
    #     path in the Studio Classic application.
    #
    #   * `app:JupyterLab:relative/path`: Directs users to the relative path
    #     in the JupyterLab application.
    #
    #   * `app:RStudioServerPro:relative/path`: Directs users to the
    #     relative path in the RStudio application.
    #
    #   * `app:CodeEditor:relative/path`: Directs users to the relative path
    #     in the Code Editor, based on Code-OSS, Visual Studio Code - Open
    #     Source application.
    #
    #   * `app:Canvas:relative/path`: Directs users to the relative path in
    #     the Canvas application.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreatePresignedDomainUrlRequest AWS API Documentation
    #
    class CreatePresignedDomainUrlRequest < Struct.new(
      :domain_id,
      :user_profile_name,
      :session_expiration_duration_in_seconds,
      :expires_in_seconds,
      :space_name,
      :landing_uri)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] authorized_url
    #   The presigned URL.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreatePresignedDomainUrlResponse AWS API Documentation
    #
    class CreatePresignedDomainUrlResponse < Struct.new(
      :authorized_url)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] tracking_server_name
    #   The name of the tracking server to connect to your MLflow UI.
    #   @return [String]
    #
    # @!attribute [rw] expires_in_seconds
    #   The duration in seconds that your presigned URL is valid. The
    #   presigned URL can be used only once.
    #   @return [Integer]
    #
    # @!attribute [rw] session_expiration_duration_in_seconds
    #   The duration in seconds that your MLflow UI session is valid.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreatePresignedMlflowTrackingServerUrlRequest AWS API Documentation
    #
    class CreatePresignedMlflowTrackingServerUrlRequest < Struct.new(
      :tracking_server_name,
      :expires_in_seconds,
      :session_expiration_duration_in_seconds)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] authorized_url
    #   A presigned URL with an authorization token.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreatePresignedMlflowTrackingServerUrlResponse AWS API Documentation
    #
    class CreatePresignedMlflowTrackingServerUrlResponse < Struct.new(
      :authorized_url)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] notebook_instance_name
    #   The name of the notebook instance.
    #   @return [String]
    #
    # @!attribute [rw] session_expiration_duration_in_seconds
    #   The duration of the session, in seconds. The default is 12 hours.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreatePresignedNotebookInstanceUrlInput AWS API Documentation
    #
    class CreatePresignedNotebookInstanceUrlInput < Struct.new(
      :notebook_instance_name,
      :session_expiration_duration_in_seconds)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] authorized_url
    #   A JSON object that contains the URL string.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreatePresignedNotebookInstanceUrlOutput AWS API Documentation
    #
    class CreatePresignedNotebookInstanceUrlOutput < Struct.new(
      :authorized_url)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] processing_inputs
    #   An array of inputs configuring the data to download into the
    #   processing container.
    #   @return [Array<Types::ProcessingInput>]
    #
    # @!attribute [rw] processing_output_config
    #   Output configuration for the processing job.
    #   @return [Types::ProcessingOutputConfig]
    #
    # @!attribute [rw] processing_job_name
    #   The name of the processing job. The name must be unique within an
    #   Amazon Web Services Region in the Amazon Web Services account.
    #   @return [String]
    #
    # @!attribute [rw] processing_resources
    #   Identifies the resources, ML compute instances, and ML storage
    #   volumes to deploy for a processing job. In distributed training, you
    #   specify more than one instance.
    #   @return [Types::ProcessingResources]
    #
    # @!attribute [rw] stopping_condition
    #   The time limit for how long the processing job is allowed to run.
    #   @return [Types::ProcessingStoppingCondition]
    #
    # @!attribute [rw] app_specification
    #   Configures the processing job to run a specified Docker container
    #   image.
    #   @return [Types::AppSpecification]
    #
    # @!attribute [rw] environment
    #   The environment variables to set in the Docker container. Up to 100
    #   key and values entries in the map are supported.
    #
    #   Do not include any security-sensitive information including account
    #   access IDs, secrets, or tokens in any environment fields. As part of
    #   the shared responsibility model, you are responsible for any
    #   potential exposure, unauthorized access, or compromise of your
    #   sensitive data if caused by security-sensitive information included
    #   in the request environment variable or plain text fields.
    #   @return [Hash<String,String>]
    #
    # @!attribute [rw] network_config
    #   Networking options for a processing job, such as whether to allow
    #   inbound and outbound network calls to and from processing
    #   containers, and the VPC subnets and security groups to use for
    #   VPC-enabled processing jobs.
    #   @return [Types::NetworkConfig]
    #
    # @!attribute [rw] role_arn
    #   The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker
    #   can assume to perform tasks on your behalf.
    #   @return [String]
    #
    # @!attribute [rw] tags
    #   (Optional) An array of key-value pairs. For more information, see
    #   [Using Cost Allocation Tags][1] in the *Amazon Web Services Billing
    #   and Cost Management User Guide*.
    #
    #   Do not include any security-sensitive information including account
    #   access IDs, secrets, or tokens in any tags. As part of the shared
    #   responsibility model, you are responsible for any potential
    #   exposure, unauthorized access, or compromise of your sensitive data
    #   if caused by security-sensitive information included in the request
    #   tag variable or plain text fields.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html#allocation-whatURL
    #   @return [Array<Types::Tag>]
    #
    # @!attribute [rw] experiment_config
    #   Associates a SageMaker job as a trial component with an experiment
    #   and trial. Specified when you call the following APIs:
    #
    #   * [CreateProcessingJob][1]
    #
    #   * [CreateTrainingJob][2]
    #
    #   * [CreateTransformJob][3]
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateProcessingJob.html
    #   [2]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html
    #   [3]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html
    #   @return [Types::ExperimentConfig]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateProcessingJobRequest AWS API Documentation
    #
    class CreateProcessingJobRequest < Struct.new(
      :processing_inputs,
      :processing_output_config,
      :processing_job_name,
      :processing_resources,
      :stopping_condition,
      :app_specification,
      :environment,
      :network_config,
      :role_arn,
      :tags,
      :experiment_config)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] processing_job_arn
    #   The Amazon Resource Name (ARN) of the processing job.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateProcessingJobResponse AWS API Documentation
    #
    class CreateProcessingJobResponse < Struct.new(
      :processing_job_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] project_name
    #   The name of the project.
    #   @return [String]
    #
    # @!attribute [rw] project_description
    #   A description for the project.
    #   @return [String]
    #
    # @!attribute [rw] service_catalog_provisioning_details
    #   The product ID and provisioning artifact ID to provision a service
    #   catalog. The provisioning artifact ID will default to the latest
    #   provisioning artifact ID of the product, if you don't provide the
    #   provisioning artifact ID. For more information, see [What is Amazon
    #   Web Services Service Catalog][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/servicecatalog/latest/adminguide/introduction.html
    #   @return [Types::ServiceCatalogProvisioningDetails]
    #
    # @!attribute [rw] tags
    #   An array of key-value pairs that you want to use to organize and
    #   track your Amazon Web Services resource costs. For more information,
    #   see [Tagging Amazon Web Services resources][1] in the *Amazon Web
    #   Services General Reference Guide*.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html
    #   @return [Array<Types::Tag>]
    #
    # @!attribute [rw] template_providers
    #   An array of template provider configurations for creating
    #   infrastructure resources for the project.
    #   @return [Array<Types::CreateTemplateProvider>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateProjectInput AWS API Documentation
    #
    class CreateProjectInput < Struct.new(
      :project_name,
      :project_description,
      :service_catalog_provisioning_details,
      :tags,
      :template_providers)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] project_arn
    #   The Amazon Resource Name (ARN) of the project.
    #   @return [String]
    #
    # @!attribute [rw] project_id
    #   The ID of the new project.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateProjectOutput AWS API Documentation
    #
    class CreateProjectOutput < Struct.new(
      :project_arn,
      :project_id)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] domain_id
    #   The ID of the associated domain.
    #   @return [String]
    #
    # @!attribute [rw] space_name
    #   The name of the space.
    #   @return [String]
    #
    # @!attribute [rw] tags
    #   Tags to associated with the space. Each tag consists of a key and an
    #   optional value. Tag keys must be unique for each resource. Tags are
    #   searchable using the `Search` API.
    #   @return [Array<Types::Tag>]
    #
    # @!attribute [rw] space_settings
    #   A collection of space settings.
    #   @return [Types::SpaceSettings]
    #
    # @!attribute [rw] ownership_settings
    #   A collection of ownership settings.
    #   @return [Types::OwnershipSettings]
    #
    # @!attribute [rw] space_sharing_settings
    #   A collection of space sharing settings.
    #   @return [Types::SpaceSharingSettings]
    #
    # @!attribute [rw] space_display_name
    #   The name of the space that appears in the SageMaker Studio UI.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateSpaceRequest AWS API Documentation
    #
    class CreateSpaceRequest < Struct.new(
      :domain_id,
      :space_name,
      :tags,
      :space_settings,
      :ownership_settings,
      :space_sharing_settings,
      :space_display_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] space_arn
    #   The space's Amazon Resource Name (ARN).
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateSpaceResponse AWS API Documentation
    #
    class CreateSpaceResponse < Struct.new(
      :space_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] studio_lifecycle_config_name
    #   The name of the Amazon SageMaker AI Studio Lifecycle Configuration
    #   to create.
    #   @return [String]
    #
    # @!attribute [rw] studio_lifecycle_config_content
    #   The content of your Amazon SageMaker AI Studio Lifecycle
    #   Configuration script. This content must be base64 encoded.
    #   @return [String]
    #
    # @!attribute [rw] studio_lifecycle_config_app_type
    #   The App type that the Lifecycle Configuration is attached to.
    #   @return [String]
    #
    # @!attribute [rw] tags
    #   Tags to be associated with the Lifecycle Configuration. Each tag
    #   consists of a key and an optional value. Tag keys must be unique per
    #   resource. Tags are searchable using the Search API.
    #   @return [Array<Types::Tag>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateStudioLifecycleConfigRequest AWS API Documentation
    #
    class CreateStudioLifecycleConfigRequest < Struct.new(
      :studio_lifecycle_config_name,
      :studio_lifecycle_config_content,
      :studio_lifecycle_config_app_type,
      :tags)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] studio_lifecycle_config_arn
    #   The ARN of your created Lifecycle Configuration.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateStudioLifecycleConfigResponse AWS API Documentation
    #
    class CreateStudioLifecycleConfigResponse < Struct.new(
      :studio_lifecycle_config_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # Contains configuration details for a template provider. Only one type
    # of template provider can be specified.
    #
    # @!attribute [rw] cfn_template_provider
    #   The CloudFormation template provider configuration for creating
    #   infrastructure resources.
    #   @return [Types::CfnCreateTemplateProvider]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateTemplateProvider AWS API Documentation
    #
    class CreateTemplateProvider < Struct.new(
      :cfn_template_provider)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] training_job_name
    #   The name of the training job. The name must be unique within an
    #   Amazon Web Services Region in an Amazon Web Services account.
    #   @return [String]
    #
    # @!attribute [rw] hyper_parameters
    #   Algorithm-specific parameters that influence the quality of the
    #   model. You set hyperparameters before you start the learning
    #   process. For a list of hyperparameters for each training algorithm
    #   provided by SageMaker, see [Algorithms][1].
    #
    #   You can specify a maximum of 100 hyperparameters. Each
    #   hyperparameter is a key-value pair. Each key and value is limited to
    #   256 characters, as specified by the `Length Constraint`.
    #
    #   Do not include any security-sensitive information including account
    #   access IDs, secrets, or tokens in any hyperparameter fields. As part
    #   of the shared responsibility model, you are responsible for any
    #   potential exposure, unauthorized access, or compromise of your
    #   sensitive data if caused by any security-sensitive information
    #   included in the request hyperparameter variable or plain text
    #   fields.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/algos.html
    #   @return [Hash<String,String>]
    #
    # @!attribute [rw] algorithm_specification
    #   The registry path of the Docker image that contains the training
    #   algorithm and algorithm-specific metadata, including the input mode.
    #   For more information about algorithms provided by SageMaker, see
    #   [Algorithms][1]. For information about providing your own
    #   algorithms, see [Using Your Own Algorithms with Amazon
    #   SageMaker][2].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/algos.html
    #   [2]: https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms.html
    #   @return [Types::AlgorithmSpecification]
    #
    # @!attribute [rw] role_arn
    #   The Amazon Resource Name (ARN) of an IAM role that SageMaker can
    #   assume to perform tasks on your behalf.
    #
    #   During model training, SageMaker needs your permission to read input
    #   data from an S3 bucket, download a Docker image that contains
    #   training code, write model artifacts to an S3 bucket, write logs to
    #   Amazon CloudWatch Logs, and publish metrics to Amazon CloudWatch.
    #   You grant permissions for all of these tasks to an IAM role. For
    #   more information, see [SageMaker Roles][1].
    #
    #   <note markdown="1"> To be able to pass this role to SageMaker, the caller of this API
    #   must have the `iam:PassRole` permission.
    #
    #    </note>
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html
    #   @return [String]
    #
    # @!attribute [rw] input_data_config
    #   An array of `Channel` objects. Each channel is a named input source.
    #   `InputDataConfig` describes the input data and its location.
    #
    #   Algorithms can accept input data from one or more channels. For
    #   example, an algorithm might have two channels of input data,
    #   `training_data` and `validation_data`. The configuration for each
    #   channel provides the S3, EFS, or FSx location where the input data
    #   is stored. It also provides information about the stored data: the
    #   MIME type, compression method, and whether the data is wrapped in
    #   RecordIO format.
    #
    #   Depending on the input mode that the algorithm supports, SageMaker
    #   either copies input data files from an S3 bucket to a local
    #   directory in the Docker container, or makes it available as input
    #   streams. For example, if you specify an EFS location, input data
    #   files are available as input streams. They do not need to be
    #   downloaded.
    #
    #   Your input must be in the same Amazon Web Services region as your
    #   training job.
    #   @return [Array<Types::Channel>]
    #
    # @!attribute [rw] output_data_config
    #   Specifies the path to the S3 location where you want to store model
    #   artifacts. SageMaker creates subfolders for the artifacts.
    #   @return [Types::OutputDataConfig]
    #
    # @!attribute [rw] resource_config
    #   The resources, including the ML compute instances and ML storage
    #   volumes, to use for model training.
    #
    #   ML storage volumes store model artifacts and incremental states.
    #   Training algorithms might also use ML storage volumes for scratch
    #   space. If you want SageMaker to use the ML storage volume to store
    #   the training data, choose `File` as the `TrainingInputMode` in the
    #   algorithm specification. For distributed training algorithms,
    #   specify an instance count greater than 1.
    #   @return [Types::ResourceConfig]
    #
    # @!attribute [rw] vpc_config
    #   A [VpcConfig][1] object that specifies the VPC that you want your
    #   training job to connect to. Control access to and from your training
    #   container by configuring the VPC. For more information, see [Protect
    #   Training Jobs by Using an Amazon Virtual Private Cloud][2].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_VpcConfig.html
    #   [2]: https://docs.aws.amazon.com/sagemaker/latest/dg/train-vpc.html
    #   @return [Types::VpcConfig]
    #
    # @!attribute [rw] stopping_condition
    #   Specifies a limit to how long a model training job can run. It also
    #   specifies how long a managed Spot training job has to complete. When
    #   the job reaches the time limit, SageMaker ends the training job. Use
    #   this API to cap model training costs.
    #
    #   To stop a job, SageMaker sends the algorithm the `SIGTERM` signal,
    #   which delays job termination for 120 seconds. Algorithms can use
    #   this 120-second window to save the model artifacts, so the results
    #   of training are not lost.
    #   @return [Types::StoppingCondition]
    #
    # @!attribute [rw] tags
    #   An array of key-value pairs. You can use tags to categorize your
    #   Amazon Web Services resources in different ways, for example, by
    #   purpose, owner, or environment. For more information, see [Tagging
    #   Amazon Web Services Resources][1].
    #
    #   Do not include any security-sensitive information including account
    #   access IDs, secrets, or tokens in any tags. As part of the shared
    #   responsibility model, you are responsible for any potential
    #   exposure, unauthorized access, or compromise of your sensitive data
    #   if caused by any security-sensitive information included in the
    #   request tag variable or plain text fields.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html
    #   @return [Array<Types::Tag>]
    #
    # @!attribute [rw] enable_network_isolation
    #   Isolates the training container. No inbound or outbound network
    #   calls can be made, except for calls between peers within a training
    #   cluster for distributed training. If you enable network isolation
    #   for training jobs that are configured to use a VPC, SageMaker
    #   downloads and uploads customer data and model artifacts through the
    #   specified VPC, but the training container does not have network
    #   access.
    #   @return [Boolean]
    #
    # @!attribute [rw] enable_inter_container_traffic_encryption
    #   To encrypt all communications between ML compute instances in
    #   distributed training, choose `True`. Encryption provides greater
    #   security for distributed training, but training might take longer.
    #   How long it takes depends on the amount of communication between
    #   compute instances, especially if you use a deep learning algorithm
    #   in distributed training. For more information, see [Protect
    #   Communications Between ML Compute Instances in a Distributed
    #   Training Job][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/train-encrypt.html
    #   @return [Boolean]
    #
    # @!attribute [rw] enable_managed_spot_training
    #   To train models using managed spot training, choose `True`. Managed
    #   spot training provides a fully managed and scalable infrastructure
    #   for training machine learning models. this option is useful when
    #   training jobs can be interrupted and when there is flexibility when
    #   the training job is run.
    #
    #   The complete and intermediate results of jobs are stored in an
    #   Amazon S3 bucket, and can be used as a starting point to train
    #   models incrementally. Amazon SageMaker provides metrics and logs in
    #   CloudWatch. They can be used to see when managed spot training jobs
    #   are running, interrupted, resumed, or completed.
    #   @return [Boolean]
    #
    # @!attribute [rw] checkpoint_config
    #   Contains information about the output location for managed spot
    #   training checkpoint data.
    #   @return [Types::CheckpointConfig]
    #
    # @!attribute [rw] debug_hook_config
    #   Configuration information for the Amazon SageMaker Debugger hook
    #   parameters, metric and tensor collections, and storage paths. To
    #   learn more about how to configure the `DebugHookConfig` parameter,
    #   see [Use the SageMaker and Debugger Configuration API Operations to
    #   Create, Update, and Debug Your Training Job][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/debugger-createtrainingjob-api.html
    #   @return [Types::DebugHookConfig]
    #
    # @!attribute [rw] debug_rule_configurations
    #   Configuration information for Amazon SageMaker Debugger rules for
    #   debugging output tensors.
    #   @return [Array<Types::DebugRuleConfiguration>]
    #
    # @!attribute [rw] tensor_board_output_config
    #   Configuration of storage locations for the Amazon SageMaker Debugger
    #   TensorBoard output data.
    #   @return [Types::TensorBoardOutputConfig]
    #
    # @!attribute [rw] experiment_config
    #   Associates a SageMaker job as a trial component with an experiment
    #   and trial. Specified when you call the following APIs:
    #
    #   * [CreateProcessingJob][1]
    #
    #   * [CreateTrainingJob][2]
    #
    #   * [CreateTransformJob][3]
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateProcessingJob.html
    #   [2]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html
    #   [3]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html
    #   @return [Types::ExperimentConfig]
    #
    # @!attribute [rw] profiler_config
    #   Configuration information for Amazon SageMaker Debugger system
    #   monitoring, framework profiling, and storage paths.
    #   @return [Types::ProfilerConfig]
    #
    # @!attribute [rw] profiler_rule_configurations
    #   Configuration information for Amazon SageMaker Debugger rules for
    #   profiling system and framework metrics.
    #   @return [Array<Types::ProfilerRuleConfiguration>]
    #
    # @!attribute [rw] environment
    #   The environment variables to set in the Docker container.
    #
    #   Do not include any security-sensitive information including account
    #   access IDs, secrets, or tokens in any environment fields. As part of
    #   the shared responsibility model, you are responsible for any
    #   potential exposure, unauthorized access, or compromise of your
    #   sensitive data if caused by security-sensitive information included
    #   in the request environment variable or plain text fields.
    #   @return [Hash<String,String>]
    #
    # @!attribute [rw] retry_strategy
    #   The number of times to retry the job when the job fails due to an
    #   `InternalServerError`.
    #   @return [Types::RetryStrategy]
    #
    # @!attribute [rw] remote_debug_config
    #   Configuration for remote debugging. To learn more about the remote
    #   debugging functionality of SageMaker, see [Access a training
    #   container through Amazon Web Services Systems Manager (SSM) for
    #   remote debugging][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/train-remote-debugging.html
    #   @return [Types::RemoteDebugConfig]
    #
    # @!attribute [rw] infra_check_config
    #   Contains information about the infrastructure health check
    #   configuration for the training job.
    #   @return [Types::InfraCheckConfig]
    #
    # @!attribute [rw] session_chaining_config
    #   Contains information about attribute-based access control (ABAC) for
    #   the training job.
    #   @return [Types::SessionChainingConfig]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateTrainingJobRequest AWS API Documentation
    #
    class CreateTrainingJobRequest < Struct.new(
      :training_job_name,
      :hyper_parameters,
      :algorithm_specification,
      :role_arn,
      :input_data_config,
      :output_data_config,
      :resource_config,
      :vpc_config,
      :stopping_condition,
      :tags,
      :enable_network_isolation,
      :enable_inter_container_traffic_encryption,
      :enable_managed_spot_training,
      :checkpoint_config,
      :debug_hook_config,
      :debug_rule_configurations,
      :tensor_board_output_config,
      :experiment_config,
      :profiler_config,
      :profiler_rule_configurations,
      :environment,
      :retry_strategy,
      :remote_debug_config,
      :infra_check_config,
      :session_chaining_config)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] training_job_arn
    #   The Amazon Resource Name (ARN) of the training job.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateTrainingJobResponse AWS API Documentation
    #
    class CreateTrainingJobResponse < Struct.new(
      :training_job_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] training_plan_name
    #   The name of the training plan to create.
    #   @return [String]
    #
    # @!attribute [rw] training_plan_offering_id
    #   The unique identifier of the training plan offering to use for
    #   creating this plan.
    #   @return [String]
    #
    # @!attribute [rw] spare_instance_count_per_ultra_server
    #   Number of spare instances to reserve per UltraServer for enhanced
    #   resiliency. Default is 1.
    #   @return [Integer]
    #
    # @!attribute [rw] tags
    #   An array of key-value pairs to apply to this training plan.
    #   @return [Array<Types::Tag>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateTrainingPlanRequest AWS API Documentation
    #
    class CreateTrainingPlanRequest < Struct.new(
      :training_plan_name,
      :training_plan_offering_id,
      :spare_instance_count_per_ultra_server,
      :tags)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] training_plan_arn
    #   The Amazon Resource Name (ARN); of the created training plan.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateTrainingPlanResponse AWS API Documentation
    #
    class CreateTrainingPlanResponse < Struct.new(
      :training_plan_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] transform_job_name
    #   The name of the transform job. The name must be unique within an
    #   Amazon Web Services Region in an Amazon Web Services account.
    #   @return [String]
    #
    # @!attribute [rw] model_name
    #   The name of the model that you want to use for the transform job.
    #   `ModelName` must be the name of an existing Amazon SageMaker model
    #   within an Amazon Web Services Region in an Amazon Web Services
    #   account.
    #   @return [String]
    #
    # @!attribute [rw] max_concurrent_transforms
    #   The maximum number of parallel requests that can be sent to each
    #   instance in a transform job. If `MaxConcurrentTransforms` is set to
    #   `0` or left unset, Amazon SageMaker checks the optional
    #   execution-parameters to determine the settings for your chosen
    #   algorithm. If the execution-parameters endpoint is not enabled, the
    #   default value is `1`. For more information on execution-parameters,
    #   see [How Containers Serve Requests][1]. For built-in algorithms, you
    #   don't need to set a value for `MaxConcurrentTransforms`.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms-batch-code.html#your-algorithms-batch-code-how-containe-serves-requests
    #   @return [Integer]
    #
    # @!attribute [rw] model_client_config
    #   Configures the timeout and maximum number of retries for processing
    #   a transform job invocation.
    #   @return [Types::ModelClientConfig]
    #
    # @!attribute [rw] max_payload_in_mb
    #   The maximum allowed size of the payload, in MB. A *payload* is the
    #   data portion of a record (without metadata). The value in
    #   `MaxPayloadInMB` must be greater than, or equal to, the size of a
    #   single record. To estimate the size of a record in MB, divide the
    #   size of your dataset by the number of records. To ensure that the
    #   records fit within the maximum payload size, we recommend using a
    #   slightly larger value. The default value is `6` MB.
    #
    #   The value of `MaxPayloadInMB` cannot be greater than 100 MB. If you
    #   specify the `MaxConcurrentTransforms` parameter, the value of
    #   `(MaxConcurrentTransforms * MaxPayloadInMB)` also cannot exceed 100
    #   MB.
    #
    #   For cases where the payload might be arbitrarily large and is
    #   transmitted using HTTP chunked encoding, set the value to `0`. This
    #   feature works only in supported algorithms. Currently, Amazon
    #   SageMaker built-in algorithms do not support HTTP chunked encoding.
    #   @return [Integer]
    #
    # @!attribute [rw] batch_strategy
    #   Specifies the number of records to include in a mini-batch for an
    #   HTTP inference request. A *record* ** is a single unit of input data
    #   that inference can be made on. For example, a single line in a CSV
    #   file is a record.
    #
    #   To enable the batch strategy, you must set the `SplitType` property
    #   to `Line`, `RecordIO`, or `TFRecord`.
    #
    #   To use only one record when making an HTTP invocation request to a
    #   container, set `BatchStrategy` to `SingleRecord` and `SplitType` to
    #   `Line`.
    #
    #   To fit as many records in a mini-batch as can fit within the
    #   `MaxPayloadInMB` limit, set `BatchStrategy` to `MultiRecord` and
    #   `SplitType` to `Line`.
    #   @return [String]
    #
    # @!attribute [rw] environment
    #   The environment variables to set in the Docker container. Don't
    #   include any sensitive data in your environment variables. We support
    #   up to 16 key and values entries in the map.
    #   @return [Hash<String,String>]
    #
    # @!attribute [rw] transform_input
    #   Describes the input source and the way the transform job consumes
    #   it.
    #   @return [Types::TransformInput]
    #
    # @!attribute [rw] transform_output
    #   Describes the results of the transform job.
    #   @return [Types::TransformOutput]
    #
    # @!attribute [rw] data_capture_config
    #   Configuration to control how SageMaker captures inference data.
    #   @return [Types::BatchDataCaptureConfig]
    #
    # @!attribute [rw] transform_resources
    #   Describes the resources, including ML instance types and ML instance
    #   count, to use for the transform job.
    #   @return [Types::TransformResources]
    #
    # @!attribute [rw] data_processing
    #   The data structure used to specify the data to be used for inference
    #   in a batch transform job and to associate the data that is relevant
    #   to the prediction results in the output. The input filter provided
    #   allows you to exclude input data that is not needed for inference in
    #   a batch transform job. The output filter provided allows you to
    #   include input data relevant to interpreting the predictions in the
    #   output from the job. For more information, see [Associate Prediction
    #   Results with their Corresponding Input Records][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/batch-transform-data-processing.html
    #   @return [Types::DataProcessing]
    #
    # @!attribute [rw] tags
    #   (Optional) An array of key-value pairs. For more information, see
    #   [Using Cost Allocation Tags][1] in the *Amazon Web Services Billing
    #   and Cost Management User Guide*.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html#allocation-what
    #   @return [Array<Types::Tag>]
    #
    # @!attribute [rw] experiment_config
    #   Associates a SageMaker job as a trial component with an experiment
    #   and trial. Specified when you call the following APIs:
    #
    #   * [CreateProcessingJob][1]
    #
    #   * [CreateTrainingJob][2]
    #
    #   * [CreateTransformJob][3]
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateProcessingJob.html
    #   [2]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html
    #   [3]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html
    #   @return [Types::ExperimentConfig]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateTransformJobRequest AWS API Documentation
    #
    class CreateTransformJobRequest < Struct.new(
      :transform_job_name,
      :model_name,
      :max_concurrent_transforms,
      :model_client_config,
      :max_payload_in_mb,
      :batch_strategy,
      :environment,
      :transform_input,
      :transform_output,
      :data_capture_config,
      :transform_resources,
      :data_processing,
      :tags,
      :experiment_config)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] transform_job_arn
    #   The Amazon Resource Name (ARN) of the transform job.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateTransformJobResponse AWS API Documentation
    #
    class CreateTransformJobResponse < Struct.new(
      :transform_job_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] trial_component_name
    #   The name of the component. The name must be unique in your Amazon
    #   Web Services account and is not case-sensitive.
    #   @return [String]
    #
    # @!attribute [rw] display_name
    #   The name of the component as displayed. The name doesn't need to be
    #   unique. If `DisplayName` isn't specified, `TrialComponentName` is
    #   displayed.
    #   @return [String]
    #
    # @!attribute [rw] status
    #   The status of the component. States include:
    #
    #   * InProgress
    #
    #   * Completed
    #
    #   * Failed
    #   @return [Types::TrialComponentStatus]
    #
    # @!attribute [rw] start_time
    #   When the component started.
    #   @return [Time]
    #
    # @!attribute [rw] end_time
    #   When the component ended.
    #   @return [Time]
    #
    # @!attribute [rw] parameters
    #   The hyperparameters for the component.
    #   @return [Hash<String,Types::TrialComponentParameterValue>]
    #
    # @!attribute [rw] input_artifacts
    #   The input artifacts for the component. Examples of input artifacts
    #   are datasets, algorithms, hyperparameters, source code, and instance
    #   types.
    #   @return [Hash<String,Types::TrialComponentArtifact>]
    #
    # @!attribute [rw] output_artifacts
    #   The output artifacts for the component. Examples of output artifacts
    #   are metrics, snapshots, logs, and images.
    #   @return [Hash<String,Types::TrialComponentArtifact>]
    #
    # @!attribute [rw] metadata_properties
    #   Metadata properties of the tracking entity, trial, or trial
    #   component.
    #   @return [Types::MetadataProperties]
    #
    # @!attribute [rw] tags
    #   A list of tags to associate with the component. You can use
    #   [Search][1] API to search on the tags.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_Search.html
    #   @return [Array<Types::Tag>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateTrialComponentRequest AWS API Documentation
    #
    class CreateTrialComponentRequest < Struct.new(
      :trial_component_name,
      :display_name,
      :status,
      :start_time,
      :end_time,
      :parameters,
      :input_artifacts,
      :output_artifacts,
      :metadata_properties,
      :tags)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] trial_component_arn
    #   The Amazon Resource Name (ARN) of the trial component.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateTrialComponentResponse AWS API Documentation
    #
    class CreateTrialComponentResponse < Struct.new(
      :trial_component_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] trial_name
    #   The name of the trial. The name must be unique in your Amazon Web
    #   Services account and is not case-sensitive.
    #   @return [String]
    #
    # @!attribute [rw] display_name
    #   The name of the trial as displayed. The name doesn't need to be
    #   unique. If `DisplayName` isn't specified, `TrialName` is displayed.
    #   @return [String]
    #
    # @!attribute [rw] experiment_name
    #   The name of the experiment to associate the trial with.
    #   @return [String]
    #
    # @!attribute [rw] metadata_properties
    #   Metadata properties of the tracking entity, trial, or trial
    #   component.
    #   @return [Types::MetadataProperties]
    #
    # @!attribute [rw] tags
    #   A list of tags to associate with the trial. You can use [Search][1]
    #   API to search on the tags.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_Search.html
    #   @return [Array<Types::Tag>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateTrialRequest AWS API Documentation
    #
    class CreateTrialRequest < Struct.new(
      :trial_name,
      :display_name,
      :experiment_name,
      :metadata_properties,
      :tags)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] trial_arn
    #   The Amazon Resource Name (ARN) of the trial.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateTrialResponse AWS API Documentation
    #
    class CreateTrialResponse < Struct.new(
      :trial_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] domain_id
    #   The ID of the associated Domain.
    #   @return [String]
    #
    # @!attribute [rw] user_profile_name
    #   A name for the UserProfile. This value is not case sensitive.
    #   @return [String]
    #
    # @!attribute [rw] single_sign_on_user_identifier
    #   A specifier for the type of value specified in
    #   SingleSignOnUserValue. Currently, the only supported value is
    #   "UserName". If the Domain's AuthMode is IAM Identity Center, this
    #   field is required. If the Domain's AuthMode is not IAM Identity
    #   Center, this field cannot be specified.
    #   @return [String]
    #
    # @!attribute [rw] single_sign_on_user_value
    #   The username of the associated Amazon Web Services Single Sign-On
    #   User for this UserProfile. If the Domain's AuthMode is IAM Identity
    #   Center, this field is required, and must match a valid username of a
    #   user in your directory. If the Domain's AuthMode is not IAM
    #   Identity Center, this field cannot be specified.
    #   @return [String]
    #
    # @!attribute [rw] tags
    #   Each tag consists of a key and an optional value. Tag keys must be
    #   unique per resource.
    #
    #   Tags that you specify for the User Profile are also added to all
    #   Apps that the User Profile launches.
    #   @return [Array<Types::Tag>]
    #
    # @!attribute [rw] user_settings
    #   A collection of settings.
    #   @return [Types::UserSettings]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateUserProfileRequest AWS API Documentation
    #
    class CreateUserProfileRequest < Struct.new(
      :domain_id,
      :user_profile_name,
      :single_sign_on_user_identifier,
      :single_sign_on_user_value,
      :tags,
      :user_settings)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] user_profile_arn
    #   The user profile Amazon Resource Name (ARN).
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateUserProfileResponse AWS API Documentation
    #
    class CreateUserProfileResponse < Struct.new(
      :user_profile_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] cognito_config
    #   Use this parameter to configure an Amazon Cognito private workforce.
    #   A single Cognito workforce is created using and corresponds to a
    #   single [ Amazon Cognito user pool][1].
    #
    #   Do not use `OidcConfig` if you specify values for `CognitoConfig`.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools.html
    #   @return [Types::CognitoConfig]
    #
    # @!attribute [rw] oidc_config
    #   Use this parameter to configure a private workforce using your own
    #   OIDC Identity Provider.
    #
    #   Do not use `CognitoConfig` if you specify values for `OidcConfig`.
    #   @return [Types::OidcConfig]
    #
    # @!attribute [rw] source_ip_config
    #   A list of IP address ranges ([CIDRs][1]). Used to create an allow
    #   list of IP addresses for a private workforce. Workers will only be
    #   able to log in to their worker portal from an IP address within this
    #   range. By default, a workforce isn't restricted to specific IP
    #   addresses.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html
    #   @return [Types::SourceIpConfig]
    #
    # @!attribute [rw] workforce_name
    #   The name of the private workforce.
    #   @return [String]
    #
    # @!attribute [rw] tags
    #   An array of key-value pairs that contain metadata to help you
    #   categorize and organize our workforce. Each tag consists of a key
    #   and a value, both of which you define.
    #   @return [Array<Types::Tag>]
    #
    # @!attribute [rw] workforce_vpc_config
    #   Use this parameter to configure a workforce using VPC.
    #   @return [Types::WorkforceVpcConfigRequest]
    #
    # @!attribute [rw] ip_address_type
    #   Use this parameter to specify whether you want `IPv4` only or
    #   `dualstack` (`IPv4` and `IPv6`) to support your labeling workforce.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateWorkforceRequest AWS API Documentation
    #
    class CreateWorkforceRequest < Struct.new(
      :cognito_config,
      :oidc_config,
      :source_ip_config,
      :workforce_name,
      :tags,
      :workforce_vpc_config,
      :ip_address_type)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] workforce_arn
    #   The Amazon Resource Name (ARN) of the workforce.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateWorkforceResponse AWS API Documentation
    #
    class CreateWorkforceResponse < Struct.new(
      :workforce_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] workteam_name
    #   The name of the work team. Use this name to identify the work team.
    #   @return [String]
    #
    # @!attribute [rw] workforce_name
    #   The name of the workforce.
    #   @return [String]
    #
    # @!attribute [rw] member_definitions
    #   A list of `MemberDefinition` objects that contains objects that
    #   identify the workers that make up the work team.
    #
    #   Workforces can be created using Amazon Cognito or your own OIDC
    #   Identity Provider (IdP). For private workforces created using Amazon
    #   Cognito use `CognitoMemberDefinition`. For workforces created using
    #   your own OIDC identity provider (IdP) use `OidcMemberDefinition`. Do
    #   not provide input for both of these parameters in a single request.
    #
    #   For workforces created using Amazon Cognito, private work teams
    #   correspond to Amazon Cognito *user groups* within the user pool used
    #   to create a workforce. All of the `CognitoMemberDefinition` objects
    #   that make up the member definition must have the same `ClientId` and
    #   `UserPool` values. To add a Amazon Cognito user group to an existing
    #   worker pool, see [Adding groups to a User Pool](). For more
    #   information about user pools, see [Amazon Cognito User Pools][1].
    #
    #   For workforces created using your own OIDC IdP, specify the user
    #   groups that you want to include in your private work team in
    #   `OidcMemberDefinition` by listing those groups in `Groups`.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools.html
    #   @return [Array<Types::MemberDefinition>]
    #
    # @!attribute [rw] description
    #   A description of the work team.
    #   @return [String]
    #
    # @!attribute [rw] notification_configuration
    #   Configures notification of workers regarding available or expiring
    #   work items.
    #   @return [Types::NotificationConfiguration]
    #
    # @!attribute [rw] worker_access_configuration
    #   Use this optional parameter to constrain access to an Amazon S3
    #   resource based on the IP address using supported IAM global
    #   condition keys. The Amazon S3 resource is accessed in the worker
    #   portal using a Amazon S3 presigned URL.
    #   @return [Types::WorkerAccessConfiguration]
    #
    # @!attribute [rw] tags
    #   An array of key-value pairs.
    #
    #   For more information, see [Resource Tag][1] and [Using Cost
    #   Allocation Tags][2] in the <i> Amazon Web Services Billing and Cost
    #   Management User Guide</i>.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html
    #   [2]: https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html#allocation-what
    #   @return [Array<Types::Tag>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateWorkteamRequest AWS API Documentation
    #
    class CreateWorkteamRequest < Struct.new(
      :workteam_name,
      :workforce_name,
      :member_definitions,
      :description,
      :notification_configuration,
      :worker_access_configuration,
      :tags)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] workteam_arn
    #   The Amazon Resource Name (ARN) of the work team. You can use this
    #   ARN to identify the work team.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateWorkteamResponse AWS API Documentation
    #
    class CreateWorkteamResponse < Struct.new(
      :workteam_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # A file system, created by you, that you assign to a user profile or
    # space for an Amazon SageMaker AI Domain. Permitted users can access
    # this file system in Amazon SageMaker AI Studio.
    #
    # @note CustomFileSystem is a union - when making an API calls you must set exactly one of the members.
    #
    # @note CustomFileSystem is a union - when returned from an API call exactly one value will be set and the returned type will be a subclass of CustomFileSystem corresponding to the set member.
    #
    # @!attribute [rw] efs_file_system
    #   A custom file system in Amazon EFS.
    #   @return [Types::EFSFileSystem]
    #
    # @!attribute [rw] f_sx_lustre_file_system
    #   A custom file system in Amazon FSx for Lustre.
    #   @return [Types::FSxLustreFileSystem]
    #
    # @!attribute [rw] s3_file_system
    #   A custom file system in Amazon S3. This is only supported in Amazon
    #   SageMaker Unified Studio.
    #   @return [Types::S3FileSystem]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CustomFileSystem AWS API Documentation
    #
    class CustomFileSystem < Struct.new(
      :efs_file_system,
      :f_sx_lustre_file_system,
      :s3_file_system,
      :unknown)
      SENSITIVE = []
      include Aws::Structure
      include Aws::Structure::Union

      class EfsFileSystem < CustomFileSystem; end
      class FSxLustreFileSystem < CustomFileSystem; end
      class S3FileSystem < CustomFileSystem; end
      class Unknown < CustomFileSystem; end
    end

    # The settings for assigning a custom file system to a user profile or
    # space for an Amazon SageMaker AI Domain. Permitted users can access
    # this file system in Amazon SageMaker AI Studio.
    #
    # @note CustomFileSystemConfig is a union - when making an API calls you must set exactly one of the members.
    #
    # @note CustomFileSystemConfig is a union - when returned from an API call exactly one value will be set and the returned type will be a subclass of CustomFileSystemConfig corresponding to the set member.
    #
    # @!attribute [rw] efs_file_system_config
    #   The settings for a custom Amazon EFS file system.
    #   @return [Types::EFSFileSystemConfig]
    #
    # @!attribute [rw] f_sx_lustre_file_system_config
    #   The settings for a custom Amazon FSx for Lustre file system.
    #   @return [Types::FSxLustreFileSystemConfig]
    #
    # @!attribute [rw] s3_file_system_config
    #   Configuration settings for a custom Amazon S3 file system.
    #   @return [Types::S3FileSystemConfig]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CustomFileSystemConfig AWS API Documentation
    #
    class CustomFileSystemConfig < Struct.new(
      :efs_file_system_config,
      :f_sx_lustre_file_system_config,
      :s3_file_system_config,
      :unknown)
      SENSITIVE = []
      include Aws::Structure
      include Aws::Structure::Union

      class EfsFileSystemConfig < CustomFileSystemConfig; end
      class FSxLustreFileSystemConfig < CustomFileSystemConfig; end
      class S3FileSystemConfig < CustomFileSystemConfig; end
      class Unknown < CustomFileSystemConfig; end
    end

    # A custom SageMaker AI image. For more information, see [Bring your own
    # SageMaker AI image][1].
    #
    #
    #
    # [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/studio-byoi.html
    #
    # @!attribute [rw] image_name
    #   The name of the CustomImage. Must be unique to your account.
    #   @return [String]
    #
    # @!attribute [rw] image_version_number
    #   The version number of the CustomImage.
    #   @return [Integer]
    #
    # @!attribute [rw] app_image_config_name
    #   The name of the AppImageConfig.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CustomImage AWS API Documentation
    #
    class CustomImage < Struct.new(
      :image_name,
      :image_version_number,
      :app_image_config_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # Details about the POSIX identity that is used for file system
    # operations.
    #
    # @!attribute [rw] uid
    #   The POSIX user ID.
    #   @return [Integer]
    #
    # @!attribute [rw] gid
    #   The POSIX group ID.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CustomPosixUserConfig AWS API Documentation
    #
    class CustomPosixUserConfig < Struct.new(
      :uid,
      :gid)
      SENSITIVE = []
      include Aws::Structure
    end

    # A customized metric.
    #
    # @!attribute [rw] metric_name
    #   The name of the customized metric.
    #   @return [String]
    #
    # @!attribute [rw] namespace
    #   The namespace of the customized metric.
    #   @return [String]
    #
    # @!attribute [rw] statistic
    #   The statistic of the customized metric.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CustomizedMetricSpecification AWS API Documentation
    #
    class CustomizedMetricSpecification < Struct.new(
      :metric_name,
      :namespace,
      :statistic)
      SENSITIVE = []
      include Aws::Structure
    end

    # Configuration to control how SageMaker AI captures inference data.
    #
    # @!attribute [rw] enable_capture
    #   Whether data capture should be enabled or disabled (defaults to
    #   enabled).
    #   @return [Boolean]
    #
    # @!attribute [rw] initial_sampling_percentage
    #   The percentage of requests SageMaker AI will capture. A lower value
    #   is recommended for Endpoints with high traffic.
    #   @return [Integer]
    #
    # @!attribute [rw] destination_s3_uri
    #   The Amazon S3 location used to capture the data.
    #   @return [String]
    #
    # @!attribute [rw] kms_key_id
    #   The Amazon Resource Name (ARN) of an Key Management Service key that
    #   SageMaker AI uses to encrypt the captured data at rest using Amazon
    #   S3 server-side encryption.
    #
    #   The KmsKeyId can be any of the following formats:
    #
    #   * Key ID: `1234abcd-12ab-34cd-56ef-1234567890ab`
    #
    #   * Key ARN:
    #     `arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab`
    #
    #   * Alias name: `alias/ExampleAlias`
    #
    #   * Alias name ARN:
    #     `arn:aws:kms:us-west-2:111122223333:alias/ExampleAlias`
    #   @return [String]
    #
    # @!attribute [rw] capture_options
    #   Specifies data Model Monitor will capture. You can configure whether
    #   to collect only input, only output, or both
    #   @return [Array<Types::CaptureOption>]
    #
    # @!attribute [rw] capture_content_type_header
    #   Configuration specifying how to treat different headers. If no
    #   headers are specified SageMaker AI will by default base64 encode
    #   when capturing the data.
    #   @return [Types::CaptureContentTypeHeader]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DataCaptureConfig AWS API Documentation
    #
    class DataCaptureConfig < Struct.new(
      :enable_capture,
      :initial_sampling_percentage,
      :destination_s3_uri,
      :kms_key_id,
      :capture_options,
      :capture_content_type_header)
      SENSITIVE = []
      include Aws::Structure
    end

    # The currently active data capture configuration used by your Endpoint.
    #
    # @!attribute [rw] enable_capture
    #   Whether data capture is enabled or disabled.
    #   @return [Boolean]
    #
    # @!attribute [rw] capture_status
    #   Whether data capture is currently functional.
    #   @return [String]
    #
    # @!attribute [rw] current_sampling_percentage
    #   The percentage of requests being captured by your Endpoint.
    #   @return [Integer]
    #
    # @!attribute [rw] destination_s3_uri
    #   The Amazon S3 location being used to capture the data.
    #   @return [String]
    #
    # @!attribute [rw] kms_key_id
    #   The KMS key being used to encrypt the data in Amazon S3.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DataCaptureConfigSummary AWS API Documentation
    #
    class DataCaptureConfigSummary < Struct.new(
      :enable_capture,
      :capture_status,
      :current_sampling_percentage,
      :destination_s3_uri,
      :kms_key_id)
      SENSITIVE = []
      include Aws::Structure
    end

    # The meta data of the Glue table which serves as data catalog for the
    # `OfflineStore`.
    #
    # @!attribute [rw] table_name
    #   The name of the Glue table.
    #   @return [String]
    #
    # @!attribute [rw] catalog
    #   The name of the Glue table catalog.
    #   @return [String]
    #
    # @!attribute [rw] database
    #   The name of the Glue table database.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DataCatalogConfig AWS API Documentation
    #
    class DataCatalogConfig < Struct.new(
      :table_name,
      :catalog,
      :database)
      SENSITIVE = []
      include Aws::Structure
    end

    # The data structure used to specify the data to be used for inference
    # in a batch transform job and to associate the data that is relevant to
    # the prediction results in the output. The input filter provided allows
    # you to exclude input data that is not needed for inference in a batch
    # transform job. The output filter provided allows you to include input
    # data relevant to interpreting the predictions in the output from the
    # job. For more information, see [Associate Prediction Results with
    # their Corresponding Input Records][1].
    #
    #
    #
    # [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/batch-transform-data-processing.html
    #
    # @!attribute [rw] input_filter
    #   A [JSONPath][1] expression used to select a portion of the input
    #   data to pass to the algorithm. Use the `InputFilter` parameter to
    #   exclude fields, such as an ID column, from the input. If you want
    #   SageMaker to pass the entire input dataset to the algorithm, accept
    #   the default value `$`.
    #
    #   Examples: `"$"`, `"$[1:]"`, `"$.features"`
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/batch-transform-data-processing.html#data-processing-operators
    #   @return [String]
    #
    # @!attribute [rw] output_filter
    #   A [JSONPath][1] expression used to select a portion of the joined
    #   dataset to save in the output file for a batch transform job. If you
    #   want SageMaker to store the entire input dataset in the output file,
    #   leave the default value, `$`. If you specify indexes that aren't
    #   within the dimension size of the joined dataset, you get an error.
    #
    #   Examples: `"$"`, `"$[0,5:]"`, `"$['id','SageMakerOutput']"`
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/batch-transform-data-processing.html#data-processing-operators
    #   @return [String]
    #
    # @!attribute [rw] join_source
    #   Specifies the source of the data to join with the transformed data.
    #   The valid values are `None` and `Input`. The default value is
    #   `None`, which specifies not to join the input with the transformed
    #   data. If you want the batch transform job to join the original input
    #   data with the transformed data, set `JoinSource` to `Input`. You can
    #   specify `OutputFilter` as an additional filter to select a portion
    #   of the joined dataset and store it in the output file.
    #
    #   For JSON or JSONLines objects, such as a JSON array, SageMaker adds
    #   the transformed data to the input JSON object in an attribute called
    #   `SageMakerOutput`. The joined result for JSON must be a key-value
    #   pair object. If the input is not a key-value pair object, SageMaker
    #   creates a new JSON file. In the new JSON file, and the input data is
    #   stored under the `SageMakerInput` key and the results are stored in
    #   `SageMakerOutput`.
    #
    #   For CSV data, SageMaker takes each row as a JSON array and joins the
    #   transformed data with the input by appending each transformed row to
    #   the end of the input. The joined data has the original input data
    #   followed by the transformed data and the output is a CSV file.
    #
    #   For information on how joining in applied, see [Workflow for
    #   Associating Inferences with Input Records][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/batch-transform-data-processing.html#batch-transform-data-processing-workflow
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DataProcessing AWS API Documentation
    #
    class DataProcessing < Struct.new(
      :input_filter,
      :output_filter,
      :join_source)
      SENSITIVE = []
      include Aws::Structure
    end

    # Information about the container that a data quality monitoring job
    # runs.
    #
    # @!attribute [rw] image_uri
    #   The container image that the data quality monitoring job runs.
    #   @return [String]
    #
    # @!attribute [rw] container_entrypoint
    #   The entrypoint for a container used to run a monitoring job.
    #   @return [Array<String>]
    #
    # @!attribute [rw] container_arguments
    #   The arguments to send to the container that the monitoring job runs.
    #   @return [Array<String>]
    #
    # @!attribute [rw] record_preprocessor_source_uri
    #   An Amazon S3 URI to a script that is called per row prior to running
    #   analysis. It can base64 decode the payload and convert it into a
    #   flattened JSON so that the built-in container can use the converted
    #   data. Applicable only for the built-in (first party) containers.
    #   @return [String]
    #
    # @!attribute [rw] post_analytics_processor_source_uri
    #   An Amazon S3 URI to a script that is called after analysis has been
    #   performed. Applicable only for the built-in (first party)
    #   containers.
    #   @return [String]
    #
    # @!attribute [rw] environment
    #   Sets the environment variables in the container that the monitoring
    #   job runs.
    #   @return [Hash<String,String>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DataQualityAppSpecification AWS API Documentation
    #
    class DataQualityAppSpecification < Struct.new(
      :image_uri,
      :container_entrypoint,
      :container_arguments,
      :record_preprocessor_source_uri,
      :post_analytics_processor_source_uri,
      :environment)
      SENSITIVE = []
      include Aws::Structure
    end

    # Configuration for monitoring constraints and monitoring statistics.
    # These baseline resources are compared against the results of the
    # current job from the series of jobs scheduled to collect data
    # periodically.
    #
    # @!attribute [rw] baselining_job_name
    #   The name of the job that performs baselining for the data quality
    #   monitoring job.
    #   @return [String]
    #
    # @!attribute [rw] constraints_resource
    #   The constraints resource for a monitoring job.
    #   @return [Types::MonitoringConstraintsResource]
    #
    # @!attribute [rw] statistics_resource
    #   The statistics resource for a monitoring job.
    #   @return [Types::MonitoringStatisticsResource]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DataQualityBaselineConfig AWS API Documentation
    #
    class DataQualityBaselineConfig < Struct.new(
      :baselining_job_name,
      :constraints_resource,
      :statistics_resource)
      SENSITIVE = []
      include Aws::Structure
    end

    # The input for the data quality monitoring job. Currently endpoints are
    # supported for input.
    #
    # @!attribute [rw] endpoint_input
    #   Input object for the endpoint
    #   @return [Types::EndpointInput]
    #
    # @!attribute [rw] batch_transform_input
    #   Input object for the batch transform job.
    #   @return [Types::BatchTransformInput]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DataQualityJobInput AWS API Documentation
    #
    class DataQualityJobInput < Struct.new(
      :endpoint_input,
      :batch_transform_input)
      SENSITIVE = []
      include Aws::Structure
    end

    # Describes the location of the channel data.
    #
    # @!attribute [rw] s3_data_source
    #   The S3 location of the data source that is associated with a
    #   channel.
    #   @return [Types::S3DataSource]
    #
    # @!attribute [rw] file_system_data_source
    #   The file system that is associated with a channel.
    #   @return [Types::FileSystemDataSource]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DataSource AWS API Documentation
    #
    class DataSource < Struct.new(
      :s3_data_source,
      :file_system_data_source)
      SENSITIVE = []
      include Aws::Structure
    end

    # Configuration for Dataset Definition inputs. The Dataset Definition
    # input must specify exactly one of either `AthenaDatasetDefinition` or
    # `RedshiftDatasetDefinition` types.
    #
    # @!attribute [rw] athena_dataset_definition
    #   Configuration for Athena Dataset Definition input.
    #   @return [Types::AthenaDatasetDefinition]
    #
    # @!attribute [rw] redshift_dataset_definition
    #   Configuration for Redshift Dataset Definition input.
    #   @return [Types::RedshiftDatasetDefinition]
    #
    # @!attribute [rw] local_path
    #   The local path where you want Amazon SageMaker to download the
    #   Dataset Definition inputs to run a processing job. `LocalPath` is an
    #   absolute path to the input data. This is a required parameter when
    #   `AppManaged` is `False` (default).
    #   @return [String]
    #
    # @!attribute [rw] data_distribution_type
    #   Whether the generated dataset is `FullyReplicated` or
    #   `ShardedByS3Key` (default).
    #   @return [String]
    #
    # @!attribute [rw] input_mode
    #   Whether to use `File` or `Pipe` input mode. In `File` (default)
    #   mode, Amazon SageMaker copies the data from the input source onto
    #   the local Amazon Elastic Block Store (Amazon EBS) volumes before
    #   starting your training algorithm. This is the most commonly used
    #   input mode. In `Pipe` mode, Amazon SageMaker streams input data from
    #   the source directly to your algorithm without using the EBS volume.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DatasetDefinition AWS API Documentation
    #
    class DatasetDefinition < Struct.new(
      :athena_dataset_definition,
      :redshift_dataset_definition,
      :local_path,
      :data_distribution_type,
      :input_mode)
      SENSITIVE = []
      include Aws::Structure
    end

    # Configuration information for the Amazon SageMaker Debugger hook
    # parameters, metric and tensor collections, and storage paths. To learn
    # more about how to configure the `DebugHookConfig` parameter, see [Use
    # the SageMaker and Debugger Configuration API Operations to Create,
    # Update, and Debug Your Training Job][1].
    #
    #
    #
    # [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/debugger-createtrainingjob-api.html
    #
    # @!attribute [rw] local_path
    #   Path to local storage location for metrics and tensors. Defaults to
    #   `/opt/ml/output/tensors/`.
    #   @return [String]
    #
    # @!attribute [rw] s3_output_path
    #   Path to Amazon S3 storage location for metrics and tensors.
    #   @return [String]
    #
    # @!attribute [rw] hook_parameters
    #   Configuration information for the Amazon SageMaker Debugger hook
    #   parameters.
    #   @return [Hash<String,String>]
    #
    # @!attribute [rw] collection_configurations
    #   Configuration information for Amazon SageMaker Debugger tensor
    #   collections. To learn more about how to configure the
    #   `CollectionConfiguration` parameter, see [Use the SageMaker and
    #   Debugger Configuration API Operations to Create, Update, and Debug
    #   Your Training Job][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/debugger-createtrainingjob-api.html
    #   @return [Array<Types::CollectionConfiguration>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DebugHookConfig AWS API Documentation
    #
    class DebugHookConfig < Struct.new(
      :local_path,
      :s3_output_path,
      :hook_parameters,
      :collection_configurations)
      SENSITIVE = []
      include Aws::Structure
    end

    # Configuration information for SageMaker Debugger rules for debugging.
    # To learn more about how to configure the `DebugRuleConfiguration`
    # parameter, see [Use the SageMaker and Debugger Configuration API
    # Operations to Create, Update, and Debug Your Training Job][1].
    #
    #
    #
    # [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/debugger-createtrainingjob-api.html
    #
    # @!attribute [rw] rule_configuration_name
    #   The name of the rule configuration. It must be unique relative to
    #   other rule configuration names.
    #   @return [String]
    #
    # @!attribute [rw] local_path
    #   Path to local storage location for output of rules. Defaults to
    #   `/opt/ml/processing/output/rule/`.
    #   @return [String]
    #
    # @!attribute [rw] s3_output_path
    #   Path to Amazon S3 storage location for rules.
    #   @return [String]
    #
    # @!attribute [rw] rule_evaluator_image
    #   The Amazon Elastic Container (ECR) Image for the managed rule
    #   evaluation.
    #   @return [String]
    #
    # @!attribute [rw] instance_type
    #   The instance type to deploy a custom rule for debugging a training
    #   job.
    #   @return [String]
    #
    # @!attribute [rw] volume_size_in_gb
    #   The size, in GB, of the ML storage volume attached to the processing
    #   instance.
    #   @return [Integer]
    #
    # @!attribute [rw] rule_parameters
    #   Runtime configuration for rule container.
    #   @return [Hash<String,String>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DebugRuleConfiguration AWS API Documentation
    #
    class DebugRuleConfiguration < Struct.new(
      :rule_configuration_name,
      :local_path,
      :s3_output_path,
      :rule_evaluator_image,
      :instance_type,
      :volume_size_in_gb,
      :rule_parameters)
      SENSITIVE = []
      include Aws::Structure
    end

    # Information about the status of the rule evaluation.
    #
    # @!attribute [rw] rule_configuration_name
    #   The name of the rule configuration.
    #   @return [String]
    #
    # @!attribute [rw] rule_evaluation_job_arn
    #   The Amazon Resource Name (ARN) of the rule evaluation job.
    #   @return [String]
    #
    # @!attribute [rw] rule_evaluation_status
    #   Status of the rule evaluation.
    #   @return [String]
    #
    # @!attribute [rw] status_details
    #   Details from the rule evaluation.
    #   @return [String]
    #
    # @!attribute [rw] last_modified_time
    #   Timestamp when the rule evaluation status was last modified.
    #   @return [Time]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DebugRuleEvaluationStatus AWS API Documentation
    #
    class DebugRuleEvaluationStatus < Struct.new(
      :rule_configuration_name,
      :rule_evaluation_job_arn,
      :rule_evaluation_status,
      :status_details,
      :last_modified_time)
      SENSITIVE = []
      include Aws::Structure
    end

    # A collection of default EBS storage settings that apply to spaces
    # created within a domain or user profile.
    #
    # @!attribute [rw] default_ebs_volume_size_in_gb
    #   The default size of the EBS storage volume for a space.
    #   @return [Integer]
    #
    # @!attribute [rw] maximum_ebs_volume_size_in_gb
    #   The maximum size of the EBS storage volume for a space.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DefaultEbsStorageSettings AWS API Documentation
    #
    class DefaultEbsStorageSettings < Struct.new(
      :default_ebs_volume_size_in_gb,
      :maximum_ebs_volume_size_in_gb)
      SENSITIVE = []
      include Aws::Structure
    end

    # The default settings for shared spaces that users create in the
    # domain.
    #
    # SageMaker applies these settings only to shared spaces. It doesn't
    # apply them to private spaces.
    #
    # @!attribute [rw] execution_role
    #   The ARN of the execution role for the space.
    #   @return [String]
    #
    # @!attribute [rw] security_groups
    #   The security group IDs for the Amazon VPC that the space uses for
    #   communication.
    #   @return [Array<String>]
    #
    # @!attribute [rw] jupyter_server_app_settings
    #   The JupyterServer app settings.
    #   @return [Types::JupyterServerAppSettings]
    #
    # @!attribute [rw] kernel_gateway_app_settings
    #   The KernelGateway app settings.
    #   @return [Types::KernelGatewayAppSettings]
    #
    # @!attribute [rw] jupyter_lab_app_settings
    #   The settings for the JupyterLab application.
    #   @return [Types::JupyterLabAppSettings]
    #
    # @!attribute [rw] space_storage_settings
    #   The default storage settings for a space.
    #   @return [Types::DefaultSpaceStorageSettings]
    #
    # @!attribute [rw] custom_posix_user_config
    #   Details about the POSIX identity that is used for file system
    #   operations.
    #   @return [Types::CustomPosixUserConfig]
    #
    # @!attribute [rw] custom_file_system_configs
    #   The settings for assigning a custom file system to a domain.
    #   Permitted users can access this file system in Amazon SageMaker AI
    #   Studio.
    #   @return [Array<Types::CustomFileSystemConfig>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DefaultSpaceSettings AWS API Documentation
    #
    class DefaultSpaceSettings < Struct.new(
      :execution_role,
      :security_groups,
      :jupyter_server_app_settings,
      :kernel_gateway_app_settings,
      :jupyter_lab_app_settings,
      :space_storage_settings,
      :custom_posix_user_config,
      :custom_file_system_configs)
      SENSITIVE = []
      include Aws::Structure
    end

    # The default storage settings for a space.
    #
    # @!attribute [rw] default_ebs_storage_settings
    #   The default EBS storage settings for a space.
    #   @return [Types::DefaultEbsStorageSettings]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DefaultSpaceStorageSettings AWS API Documentation
    #
    class DefaultSpaceStorageSettings < Struct.new(
      :default_ebs_storage_settings)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] action_name
    #   The name of the action to delete.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteActionRequest AWS API Documentation
    #
    class DeleteActionRequest < Struct.new(
      :action_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] action_arn
    #   The Amazon Resource Name (ARN) of the action.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteActionResponse AWS API Documentation
    #
    class DeleteActionResponse < Struct.new(
      :action_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] algorithm_name
    #   The name of the algorithm to delete.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteAlgorithmInput AWS API Documentation
    #
    class DeleteAlgorithmInput < Struct.new(
      :algorithm_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] app_image_config_name
    #   The name of the AppImageConfig to delete.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteAppImageConfigRequest AWS API Documentation
    #
    class DeleteAppImageConfigRequest < Struct.new(
      :app_image_config_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] domain_id
    #   The domain ID.
    #   @return [String]
    #
    # @!attribute [rw] user_profile_name
    #   The user profile name. If this value is not set, then `SpaceName`
    #   must be set.
    #   @return [String]
    #
    # @!attribute [rw] space_name
    #   The name of the space. If this value is not set, then
    #   `UserProfileName` must be set.
    #   @return [String]
    #
    # @!attribute [rw] app_type
    #   The type of app.
    #   @return [String]
    #
    # @!attribute [rw] app_name
    #   The name of the app.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteAppRequest AWS API Documentation
    #
    class DeleteAppRequest < Struct.new(
      :domain_id,
      :user_profile_name,
      :space_name,
      :app_type,
      :app_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] artifact_arn
    #   The Amazon Resource Name (ARN) of the artifact to delete.
    #   @return [String]
    #
    # @!attribute [rw] source
    #   The URI of the source.
    #   @return [Types::ArtifactSource]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteArtifactRequest AWS API Documentation
    #
    class DeleteArtifactRequest < Struct.new(
      :artifact_arn,
      :source)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] artifact_arn
    #   The Amazon Resource Name (ARN) of the artifact.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteArtifactResponse AWS API Documentation
    #
    class DeleteArtifactResponse < Struct.new(
      :artifact_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] source_arn
    #   The ARN of the source.
    #   @return [String]
    #
    # @!attribute [rw] destination_arn
    #   The Amazon Resource Name (ARN) of the destination.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteAssociationRequest AWS API Documentation
    #
    class DeleteAssociationRequest < Struct.new(
      :source_arn,
      :destination_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] source_arn
    #   The ARN of the source.
    #   @return [String]
    #
    # @!attribute [rw] destination_arn
    #   The Amazon Resource Name (ARN) of the destination.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteAssociationResponse AWS API Documentation
    #
    class DeleteAssociationResponse < Struct.new(
      :source_arn,
      :destination_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] cluster_name
    #   The string name or the Amazon Resource Name (ARN) of the SageMaker
    #   HyperPod cluster to delete.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteClusterRequest AWS API Documentation
    #
    class DeleteClusterRequest < Struct.new(
      :cluster_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] cluster_arn
    #   The Amazon Resource Name (ARN) of the SageMaker HyperPod cluster to
    #   delete.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteClusterResponse AWS API Documentation
    #
    class DeleteClusterResponse < Struct.new(
      :cluster_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] cluster_scheduler_config_id
    #   ID of the cluster policy.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteClusterSchedulerConfigRequest AWS API Documentation
    #
    class DeleteClusterSchedulerConfigRequest < Struct.new(
      :cluster_scheduler_config_id)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] code_repository_name
    #   The name of the Git repository to delete.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteCodeRepositoryInput AWS API Documentation
    #
    class DeleteCodeRepositoryInput < Struct.new(
      :code_repository_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] compilation_job_name
    #   The name of the compilation job to delete.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteCompilationJobRequest AWS API Documentation
    #
    class DeleteCompilationJobRequest < Struct.new(
      :compilation_job_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] compute_quota_id
    #   ID of the compute allocation definition.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteComputeQuotaRequest AWS API Documentation
    #
    class DeleteComputeQuotaRequest < Struct.new(
      :compute_quota_id)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] context_name
    #   The name of the context to delete.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteContextRequest AWS API Documentation
    #
    class DeleteContextRequest < Struct.new(
      :context_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] context_arn
    #   The Amazon Resource Name (ARN) of the context.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteContextResponse AWS API Documentation
    #
    class DeleteContextResponse < Struct.new(
      :context_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] job_definition_name
    #   The name of the data quality monitoring job definition to delete.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteDataQualityJobDefinitionRequest AWS API Documentation
    #
    class DeleteDataQualityJobDefinitionRequest < Struct.new(
      :job_definition_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] device_fleet_name
    #   The name of the fleet to delete.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteDeviceFleetRequest AWS API Documentation
    #
    class DeleteDeviceFleetRequest < Struct.new(
      :device_fleet_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] domain_id
    #   The domain ID.
    #   @return [String]
    #
    # @!attribute [rw] retention_policy
    #   The retention policy for this domain, which specifies whether
    #   resources will be retained after the Domain is deleted. By default,
    #   all resources are retained (not automatically deleted).
    #   @return [Types::RetentionPolicy]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteDomainRequest AWS API Documentation
    #
    class DeleteDomainRequest < Struct.new(
      :domain_id,
      :retention_policy)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] edge_deployment_plan_name
    #   The name of the edge deployment plan to delete.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteEdgeDeploymentPlanRequest AWS API Documentation
    #
    class DeleteEdgeDeploymentPlanRequest < Struct.new(
      :edge_deployment_plan_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] edge_deployment_plan_name
    #   The name of the edge deployment plan from which the stage will be
    #   deleted.
    #   @return [String]
    #
    # @!attribute [rw] stage_name
    #   The name of the stage.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteEdgeDeploymentStageRequest AWS API Documentation
    #
    class DeleteEdgeDeploymentStageRequest < Struct.new(
      :edge_deployment_plan_name,
      :stage_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] endpoint_config_name
    #   The name of the endpoint configuration that you want to delete.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteEndpointConfigInput AWS API Documentation
    #
    class DeleteEndpointConfigInput < Struct.new(
      :endpoint_config_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] endpoint_name
    #   The name of the endpoint that you want to delete.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteEndpointInput AWS API Documentation
    #
    class DeleteEndpointInput < Struct.new(
      :endpoint_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] experiment_name
    #   The name of the experiment to delete.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteExperimentRequest AWS API Documentation
    #
    class DeleteExperimentRequest < Struct.new(
      :experiment_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] experiment_arn
    #   The Amazon Resource Name (ARN) of the experiment that is being
    #   deleted.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteExperimentResponse AWS API Documentation
    #
    class DeleteExperimentResponse < Struct.new(
      :experiment_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] feature_group_name
    #   The name of the `FeatureGroup` you want to delete. The name must be
    #   unique within an Amazon Web Services Region in an Amazon Web
    #   Services account.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteFeatureGroupRequest AWS API Documentation
    #
    class DeleteFeatureGroupRequest < Struct.new(
      :feature_group_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] flow_definition_name
    #   The name of the flow definition you are deleting.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteFlowDefinitionRequest AWS API Documentation
    #
    class DeleteFlowDefinitionRequest < Struct.new(
      :flow_definition_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteFlowDefinitionResponse AWS API Documentation
    #
    class DeleteFlowDefinitionResponse < Aws::EmptyStructure; end

    # @!attribute [rw] hub_name
    #   The name of the hub to delete the hub content reference from.
    #   @return [String]
    #
    # @!attribute [rw] hub_content_type
    #   The type of hub content reference to delete. The only supported type
    #   of hub content reference to delete is `ModelReference`.
    #   @return [String]
    #
    # @!attribute [rw] hub_content_name
    #   The name of the hub content to delete.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteHubContentReferenceRequest AWS API Documentation
    #
    class DeleteHubContentReferenceRequest < Struct.new(
      :hub_name,
      :hub_content_type,
      :hub_content_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] hub_name
    #   The name of the hub that you want to delete content in.
    #   @return [String]
    #
    # @!attribute [rw] hub_content_type
    #   The type of content that you want to delete from a hub.
    #   @return [String]
    #
    # @!attribute [rw] hub_content_name
    #   The name of the content that you want to delete from a hub.
    #   @return [String]
    #
    # @!attribute [rw] hub_content_version
    #   The version of the content that you want to delete from a hub.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteHubContentRequest AWS API Documentation
    #
    class DeleteHubContentRequest < Struct.new(
      :hub_name,
      :hub_content_type,
      :hub_content_name,
      :hub_content_version)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] hub_name
    #   The name of the hub to delete.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteHubRequest AWS API Documentation
    #
    class DeleteHubRequest < Struct.new(
      :hub_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] human_task_ui_name
    #   The name of the human task user interface (work task template) you
    #   want to delete.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteHumanTaskUiRequest AWS API Documentation
    #
    class DeleteHumanTaskUiRequest < Struct.new(
      :human_task_ui_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteHumanTaskUiResponse AWS API Documentation
    #
    class DeleteHumanTaskUiResponse < Aws::EmptyStructure; end

    # @!attribute [rw] hyper_parameter_tuning_job_name
    #   The name of the hyperparameter tuning job that you want to delete.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteHyperParameterTuningJobRequest AWS API Documentation
    #
    class DeleteHyperParameterTuningJobRequest < Struct.new(
      :hyper_parameter_tuning_job_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] image_name
    #   The name of the image to delete.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteImageRequest AWS API Documentation
    #
    class DeleteImageRequest < Struct.new(
      :image_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteImageResponse AWS API Documentation
    #
    class DeleteImageResponse < Aws::EmptyStructure; end

    # @!attribute [rw] image_name
    #   The name of the image to delete.
    #   @return [String]
    #
    # @!attribute [rw] version
    #   The version to delete.
    #   @return [Integer]
    #
    # @!attribute [rw] alias
    #   The alias of the image to delete.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteImageVersionRequest AWS API Documentation
    #
    class DeleteImageVersionRequest < Struct.new(
      :image_name,
      :version,
      :alias)
      SENSITIVE = []
      include Aws::Structure
    end

    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteImageVersionResponse AWS API Documentation
    #
    class DeleteImageVersionResponse < Aws::EmptyStructure; end

    # @!attribute [rw] inference_component_name
    #   The name of the inference component to delete.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteInferenceComponentInput AWS API Documentation
    #
    class DeleteInferenceComponentInput < Struct.new(
      :inference_component_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] name
    #   The name of the inference experiment you want to delete.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteInferenceExperimentRequest AWS API Documentation
    #
    class DeleteInferenceExperimentRequest < Struct.new(
      :name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] inference_experiment_arn
    #   The ARN of the deleted inference experiment.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteInferenceExperimentResponse AWS API Documentation
    #
    class DeleteInferenceExperimentResponse < Struct.new(
      :inference_experiment_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] tracking_server_name
    #   The name of the the tracking server to delete.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteMlflowTrackingServerRequest AWS API Documentation
    #
    class DeleteMlflowTrackingServerRequest < Struct.new(
      :tracking_server_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] tracking_server_arn
    #   A `TrackingServerArn` object, the ARN of the tracking server that is
    #   deleted if successfully found.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteMlflowTrackingServerResponse AWS API Documentation
    #
    class DeleteMlflowTrackingServerResponse < Struct.new(
      :tracking_server_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] job_definition_name
    #   The name of the model bias job definition to delete.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteModelBiasJobDefinitionRequest AWS API Documentation
    #
    class DeleteModelBiasJobDefinitionRequest < Struct.new(
      :job_definition_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] model_card_name
    #   The name of the model card to delete.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteModelCardRequest AWS API Documentation
    #
    class DeleteModelCardRequest < Struct.new(
      :model_card_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] job_definition_name
    #   The name of the model explainability job definition to delete.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteModelExplainabilityJobDefinitionRequest AWS API Documentation
    #
    class DeleteModelExplainabilityJobDefinitionRequest < Struct.new(
      :job_definition_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] model_name
    #   The name of the model to delete.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteModelInput AWS API Documentation
    #
    class DeleteModelInput < Struct.new(
      :model_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] model_package_group_name
    #   The name of the model group to delete.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteModelPackageGroupInput AWS API Documentation
    #
    class DeleteModelPackageGroupInput < Struct.new(
      :model_package_group_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] model_package_group_name
    #   The name of the model group for which to delete the policy.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteModelPackageGroupPolicyInput AWS API Documentation
    #
    class DeleteModelPackageGroupPolicyInput < Struct.new(
      :model_package_group_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] model_package_name
    #   The name or Amazon Resource Name (ARN) of the model package to
    #   delete.
    #
    #   When you specify a name, the name must have 1 to 63 characters.
    #   Valid characters are a-z, A-Z, 0-9, and - (hyphen).
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteModelPackageInput AWS API Documentation
    #
    class DeleteModelPackageInput < Struct.new(
      :model_package_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] job_definition_name
    #   The name of the model quality monitoring job definition to delete.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteModelQualityJobDefinitionRequest AWS API Documentation
    #
    class DeleteModelQualityJobDefinitionRequest < Struct.new(
      :job_definition_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] monitoring_schedule_name
    #   The name of the monitoring schedule to delete.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteMonitoringScheduleRequest AWS API Documentation
    #
    class DeleteMonitoringScheduleRequest < Struct.new(
      :monitoring_schedule_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] notebook_instance_name
    #   The name of the SageMaker AI notebook instance to delete.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteNotebookInstanceInput AWS API Documentation
    #
    class DeleteNotebookInstanceInput < Struct.new(
      :notebook_instance_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] notebook_instance_lifecycle_config_name
    #   The name of the lifecycle configuration to delete.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteNotebookInstanceLifecycleConfigInput AWS API Documentation
    #
    class DeleteNotebookInstanceLifecycleConfigInput < Struct.new(
      :notebook_instance_lifecycle_config_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] optimization_job_name
    #   The name that you assigned to the optimization job.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteOptimizationJobRequest AWS API Documentation
    #
    class DeleteOptimizationJobRequest < Struct.new(
      :optimization_job_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] arn
    #   The ARN of the SageMaker Partner AI App to delete.
    #   @return [String]
    #
    # @!attribute [rw] client_token
    #   A unique token that guarantees that the call to this API is
    #   idempotent.
    #
    #   **A suitable default value is auto-generated.** You should normally
    #   not need to pass this option.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeletePartnerAppRequest AWS API Documentation
    #
    class DeletePartnerAppRequest < Struct.new(
      :arn,
      :client_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] arn
    #   The ARN of the SageMaker Partner AI App that was deleted.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeletePartnerAppResponse AWS API Documentation
    #
    class DeletePartnerAppResponse < Struct.new(
      :arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] pipeline_name
    #   The name of the pipeline to delete.
    #   @return [String]
    #
    # @!attribute [rw] client_request_token
    #   A unique, case-sensitive identifier that you provide to ensure the
    #   idempotency of the operation. An idempotent operation completes no
    #   more than one time.
    #
    #   **A suitable default value is auto-generated.** You should normally
    #   not need to pass this option.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeletePipelineRequest AWS API Documentation
    #
    class DeletePipelineRequest < Struct.new(
      :pipeline_name,
      :client_request_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] pipeline_arn
    #   The Amazon Resource Name (ARN) of the pipeline to delete.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeletePipelineResponse AWS API Documentation
    #
    class DeletePipelineResponse < Struct.new(
      :pipeline_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] project_name
    #   The name of the project to delete.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteProjectInput AWS API Documentation
    #
    class DeleteProjectInput < Struct.new(
      :project_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] domain_id
    #   The ID of the associated domain.
    #   @return [String]
    #
    # @!attribute [rw] space_name
    #   The name of the space.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteSpaceRequest AWS API Documentation
    #
    class DeleteSpaceRequest < Struct.new(
      :domain_id,
      :space_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] studio_lifecycle_config_name
    #   The name of the Amazon SageMaker AI Studio Lifecycle Configuration
    #   to delete.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteStudioLifecycleConfigRequest AWS API Documentation
    #
    class DeleteStudioLifecycleConfigRequest < Struct.new(
      :studio_lifecycle_config_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] resource_arn
    #   The Amazon Resource Name (ARN) of the resource whose tags you want
    #   to delete.
    #   @return [String]
    #
    # @!attribute [rw] tag_keys
    #   An array or one or more tag keys to delete.
    #   @return [Array<String>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteTagsInput AWS API Documentation
    #
    class DeleteTagsInput < Struct.new(
      :resource_arn,
      :tag_keys)
      SENSITIVE = []
      include Aws::Structure
    end

    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteTagsOutput AWS API Documentation
    #
    class DeleteTagsOutput < Aws::EmptyStructure; end

    # @!attribute [rw] trial_component_name
    #   The name of the component to delete.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteTrialComponentRequest AWS API Documentation
    #
    class DeleteTrialComponentRequest < Struct.new(
      :trial_component_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] trial_component_arn
    #   The Amazon Resource Name (ARN) of the component is being deleted.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteTrialComponentResponse AWS API Documentation
    #
    class DeleteTrialComponentResponse < Struct.new(
      :trial_component_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] trial_name
    #   The name of the trial to delete.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteTrialRequest AWS API Documentation
    #
    class DeleteTrialRequest < Struct.new(
      :trial_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] trial_arn
    #   The Amazon Resource Name (ARN) of the trial that is being deleted.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteTrialResponse AWS API Documentation
    #
    class DeleteTrialResponse < Struct.new(
      :trial_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] domain_id
    #   The domain ID.
    #   @return [String]
    #
    # @!attribute [rw] user_profile_name
    #   The user profile name.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteUserProfileRequest AWS API Documentation
    #
    class DeleteUserProfileRequest < Struct.new(
      :domain_id,
      :user_profile_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] workforce_name
    #   The name of the workforce.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteWorkforceRequest AWS API Documentation
    #
    class DeleteWorkforceRequest < Struct.new(
      :workforce_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteWorkforceResponse AWS API Documentation
    #
    class DeleteWorkforceResponse < Aws::EmptyStructure; end

    # @!attribute [rw] workteam_name
    #   The name of the work team to delete.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteWorkteamRequest AWS API Documentation
    #
    class DeleteWorkteamRequest < Struct.new(
      :workteam_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] success
    #   Returns `true` if the work team was successfully deleted; otherwise,
    #   returns `false`.
    #   @return [Boolean]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteWorkteamResponse AWS API Documentation
    #
    class DeleteWorkteamResponse < Struct.new(
      :success)
      SENSITIVE = []
      include Aws::Structure
    end

    # Gets the Amazon EC2 Container Registry path of the docker image of the
    # model that is hosted in this [ProductionVariant][1].
    #
    # If you used the `registry/repository[:tag]` form to specify the image
    # path of the primary container when you created the model hosted in
    # this `ProductionVariant`, the path resolves to a path of the form
    # `registry/repository[@digest]`. A digest is a hash value that
    # identifies a specific version of an image. For information about
    # Amazon ECR paths, see [Pulling an Image][2] in the *Amazon ECR User
    # Guide*.
    #
    #
    #
    # [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ProductionVariant.html
    # [2]: https://docs.aws.amazon.com/AmazonECR/latest/userguide/docker-pull-ecr-image.html
    #
    # @!attribute [rw] specified_image
    #   The image path you specified when you created the model.
    #   @return [String]
    #
    # @!attribute [rw] resolved_image
    #   The specific digest path of the image hosted in this
    #   `ProductionVariant`.
    #   @return [String]
    #
    # @!attribute [rw] resolution_time
    #   The date and time when the image path for the model resolved to the
    #   `ResolvedImage`
    #   @return [Time]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeployedImage AWS API Documentation
    #
    class DeployedImage < Struct.new(
      :specified_image,
      :resolved_image,
      :resolution_time)
      SENSITIVE = []
      include Aws::Structure
    end

    # The deployment configuration for an endpoint, which contains the
    # desired deployment strategy and rollback configurations.
    #
    # @!attribute [rw] blue_green_update_policy
    #   Update policy for a blue/green deployment. If this update policy is
    #   specified, SageMaker creates a new fleet during the deployment while
    #   maintaining the old fleet. SageMaker flips traffic to the new fleet
    #   according to the specified traffic routing configuration. Only one
    #   update policy should be used in the deployment configuration. If no
    #   update policy is specified, SageMaker uses a blue/green deployment
    #   strategy with all at once traffic shifting by default.
    #   @return [Types::BlueGreenUpdatePolicy]
    #
    # @!attribute [rw] rolling_update_policy
    #   Specifies a rolling deployment strategy for updating a SageMaker
    #   endpoint.
    #   @return [Types::RollingUpdatePolicy]
    #
    # @!attribute [rw] auto_rollback_configuration
    #   Automatic rollback configuration for handling endpoint deployment
    #   failures and recovery.
    #   @return [Types::AutoRollbackConfig]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeploymentConfig AWS API Documentation
    #
    class DeploymentConfig < Struct.new(
      :blue_green_update_policy,
      :rolling_update_policy,
      :auto_rollback_configuration)
      SENSITIVE = []
      include Aws::Structure
    end

    # The configuration to use when updating the AMI versions.
    #
    # @!attribute [rw] rolling_update_policy
    #   The policy that SageMaker uses when updating the AMI versions of the
    #   cluster.
    #   @return [Types::RollingDeploymentPolicy]
    #
    # @!attribute [rw] wait_interval_in_seconds
    #   The duration in seconds that SageMaker waits before updating more
    #   instances in the cluster.
    #   @return [Integer]
    #
    # @!attribute [rw] auto_rollback_configuration
    #   An array that contains the alarms that SageMaker monitors to know
    #   whether to roll back the AMI update.
    #   @return [Array<Types::AlarmDetails>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeploymentConfiguration AWS API Documentation
    #
    class DeploymentConfiguration < Struct.new(
      :rolling_update_policy,
      :wait_interval_in_seconds,
      :auto_rollback_configuration)
      SENSITIVE = []
      include Aws::Structure
    end

    # A set of recommended deployment configurations for the model. To get
    # more advanced recommendations, see
    # [CreateInferenceRecommendationsJob][1] to create an inference
    # recommendation job.
    #
    #
    #
    # [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateInferenceRecommendationsJob.html
    #
    # @!attribute [rw] recommendation_status
    #   Status of the deployment recommendation. The status `NOT_APPLICABLE`
    #   means that SageMaker is unable to provide a default recommendation
    #   for the model using the information provided. If the deployment
    #   status is `IN_PROGRESS`, retry your API call after a few seconds to
    #   get a `COMPLETED` deployment recommendation.
    #   @return [String]
    #
    # @!attribute [rw] real_time_inference_recommendations
    #   A list of [RealTimeInferenceRecommendation][1] items.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_RealTimeInferenceRecommendation.html
    #   @return [Array<Types::RealTimeInferenceRecommendation>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeploymentRecommendation AWS API Documentation
    #
    class DeploymentRecommendation < Struct.new(
      :recommendation_status,
      :real_time_inference_recommendations)
      SENSITIVE = []
      include Aws::Structure
    end

    # Contains information about a stage in an edge deployment plan.
    #
    # @!attribute [rw] stage_name
    #   The name of the stage.
    #   @return [String]
    #
    # @!attribute [rw] device_selection_config
    #   Configuration of the devices in the stage.
    #   @return [Types::DeviceSelectionConfig]
    #
    # @!attribute [rw] deployment_config
    #   Configuration of the deployment details.
    #   @return [Types::EdgeDeploymentConfig]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeploymentStage AWS API Documentation
    #
    class DeploymentStage < Struct.new(
      :stage_name,
      :device_selection_config,
      :deployment_config)
      SENSITIVE = []
      include Aws::Structure
    end

    # Contains information summarizing the deployment stage results.
    #
    # @!attribute [rw] stage_name
    #   The name of the stage.
    #   @return [String]
    #
    # @!attribute [rw] device_selection_config
    #   Configuration of the devices in the stage.
    #   @return [Types::DeviceSelectionConfig]
    #
    # @!attribute [rw] deployment_config
    #   Configuration of the deployment details.
    #   @return [Types::EdgeDeploymentConfig]
    #
    # @!attribute [rw] deployment_status
    #   General status of the current state.
    #   @return [Types::EdgeDeploymentStatus]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeploymentStageStatusSummary AWS API Documentation
    #
    class DeploymentStageStatusSummary < Struct.new(
      :stage_name,
      :device_selection_config,
      :deployment_config,
      :deployment_status)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] device_fleet_name
    #   The name of the fleet the devices belong to.
    #   @return [String]
    #
    # @!attribute [rw] device_names
    #   The unique IDs of the devices.
    #   @return [Array<String>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeregisterDevicesRequest AWS API Documentation
    #
    class DeregisterDevicesRequest < Struct.new(
      :device_fleet_name,
      :device_names)
      SENSITIVE = []
      include Aws::Structure
    end

    # Information that SageMaker Neo automatically derived about the model.
    #
    # @!attribute [rw] derived_data_input_config
    #   The data input configuration that SageMaker Neo automatically
    #   derived for the model. When SageMaker Neo derives this information,
    #   you don't need to specify the data input configuration when you
    #   create a compilation job.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DerivedInformation AWS API Documentation
    #
    class DerivedInformation < Struct.new(
      :derived_data_input_config)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] action_name
    #   The name of the action to describe.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeActionRequest AWS API Documentation
    #
    class DescribeActionRequest < Struct.new(
      :action_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] action_name
    #   The name of the action.
    #   @return [String]
    #
    # @!attribute [rw] action_arn
    #   The Amazon Resource Name (ARN) of the action.
    #   @return [String]
    #
    # @!attribute [rw] source
    #   The source of the action.
    #   @return [Types::ActionSource]
    #
    # @!attribute [rw] action_type
    #   The type of the action.
    #   @return [String]
    #
    # @!attribute [rw] description
    #   The description of the action.
    #   @return [String]
    #
    # @!attribute [rw] status
    #   The status of the action.
    #   @return [String]
    #
    # @!attribute [rw] properties
    #   A list of the action's properties.
    #   @return [Hash<String,String>]
    #
    # @!attribute [rw] creation_time
    #   When the action was created.
    #   @return [Time]
    #
    # @!attribute [rw] created_by
    #   Information about the user who created or modified a SageMaker
    #   resource.
    #   @return [Types::UserContext]
    #
    # @!attribute [rw] last_modified_time
    #   When the action was last modified.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_by
    #   Information about the user who created or modified a SageMaker
    #   resource.
    #   @return [Types::UserContext]
    #
    # @!attribute [rw] metadata_properties
    #   Metadata properties of the tracking entity, trial, or trial
    #   component.
    #   @return [Types::MetadataProperties]
    #
    # @!attribute [rw] lineage_group_arn
    #   The Amazon Resource Name (ARN) of the lineage group.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeActionResponse AWS API Documentation
    #
    class DescribeActionResponse < Struct.new(
      :action_name,
      :action_arn,
      :source,
      :action_type,
      :description,
      :status,
      :properties,
      :creation_time,
      :created_by,
      :last_modified_time,
      :last_modified_by,
      :metadata_properties,
      :lineage_group_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] algorithm_name
    #   The name of the algorithm to describe.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeAlgorithmInput AWS API Documentation
    #
    class DescribeAlgorithmInput < Struct.new(
      :algorithm_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] algorithm_name
    #   The name of the algorithm being described.
    #   @return [String]
    #
    # @!attribute [rw] algorithm_arn
    #   The Amazon Resource Name (ARN) of the algorithm.
    #   @return [String]
    #
    # @!attribute [rw] algorithm_description
    #   A brief summary about the algorithm.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   A timestamp specifying when the algorithm was created.
    #   @return [Time]
    #
    # @!attribute [rw] training_specification
    #   Details about training jobs run by this algorithm.
    #   @return [Types::TrainingSpecification]
    #
    # @!attribute [rw] inference_specification
    #   Details about inference jobs that the algorithm runs.
    #   @return [Types::InferenceSpecification]
    #
    # @!attribute [rw] validation_specification
    #   Details about configurations for one or more training jobs that
    #   SageMaker runs to test the algorithm.
    #   @return [Types::AlgorithmValidationSpecification]
    #
    # @!attribute [rw] algorithm_status
    #   The current status of the algorithm.
    #   @return [String]
    #
    # @!attribute [rw] algorithm_status_details
    #   Details about the current status of the algorithm.
    #   @return [Types::AlgorithmStatusDetails]
    #
    # @!attribute [rw] product_id
    #   The product identifier of the algorithm.
    #   @return [String]
    #
    # @!attribute [rw] certify_for_marketplace
    #   Whether the algorithm is certified to be listed in Amazon Web
    #   Services Marketplace.
    #   @return [Boolean]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeAlgorithmOutput AWS API Documentation
    #
    class DescribeAlgorithmOutput < Struct.new(
      :algorithm_name,
      :algorithm_arn,
      :algorithm_description,
      :creation_time,
      :training_specification,
      :inference_specification,
      :validation_specification,
      :algorithm_status,
      :algorithm_status_details,
      :product_id,
      :certify_for_marketplace)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] app_image_config_name
    #   The name of the AppImageConfig to describe.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeAppImageConfigRequest AWS API Documentation
    #
    class DescribeAppImageConfigRequest < Struct.new(
      :app_image_config_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] app_image_config_arn
    #   The ARN of the AppImageConfig.
    #   @return [String]
    #
    # @!attribute [rw] app_image_config_name
    #   The name of the AppImageConfig.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   When the AppImageConfig was created.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time
    #   When the AppImageConfig was last modified.
    #   @return [Time]
    #
    # @!attribute [rw] kernel_gateway_image_config
    #   The configuration of a KernelGateway app.
    #   @return [Types::KernelGatewayImageConfig]
    #
    # @!attribute [rw] jupyter_lab_app_image_config
    #   The configuration of the JupyterLab app.
    #   @return [Types::JupyterLabAppImageConfig]
    #
    # @!attribute [rw] code_editor_app_image_config
    #   The configuration of the Code Editor app.
    #   @return [Types::CodeEditorAppImageConfig]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeAppImageConfigResponse AWS API Documentation
    #
    class DescribeAppImageConfigResponse < Struct.new(
      :app_image_config_arn,
      :app_image_config_name,
      :creation_time,
      :last_modified_time,
      :kernel_gateway_image_config,
      :jupyter_lab_app_image_config,
      :code_editor_app_image_config)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] domain_id
    #   The domain ID.
    #   @return [String]
    #
    # @!attribute [rw] user_profile_name
    #   The user profile name. If this value is not set, then `SpaceName`
    #   must be set.
    #   @return [String]
    #
    # @!attribute [rw] space_name
    #   The name of the space.
    #   @return [String]
    #
    # @!attribute [rw] app_type
    #   The type of app.
    #   @return [String]
    #
    # @!attribute [rw] app_name
    #   The name of the app.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeAppRequest AWS API Documentation
    #
    class DescribeAppRequest < Struct.new(
      :domain_id,
      :user_profile_name,
      :space_name,
      :app_type,
      :app_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] app_arn
    #   The Amazon Resource Name (ARN) of the app.
    #   @return [String]
    #
    # @!attribute [rw] app_type
    #   The type of app.
    #   @return [String]
    #
    # @!attribute [rw] app_name
    #   The name of the app.
    #   @return [String]
    #
    # @!attribute [rw] domain_id
    #   The domain ID.
    #   @return [String]
    #
    # @!attribute [rw] user_profile_name
    #   The user profile name.
    #   @return [String]
    #
    # @!attribute [rw] space_name
    #   The name of the space. If this value is not set, then
    #   `UserProfileName` must be set.
    #   @return [String]
    #
    # @!attribute [rw] status
    #   The status.
    #   @return [String]
    #
    # @!attribute [rw] effective_trusted_identity_propagation_status
    #   The effective status of Trusted Identity Propagation (TIP) for this
    #   application. When enabled, user identities from IAM Identity Center
    #   are being propagated through the application to TIP enabled Amazon
    #   Web Services services. When disabled, standard IAM role-based access
    #   is used.
    #   @return [String]
    #
    # @!attribute [rw] recovery_mode
    #   Indicates whether the application is launched in recovery mode.
    #   @return [Boolean]
    #
    # @!attribute [rw] last_health_check_timestamp
    #   The timestamp of the last health check.
    #   @return [Time]
    #
    # @!attribute [rw] last_user_activity_timestamp
    #   The timestamp of the last user's activity.
    #   `LastUserActivityTimestamp` is also updated when SageMaker AI
    #   performs health checks without user activity. As a result, this
    #   value is set to the same value as `LastHealthCheckTimestamp`.
    #   @return [Time]
    #
    # @!attribute [rw] creation_time
    #   The creation time of the application.
    #
    #   <note markdown="1"> After an application has been shut down for 24 hours, SageMaker AI
    #   deletes all metadata for the application. To be considered an update
    #   and retain application metadata, applications must be restarted
    #   within 24 hours after the previous application has been shut down.
    #   After this time window, creation of an application is considered a
    #   new application rather than an update of the previous application.
    #
    #    </note>
    #   @return [Time]
    #
    # @!attribute [rw] failure_reason
    #   The failure reason.
    #   @return [String]
    #
    # @!attribute [rw] resource_spec
    #   The instance type and the Amazon Resource Name (ARN) of the
    #   SageMaker AI image created on the instance.
    #   @return [Types::ResourceSpec]
    #
    # @!attribute [rw] built_in_lifecycle_config_arn
    #   The lifecycle configuration that runs before the default lifecycle
    #   configuration
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeAppResponse AWS API Documentation
    #
    class DescribeAppResponse < Struct.new(
      :app_arn,
      :app_type,
      :app_name,
      :domain_id,
      :user_profile_name,
      :space_name,
      :status,
      :effective_trusted_identity_propagation_status,
      :recovery_mode,
      :last_health_check_timestamp,
      :last_user_activity_timestamp,
      :creation_time,
      :failure_reason,
      :resource_spec,
      :built_in_lifecycle_config_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] artifact_arn
    #   The Amazon Resource Name (ARN) of the artifact to describe.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeArtifactRequest AWS API Documentation
    #
    class DescribeArtifactRequest < Struct.new(
      :artifact_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] artifact_name
    #   The name of the artifact.
    #   @return [String]
    #
    # @!attribute [rw] artifact_arn
    #   The Amazon Resource Name (ARN) of the artifact.
    #   @return [String]
    #
    # @!attribute [rw] source
    #   The source of the artifact.
    #   @return [Types::ArtifactSource]
    #
    # @!attribute [rw] artifact_type
    #   The type of the artifact.
    #   @return [String]
    #
    # @!attribute [rw] properties
    #   A list of the artifact's properties.
    #   @return [Hash<String,String>]
    #
    # @!attribute [rw] creation_time
    #   When the artifact was created.
    #   @return [Time]
    #
    # @!attribute [rw] created_by
    #   Information about the user who created or modified a SageMaker
    #   resource.
    #   @return [Types::UserContext]
    #
    # @!attribute [rw] last_modified_time
    #   When the artifact was last modified.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_by
    #   Information about the user who created or modified a SageMaker
    #   resource.
    #   @return [Types::UserContext]
    #
    # @!attribute [rw] metadata_properties
    #   Metadata properties of the tracking entity, trial, or trial
    #   component.
    #   @return [Types::MetadataProperties]
    #
    # @!attribute [rw] lineage_group_arn
    #   The Amazon Resource Name (ARN) of the lineage group.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeArtifactResponse AWS API Documentation
    #
    class DescribeArtifactResponse < Struct.new(
      :artifact_name,
      :artifact_arn,
      :source,
      :artifact_type,
      :properties,
      :creation_time,
      :created_by,
      :last_modified_time,
      :last_modified_by,
      :metadata_properties,
      :lineage_group_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] auto_ml_job_name
    #   Requests information about an AutoML job using its unique name.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeAutoMLJobRequest AWS API Documentation
    #
    class DescribeAutoMLJobRequest < Struct.new(
      :auto_ml_job_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] auto_ml_job_name
    #   Returns the name of the AutoML job.
    #   @return [String]
    #
    # @!attribute [rw] auto_ml_job_arn
    #   Returns the ARN of the AutoML job.
    #   @return [String]
    #
    # @!attribute [rw] input_data_config
    #   Returns the input data configuration for the AutoML job.
    #   @return [Array<Types::AutoMLChannel>]
    #
    # @!attribute [rw] output_data_config
    #   Returns the job's output data config.
    #   @return [Types::AutoMLOutputDataConfig]
    #
    # @!attribute [rw] role_arn
    #   The ARN of the IAM role that has read permission to the input data
    #   location and write permission to the output data location in Amazon
    #   S3.
    #   @return [String]
    #
    # @!attribute [rw] auto_ml_job_objective
    #   Returns the job's objective.
    #   @return [Types::AutoMLJobObjective]
    #
    # @!attribute [rw] problem_type
    #   Returns the job's problem type.
    #   @return [String]
    #
    # @!attribute [rw] auto_ml_job_config
    #   Returns the configuration for the AutoML job.
    #   @return [Types::AutoMLJobConfig]
    #
    # @!attribute [rw] creation_time
    #   Returns the creation time of the AutoML job.
    #   @return [Time]
    #
    # @!attribute [rw] end_time
    #   Returns the end time of the AutoML job.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time
    #   Returns the job's last modified time.
    #   @return [Time]
    #
    # @!attribute [rw] failure_reason
    #   Returns the failure reason for an AutoML job, when applicable.
    #   @return [String]
    #
    # @!attribute [rw] partial_failure_reasons
    #   Returns a list of reasons for partial failures within an AutoML job.
    #   @return [Array<Types::AutoMLPartialFailureReason>]
    #
    # @!attribute [rw] best_candidate
    #   The best model candidate selected by SageMaker AI Autopilot using
    #   both the best objective metric and lowest [InferenceLatency][1] for
    #   an experiment.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-metrics-validation.html
    #   @return [Types::AutoMLCandidate]
    #
    # @!attribute [rw] auto_ml_job_status
    #   Returns the status of the AutoML job.
    #   @return [String]
    #
    # @!attribute [rw] auto_ml_job_secondary_status
    #   Returns the secondary status of the AutoML job.
    #   @return [String]
    #
    # @!attribute [rw] generate_candidate_definitions_only
    #   Indicates whether the output for an AutoML job generates candidate
    #   definitions only.
    #   @return [Boolean]
    #
    # @!attribute [rw] auto_ml_job_artifacts
    #   Returns information on the job's artifacts found in
    #   `AutoMLJobArtifacts`.
    #   @return [Types::AutoMLJobArtifacts]
    #
    # @!attribute [rw] resolved_attributes
    #   Contains `ProblemType`, `AutoMLJobObjective`, and
    #   `CompletionCriteria`. If you do not provide these values, they are
    #   inferred.
    #   @return [Types::ResolvedAttributes]
    #
    # @!attribute [rw] model_deploy_config
    #   Indicates whether the model was deployed automatically to an
    #   endpoint and the name of that endpoint if deployed automatically.
    #   @return [Types::ModelDeployConfig]
    #
    # @!attribute [rw] model_deploy_result
    #   Provides information about endpoint for the model deployment.
    #   @return [Types::ModelDeployResult]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeAutoMLJobResponse AWS API Documentation
    #
    class DescribeAutoMLJobResponse < Struct.new(
      :auto_ml_job_name,
      :auto_ml_job_arn,
      :input_data_config,
      :output_data_config,
      :role_arn,
      :auto_ml_job_objective,
      :problem_type,
      :auto_ml_job_config,
      :creation_time,
      :end_time,
      :last_modified_time,
      :failure_reason,
      :partial_failure_reasons,
      :best_candidate,
      :auto_ml_job_status,
      :auto_ml_job_secondary_status,
      :generate_candidate_definitions_only,
      :auto_ml_job_artifacts,
      :resolved_attributes,
      :model_deploy_config,
      :model_deploy_result)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] auto_ml_job_name
    #   Requests information about an AutoML job V2 using its unique name.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeAutoMLJobV2Request AWS API Documentation
    #
    class DescribeAutoMLJobV2Request < Struct.new(
      :auto_ml_job_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] auto_ml_job_name
    #   Returns the name of the AutoML job V2.
    #   @return [String]
    #
    # @!attribute [rw] auto_ml_job_arn
    #   Returns the Amazon Resource Name (ARN) of the AutoML job V2.
    #   @return [String]
    #
    # @!attribute [rw] auto_ml_job_input_data_config
    #   Returns an array of channel objects describing the input data and
    #   their location.
    #   @return [Array<Types::AutoMLJobChannel>]
    #
    # @!attribute [rw] output_data_config
    #   Returns the job's output data config.
    #   @return [Types::AutoMLOutputDataConfig]
    #
    # @!attribute [rw] role_arn
    #   The ARN of the IAM role that has read permission to the input data
    #   location and write permission to the output data location in Amazon
    #   S3.
    #   @return [String]
    #
    # @!attribute [rw] auto_ml_job_objective
    #   Returns the job's objective.
    #   @return [Types::AutoMLJobObjective]
    #
    # @!attribute [rw] auto_ml_problem_type_config
    #   Returns the configuration settings of the problem type set for the
    #   AutoML job V2.
    #   @return [Types::AutoMLProblemTypeConfig]
    #
    # @!attribute [rw] auto_ml_problem_type_config_name
    #   Returns the name of the problem type configuration set for the
    #   AutoML job V2.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   Returns the creation time of the AutoML job V2.
    #   @return [Time]
    #
    # @!attribute [rw] end_time
    #   Returns the end time of the AutoML job V2.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time
    #   Returns the job's last modified time.
    #   @return [Time]
    #
    # @!attribute [rw] failure_reason
    #   Returns the reason for the failure of the AutoML job V2, when
    #   applicable.
    #   @return [String]
    #
    # @!attribute [rw] partial_failure_reasons
    #   Returns a list of reasons for partial failures within an AutoML job
    #   V2.
    #   @return [Array<Types::AutoMLPartialFailureReason>]
    #
    # @!attribute [rw] best_candidate
    #   Information about the candidate produced by an AutoML training job
    #   V2, including its status, steps, and other properties.
    #   @return [Types::AutoMLCandidate]
    #
    # @!attribute [rw] auto_ml_job_status
    #   Returns the status of the AutoML job V2.
    #   @return [String]
    #
    # @!attribute [rw] auto_ml_job_secondary_status
    #   Returns the secondary status of the AutoML job V2.
    #   @return [String]
    #
    # @!attribute [rw] auto_ml_job_artifacts
    #   The artifacts that are generated during an AutoML job.
    #   @return [Types::AutoMLJobArtifacts]
    #
    # @!attribute [rw] resolved_attributes
    #   Returns the resolved attributes used by the AutoML job V2.
    #   @return [Types::AutoMLResolvedAttributes]
    #
    # @!attribute [rw] model_deploy_config
    #   Indicates whether the model was deployed automatically to an
    #   endpoint and the name of that endpoint if deployed automatically.
    #   @return [Types::ModelDeployConfig]
    #
    # @!attribute [rw] model_deploy_result
    #   Provides information about endpoint for the model deployment.
    #   @return [Types::ModelDeployResult]
    #
    # @!attribute [rw] data_split_config
    #   Returns the configuration settings of how the data are split into
    #   train and validation datasets.
    #   @return [Types::AutoMLDataSplitConfig]
    #
    # @!attribute [rw] security_config
    #   Returns the security configuration for traffic encryption or Amazon
    #   VPC settings.
    #   @return [Types::AutoMLSecurityConfig]
    #
    # @!attribute [rw] auto_ml_compute_config
    #   The compute configuration used for the AutoML job V2.
    #   @return [Types::AutoMLComputeConfig]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeAutoMLJobV2Response AWS API Documentation
    #
    class DescribeAutoMLJobV2Response < Struct.new(
      :auto_ml_job_name,
      :auto_ml_job_arn,
      :auto_ml_job_input_data_config,
      :output_data_config,
      :role_arn,
      :auto_ml_job_objective,
      :auto_ml_problem_type_config,
      :auto_ml_problem_type_config_name,
      :creation_time,
      :end_time,
      :last_modified_time,
      :failure_reason,
      :partial_failure_reasons,
      :best_candidate,
      :auto_ml_job_status,
      :auto_ml_job_secondary_status,
      :auto_ml_job_artifacts,
      :resolved_attributes,
      :model_deploy_config,
      :model_deploy_result,
      :data_split_config,
      :security_config,
      :auto_ml_compute_config)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] event_id
    #   The unique identifier (UUID) of the event to describe. This ID can
    #   be obtained from the `ListClusterEvents` operation.
    #   @return [String]
    #
    # @!attribute [rw] cluster_name
    #   The name or Amazon Resource Name (ARN) of the HyperPod cluster
    #   associated with the event.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeClusterEventRequest AWS API Documentation
    #
    class DescribeClusterEventRequest < Struct.new(
      :event_id,
      :cluster_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] event_details
    #   Detailed information about the requested cluster event, including
    #   event metadata for various resource types such as `Cluster`,
    #   `InstanceGroup`, `Instance`, and their associated attributes.
    #   @return [Types::ClusterEventDetail]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeClusterEventResponse AWS API Documentation
    #
    class DescribeClusterEventResponse < Struct.new(
      :event_details)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] cluster_name
    #   The string name or the Amazon Resource Name (ARN) of the SageMaker
    #   HyperPod cluster in which the node is.
    #   @return [String]
    #
    # @!attribute [rw] node_id
    #   The ID of the SageMaker HyperPod cluster node.
    #   @return [String]
    #
    # @!attribute [rw] node_logical_id
    #   The logical identifier of the node to describe. You can specify
    #   either `NodeLogicalId` or `InstanceId`, but not both.
    #   `NodeLogicalId` can be used to describe nodes that are still being
    #   provisioned and don't yet have an `InstanceId` assigned.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeClusterNodeRequest AWS API Documentation
    #
    class DescribeClusterNodeRequest < Struct.new(
      :cluster_name,
      :node_id,
      :node_logical_id)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] node_details
    #   The details of the SageMaker HyperPod cluster node.
    #   @return [Types::ClusterNodeDetails]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeClusterNodeResponse AWS API Documentation
    #
    class DescribeClusterNodeResponse < Struct.new(
      :node_details)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] cluster_name
    #   The string name or the Amazon Resource Name (ARN) of the SageMaker
    #   HyperPod cluster.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeClusterRequest AWS API Documentation
    #
    class DescribeClusterRequest < Struct.new(
      :cluster_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] cluster_arn
    #   The Amazon Resource Name (ARN) of the SageMaker HyperPod cluster.
    #   @return [String]
    #
    # @!attribute [rw] cluster_name
    #   The name of the SageMaker HyperPod cluster.
    #   @return [String]
    #
    # @!attribute [rw] cluster_status
    #   The status of the SageMaker HyperPod cluster.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   The time when the SageMaker Cluster is created.
    #   @return [Time]
    #
    # @!attribute [rw] failure_message
    #   The failure message of the SageMaker HyperPod cluster.
    #   @return [String]
    #
    # @!attribute [rw] instance_groups
    #   The instance groups of the SageMaker HyperPod cluster.
    #   @return [Array<Types::ClusterInstanceGroupDetails>]
    #
    # @!attribute [rw] restricted_instance_groups
    #   The specialized instance groups for training models like Amazon Nova
    #   to be created in the SageMaker HyperPod cluster.
    #   @return [Array<Types::ClusterRestrictedInstanceGroupDetails>]
    #
    # @!attribute [rw] vpc_config
    #   Specifies an Amazon Virtual Private Cloud (VPC) that your SageMaker
    #   jobs, hosted models, and compute resources have access to. You can
    #   control access to and from your resources by configuring a VPC. For
    #   more information, see [Give SageMaker Access to Resources in your
    #   Amazon VPC][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/infrastructure-give-access.html
    #   @return [Types::VpcConfig]
    #
    # @!attribute [rw] orchestrator
    #   The type of orchestrator used for the SageMaker HyperPod cluster.
    #   @return [Types::ClusterOrchestrator]
    #
    # @!attribute [rw] tiered_storage_config
    #   The current configuration for managed tier checkpointing on the
    #   HyperPod cluster. For example, this shows whether the feature is
    #   enabled and the percentage of cluster memory allocated for
    #   checkpoint storage.
    #   @return [Types::ClusterTieredStorageConfig]
    #
    # @!attribute [rw] node_recovery
    #   The node recovery mode configured for the SageMaker HyperPod
    #   cluster.
    #   @return [String]
    #
    # @!attribute [rw] node_provisioning_mode
    #   The mode used for provisioning nodes in the cluster.
    #   @return [String]
    #
    # @!attribute [rw] cluster_role
    #   The Amazon Resource Name (ARN) of the IAM role that HyperPod uses
    #   for cluster autoscaling operations.
    #   @return [String]
    #
    # @!attribute [rw] auto_scaling
    #   The current autoscaling configuration and status for the autoscaler.
    #   @return [Types::ClusterAutoScalingConfigOutput]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeClusterResponse AWS API Documentation
    #
    class DescribeClusterResponse < Struct.new(
      :cluster_arn,
      :cluster_name,
      :cluster_status,
      :creation_time,
      :failure_message,
      :instance_groups,
      :restricted_instance_groups,
      :vpc_config,
      :orchestrator,
      :tiered_storage_config,
      :node_recovery,
      :node_provisioning_mode,
      :cluster_role,
      :auto_scaling)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] cluster_scheduler_config_id
    #   ID of the cluster policy.
    #   @return [String]
    #
    # @!attribute [rw] cluster_scheduler_config_version
    #   Version of the cluster policy.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeClusterSchedulerConfigRequest AWS API Documentation
    #
    class DescribeClusterSchedulerConfigRequest < Struct.new(
      :cluster_scheduler_config_id,
      :cluster_scheduler_config_version)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] cluster_scheduler_config_arn
    #   ARN of the cluster policy.
    #   @return [String]
    #
    # @!attribute [rw] cluster_scheduler_config_id
    #   ID of the cluster policy.
    #   @return [String]
    #
    # @!attribute [rw] name
    #   Name of the cluster policy.
    #   @return [String]
    #
    # @!attribute [rw] cluster_scheduler_config_version
    #   Version of the cluster policy.
    #   @return [Integer]
    #
    # @!attribute [rw] status
    #   Status of the cluster policy.
    #   @return [String]
    #
    # @!attribute [rw] failure_reason
    #   Failure reason of the cluster policy.
    #   @return [String]
    #
    # @!attribute [rw] cluster_arn
    #   ARN of the cluster where the cluster policy is applied.
    #   @return [String]
    #
    # @!attribute [rw] scheduler_config
    #   Cluster policy configuration. This policy is used for task
    #   prioritization and fair-share allocation. This helps prioritize
    #   critical workloads and distributes idle compute across entities.
    #   @return [Types::SchedulerConfig]
    #
    # @!attribute [rw] description
    #   Description of the cluster policy.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   Creation time of the cluster policy.
    #   @return [Time]
    #
    # @!attribute [rw] created_by
    #   Information about the user who created or modified a SageMaker
    #   resource.
    #   @return [Types::UserContext]
    #
    # @!attribute [rw] last_modified_time
    #   Last modified time of the cluster policy.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_by
    #   Information about the user who created or modified a SageMaker
    #   resource.
    #   @return [Types::UserContext]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeClusterSchedulerConfigResponse AWS API Documentation
    #
    class DescribeClusterSchedulerConfigResponse < Struct.new(
      :cluster_scheduler_config_arn,
      :cluster_scheduler_config_id,
      :name,
      :cluster_scheduler_config_version,
      :status,
      :failure_reason,
      :cluster_arn,
      :scheduler_config,
      :description,
      :creation_time,
      :created_by,
      :last_modified_time,
      :last_modified_by)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] code_repository_name
    #   The name of the Git repository to describe.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeCodeRepositoryInput AWS API Documentation
    #
    class DescribeCodeRepositoryInput < Struct.new(
      :code_repository_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] code_repository_name
    #   The name of the Git repository.
    #   @return [String]
    #
    # @!attribute [rw] code_repository_arn
    #   The Amazon Resource Name (ARN) of the Git repository.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   The date and time that the repository was created.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time
    #   The date and time that the repository was last changed.
    #   @return [Time]
    #
    # @!attribute [rw] git_config
    #   Configuration details about the repository, including the URL where
    #   the repository is located, the default branch, and the Amazon
    #   Resource Name (ARN) of the Amazon Web Services Secrets Manager
    #   secret that contains the credentials used to access the repository.
    #   @return [Types::GitConfig]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeCodeRepositoryOutput AWS API Documentation
    #
    class DescribeCodeRepositoryOutput < Struct.new(
      :code_repository_name,
      :code_repository_arn,
      :creation_time,
      :last_modified_time,
      :git_config)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] compilation_job_name
    #   The name of the model compilation job that you want information
    #   about.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeCompilationJobRequest AWS API Documentation
    #
    class DescribeCompilationJobRequest < Struct.new(
      :compilation_job_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] compilation_job_name
    #   The name of the model compilation job.
    #   @return [String]
    #
    # @!attribute [rw] compilation_job_arn
    #   The Amazon Resource Name (ARN) of the model compilation job.
    #   @return [String]
    #
    # @!attribute [rw] compilation_job_status
    #   The status of the model compilation job.
    #   @return [String]
    #
    # @!attribute [rw] compilation_start_time
    #   The time when the model compilation job started the `CompilationJob`
    #   instances.
    #
    #   You are billed for the time between this timestamp and the timestamp
    #   in the `CompilationEndTime` field. In Amazon CloudWatch Logs, the
    #   start time might be later than this time. That's because it takes
    #   time to download the compilation job, which depends on the size of
    #   the compilation job container.
    #   @return [Time]
    #
    # @!attribute [rw] compilation_end_time
    #   The time when the model compilation job on a compilation job
    #   instance ended. For a successful or stopped job, this is when the
    #   job's model artifacts have finished uploading. For a failed job,
    #   this is when Amazon SageMaker AI detected that the job failed.
    #   @return [Time]
    #
    # @!attribute [rw] stopping_condition
    #   Specifies a limit to how long a model compilation job can run. When
    #   the job reaches the time limit, Amazon SageMaker AI ends the
    #   compilation job. Use this API to cap model training costs.
    #   @return [Types::StoppingCondition]
    #
    # @!attribute [rw] inference_image
    #   The inference image to use when compiling a model. Specify an image
    #   only if the target device is a cloud instance.
    #   @return [String]
    #
    # @!attribute [rw] model_package_version_arn
    #   The Amazon Resource Name (ARN) of the versioned model package that
    #   was provided to SageMaker Neo when you initiated a compilation job.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   The time that the model compilation job was created.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time
    #   The time that the status of the model compilation job was last
    #   modified.
    #   @return [Time]
    #
    # @!attribute [rw] failure_reason
    #   If a model compilation job failed, the reason it failed.
    #   @return [String]
    #
    # @!attribute [rw] model_artifacts
    #   Information about the location in Amazon S3 that has been configured
    #   for storing the model artifacts used in the compilation job.
    #   @return [Types::ModelArtifacts]
    #
    # @!attribute [rw] model_digests
    #   Provides a BLAKE2 hash value that identifies the compiled model
    #   artifacts in Amazon S3.
    #   @return [Types::ModelDigests]
    #
    # @!attribute [rw] role_arn
    #   The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker
    #   AI assumes to perform the model compilation job.
    #   @return [String]
    #
    # @!attribute [rw] input_config
    #   Information about the location in Amazon S3 of the input model
    #   artifacts, the name and shape of the expected data inputs, and the
    #   framework in which the model was trained.
    #   @return [Types::InputConfig]
    #
    # @!attribute [rw] output_config
    #   Information about the output location for the compiled model and the
    #   target device that the model runs on.
    #   @return [Types::OutputConfig]
    #
    # @!attribute [rw] vpc_config
    #   A [VpcConfig][1] object that specifies the VPC that you want your
    #   compilation job to connect to. Control access to your models by
    #   configuring the VPC. For more information, see [Protect Compilation
    #   Jobs by Using an Amazon Virtual Private Cloud][2].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_VpcConfig.html
    #   [2]: https://docs.aws.amazon.com/sagemaker/latest/dg/neo-vpc.html
    #   @return [Types::NeoVpcConfig]
    #
    # @!attribute [rw] derived_information
    #   Information that SageMaker Neo automatically derived about the
    #   model.
    #   @return [Types::DerivedInformation]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeCompilationJobResponse AWS API Documentation
    #
    class DescribeCompilationJobResponse < Struct.new(
      :compilation_job_name,
      :compilation_job_arn,
      :compilation_job_status,
      :compilation_start_time,
      :compilation_end_time,
      :stopping_condition,
      :inference_image,
      :model_package_version_arn,
      :creation_time,
      :last_modified_time,
      :failure_reason,
      :model_artifacts,
      :model_digests,
      :role_arn,
      :input_config,
      :output_config,
      :vpc_config,
      :derived_information)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] compute_quota_id
    #   ID of the compute allocation definition.
    #   @return [String]
    #
    # @!attribute [rw] compute_quota_version
    #   Version of the compute allocation definition.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeComputeQuotaRequest AWS API Documentation
    #
    class DescribeComputeQuotaRequest < Struct.new(
      :compute_quota_id,
      :compute_quota_version)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] compute_quota_arn
    #   ARN of the compute allocation definition.
    #   @return [String]
    #
    # @!attribute [rw] compute_quota_id
    #   ID of the compute allocation definition.
    #   @return [String]
    #
    # @!attribute [rw] name
    #   Name of the compute allocation definition.
    #   @return [String]
    #
    # @!attribute [rw] description
    #   Description of the compute allocation definition.
    #   @return [String]
    #
    # @!attribute [rw] compute_quota_version
    #   Version of the compute allocation definition.
    #   @return [Integer]
    #
    # @!attribute [rw] status
    #   Status of the compute allocation definition.
    #   @return [String]
    #
    # @!attribute [rw] failure_reason
    #   Failure reason of the compute allocation definition.
    #   @return [String]
    #
    # @!attribute [rw] cluster_arn
    #   ARN of the cluster.
    #   @return [String]
    #
    # @!attribute [rw] compute_quota_config
    #   Configuration of the compute allocation definition. This includes
    #   the resource sharing option, and the setting to preempt low priority
    #   tasks.
    #   @return [Types::ComputeQuotaConfig]
    #
    # @!attribute [rw] compute_quota_target
    #   The target entity to allocate compute resources to.
    #   @return [Types::ComputeQuotaTarget]
    #
    # @!attribute [rw] activation_state
    #   The state of the compute allocation being described. Use to enable
    #   or disable compute allocation.
    #
    #   Default is `Enabled`.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   Creation time of the compute allocation configuration.
    #   @return [Time]
    #
    # @!attribute [rw] created_by
    #   Information about the user who created or modified a SageMaker
    #   resource.
    #   @return [Types::UserContext]
    #
    # @!attribute [rw] last_modified_time
    #   Last modified time of the compute allocation configuration.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_by
    #   Information about the user who created or modified a SageMaker
    #   resource.
    #   @return [Types::UserContext]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeComputeQuotaResponse AWS API Documentation
    #
    class DescribeComputeQuotaResponse < Struct.new(
      :compute_quota_arn,
      :compute_quota_id,
      :name,
      :description,
      :compute_quota_version,
      :status,
      :failure_reason,
      :cluster_arn,
      :compute_quota_config,
      :compute_quota_target,
      :activation_state,
      :creation_time,
      :created_by,
      :last_modified_time,
      :last_modified_by)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] context_name
    #   The name of the context to describe.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeContextRequest AWS API Documentation
    #
    class DescribeContextRequest < Struct.new(
      :context_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] context_name
    #   The name of the context.
    #   @return [String]
    #
    # @!attribute [rw] context_arn
    #   The Amazon Resource Name (ARN) of the context.
    #   @return [String]
    #
    # @!attribute [rw] source
    #   The source of the context.
    #   @return [Types::ContextSource]
    #
    # @!attribute [rw] context_type
    #   The type of the context.
    #   @return [String]
    #
    # @!attribute [rw] description
    #   The description of the context.
    #   @return [String]
    #
    # @!attribute [rw] properties
    #   A list of the context's properties.
    #   @return [Hash<String,String>]
    #
    # @!attribute [rw] creation_time
    #   When the context was created.
    #   @return [Time]
    #
    # @!attribute [rw] created_by
    #   Information about the user who created or modified a SageMaker
    #   resource.
    #   @return [Types::UserContext]
    #
    # @!attribute [rw] last_modified_time
    #   When the context was last modified.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_by
    #   Information about the user who created or modified a SageMaker
    #   resource.
    #   @return [Types::UserContext]
    #
    # @!attribute [rw] lineage_group_arn
    #   The Amazon Resource Name (ARN) of the lineage group.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeContextResponse AWS API Documentation
    #
    class DescribeContextResponse < Struct.new(
      :context_name,
      :context_arn,
      :source,
      :context_type,
      :description,
      :properties,
      :creation_time,
      :created_by,
      :last_modified_time,
      :last_modified_by,
      :lineage_group_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] job_definition_name
    #   The name of the data quality monitoring job definition to describe.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeDataQualityJobDefinitionRequest AWS API Documentation
    #
    class DescribeDataQualityJobDefinitionRequest < Struct.new(
      :job_definition_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] job_definition_arn
    #   The Amazon Resource Name (ARN) of the data quality monitoring job
    #   definition.
    #   @return [String]
    #
    # @!attribute [rw] job_definition_name
    #   The name of the data quality monitoring job definition.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   The time that the data quality monitoring job definition was
    #   created.
    #   @return [Time]
    #
    # @!attribute [rw] data_quality_baseline_config
    #   The constraints and baselines for the data quality monitoring job
    #   definition.
    #   @return [Types::DataQualityBaselineConfig]
    #
    # @!attribute [rw] data_quality_app_specification
    #   Information about the container that runs the data quality
    #   monitoring job.
    #   @return [Types::DataQualityAppSpecification]
    #
    # @!attribute [rw] data_quality_job_input
    #   The list of inputs for the data quality monitoring job. Currently
    #   endpoints are supported.
    #   @return [Types::DataQualityJobInput]
    #
    # @!attribute [rw] data_quality_job_output_config
    #   The output configuration for monitoring jobs.
    #   @return [Types::MonitoringOutputConfig]
    #
    # @!attribute [rw] job_resources
    #   Identifies the resources to deploy for a monitoring job.
    #   @return [Types::MonitoringResources]
    #
    # @!attribute [rw] network_config
    #   The networking configuration for the data quality monitoring job.
    #   @return [Types::MonitoringNetworkConfig]
    #
    # @!attribute [rw] role_arn
    #   The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker
    #   AI can assume to perform tasks on your behalf.
    #   @return [String]
    #
    # @!attribute [rw] stopping_condition
    #   A time limit for how long the monitoring job is allowed to run
    #   before stopping.
    #   @return [Types::MonitoringStoppingCondition]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeDataQualityJobDefinitionResponse AWS API Documentation
    #
    class DescribeDataQualityJobDefinitionResponse < Struct.new(
      :job_definition_arn,
      :job_definition_name,
      :creation_time,
      :data_quality_baseline_config,
      :data_quality_app_specification,
      :data_quality_job_input,
      :data_quality_job_output_config,
      :job_resources,
      :network_config,
      :role_arn,
      :stopping_condition)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] device_fleet_name
    #   The name of the fleet.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeDeviceFleetRequest AWS API Documentation
    #
    class DescribeDeviceFleetRequest < Struct.new(
      :device_fleet_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] device_fleet_name
    #   The name of the fleet.
    #   @return [String]
    #
    # @!attribute [rw] device_fleet_arn
    #   The The Amazon Resource Name (ARN) of the fleet.
    #   @return [String]
    #
    # @!attribute [rw] output_config
    #   The output configuration for storing sampled data.
    #   @return [Types::EdgeOutputConfig]
    #
    # @!attribute [rw] description
    #   A description of the fleet.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   Timestamp of when the device fleet was created.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time
    #   Timestamp of when the device fleet was last updated.
    #   @return [Time]
    #
    # @!attribute [rw] role_arn
    #   The Amazon Resource Name (ARN) that has access to Amazon Web
    #   Services Internet of Things (IoT).
    #   @return [String]
    #
    # @!attribute [rw] iot_role_alias
    #   The Amazon Resource Name (ARN) alias created in Amazon Web Services
    #   Internet of Things (IoT).
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeDeviceFleetResponse AWS API Documentation
    #
    class DescribeDeviceFleetResponse < Struct.new(
      :device_fleet_name,
      :device_fleet_arn,
      :output_config,
      :description,
      :creation_time,
      :last_modified_time,
      :role_arn,
      :iot_role_alias)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] next_token
    #   Next token of device description.
    #   @return [String]
    #
    # @!attribute [rw] device_name
    #   The unique ID of the device.
    #   @return [String]
    #
    # @!attribute [rw] device_fleet_name
    #   The name of the fleet the devices belong to.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeDeviceRequest AWS API Documentation
    #
    class DescribeDeviceRequest < Struct.new(
      :next_token,
      :device_name,
      :device_fleet_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] device_arn
    #   The Amazon Resource Name (ARN) of the device.
    #   @return [String]
    #
    # @!attribute [rw] device_name
    #   The unique identifier of the device.
    #   @return [String]
    #
    # @!attribute [rw] description
    #   A description of the device.
    #   @return [String]
    #
    # @!attribute [rw] device_fleet_name
    #   The name of the fleet the device belongs to.
    #   @return [String]
    #
    # @!attribute [rw] iot_thing_name
    #   The Amazon Web Services Internet of Things (IoT) object thing name
    #   associated with the device.
    #   @return [String]
    #
    # @!attribute [rw] registration_time
    #   The timestamp of the last registration or de-reregistration.
    #   @return [Time]
    #
    # @!attribute [rw] latest_heartbeat
    #   The last heartbeat received from the device.
    #   @return [Time]
    #
    # @!attribute [rw] models
    #   Models on the device.
    #   @return [Array<Types::EdgeModel>]
    #
    # @!attribute [rw] max_models
    #   The maximum number of models.
    #   @return [Integer]
    #
    # @!attribute [rw] next_token
    #   The response from the last list when returning a list large enough
    #   to need tokening.
    #   @return [String]
    #
    # @!attribute [rw] agent_version
    #   Edge Manager agent version.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeDeviceResponse AWS API Documentation
    #
    class DescribeDeviceResponse < Struct.new(
      :device_arn,
      :device_name,
      :description,
      :device_fleet_name,
      :iot_thing_name,
      :registration_time,
      :latest_heartbeat,
      :models,
      :max_models,
      :next_token,
      :agent_version)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] domain_id
    #   The domain ID.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeDomainRequest AWS API Documentation
    #
    class DescribeDomainRequest < Struct.new(
      :domain_id)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] domain_arn
    #   The domain's Amazon Resource Name (ARN).
    #   @return [String]
    #
    # @!attribute [rw] domain_id
    #   The domain ID.
    #   @return [String]
    #
    # @!attribute [rw] domain_name
    #   The domain name.
    #   @return [String]
    #
    # @!attribute [rw] home_efs_file_system_id
    #   The ID of the Amazon Elastic File System managed by this Domain.
    #   @return [String]
    #
    # @!attribute [rw] single_sign_on_managed_application_instance_id
    #   The IAM Identity Center managed application instance ID.
    #   @return [String]
    #
    # @!attribute [rw] single_sign_on_application_arn
    #   The ARN of the application managed by SageMaker AI in IAM Identity
    #   Center. This value is only returned for domains created after
    #   October 1, 2023.
    #   @return [String]
    #
    # @!attribute [rw] status
    #   The status.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   The creation time.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time
    #   The last modified time.
    #   @return [Time]
    #
    # @!attribute [rw] failure_reason
    #   The failure reason.
    #   @return [String]
    #
    # @!attribute [rw] security_group_id_for_domain_boundary
    #   The ID of the security group that authorizes traffic between the
    #   `RSessionGateway` apps and the `RStudioServerPro` app.
    #   @return [String]
    #
    # @!attribute [rw] auth_mode
    #   The domain's authentication mode.
    #   @return [String]
    #
    # @!attribute [rw] default_user_settings
    #   Settings which are applied to UserProfiles in this domain if
    #   settings are not explicitly specified in a given UserProfile.
    #   @return [Types::UserSettings]
    #
    # @!attribute [rw] domain_settings
    #   A collection of `Domain` settings.
    #   @return [Types::DomainSettings]
    #
    # @!attribute [rw] app_network_access_type
    #   Specifies the VPC used for non-EFS traffic. The default value is
    #   `PublicInternetOnly`.
    #
    #   * `PublicInternetOnly` - Non-EFS traffic is through a VPC managed by
    #     Amazon SageMaker AI, which allows direct internet access
    #
    #   * `VpcOnly` - All traffic is through the specified VPC and subnets
    #   @return [String]
    #
    # @!attribute [rw] home_efs_file_system_kms_key_id
    #   Use `KmsKeyId`.
    #   @return [String]
    #
    # @!attribute [rw] subnet_ids
    #   The VPC subnets that the domain uses for communication.
    #   @return [Array<String>]
    #
    # @!attribute [rw] url
    #   The domain's URL.
    #   @return [String]
    #
    # @!attribute [rw] vpc_id
    #   The ID of the Amazon Virtual Private Cloud (VPC) that the domain
    #   uses for communication.
    #   @return [String]
    #
    # @!attribute [rw] kms_key_id
    #   The Amazon Web Services KMS customer managed key used to encrypt the
    #   EFS volume attached to the domain.
    #   @return [String]
    #
    # @!attribute [rw] app_security_group_management
    #   The entity that creates and manages the required security groups for
    #   inter-app communication in `VPCOnly` mode. Required when
    #   `CreateDomain.AppNetworkAccessType` is `VPCOnly` and
    #   `DomainSettings.RStudioServerProDomainSettings.DomainExecutionRoleArn`
    #   is provided.
    #   @return [String]
    #
    # @!attribute [rw] tag_propagation
    #   Indicates whether custom tag propagation is supported for the
    #   domain.
    #   @return [String]
    #
    # @!attribute [rw] default_space_settings
    #   The default settings for shared spaces that users create in the
    #   domain.
    #   @return [Types::DefaultSpaceSettings]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeDomainResponse AWS API Documentation
    #
    class DescribeDomainResponse < Struct.new(
      :domain_arn,
      :domain_id,
      :domain_name,
      :home_efs_file_system_id,
      :single_sign_on_managed_application_instance_id,
      :single_sign_on_application_arn,
      :status,
      :creation_time,
      :last_modified_time,
      :failure_reason,
      :security_group_id_for_domain_boundary,
      :auth_mode,
      :default_user_settings,
      :domain_settings,
      :app_network_access_type,
      :home_efs_file_system_kms_key_id,
      :subnet_ids,
      :url,
      :vpc_id,
      :kms_key_id,
      :app_security_group_management,
      :tag_propagation,
      :default_space_settings)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] edge_deployment_plan_name
    #   The name of the deployment plan to describe.
    #   @return [String]
    #
    # @!attribute [rw] next_token
    #   If the edge deployment plan has enough stages to require tokening,
    #   then this is the response from the last list of stages returned.
    #   @return [String]
    #
    # @!attribute [rw] max_results
    #   The maximum number of results to select (50 by default).
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeEdgeDeploymentPlanRequest AWS API Documentation
    #
    class DescribeEdgeDeploymentPlanRequest < Struct.new(
      :edge_deployment_plan_name,
      :next_token,
      :max_results)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] edge_deployment_plan_arn
    #   The ARN of edge deployment plan.
    #   @return [String]
    #
    # @!attribute [rw] edge_deployment_plan_name
    #   The name of the edge deployment plan.
    #   @return [String]
    #
    # @!attribute [rw] model_configs
    #   List of models associated with the edge deployment plan.
    #   @return [Array<Types::EdgeDeploymentModelConfig>]
    #
    # @!attribute [rw] device_fleet_name
    #   The device fleet used for this edge deployment plan.
    #   @return [String]
    #
    # @!attribute [rw] edge_deployment_success
    #   The number of edge devices with the successful deployment.
    #   @return [Integer]
    #
    # @!attribute [rw] edge_deployment_pending
    #   The number of edge devices yet to pick up deployment, or in
    #   progress.
    #   @return [Integer]
    #
    # @!attribute [rw] edge_deployment_failed
    #   The number of edge devices that failed the deployment.
    #   @return [Integer]
    #
    # @!attribute [rw] stages
    #   List of stages in the edge deployment plan.
    #   @return [Array<Types::DeploymentStageStatusSummary>]
    #
    # @!attribute [rw] next_token
    #   Token to use when calling the next set of stages in the edge
    #   deployment plan.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   The time when the edge deployment plan was created.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time
    #   The time when the edge deployment plan was last updated.
    #   @return [Time]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeEdgeDeploymentPlanResponse AWS API Documentation
    #
    class DescribeEdgeDeploymentPlanResponse < Struct.new(
      :edge_deployment_plan_arn,
      :edge_deployment_plan_name,
      :model_configs,
      :device_fleet_name,
      :edge_deployment_success,
      :edge_deployment_pending,
      :edge_deployment_failed,
      :stages,
      :next_token,
      :creation_time,
      :last_modified_time)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] edge_packaging_job_name
    #   The name of the edge packaging job.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeEdgePackagingJobRequest AWS API Documentation
    #
    class DescribeEdgePackagingJobRequest < Struct.new(
      :edge_packaging_job_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] edge_packaging_job_arn
    #   The Amazon Resource Name (ARN) of the edge packaging job.
    #   @return [String]
    #
    # @!attribute [rw] edge_packaging_job_name
    #   The name of the edge packaging job.
    #   @return [String]
    #
    # @!attribute [rw] compilation_job_name
    #   The name of the SageMaker Neo compilation job that is used to locate
    #   model artifacts that are being packaged.
    #   @return [String]
    #
    # @!attribute [rw] model_name
    #   The name of the model.
    #   @return [String]
    #
    # @!attribute [rw] model_version
    #   The version of the model.
    #   @return [String]
    #
    # @!attribute [rw] role_arn
    #   The Amazon Resource Name (ARN) of an IAM role that enables Amazon
    #   SageMaker to download and upload the model, and to contact Neo.
    #   @return [String]
    #
    # @!attribute [rw] output_config
    #   The output configuration for the edge packaging job.
    #   @return [Types::EdgeOutputConfig]
    #
    # @!attribute [rw] resource_key
    #   The Amazon Web Services KMS key to use when encrypting the EBS
    #   volume the job run on.
    #   @return [String]
    #
    # @!attribute [rw] edge_packaging_job_status
    #   The current status of the packaging job.
    #   @return [String]
    #
    # @!attribute [rw] edge_packaging_job_status_message
    #   Returns a message describing the job status and error messages.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   The timestamp of when the packaging job was created.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time
    #   The timestamp of when the job was last updated.
    #   @return [Time]
    #
    # @!attribute [rw] model_artifact
    #   The Amazon Simple Storage (S3) URI where model artifacts ares
    #   stored.
    #   @return [String]
    #
    # @!attribute [rw] model_signature
    #   The signature document of files in the model artifact.
    #   @return [String]
    #
    # @!attribute [rw] preset_deployment_output
    #   The output of a SageMaker Edge Manager deployable resource.
    #   @return [Types::EdgePresetDeploymentOutput]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeEdgePackagingJobResponse AWS API Documentation
    #
    class DescribeEdgePackagingJobResponse < Struct.new(
      :edge_packaging_job_arn,
      :edge_packaging_job_name,
      :compilation_job_name,
      :model_name,
      :model_version,
      :role_arn,
      :output_config,
      :resource_key,
      :edge_packaging_job_status,
      :edge_packaging_job_status_message,
      :creation_time,
      :last_modified_time,
      :model_artifact,
      :model_signature,
      :preset_deployment_output)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] endpoint_config_name
    #   The name of the endpoint configuration.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeEndpointConfigInput AWS API Documentation
    #
    class DescribeEndpointConfigInput < Struct.new(
      :endpoint_config_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] endpoint_config_name
    #   Name of the SageMaker endpoint configuration.
    #   @return [String]
    #
    # @!attribute [rw] endpoint_config_arn
    #   The Amazon Resource Name (ARN) of the endpoint configuration.
    #   @return [String]
    #
    # @!attribute [rw] production_variants
    #   An array of `ProductionVariant` objects, one for each model that you
    #   want to host at this endpoint.
    #   @return [Array<Types::ProductionVariant>]
    #
    # @!attribute [rw] data_capture_config
    #   Configuration to control how SageMaker AI captures inference data.
    #   @return [Types::DataCaptureConfig]
    #
    # @!attribute [rw] kms_key_id
    #   Amazon Web Services KMS key ID Amazon SageMaker uses to encrypt data
    #   when storing it on the ML storage volume attached to the instance.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   A timestamp that shows when the endpoint configuration was created.
    #   @return [Time]
    #
    # @!attribute [rw] async_inference_config
    #   Returns the description of an endpoint configuration created using
    #   the [ `CreateEndpointConfig` ][1] API.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpointConfig.html
    #   @return [Types::AsyncInferenceConfig]
    #
    # @!attribute [rw] explainer_config
    #   The configuration parameters for an explainer.
    #   @return [Types::ExplainerConfig]
    #
    # @!attribute [rw] shadow_production_variants
    #   An array of `ProductionVariant` objects, one for each model that you
    #   want to host at this endpoint in shadow mode with production traffic
    #   replicated from the model specified on `ProductionVariants`.
    #   @return [Array<Types::ProductionVariant>]
    #
    # @!attribute [rw] execution_role_arn
    #   The Amazon Resource Name (ARN) of the IAM role that you assigned to
    #   the endpoint configuration.
    #   @return [String]
    #
    # @!attribute [rw] vpc_config
    #   Specifies an Amazon Virtual Private Cloud (VPC) that your SageMaker
    #   jobs, hosted models, and compute resources have access to. You can
    #   control access to and from your resources by configuring a VPC. For
    #   more information, see [Give SageMaker Access to Resources in your
    #   Amazon VPC][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/infrastructure-give-access.html
    #   @return [Types::VpcConfig]
    #
    # @!attribute [rw] enable_network_isolation
    #   Indicates whether all model containers deployed to the endpoint are
    #   isolated. If they are, no inbound or outbound network calls can be
    #   made to or from the model containers.
    #   @return [Boolean]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeEndpointConfigOutput AWS API Documentation
    #
    class DescribeEndpointConfigOutput < Struct.new(
      :endpoint_config_name,
      :endpoint_config_arn,
      :production_variants,
      :data_capture_config,
      :kms_key_id,
      :creation_time,
      :async_inference_config,
      :explainer_config,
      :shadow_production_variants,
      :execution_role_arn,
      :vpc_config,
      :enable_network_isolation)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] endpoint_name
    #   The name of the endpoint.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeEndpointInput AWS API Documentation
    #
    class DescribeEndpointInput < Struct.new(
      :endpoint_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] endpoint_name
    #   Name of the endpoint.
    #   @return [String]
    #
    # @!attribute [rw] endpoint_arn
    #   The Amazon Resource Name (ARN) of the endpoint.
    #   @return [String]
    #
    # @!attribute [rw] endpoint_config_name
    #   The name of the endpoint configuration associated with this
    #   endpoint.
    #   @return [String]
    #
    # @!attribute [rw] production_variants
    #   An array of [ProductionVariantSummary][1] objects, one for each
    #   model hosted behind this endpoint.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ProductionVariantSummary.html
    #   @return [Array<Types::ProductionVariantSummary>]
    #
    # @!attribute [rw] data_capture_config
    #   The currently active data capture configuration used by your
    #   Endpoint.
    #   @return [Types::DataCaptureConfigSummary]
    #
    # @!attribute [rw] endpoint_status
    #   The status of the endpoint.
    #
    #   * `OutOfService`: Endpoint is not available to take incoming
    #     requests.
    #
    #   * `Creating`: [CreateEndpoint][1] is executing.
    #
    #   * `Updating`: [UpdateEndpoint][2] or
    #     [UpdateEndpointWeightsAndCapacities][3] is executing.
    #
    #   * `SystemUpdating`: Endpoint is undergoing maintenance and cannot be
    #     updated or deleted or re-scaled until it has completed. This
    #     maintenance operation does not change any customer-specified
    #     values such as VPC config, KMS encryption, model, instance type,
    #     or instance count.
    #
    #   * `RollingBack`: Endpoint fails to scale up or down or change its
    #     variant weight and is in the process of rolling back to its
    #     previous configuration. Once the rollback completes, endpoint
    #     returns to an `InService` status. This transitional status only
    #     applies to an endpoint that has autoscaling enabled and is
    #     undergoing variant weight or capacity changes as part of an
    #     [UpdateEndpointWeightsAndCapacities][3] call or when the
    #     [UpdateEndpointWeightsAndCapacities][3] operation is called
    #     explicitly.
    #
    #   * `InService`: Endpoint is available to process incoming requests.
    #
    #   * `Deleting`: [DeleteEndpoint][4] is executing.
    #
    #   * `Failed`: Endpoint could not be created, updated, or re-scaled.
    #     Use the `FailureReason` value returned by [DescribeEndpoint][5]
    #     for information about the failure. [DeleteEndpoint][4] is the only
    #     operation that can be performed on a failed endpoint.
    #
    #   * `UpdateRollbackFailed`: Both the rolling deployment and
    #     auto-rollback failed. Your endpoint is in service with a mix of
    #     the old and new endpoint configurations. For information about how
    #     to remedy this issue and restore the endpoint's status to
    #     `InService`, see [Rolling Deployments][6].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpoint.html
    #   [2]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateEndpoint.html
    #   [3]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateEndpointWeightsAndCapacities.html
    #   [4]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DeleteEndpoint.html
    #   [5]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeEndpoint.html
    #   [6]: https://docs.aws.amazon.com/sagemaker/latest/dg/deployment-guardrails-rolling.html
    #   @return [String]
    #
    # @!attribute [rw] failure_reason
    #   If the status of the endpoint is `Failed`, the reason why it failed.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   A timestamp that shows when the endpoint was created.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time
    #   A timestamp that shows when the endpoint was last modified.
    #   @return [Time]
    #
    # @!attribute [rw] last_deployment_config
    #   The most recent deployment configuration for the endpoint.
    #   @return [Types::DeploymentConfig]
    #
    # @!attribute [rw] async_inference_config
    #   Returns the description of an endpoint configuration created using
    #   the [ `CreateEndpointConfig` ][1] API.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpointConfig.html
    #   @return [Types::AsyncInferenceConfig]
    #
    # @!attribute [rw] pending_deployment_summary
    #   Returns the summary of an in-progress deployment. This field is only
    #   returned when the endpoint is creating or updating with a new
    #   endpoint configuration.
    #   @return [Types::PendingDeploymentSummary]
    #
    # @!attribute [rw] explainer_config
    #   The configuration parameters for an explainer.
    #   @return [Types::ExplainerConfig]
    #
    # @!attribute [rw] shadow_production_variants
    #   An array of [ProductionVariantSummary][1] objects, one for each
    #   model that you want to host at this endpoint in shadow mode with
    #   production traffic replicated from the model specified on
    #   `ProductionVariants`.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ProductionVariantSummary.html
    #   @return [Array<Types::ProductionVariantSummary>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeEndpointOutput AWS API Documentation
    #
    class DescribeEndpointOutput < Struct.new(
      :endpoint_name,
      :endpoint_arn,
      :endpoint_config_name,
      :production_variants,
      :data_capture_config,
      :endpoint_status,
      :failure_reason,
      :creation_time,
      :last_modified_time,
      :last_deployment_config,
      :async_inference_config,
      :pending_deployment_summary,
      :explainer_config,
      :shadow_production_variants)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] experiment_name
    #   The name of the experiment to describe.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeExperimentRequest AWS API Documentation
    #
    class DescribeExperimentRequest < Struct.new(
      :experiment_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] experiment_name
    #   The name of the experiment.
    #   @return [String]
    #
    # @!attribute [rw] experiment_arn
    #   The Amazon Resource Name (ARN) of the experiment.
    #   @return [String]
    #
    # @!attribute [rw] display_name
    #   The name of the experiment as displayed. If `DisplayName` isn't
    #   specified, `ExperimentName` is displayed.
    #   @return [String]
    #
    # @!attribute [rw] source
    #   The Amazon Resource Name (ARN) of the source and, optionally, the
    #   type.
    #   @return [Types::ExperimentSource]
    #
    # @!attribute [rw] description
    #   The description of the experiment.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   When the experiment was created.
    #   @return [Time]
    #
    # @!attribute [rw] created_by
    #   Who created the experiment.
    #   @return [Types::UserContext]
    #
    # @!attribute [rw] last_modified_time
    #   When the experiment was last modified.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_by
    #   Who last modified the experiment.
    #   @return [Types::UserContext]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeExperimentResponse AWS API Documentation
    #
    class DescribeExperimentResponse < Struct.new(
      :experiment_name,
      :experiment_arn,
      :display_name,
      :source,
      :description,
      :creation_time,
      :created_by,
      :last_modified_time,
      :last_modified_by)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] feature_group_name
    #   The name or Amazon Resource Name (ARN) of the `FeatureGroup` you
    #   want described.
    #   @return [String]
    #
    # @!attribute [rw] next_token
    #   A token to resume pagination of the list of `Features`
    #   (`FeatureDefinitions`). 2,500 `Features` are returned by default.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeFeatureGroupRequest AWS API Documentation
    #
    class DescribeFeatureGroupRequest < Struct.new(
      :feature_group_name,
      :next_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] feature_group_arn
    #   The Amazon Resource Name (ARN) of the `FeatureGroup`.
    #   @return [String]
    #
    # @!attribute [rw] feature_group_name
    #   he name of the `FeatureGroup`.
    #   @return [String]
    #
    # @!attribute [rw] record_identifier_feature_name
    #   The name of the `Feature` used for `RecordIdentifier`, whose value
    #   uniquely identifies a record stored in the feature store.
    #   @return [String]
    #
    # @!attribute [rw] event_time_feature_name
    #   The name of the feature that stores the `EventTime` of a Record in a
    #   `FeatureGroup`.
    #
    #   An `EventTime` is a point in time when a new event occurs that
    #   corresponds to the creation or update of a `Record` in a
    #   `FeatureGroup`. All `Records` in the `FeatureGroup` have a
    #   corresponding `EventTime`.
    #   @return [String]
    #
    # @!attribute [rw] feature_definitions
    #   A list of the `Features` in the `FeatureGroup`. Each feature is
    #   defined by a `FeatureName` and `FeatureType`.
    #   @return [Array<Types::FeatureDefinition>]
    #
    # @!attribute [rw] creation_time
    #   A timestamp indicating when SageMaker created the `FeatureGroup`.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time
    #   A timestamp indicating when the feature group was last updated.
    #   @return [Time]
    #
    # @!attribute [rw] online_store_config
    #   The configuration for the `OnlineStore`.
    #   @return [Types::OnlineStoreConfig]
    #
    # @!attribute [rw] offline_store_config
    #   The configuration of the offline store. It includes the following
    #   configurations:
    #
    #   * Amazon S3 location of the offline store.
    #
    #   * Configuration of the Glue data catalog.
    #
    #   * Table format of the offline store.
    #
    #   * Option to disable the automatic creation of a Glue table for the
    #     offline store.
    #
    #   * Encryption configuration.
    #   @return [Types::OfflineStoreConfig]
    #
    # @!attribute [rw] throughput_config
    #   Active throughput configuration of the feature group. There are two
    #   modes: `ON_DEMAND` and `PROVISIONED`. With on-demand mode, you are
    #   charged for data reads and writes that your application performs on
    #   your feature group. You do not need to specify read and write
    #   throughput because Feature Store accommodates your workloads as they
    #   ramp up and down. You can switch a feature group to on-demand only
    #   once in a 24 hour period. With provisioned throughput mode, you
    #   specify the read and write capacity per second that you expect your
    #   application to require, and you are billed based on those limits.
    #   Exceeding provisioned throughput will result in your requests being
    #   throttled.
    #
    #   Note: `PROVISIONED` throughput mode is supported only for feature
    #   groups that are offline-only, or use the [ `Standard` ][1] tier
    #   online store.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_OnlineStoreConfig.html#sagemaker-Type-OnlineStoreConfig-StorageType
    #   @return [Types::ThroughputConfigDescription]
    #
    # @!attribute [rw] role_arn
    #   The Amazon Resource Name (ARN) of the IAM execution role used to
    #   persist data into the OfflineStore if an OfflineStoreConfig is
    #   provided.
    #   @return [String]
    #
    # @!attribute [rw] feature_group_status
    #   The status of the feature group.
    #   @return [String]
    #
    # @!attribute [rw] offline_store_status
    #   The status of the `OfflineStore`. Notifies you if replicating data
    #   into the `OfflineStore` has failed. Returns either: `Active` or
    #   `Blocked`
    #   @return [Types::OfflineStoreStatus]
    #
    # @!attribute [rw] last_update_status
    #   A value indicating whether the update made to the feature group was
    #   successful.
    #   @return [Types::LastUpdateStatus]
    #
    # @!attribute [rw] failure_reason
    #   The reason that the `FeatureGroup` failed to be replicated in the
    #   `OfflineStore`. This is failure can occur because:
    #
    #   * The `FeatureGroup` could not be created in the `OfflineStore`.
    #
    #   * The `FeatureGroup` could not be deleted from the `OfflineStore`.
    #   @return [String]
    #
    # @!attribute [rw] description
    #   A free form description of the feature group.
    #   @return [String]
    #
    # @!attribute [rw] next_token
    #   A token to resume pagination of the list of `Features`
    #   (`FeatureDefinitions`).
    #   @return [String]
    #
    # @!attribute [rw] online_store_total_size_bytes
    #   The size of the `OnlineStore` in bytes.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeFeatureGroupResponse AWS API Documentation
    #
    class DescribeFeatureGroupResponse < Struct.new(
      :feature_group_arn,
      :feature_group_name,
      :record_identifier_feature_name,
      :event_time_feature_name,
      :feature_definitions,
      :creation_time,
      :last_modified_time,
      :online_store_config,
      :offline_store_config,
      :throughput_config,
      :role_arn,
      :feature_group_status,
      :offline_store_status,
      :last_update_status,
      :failure_reason,
      :description,
      :next_token,
      :online_store_total_size_bytes)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] feature_group_name
    #   The name or Amazon Resource Name (ARN) of the feature group
    #   containing the feature.
    #   @return [String]
    #
    # @!attribute [rw] feature_name
    #   The name of the feature.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeFeatureMetadataRequest AWS API Documentation
    #
    class DescribeFeatureMetadataRequest < Struct.new(
      :feature_group_name,
      :feature_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] feature_group_arn
    #   The Amazon Resource Number (ARN) of the feature group that contains
    #   the feature.
    #   @return [String]
    #
    # @!attribute [rw] feature_group_name
    #   The name of the feature group that you've specified.
    #   @return [String]
    #
    # @!attribute [rw] feature_name
    #   The name of the feature that you've specified.
    #   @return [String]
    #
    # @!attribute [rw] feature_type
    #   The data type of the feature.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   A timestamp indicating when the feature was created.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time
    #   A timestamp indicating when the metadata for the feature group was
    #   modified. For example, if you add a parameter describing the
    #   feature, the timestamp changes to reflect the last time you
    #   @return [Time]
    #
    # @!attribute [rw] description
    #   The description you added to describe the feature.
    #   @return [String]
    #
    # @!attribute [rw] parameters
    #   The key-value pairs that you added to describe the feature.
    #   @return [Array<Types::FeatureParameter>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeFeatureMetadataResponse AWS API Documentation
    #
    class DescribeFeatureMetadataResponse < Struct.new(
      :feature_group_arn,
      :feature_group_name,
      :feature_name,
      :feature_type,
      :creation_time,
      :last_modified_time,
      :description,
      :parameters)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] flow_definition_name
    #   The name of the flow definition.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeFlowDefinitionRequest AWS API Documentation
    #
    class DescribeFlowDefinitionRequest < Struct.new(
      :flow_definition_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] flow_definition_arn
    #   The Amazon Resource Name (ARN) of the flow defintion.
    #   @return [String]
    #
    # @!attribute [rw] flow_definition_name
    #   The Amazon Resource Name (ARN) of the flow definition.
    #   @return [String]
    #
    # @!attribute [rw] flow_definition_status
    #   The status of the flow definition. Valid values are listed below.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   The timestamp when the flow definition was created.
    #   @return [Time]
    #
    # @!attribute [rw] human_loop_request_source
    #   Container for configuring the source of human task requests. Used to
    #   specify if Amazon Rekognition or Amazon Textract is used as an
    #   integration source.
    #   @return [Types::HumanLoopRequestSource]
    #
    # @!attribute [rw] human_loop_activation_config
    #   An object containing information about what triggers a human review
    #   workflow.
    #   @return [Types::HumanLoopActivationConfig]
    #
    # @!attribute [rw] human_loop_config
    #   An object containing information about who works on the task, the
    #   workforce task price, and other task details.
    #   @return [Types::HumanLoopConfig]
    #
    # @!attribute [rw] output_config
    #   An object containing information about the output file.
    #   @return [Types::FlowDefinitionOutputConfig]
    #
    # @!attribute [rw] role_arn
    #   The Amazon Resource Name (ARN) of the Amazon Web Services Identity
    #   and Access Management (IAM) execution role for the flow definition.
    #   @return [String]
    #
    # @!attribute [rw] failure_reason
    #   The reason your flow definition failed.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeFlowDefinitionResponse AWS API Documentation
    #
    class DescribeFlowDefinitionResponse < Struct.new(
      :flow_definition_arn,
      :flow_definition_name,
      :flow_definition_status,
      :creation_time,
      :human_loop_request_source,
      :human_loop_activation_config,
      :human_loop_config,
      :output_config,
      :role_arn,
      :failure_reason)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] hub_name
    #   The name of the hub that contains the content to describe.
    #   @return [String]
    #
    # @!attribute [rw] hub_content_type
    #   The type of content in the hub.
    #   @return [String]
    #
    # @!attribute [rw] hub_content_name
    #   The name of the content to describe.
    #   @return [String]
    #
    # @!attribute [rw] hub_content_version
    #   The version of the content to describe.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeHubContentRequest AWS API Documentation
    #
    class DescribeHubContentRequest < Struct.new(
      :hub_name,
      :hub_content_type,
      :hub_content_name,
      :hub_content_version)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] hub_content_name
    #   The name of the hub content.
    #   @return [String]
    #
    # @!attribute [rw] hub_content_arn
    #   The Amazon Resource Name (ARN) of the hub content.
    #   @return [String]
    #
    # @!attribute [rw] hub_content_version
    #   The version of the hub content.
    #   @return [String]
    #
    # @!attribute [rw] hub_content_type
    #   The type of hub content.
    #   @return [String]
    #
    # @!attribute [rw] document_schema_version
    #   The document schema version for the hub content.
    #   @return [String]
    #
    # @!attribute [rw] hub_name
    #   The name of the hub that contains the content.
    #   @return [String]
    #
    # @!attribute [rw] hub_arn
    #   The Amazon Resource Name (ARN) of the hub that contains the content.
    #   @return [String]
    #
    # @!attribute [rw] hub_content_display_name
    #   The display name of the hub content.
    #   @return [String]
    #
    # @!attribute [rw] hub_content_description
    #   A description of the hub content.
    #   @return [String]
    #
    # @!attribute [rw] hub_content_markdown
    #   A string that provides a description of the hub content. This string
    #   can include links, tables, and standard markdown formating.
    #   @return [String]
    #
    # @!attribute [rw] hub_content_document
    #   The hub content document that describes information about the hub
    #   content such as type, associated containers, scripts, and more.
    #   @return [String]
    #
    # @!attribute [rw] sage_maker_public_hub_content_arn
    #   The ARN of the public hub content.
    #   @return [String]
    #
    # @!attribute [rw] reference_min_version
    #   The minimum version of the hub content.
    #   @return [String]
    #
    # @!attribute [rw] support_status
    #   The support status of the hub content.
    #   @return [String]
    #
    # @!attribute [rw] hub_content_search_keywords
    #   The searchable keywords for the hub content.
    #   @return [Array<String>]
    #
    # @!attribute [rw] hub_content_dependencies
    #   The location of any dependencies that the hub content has, such as
    #   scripts, model artifacts, datasets, or notebooks.
    #   @return [Array<Types::HubContentDependency>]
    #
    # @!attribute [rw] hub_content_status
    #   The status of the hub content.
    #   @return [String]
    #
    # @!attribute [rw] failure_reason
    #   The failure reason if importing hub content failed.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   The date and time that hub content was created.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time
    #   The last modified time of the hub content.
    #   @return [Time]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeHubContentResponse AWS API Documentation
    #
    class DescribeHubContentResponse < Struct.new(
      :hub_content_name,
      :hub_content_arn,
      :hub_content_version,
      :hub_content_type,
      :document_schema_version,
      :hub_name,
      :hub_arn,
      :hub_content_display_name,
      :hub_content_description,
      :hub_content_markdown,
      :hub_content_document,
      :sage_maker_public_hub_content_arn,
      :reference_min_version,
      :support_status,
      :hub_content_search_keywords,
      :hub_content_dependencies,
      :hub_content_status,
      :failure_reason,
      :creation_time,
      :last_modified_time)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] hub_name
    #   The name of the hub to describe.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeHubRequest AWS API Documentation
    #
    class DescribeHubRequest < Struct.new(
      :hub_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] hub_name
    #   The name of the hub.
    #   @return [String]
    #
    # @!attribute [rw] hub_arn
    #   The Amazon Resource Name (ARN) of the hub.
    #   @return [String]
    #
    # @!attribute [rw] hub_display_name
    #   The display name of the hub.
    #   @return [String]
    #
    # @!attribute [rw] hub_description
    #   A description of the hub.
    #   @return [String]
    #
    # @!attribute [rw] hub_search_keywords
    #   The searchable keywords for the hub.
    #   @return [Array<String>]
    #
    # @!attribute [rw] s3_storage_config
    #   The Amazon S3 storage configuration for the hub.
    #   @return [Types::HubS3StorageConfig]
    #
    # @!attribute [rw] hub_status
    #   The status of the hub.
    #   @return [String]
    #
    # @!attribute [rw] failure_reason
    #   The failure reason if importing hub content failed.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   The date and time that the hub was created.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time
    #   The date and time that the hub was last modified.
    #   @return [Time]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeHubResponse AWS API Documentation
    #
    class DescribeHubResponse < Struct.new(
      :hub_name,
      :hub_arn,
      :hub_display_name,
      :hub_description,
      :hub_search_keywords,
      :s3_storage_config,
      :hub_status,
      :failure_reason,
      :creation_time,
      :last_modified_time)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] human_task_ui_name
    #   The name of the human task user interface (worker task template) you
    #   want information about.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeHumanTaskUiRequest AWS API Documentation
    #
    class DescribeHumanTaskUiRequest < Struct.new(
      :human_task_ui_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] human_task_ui_arn
    #   The Amazon Resource Name (ARN) of the human task user interface
    #   (worker task template).
    #   @return [String]
    #
    # @!attribute [rw] human_task_ui_name
    #   The name of the human task user interface (worker task template).
    #   @return [String]
    #
    # @!attribute [rw] human_task_ui_status
    #   The status of the human task user interface (worker task template).
    #   Valid values are listed below.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   The timestamp when the human task user interface was created.
    #   @return [Time]
    #
    # @!attribute [rw] ui_template
    #   Container for user interface template information.
    #   @return [Types::UiTemplateInfo]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeHumanTaskUiResponse AWS API Documentation
    #
    class DescribeHumanTaskUiResponse < Struct.new(
      :human_task_ui_arn,
      :human_task_ui_name,
      :human_task_ui_status,
      :creation_time,
      :ui_template)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] hyper_parameter_tuning_job_name
    #   The name of the tuning job.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeHyperParameterTuningJobRequest AWS API Documentation
    #
    class DescribeHyperParameterTuningJobRequest < Struct.new(
      :hyper_parameter_tuning_job_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] hyper_parameter_tuning_job_name
    #   The name of the hyperparameter tuning job.
    #   @return [String]
    #
    # @!attribute [rw] hyper_parameter_tuning_job_arn
    #   The Amazon Resource Name (ARN) of the tuning job.
    #   @return [String]
    #
    # @!attribute [rw] hyper_parameter_tuning_job_config
    #   The [HyperParameterTuningJobConfig][1] object that specifies the
    #   configuration of the tuning job.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_HyperParameterTuningJobConfig.html
    #   @return [Types::HyperParameterTuningJobConfig]
    #
    # @!attribute [rw] training_job_definition
    #   The [HyperParameterTrainingJobDefinition][1] object that specifies
    #   the definition of the training jobs that this tuning job launches.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_HyperParameterTrainingJobDefinition.html
    #   @return [Types::HyperParameterTrainingJobDefinition]
    #
    # @!attribute [rw] training_job_definitions
    #   A list of the [HyperParameterTrainingJobDefinition][1] objects
    #   launched for this tuning job.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_HyperParameterTrainingJobDefinition.html
    #   @return [Array<Types::HyperParameterTrainingJobDefinition>]
    #
    # @!attribute [rw] hyper_parameter_tuning_job_status
    #   The status of the tuning job.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   The date and time that the tuning job started.
    #   @return [Time]
    #
    # @!attribute [rw] hyper_parameter_tuning_end_time
    #   The date and time that the tuning job ended.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time
    #   The date and time that the status of the tuning job was modified.
    #   @return [Time]
    #
    # @!attribute [rw] training_job_status_counters
    #   The [TrainingJobStatusCounters][1] object that specifies the number
    #   of training jobs, categorized by status, that this tuning job
    #   launched.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TrainingJobStatusCounters.html
    #   @return [Types::TrainingJobStatusCounters]
    #
    # @!attribute [rw] objective_status_counters
    #   The [ObjectiveStatusCounters][1] object that specifies the number of
    #   training jobs, categorized by the status of their final objective
    #   metric, that this tuning job launched.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ObjectiveStatusCounters.html
    #   @return [Types::ObjectiveStatusCounters]
    #
    # @!attribute [rw] best_training_job
    #   A [TrainingJobSummary][1] object that describes the training job
    #   that completed with the best current
    #   [HyperParameterTuningJobObjective][2].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TrainingJobSummary.html
    #   [2]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_HyperParameterTuningJobObjective.html
    #   @return [Types::HyperParameterTrainingJobSummary]
    #
    # @!attribute [rw] overall_best_training_job
    #   If the hyperparameter tuning job is an warm start tuning job with a
    #   `WarmStartType` of `IDENTICAL_DATA_AND_ALGORITHM`, this is the
    #   [TrainingJobSummary][1] for the training job with the best objective
    #   metric value of all training jobs launched by this tuning job and
    #   all parent jobs specified for the warm start tuning job.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TrainingJobSummary.html
    #   @return [Types::HyperParameterTrainingJobSummary]
    #
    # @!attribute [rw] warm_start_config
    #   The configuration for starting the hyperparameter parameter tuning
    #   job using one or more previous tuning jobs as a starting point. The
    #   results of previous tuning jobs are used to inform which
    #   combinations of hyperparameters to search over in the new tuning
    #   job.
    #   @return [Types::HyperParameterTuningJobWarmStartConfig]
    #
    # @!attribute [rw] autotune
    #   A flag to indicate if autotune is enabled for the hyperparameter
    #   tuning job.
    #   @return [Types::Autotune]
    #
    # @!attribute [rw] failure_reason
    #   If the tuning job failed, the reason it failed.
    #   @return [String]
    #
    # @!attribute [rw] tuning_job_completion_details
    #   Tuning job completion information returned as the response from a
    #   hyperparameter tuning job. This information tells if your tuning job
    #   has or has not converged. It also includes the number of training
    #   jobs that have not improved model performance as evaluated against
    #   the objective function.
    #   @return [Types::HyperParameterTuningJobCompletionDetails]
    #
    # @!attribute [rw] consumed_resources
    #   The total resources consumed by your hyperparameter tuning job.
    #   @return [Types::HyperParameterTuningJobConsumedResources]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeHyperParameterTuningJobResponse AWS API Documentation
    #
    class DescribeHyperParameterTuningJobResponse < Struct.new(
      :hyper_parameter_tuning_job_name,
      :hyper_parameter_tuning_job_arn,
      :hyper_parameter_tuning_job_config,
      :training_job_definition,
      :training_job_definitions,
      :hyper_parameter_tuning_job_status,
      :creation_time,
      :hyper_parameter_tuning_end_time,
      :last_modified_time,
      :training_job_status_counters,
      :objective_status_counters,
      :best_training_job,
      :overall_best_training_job,
      :warm_start_config,
      :autotune,
      :failure_reason,
      :tuning_job_completion_details,
      :consumed_resources)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] image_name
    #   The name of the image to describe.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeImageRequest AWS API Documentation
    #
    class DescribeImageRequest < Struct.new(
      :image_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] creation_time
    #   When the image was created.
    #   @return [Time]
    #
    # @!attribute [rw] description
    #   The description of the image.
    #   @return [String]
    #
    # @!attribute [rw] display_name
    #   The name of the image as displayed.
    #   @return [String]
    #
    # @!attribute [rw] failure_reason
    #   When a create, update, or delete operation fails, the reason for the
    #   failure.
    #   @return [String]
    #
    # @!attribute [rw] image_arn
    #   The ARN of the image.
    #   @return [String]
    #
    # @!attribute [rw] image_name
    #   The name of the image.
    #   @return [String]
    #
    # @!attribute [rw] image_status
    #   The status of the image.
    #   @return [String]
    #
    # @!attribute [rw] last_modified_time
    #   When the image was last modified.
    #   @return [Time]
    #
    # @!attribute [rw] role_arn
    #   The ARN of the IAM role that enables Amazon SageMaker AI to perform
    #   tasks on your behalf.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeImageResponse AWS API Documentation
    #
    class DescribeImageResponse < Struct.new(
      :creation_time,
      :description,
      :display_name,
      :failure_reason,
      :image_arn,
      :image_name,
      :image_status,
      :last_modified_time,
      :role_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] image_name
    #   The name of the image.
    #   @return [String]
    #
    # @!attribute [rw] version
    #   The version of the image. If not specified, the latest version is
    #   described.
    #   @return [Integer]
    #
    # @!attribute [rw] alias
    #   The alias of the image version.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeImageVersionRequest AWS API Documentation
    #
    class DescribeImageVersionRequest < Struct.new(
      :image_name,
      :version,
      :alias)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] base_image
    #   The registry path of the container image on which this image version
    #   is based.
    #   @return [String]
    #
    # @!attribute [rw] container_image
    #   The registry path of the container image that contains this image
    #   version.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   When the version was created.
    #   @return [Time]
    #
    # @!attribute [rw] failure_reason
    #   When a create or delete operation fails, the reason for the failure.
    #   @return [String]
    #
    # @!attribute [rw] image_arn
    #   The ARN of the image the version is based on.
    #   @return [String]
    #
    # @!attribute [rw] image_version_arn
    #   The ARN of the version.
    #   @return [String]
    #
    # @!attribute [rw] image_version_status
    #   The status of the version.
    #   @return [String]
    #
    # @!attribute [rw] last_modified_time
    #   When the version was last modified.
    #   @return [Time]
    #
    # @!attribute [rw] version
    #   The version number.
    #   @return [Integer]
    #
    # @!attribute [rw] vendor_guidance
    #   The stability of the image version specified by the maintainer.
    #
    #   * `NOT_PROVIDED`: The maintainers did not provide a status for image
    #     version stability.
    #
    #   * `STABLE`: The image version is stable.
    #
    #   * `TO_BE_ARCHIVED`: The image version is set to be archived. Custom
    #     image versions that are set to be archived are automatically
    #     archived after three months.
    #
    #   * `ARCHIVED`: The image version is archived. Archived image versions
    #     are not searchable and are no longer actively supported.
    #   @return [String]
    #
    # @!attribute [rw] job_type
    #   Indicates SageMaker AI job type compatibility.
    #
    #   * `TRAINING`: The image version is compatible with SageMaker AI
    #     training jobs.
    #
    #   * `INFERENCE`: The image version is compatible with SageMaker AI
    #     inference jobs.
    #
    #   * `NOTEBOOK_KERNEL`: The image version is compatible with SageMaker
    #     AI notebook kernels.
    #   @return [String]
    #
    # @!attribute [rw] ml_framework
    #   The machine learning framework vended in the image version.
    #   @return [String]
    #
    # @!attribute [rw] programming_lang
    #   The supported programming language and its version.
    #   @return [String]
    #
    # @!attribute [rw] processor
    #   Indicates CPU or GPU compatibility.
    #
    #   * `CPU`: The image version is compatible with CPU.
    #
    #   * `GPU`: The image version is compatible with GPU.
    #   @return [String]
    #
    # @!attribute [rw] horovod
    #   Indicates Horovod compatibility.
    #   @return [Boolean]
    #
    # @!attribute [rw] release_notes
    #   The maintainer description of the image version.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeImageVersionResponse AWS API Documentation
    #
    class DescribeImageVersionResponse < Struct.new(
      :base_image,
      :container_image,
      :creation_time,
      :failure_reason,
      :image_arn,
      :image_version_arn,
      :image_version_status,
      :last_modified_time,
      :version,
      :vendor_guidance,
      :job_type,
      :ml_framework,
      :programming_lang,
      :processor,
      :horovod,
      :release_notes)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] inference_component_name
    #   The name of the inference component.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeInferenceComponentInput AWS API Documentation
    #
    class DescribeInferenceComponentInput < Struct.new(
      :inference_component_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] inference_component_name
    #   The name of the inference component.
    #   @return [String]
    #
    # @!attribute [rw] inference_component_arn
    #   The Amazon Resource Name (ARN) of the inference component.
    #   @return [String]
    #
    # @!attribute [rw] endpoint_name
    #   The name of the endpoint that hosts the inference component.
    #   @return [String]
    #
    # @!attribute [rw] endpoint_arn
    #   The Amazon Resource Name (ARN) of the endpoint that hosts the
    #   inference component.
    #   @return [String]
    #
    # @!attribute [rw] variant_name
    #   The name of the production variant that hosts the inference
    #   component.
    #   @return [String]
    #
    # @!attribute [rw] failure_reason
    #   If the inference component status is `Failed`, the reason for the
    #   failure.
    #   @return [String]
    #
    # @!attribute [rw] specification
    #   Details about the resources that are deployed with this inference
    #   component.
    #   @return [Types::InferenceComponentSpecificationSummary]
    #
    # @!attribute [rw] runtime_config
    #   Details about the runtime settings for the model that is deployed
    #   with the inference component.
    #   @return [Types::InferenceComponentRuntimeConfigSummary]
    #
    # @!attribute [rw] creation_time
    #   The time when the inference component was created.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time
    #   The time when the inference component was last updated.
    #   @return [Time]
    #
    # @!attribute [rw] inference_component_status
    #   The status of the inference component.
    #   @return [String]
    #
    # @!attribute [rw] last_deployment_config
    #   The deployment and rollback settings that you assigned to the
    #   inference component.
    #   @return [Types::InferenceComponentDeploymentConfig]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeInferenceComponentOutput AWS API Documentation
    #
    class DescribeInferenceComponentOutput < Struct.new(
      :inference_component_name,
      :inference_component_arn,
      :endpoint_name,
      :endpoint_arn,
      :variant_name,
      :failure_reason,
      :specification,
      :runtime_config,
      :creation_time,
      :last_modified_time,
      :inference_component_status,
      :last_deployment_config)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] name
    #   The name of the inference experiment to describe.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeInferenceExperimentRequest AWS API Documentation
    #
    class DescribeInferenceExperimentRequest < Struct.new(
      :name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] arn
    #   The ARN of the inference experiment being described.
    #   @return [String]
    #
    # @!attribute [rw] name
    #   The name of the inference experiment.
    #   @return [String]
    #
    # @!attribute [rw] type
    #   The type of the inference experiment.
    #   @return [String]
    #
    # @!attribute [rw] schedule
    #   The duration for which the inference experiment ran or will run.
    #   @return [Types::InferenceExperimentSchedule]
    #
    # @!attribute [rw] status
    #   The status of the inference experiment. The following are the
    #   possible statuses for an inference experiment:
    #
    #   * `Creating` - Amazon SageMaker is creating your experiment.
    #
    #   * `Created` - Amazon SageMaker has finished the creation of your
    #     experiment and will begin the experiment at the scheduled time.
    #
    #   * `Updating` - When you make changes to your experiment, your
    #     experiment shows as updating.
    #
    #   * `Starting` - Amazon SageMaker is beginning your experiment.
    #
    #   * `Running` - Your experiment is in progress.
    #
    #   * `Stopping` - Amazon SageMaker is stopping your experiment.
    #
    #   * `Completed` - Your experiment has completed.
    #
    #   * `Cancelled` - When you conclude your experiment early using the
    #     [StopInferenceExperiment][1] API, or if any operation fails with
    #     an unexpected error, it shows as cancelled.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_StopInferenceExperiment.html
    #   @return [String]
    #
    # @!attribute [rw] status_reason
    #   The error message or client-specified `Reason` from the
    #   [StopInferenceExperiment][1] API, that explains the status of the
    #   inference experiment.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_StopInferenceExperiment.html
    #   @return [String]
    #
    # @!attribute [rw] description
    #   The description of the inference experiment.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   The timestamp at which you created the inference experiment.
    #   @return [Time]
    #
    # @!attribute [rw] completion_time
    #   The timestamp at which the inference experiment was completed.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time
    #   The timestamp at which you last modified the inference experiment.
    #   @return [Time]
    #
    # @!attribute [rw] role_arn
    #   The ARN of the IAM role that Amazon SageMaker can assume to access
    #   model artifacts and container images, and manage Amazon SageMaker
    #   Inference endpoints for model deployment.
    #   @return [String]
    #
    # @!attribute [rw] endpoint_metadata
    #   The metadata of the endpoint on which the inference experiment ran.
    #   @return [Types::EndpointMetadata]
    #
    # @!attribute [rw] model_variants
    #   An array of `ModelVariantConfigSummary` objects. There is one for
    #   each variant in the inference experiment. Each
    #   `ModelVariantConfigSummary` object in the array describes the
    #   infrastructure configuration for deploying the corresponding
    #   variant.
    #   @return [Array<Types::ModelVariantConfigSummary>]
    #
    # @!attribute [rw] data_storage_config
    #   The Amazon S3 location and configuration for storing inference
    #   request and response data.
    #   @return [Types::InferenceExperimentDataStorageConfig]
    #
    # @!attribute [rw] shadow_mode_config
    #   The configuration of `ShadowMode` inference experiment type, which
    #   shows the production variant that takes all the inference requests,
    #   and the shadow variant to which Amazon SageMaker replicates a
    #   percentage of the inference requests. For the shadow variant it also
    #   shows the percentage of requests that Amazon SageMaker replicates.
    #   @return [Types::ShadowModeConfig]
    #
    # @!attribute [rw] kms_key
    #   The Amazon Web Services Key Management Service (Amazon Web Services
    #   KMS) key that Amazon SageMaker uses to encrypt data on the storage
    #   volume attached to the ML compute instance that hosts the endpoint.
    #   For more information, see [CreateInferenceExperiment][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateInferenceExperiment.html
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeInferenceExperimentResponse AWS API Documentation
    #
    class DescribeInferenceExperimentResponse < Struct.new(
      :arn,
      :name,
      :type,
      :schedule,
      :status,
      :status_reason,
      :description,
      :creation_time,
      :completion_time,
      :last_modified_time,
      :role_arn,
      :endpoint_metadata,
      :model_variants,
      :data_storage_config,
      :shadow_mode_config,
      :kms_key)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] job_name
    #   The name of the job. The name must be unique within an Amazon Web
    #   Services Region in the Amazon Web Services account.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeInferenceRecommendationsJobRequest AWS API Documentation
    #
    class DescribeInferenceRecommendationsJobRequest < Struct.new(
      :job_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] job_name
    #   The name of the job. The name must be unique within an Amazon Web
    #   Services Region in the Amazon Web Services account.
    #   @return [String]
    #
    # @!attribute [rw] job_description
    #   The job description that you provided when you initiated the job.
    #   @return [String]
    #
    # @!attribute [rw] job_type
    #   The job type that you provided when you initiated the job.
    #   @return [String]
    #
    # @!attribute [rw] job_arn
    #   The Amazon Resource Name (ARN) of the job.
    #   @return [String]
    #
    # @!attribute [rw] role_arn
    #   The Amazon Resource Name (ARN) of the Amazon Web Services Identity
    #   and Access Management (IAM) role you provided when you initiated the
    #   job.
    #   @return [String]
    #
    # @!attribute [rw] status
    #   The status of the job.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   A timestamp that shows when the job was created.
    #   @return [Time]
    #
    # @!attribute [rw] completion_time
    #   A timestamp that shows when the job completed.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time
    #   A timestamp that shows when the job was last modified.
    #   @return [Time]
    #
    # @!attribute [rw] failure_reason
    #   If the job fails, provides information why the job failed.
    #   @return [String]
    #
    # @!attribute [rw] input_config
    #   Returns information about the versioned model package Amazon
    #   Resource Name (ARN), the traffic pattern, and endpoint
    #   configurations you provided when you initiated the job.
    #   @return [Types::RecommendationJobInputConfig]
    #
    # @!attribute [rw] stopping_conditions
    #   The stopping conditions that you provided when you initiated the
    #   job.
    #   @return [Types::RecommendationJobStoppingConditions]
    #
    # @!attribute [rw] inference_recommendations
    #   The recommendations made by Inference Recommender.
    #   @return [Array<Types::InferenceRecommendation>]
    #
    # @!attribute [rw] endpoint_performances
    #   The performance results from running an Inference Recommender job on
    #   an existing endpoint.
    #   @return [Array<Types::EndpointPerformance>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeInferenceRecommendationsJobResponse AWS API Documentation
    #
    class DescribeInferenceRecommendationsJobResponse < Struct.new(
      :job_name,
      :job_description,
      :job_type,
      :job_arn,
      :role_arn,
      :status,
      :creation_time,
      :completion_time,
      :last_modified_time,
      :failure_reason,
      :input_config,
      :stopping_conditions,
      :inference_recommendations,
      :endpoint_performances)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] labeling_job_name
    #   The name of the labeling job to return information for.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeLabelingJobRequest AWS API Documentation
    #
    class DescribeLabelingJobRequest < Struct.new(
      :labeling_job_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] labeling_job_status
    #   The processing status of the labeling job.
    #   @return [String]
    #
    # @!attribute [rw] label_counters
    #   Provides a breakdown of the number of data objects labeled by
    #   humans, the number of objects labeled by machine, the number of
    #   objects than couldn't be labeled, and the total number of objects
    #   labeled.
    #   @return [Types::LabelCounters]
    #
    # @!attribute [rw] failure_reason
    #   If the job failed, the reason that it failed.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   The date and time that the labeling job was created.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time
    #   The date and time that the labeling job was last updated.
    #   @return [Time]
    #
    # @!attribute [rw] job_reference_code
    #   A unique identifier for work done as part of a labeling job.
    #   @return [String]
    #
    # @!attribute [rw] labeling_job_name
    #   The name assigned to the labeling job when it was created.
    #   @return [String]
    #
    # @!attribute [rw] labeling_job_arn
    #   The Amazon Resource Name (ARN) of the labeling job.
    #   @return [String]
    #
    # @!attribute [rw] label_attribute_name
    #   The attribute used as the label in the output manifest file.
    #   @return [String]
    #
    # @!attribute [rw] input_config
    #   Input configuration information for the labeling job, such as the
    #   Amazon S3 location of the data objects and the location of the
    #   manifest file that describes the data objects.
    #   @return [Types::LabelingJobInputConfig]
    #
    # @!attribute [rw] output_config
    #   The location of the job's output data and the Amazon Web Services
    #   Key Management Service key ID for the key used to encrypt the output
    #   data, if any.
    #   @return [Types::LabelingJobOutputConfig]
    #
    # @!attribute [rw] role_arn
    #   The Amazon Resource Name (ARN) that SageMaker assumes to perform
    #   tasks on your behalf during data labeling.
    #   @return [String]
    #
    # @!attribute [rw] label_category_config_s3_uri
    #   The S3 location of the JSON file that defines the categories used to
    #   label data objects. Please note the following label-category limits:
    #
    #   * Semantic segmentation labeling jobs using automated labeling: 20
    #     labels
    #
    #   * Box bounding labeling jobs (all): 10 labels
    #
    #   The file is a JSON structure in the following format:
    #
    #   `{`
    #
    #   ` "document-version": "2018-11-28"`
    #
    #   ` "labels": [`
    #
    #   ` {`
    #
    #   ` "label": "label 1"`
    #
    #   ` },`
    #
    #   ` {`
    #
    #   ` "label": "label 2"`
    #
    #   ` },`
    #
    #   ` ...`
    #
    #   ` {`
    #
    #   ` "label": "label n"`
    #
    #   ` }`
    #
    #   ` ]`
    #
    #   `}`
    #   @return [String]
    #
    # @!attribute [rw] stopping_conditions
    #   A set of conditions for stopping a labeling job. If any of the
    #   conditions are met, the job is automatically stopped.
    #   @return [Types::LabelingJobStoppingConditions]
    #
    # @!attribute [rw] labeling_job_algorithms_config
    #   Configuration information for automated data labeling.
    #   @return [Types::LabelingJobAlgorithmsConfig]
    #
    # @!attribute [rw] human_task_config
    #   Configuration information required for human workers to complete a
    #   labeling task.
    #   @return [Types::HumanTaskConfig]
    #
    # @!attribute [rw] tags
    #   An array of key-value pairs. You can use tags to categorize your
    #   Amazon Web Services resources in different ways, for example, by
    #   purpose, owner, or environment. For more information, see [Tagging
    #   Amazon Web Services Resources][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html
    #   @return [Array<Types::Tag>]
    #
    # @!attribute [rw] labeling_job_output
    #   The location of the output produced by the labeling job.
    #   @return [Types::LabelingJobOutput]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeLabelingJobResponse AWS API Documentation
    #
    class DescribeLabelingJobResponse < Struct.new(
      :labeling_job_status,
      :label_counters,
      :failure_reason,
      :creation_time,
      :last_modified_time,
      :job_reference_code,
      :labeling_job_name,
      :labeling_job_arn,
      :label_attribute_name,
      :input_config,
      :output_config,
      :role_arn,
      :label_category_config_s3_uri,
      :stopping_conditions,
      :labeling_job_algorithms_config,
      :human_task_config,
      :tags,
      :labeling_job_output)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] lineage_group_name
    #   The name of the lineage group.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeLineageGroupRequest AWS API Documentation
    #
    class DescribeLineageGroupRequest < Struct.new(
      :lineage_group_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] lineage_group_name
    #   The name of the lineage group.
    #   @return [String]
    #
    # @!attribute [rw] lineage_group_arn
    #   The Amazon Resource Name (ARN) of the lineage group.
    #   @return [String]
    #
    # @!attribute [rw] display_name
    #   The display name of the lineage group.
    #   @return [String]
    #
    # @!attribute [rw] description
    #   The description of the lineage group.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   The creation time of lineage group.
    #   @return [Time]
    #
    # @!attribute [rw] created_by
    #   Information about the user who created or modified a SageMaker
    #   resource.
    #   @return [Types::UserContext]
    #
    # @!attribute [rw] last_modified_time
    #   The last modified time of the lineage group.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_by
    #   Information about the user who created or modified a SageMaker
    #   resource.
    #   @return [Types::UserContext]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeLineageGroupResponse AWS API Documentation
    #
    class DescribeLineageGroupResponse < Struct.new(
      :lineage_group_name,
      :lineage_group_arn,
      :display_name,
      :description,
      :creation_time,
      :created_by,
      :last_modified_time,
      :last_modified_by)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] tracking_server_name
    #   The name of the MLflow Tracking Server to describe.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeMlflowTrackingServerRequest AWS API Documentation
    #
    class DescribeMlflowTrackingServerRequest < Struct.new(
      :tracking_server_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] tracking_server_arn
    #   The ARN of the described tracking server.
    #   @return [String]
    #
    # @!attribute [rw] tracking_server_name
    #   The name of the described tracking server.
    #   @return [String]
    #
    # @!attribute [rw] artifact_store_uri
    #   The S3 URI of the general purpose bucket used as the MLflow Tracking
    #   Server artifact store.
    #   @return [String]
    #
    # @!attribute [rw] tracking_server_size
    #   The size of the described tracking server.
    #   @return [String]
    #
    # @!attribute [rw] mlflow_version
    #   The MLflow version used for the described tracking server.
    #   @return [String]
    #
    # @!attribute [rw] role_arn
    #   The Amazon Resource Name (ARN) for an IAM role in your account that
    #   the described MLflow Tracking Server uses to access the artifact
    #   store in Amazon S3.
    #   @return [String]
    #
    # @!attribute [rw] tracking_server_status
    #   The current creation status of the described MLflow Tracking Server.
    #   @return [String]
    #
    # @!attribute [rw] tracking_server_maintenance_status
    #   The current maintenance status of the described MLflow Tracking
    #   Server.
    #   @return [String]
    #
    # @!attribute [rw] is_active
    #   Whether the described MLflow Tracking Server is currently active.
    #   @return [String]
    #
    # @!attribute [rw] tracking_server_url
    #   The URL to connect to the MLflow user interface for the described
    #   tracking server.
    #   @return [String]
    #
    # @!attribute [rw] weekly_maintenance_window_start
    #   The day and time of the week when weekly maintenance occurs on the
    #   described tracking server.
    #   @return [String]
    #
    # @!attribute [rw] automatic_model_registration
    #   Whether automatic registration of new MLflow models to the SageMaker
    #   Model Registry is enabled.
    #   @return [Boolean]
    #
    # @!attribute [rw] creation_time
    #   The timestamp of when the described MLflow Tracking Server was
    #   created.
    #   @return [Time]
    #
    # @!attribute [rw] created_by
    #   Information about the user who created or modified a SageMaker
    #   resource.
    #   @return [Types::UserContext]
    #
    # @!attribute [rw] last_modified_time
    #   The timestamp of when the described MLflow Tracking Server was last
    #   modified.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_by
    #   Information about the user who created or modified a SageMaker
    #   resource.
    #   @return [Types::UserContext]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeMlflowTrackingServerResponse AWS API Documentation
    #
    class DescribeMlflowTrackingServerResponse < Struct.new(
      :tracking_server_arn,
      :tracking_server_name,
      :artifact_store_uri,
      :tracking_server_size,
      :mlflow_version,
      :role_arn,
      :tracking_server_status,
      :tracking_server_maintenance_status,
      :is_active,
      :tracking_server_url,
      :weekly_maintenance_window_start,
      :automatic_model_registration,
      :creation_time,
      :created_by,
      :last_modified_time,
      :last_modified_by)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] job_definition_name
    #   The name of the model bias job definition. The name must be unique
    #   within an Amazon Web Services Region in the Amazon Web Services
    #   account.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeModelBiasJobDefinitionRequest AWS API Documentation
    #
    class DescribeModelBiasJobDefinitionRequest < Struct.new(
      :job_definition_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] job_definition_arn
    #   The Amazon Resource Name (ARN) of the model bias job.
    #   @return [String]
    #
    # @!attribute [rw] job_definition_name
    #   The name of the bias job definition. The name must be unique within
    #   an Amazon Web Services Region in the Amazon Web Services account.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   The time at which the model bias job was created.
    #   @return [Time]
    #
    # @!attribute [rw] model_bias_baseline_config
    #   The baseline configuration for a model bias job.
    #   @return [Types::ModelBiasBaselineConfig]
    #
    # @!attribute [rw] model_bias_app_specification
    #   Configures the model bias job to run a specified Docker container
    #   image.
    #   @return [Types::ModelBiasAppSpecification]
    #
    # @!attribute [rw] model_bias_job_input
    #   Inputs for the model bias job.
    #   @return [Types::ModelBiasJobInput]
    #
    # @!attribute [rw] model_bias_job_output_config
    #   The output configuration for monitoring jobs.
    #   @return [Types::MonitoringOutputConfig]
    #
    # @!attribute [rw] job_resources
    #   Identifies the resources to deploy for a monitoring job.
    #   @return [Types::MonitoringResources]
    #
    # @!attribute [rw] network_config
    #   Networking options for a model bias job.
    #   @return [Types::MonitoringNetworkConfig]
    #
    # @!attribute [rw] role_arn
    #   The Amazon Resource Name (ARN) of the IAM role that has read
    #   permission to the input data location and write permission to the
    #   output data location in Amazon S3.
    #   @return [String]
    #
    # @!attribute [rw] stopping_condition
    #   A time limit for how long the monitoring job is allowed to run
    #   before stopping.
    #   @return [Types::MonitoringStoppingCondition]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeModelBiasJobDefinitionResponse AWS API Documentation
    #
    class DescribeModelBiasJobDefinitionResponse < Struct.new(
      :job_definition_arn,
      :job_definition_name,
      :creation_time,
      :model_bias_baseline_config,
      :model_bias_app_specification,
      :model_bias_job_input,
      :model_bias_job_output_config,
      :job_resources,
      :network_config,
      :role_arn,
      :stopping_condition)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] model_card_export_job_arn
    #   The Amazon Resource Name (ARN) of the model card export job to
    #   describe.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeModelCardExportJobRequest AWS API Documentation
    #
    class DescribeModelCardExportJobRequest < Struct.new(
      :model_card_export_job_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] model_card_export_job_name
    #   The name of the model card export job to describe.
    #   @return [String]
    #
    # @!attribute [rw] model_card_export_job_arn
    #   The Amazon Resource Name (ARN) of the model card export job.
    #   @return [String]
    #
    # @!attribute [rw] status
    #   The completion status of the model card export job.
    #
    #   * `InProgress`: The model card export job is in progress.
    #
    #   * `Completed`: The model card export job is complete.
    #
    #   * `Failed`: The model card export job failed. To see the reason for
    #     the failure, see the `FailureReason` field in the response to a
    #     `DescribeModelCardExportJob` call.
    #   @return [String]
    #
    # @!attribute [rw] model_card_name
    #   The name or Amazon Resource Name (ARN) of the model card that the
    #   model export job exports.
    #   @return [String]
    #
    # @!attribute [rw] model_card_version
    #   The version of the model card that the model export job exports.
    #   @return [Integer]
    #
    # @!attribute [rw] output_config
    #   The export output details for the model card.
    #   @return [Types::ModelCardExportOutputConfig]
    #
    # @!attribute [rw] created_at
    #   The date and time that the model export job was created.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_at
    #   The date and time that the model export job was last modified.
    #   @return [Time]
    #
    # @!attribute [rw] failure_reason
    #   The failure reason if the model export job fails.
    #   @return [String]
    #
    # @!attribute [rw] export_artifacts
    #   The exported model card artifacts.
    #   @return [Types::ModelCardExportArtifacts]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeModelCardExportJobResponse AWS API Documentation
    #
    class DescribeModelCardExportJobResponse < Struct.new(
      :model_card_export_job_name,
      :model_card_export_job_arn,
      :status,
      :model_card_name,
      :model_card_version,
      :output_config,
      :created_at,
      :last_modified_at,
      :failure_reason,
      :export_artifacts)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] model_card_name
    #   The name or Amazon Resource Name (ARN) of the model card to
    #   describe.
    #   @return [String]
    #
    # @!attribute [rw] model_card_version
    #   The version of the model card to describe. If a version is not
    #   provided, then the latest version of the model card is described.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeModelCardRequest AWS API Documentation
    #
    class DescribeModelCardRequest < Struct.new(
      :model_card_name,
      :model_card_version)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] model_card_arn
    #   The Amazon Resource Name (ARN) of the model card.
    #   @return [String]
    #
    # @!attribute [rw] model_card_name
    #   The name of the model card.
    #   @return [String]
    #
    # @!attribute [rw] model_card_version
    #   The version of the model card.
    #   @return [Integer]
    #
    # @!attribute [rw] content
    #   The content of the model card.
    #   @return [String]
    #
    # @!attribute [rw] model_card_status
    #   The approval status of the model card within your organization.
    #   Different organizations might have different criteria for model card
    #   review and approval.
    #
    #   * `Draft`: The model card is a work in progress.
    #
    #   * `PendingReview`: The model card is pending review.
    #
    #   * `Approved`: The model card is approved.
    #
    #   * `Archived`: The model card is archived. No more updates should be
    #     made to the model card, but it can still be exported.
    #   @return [String]
    #
    # @!attribute [rw] security_config
    #   The security configuration used to protect model card content.
    #   @return [Types::ModelCardSecurityConfig]
    #
    # @!attribute [rw] creation_time
    #   The date and time the model card was created.
    #   @return [Time]
    #
    # @!attribute [rw] created_by
    #   Information about the user who created or modified a SageMaker
    #   resource.
    #   @return [Types::UserContext]
    #
    # @!attribute [rw] last_modified_time
    #   The date and time the model card was last modified.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_by
    #   Information about the user who created or modified a SageMaker
    #   resource.
    #   @return [Types::UserContext]
    #
    # @!attribute [rw] model_card_processing_status
    #   The processing status of model card deletion. The
    #   `ModelCardProcessingStatus` updates throughout the different
    #   deletion steps.
    #
    #   * `DeletePending`: Model card deletion request received.
    #
    #   * `DeleteInProgress`: Model card deletion is in progress.
    #
    #   * `ContentDeleted`: Deleted model card content.
    #
    #   * `ExportJobsDeleted`: Deleted all export jobs associated with the
    #     model card.
    #
    #   * `DeleteCompleted`: Successfully deleted the model card.
    #
    #   * `DeleteFailed`: The model card failed to delete.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeModelCardResponse AWS API Documentation
    #
    class DescribeModelCardResponse < Struct.new(
      :model_card_arn,
      :model_card_name,
      :model_card_version,
      :content,
      :model_card_status,
      :security_config,
      :creation_time,
      :created_by,
      :last_modified_time,
      :last_modified_by,
      :model_card_processing_status)
      SENSITIVE = [:content]
      include Aws::Structure
    end

    # @!attribute [rw] job_definition_name
    #   The name of the model explainability job definition. The name must
    #   be unique within an Amazon Web Services Region in the Amazon Web
    #   Services account.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeModelExplainabilityJobDefinitionRequest AWS API Documentation
    #
    class DescribeModelExplainabilityJobDefinitionRequest < Struct.new(
      :job_definition_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] job_definition_arn
    #   The Amazon Resource Name (ARN) of the model explainability job.
    #   @return [String]
    #
    # @!attribute [rw] job_definition_name
    #   The name of the explainability job definition. The name must be
    #   unique within an Amazon Web Services Region in the Amazon Web
    #   Services account.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   The time at which the model explainability job was created.
    #   @return [Time]
    #
    # @!attribute [rw] model_explainability_baseline_config
    #   The baseline configuration for a model explainability job.
    #   @return [Types::ModelExplainabilityBaselineConfig]
    #
    # @!attribute [rw] model_explainability_app_specification
    #   Configures the model explainability job to run a specified Docker
    #   container image.
    #   @return [Types::ModelExplainabilityAppSpecification]
    #
    # @!attribute [rw] model_explainability_job_input
    #   Inputs for the model explainability job.
    #   @return [Types::ModelExplainabilityJobInput]
    #
    # @!attribute [rw] model_explainability_job_output_config
    #   The output configuration for monitoring jobs.
    #   @return [Types::MonitoringOutputConfig]
    #
    # @!attribute [rw] job_resources
    #   Identifies the resources to deploy for a monitoring job.
    #   @return [Types::MonitoringResources]
    #
    # @!attribute [rw] network_config
    #   Networking options for a model explainability job.
    #   @return [Types::MonitoringNetworkConfig]
    #
    # @!attribute [rw] role_arn
    #   The Amazon Resource Name (ARN) of the IAM role that has read
    #   permission to the input data location and write permission to the
    #   output data location in Amazon S3.
    #   @return [String]
    #
    # @!attribute [rw] stopping_condition
    #   A time limit for how long the monitoring job is allowed to run
    #   before stopping.
    #   @return [Types::MonitoringStoppingCondition]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeModelExplainabilityJobDefinitionResponse AWS API Documentation
    #
    class DescribeModelExplainabilityJobDefinitionResponse < Struct.new(
      :job_definition_arn,
      :job_definition_name,
      :creation_time,
      :model_explainability_baseline_config,
      :model_explainability_app_specification,
      :model_explainability_job_input,
      :model_explainability_job_output_config,
      :job_resources,
      :network_config,
      :role_arn,
      :stopping_condition)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] model_name
    #   The name of the model.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeModelInput AWS API Documentation
    #
    class DescribeModelInput < Struct.new(
      :model_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] model_name
    #   Name of the SageMaker model.
    #   @return [String]
    #
    # @!attribute [rw] primary_container
    #   The location of the primary inference code, associated artifacts,
    #   and custom environment map that the inference code uses when it is
    #   deployed in production.
    #   @return [Types::ContainerDefinition]
    #
    # @!attribute [rw] containers
    #   The containers in the inference pipeline.
    #   @return [Array<Types::ContainerDefinition>]
    #
    # @!attribute [rw] inference_execution_config
    #   Specifies details of how containers in a multi-container endpoint
    #   are called.
    #   @return [Types::InferenceExecutionConfig]
    #
    # @!attribute [rw] execution_role_arn
    #   The Amazon Resource Name (ARN) of the IAM role that you specified
    #   for the model.
    #   @return [String]
    #
    # @!attribute [rw] vpc_config
    #   A [VpcConfig][1] object that specifies the VPC that this model has
    #   access to. For more information, see [Protect Endpoints by Using an
    #   Amazon Virtual Private Cloud][2]
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_VpcConfig.html
    #   [2]: https://docs.aws.amazon.com/sagemaker/latest/dg/host-vpc.html
    #   @return [Types::VpcConfig]
    #
    # @!attribute [rw] creation_time
    #   A timestamp that shows when the model was created.
    #   @return [Time]
    #
    # @!attribute [rw] model_arn
    #   The Amazon Resource Name (ARN) of the model.
    #   @return [String]
    #
    # @!attribute [rw] enable_network_isolation
    #   If `True`, no inbound or outbound network calls can be made to or
    #   from the model container.
    #   @return [Boolean]
    #
    # @!attribute [rw] deployment_recommendation
    #   A set of recommended deployment configurations for the model.
    #   @return [Types::DeploymentRecommendation]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeModelOutput AWS API Documentation
    #
    class DescribeModelOutput < Struct.new(
      :model_name,
      :primary_container,
      :containers,
      :inference_execution_config,
      :execution_role_arn,
      :vpc_config,
      :creation_time,
      :model_arn,
      :enable_network_isolation,
      :deployment_recommendation)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] model_package_group_name
    #   The name of the model group to describe.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeModelPackageGroupInput AWS API Documentation
    #
    class DescribeModelPackageGroupInput < Struct.new(
      :model_package_group_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] model_package_group_name
    #   The name of the model group.
    #   @return [String]
    #
    # @!attribute [rw] model_package_group_arn
    #   The Amazon Resource Name (ARN) of the model group.
    #   @return [String]
    #
    # @!attribute [rw] model_package_group_description
    #   A description of the model group.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   The time that the model group was created.
    #   @return [Time]
    #
    # @!attribute [rw] created_by
    #   Information about the user who created or modified a SageMaker
    #   resource.
    #   @return [Types::UserContext]
    #
    # @!attribute [rw] model_package_group_status
    #   The status of the model group.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeModelPackageGroupOutput AWS API Documentation
    #
    class DescribeModelPackageGroupOutput < Struct.new(
      :model_package_group_name,
      :model_package_group_arn,
      :model_package_group_description,
      :creation_time,
      :created_by,
      :model_package_group_status)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] model_package_name
    #   The name or Amazon Resource Name (ARN) of the model package to
    #   describe.
    #
    #   When you specify a name, the name must have 1 to 63 characters.
    #   Valid characters are a-z, A-Z, 0-9, and - (hyphen).
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeModelPackageInput AWS API Documentation
    #
    class DescribeModelPackageInput < Struct.new(
      :model_package_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] model_package_name
    #   The name of the model package being described.
    #   @return [String]
    #
    # @!attribute [rw] model_package_group_name
    #   If the model is a versioned model, the name of the model group that
    #   the versioned model belongs to.
    #   @return [String]
    #
    # @!attribute [rw] model_package_version
    #   The version of the model package.
    #   @return [Integer]
    #
    # @!attribute [rw] model_package_arn
    #   The Amazon Resource Name (ARN) of the model package.
    #   @return [String]
    #
    # @!attribute [rw] model_package_description
    #   A brief summary of the model package.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   A timestamp specifying when the model package was created.
    #   @return [Time]
    #
    # @!attribute [rw] inference_specification
    #   Details about inference jobs that you can run with models based on
    #   this model package.
    #   @return [Types::InferenceSpecification]
    #
    # @!attribute [rw] source_algorithm_specification
    #   Details about the algorithm that was used to create the model
    #   package.
    #   @return [Types::SourceAlgorithmSpecification]
    #
    # @!attribute [rw] validation_specification
    #   Configurations for one or more transform jobs that SageMaker runs to
    #   test the model package.
    #   @return [Types::ModelPackageValidationSpecification]
    #
    # @!attribute [rw] model_package_status
    #   The current status of the model package.
    #   @return [String]
    #
    # @!attribute [rw] model_package_status_details
    #   Details about the current status of the model package.
    #   @return [Types::ModelPackageStatusDetails]
    #
    # @!attribute [rw] certify_for_marketplace
    #   Whether the model package is certified for listing on Amazon Web
    #   Services Marketplace.
    #   @return [Boolean]
    #
    # @!attribute [rw] model_approval_status
    #   The approval status of the model package.
    #   @return [String]
    #
    # @!attribute [rw] created_by
    #   Information about the user who created or modified a SageMaker
    #   resource.
    #   @return [Types::UserContext]
    #
    # @!attribute [rw] metadata_properties
    #   Metadata properties of the tracking entity, trial, or trial
    #   component.
    #   @return [Types::MetadataProperties]
    #
    # @!attribute [rw] model_metrics
    #   Metrics for the model.
    #   @return [Types::ModelMetrics]
    #
    # @!attribute [rw] last_modified_time
    #   The last time that the model package was modified.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_by
    #   Information about the user who created or modified a SageMaker
    #   resource.
    #   @return [Types::UserContext]
    #
    # @!attribute [rw] approval_description
    #   A description provided for the model approval.
    #   @return [String]
    #
    # @!attribute [rw] domain
    #   The machine learning domain of the model package you specified.
    #   Common machine learning domains include computer vision and natural
    #   language processing.
    #   @return [String]
    #
    # @!attribute [rw] task
    #   The machine learning task you specified that your model package
    #   accomplishes. Common machine learning tasks include object detection
    #   and image classification.
    #   @return [String]
    #
    # @!attribute [rw] sample_payload_url
    #   The Amazon Simple Storage Service (Amazon S3) path where the sample
    #   payload are stored. This path points to a single gzip compressed tar
    #   archive (.tar.gz suffix).
    #   @return [String]
    #
    # @!attribute [rw] customer_metadata_properties
    #   The metadata properties associated with the model package versions.
    #   @return [Hash<String,String>]
    #
    # @!attribute [rw] drift_check_baselines
    #   Represents the drift check baselines that can be used when the model
    #   monitor is set using the model package. For more information, see
    #   the topic on [Drift Detection against Previous Baselines in
    #   SageMaker Pipelines][1] in the *Amazon SageMaker Developer Guide*.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/pipelines-quality-clarify-baseline-lifecycle.html#pipelines-quality-clarify-baseline-drift-detection
    #   @return [Types::DriftCheckBaselines]
    #
    # @!attribute [rw] additional_inference_specifications
    #   An array of additional Inference Specification objects. Each
    #   additional Inference Specification specifies artifacts based on this
    #   model package that can be used on inference endpoints. Generally
    #   used with SageMaker Neo to store the compiled artifacts.
    #   @return [Array<Types::AdditionalInferenceSpecificationDefinition>]
    #
    # @!attribute [rw] skip_model_validation
    #   Indicates if you want to skip model validation.
    #   @return [String]
    #
    # @!attribute [rw] source_uri
    #   The URI of the source for the model package.
    #   @return [String]
    #
    # @!attribute [rw] security_config
    #   The KMS Key ID (`KMSKeyId`) used for encryption of model package
    #   information.
    #   @return [Types::ModelPackageSecurityConfig]
    #
    # @!attribute [rw] model_card
    #   The model card associated with the model package. Since
    #   `ModelPackageModelCard` is tied to a model package, it is a specific
    #   usage of a model card and its schema is simplified compared to the
    #   schema of `ModelCard`. The `ModelPackageModelCard` schema does not
    #   include `model_package_details`, and `model_overview` is composed of
    #   the `model_creator` and `model_artifact` properties. For more
    #   information about the model package model card schema, see [Model
    #   package model card schema][1]. For more information about the model
    #   card associated with the model package, see [View the Details of a
    #   Model Version][2].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/model-registry-details.html#model-card-schema
    #   [2]: https://docs.aws.amazon.com/sagemaker/latest/dg/model-registry-details.html
    #   @return [Types::ModelPackageModelCard]
    #
    # @!attribute [rw] model_life_cycle
    #   A structure describing the current state of the model in its life
    #   cycle.
    #   @return [Types::ModelLifeCycle]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeModelPackageOutput AWS API Documentation
    #
    class DescribeModelPackageOutput < Struct.new(
      :model_package_name,
      :model_package_group_name,
      :model_package_version,
      :model_package_arn,
      :model_package_description,
      :creation_time,
      :inference_specification,
      :source_algorithm_specification,
      :validation_specification,
      :model_package_status,
      :model_package_status_details,
      :certify_for_marketplace,
      :model_approval_status,
      :created_by,
      :metadata_properties,
      :model_metrics,
      :last_modified_time,
      :last_modified_by,
      :approval_description,
      :domain,
      :task,
      :sample_payload_url,
      :customer_metadata_properties,
      :drift_check_baselines,
      :additional_inference_specifications,
      :skip_model_validation,
      :source_uri,
      :security_config,
      :model_card,
      :model_life_cycle)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] job_definition_name
    #   The name of the model quality job. The name must be unique within an
    #   Amazon Web Services Region in the Amazon Web Services account.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeModelQualityJobDefinitionRequest AWS API Documentation
    #
    class DescribeModelQualityJobDefinitionRequest < Struct.new(
      :job_definition_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] job_definition_arn
    #   The Amazon Resource Name (ARN) of the model quality job.
    #   @return [String]
    #
    # @!attribute [rw] job_definition_name
    #   The name of the quality job definition. The name must be unique
    #   within an Amazon Web Services Region in the Amazon Web Services
    #   account.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   The time at which the model quality job was created.
    #   @return [Time]
    #
    # @!attribute [rw] model_quality_baseline_config
    #   The baseline configuration for a model quality job.
    #   @return [Types::ModelQualityBaselineConfig]
    #
    # @!attribute [rw] model_quality_app_specification
    #   Configures the model quality job to run a specified Docker container
    #   image.
    #   @return [Types::ModelQualityAppSpecification]
    #
    # @!attribute [rw] model_quality_job_input
    #   Inputs for the model quality job.
    #   @return [Types::ModelQualityJobInput]
    #
    # @!attribute [rw] model_quality_job_output_config
    #   The output configuration for monitoring jobs.
    #   @return [Types::MonitoringOutputConfig]
    #
    # @!attribute [rw] job_resources
    #   Identifies the resources to deploy for a monitoring job.
    #   @return [Types::MonitoringResources]
    #
    # @!attribute [rw] network_config
    #   Networking options for a model quality job.
    #   @return [Types::MonitoringNetworkConfig]
    #
    # @!attribute [rw] role_arn
    #   The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker
    #   AI can assume to perform tasks on your behalf.
    #   @return [String]
    #
    # @!attribute [rw] stopping_condition
    #   A time limit for how long the monitoring job is allowed to run
    #   before stopping.
    #   @return [Types::MonitoringStoppingCondition]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeModelQualityJobDefinitionResponse AWS API Documentation
    #
    class DescribeModelQualityJobDefinitionResponse < Struct.new(
      :job_definition_arn,
      :job_definition_name,
      :creation_time,
      :model_quality_baseline_config,
      :model_quality_app_specification,
      :model_quality_job_input,
      :model_quality_job_output_config,
      :job_resources,
      :network_config,
      :role_arn,
      :stopping_condition)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] monitoring_schedule_name
    #   Name of a previously created monitoring schedule.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeMonitoringScheduleRequest AWS API Documentation
    #
    class DescribeMonitoringScheduleRequest < Struct.new(
      :monitoring_schedule_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] monitoring_schedule_arn
    #   The Amazon Resource Name (ARN) of the monitoring schedule.
    #   @return [String]
    #
    # @!attribute [rw] monitoring_schedule_name
    #   Name of the monitoring schedule.
    #   @return [String]
    #
    # @!attribute [rw] monitoring_schedule_status
    #   The status of an monitoring job.
    #   @return [String]
    #
    # @!attribute [rw] monitoring_type
    #   The type of the monitoring job that this schedule runs. This is one
    #   of the following values.
    #
    #   * `DATA_QUALITY` - The schedule is for a data quality monitoring
    #     job.
    #
    #   * `MODEL_QUALITY` - The schedule is for a model quality monitoring
    #     job.
    #
    #   * `MODEL_BIAS` - The schedule is for a bias monitoring job.
    #
    #   * `MODEL_EXPLAINABILITY` - The schedule is for an explainability
    #     monitoring job.
    #   @return [String]
    #
    # @!attribute [rw] failure_reason
    #   A string, up to one KB in size, that contains the reason a
    #   monitoring job failed, if it failed.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   The time at which the monitoring job was created.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time
    #   The time at which the monitoring job was last modified.
    #   @return [Time]
    #
    # @!attribute [rw] monitoring_schedule_config
    #   The configuration object that specifies the monitoring schedule and
    #   defines the monitoring job.
    #   @return [Types::MonitoringScheduleConfig]
    #
    # @!attribute [rw] endpoint_name
    #   The name of the endpoint for the monitoring job.
    #   @return [String]
    #
    # @!attribute [rw] last_monitoring_execution_summary
    #   Describes metadata on the last execution to run, if there was one.
    #   @return [Types::MonitoringExecutionSummary]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeMonitoringScheduleResponse AWS API Documentation
    #
    class DescribeMonitoringScheduleResponse < Struct.new(
      :monitoring_schedule_arn,
      :monitoring_schedule_name,
      :monitoring_schedule_status,
      :monitoring_type,
      :failure_reason,
      :creation_time,
      :last_modified_time,
      :monitoring_schedule_config,
      :endpoint_name,
      :last_monitoring_execution_summary)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] notebook_instance_name
    #   The name of the notebook instance that you want information about.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeNotebookInstanceInput AWS API Documentation
    #
    class DescribeNotebookInstanceInput < Struct.new(
      :notebook_instance_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] notebook_instance_lifecycle_config_name
    #   The name of the lifecycle configuration to describe.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeNotebookInstanceLifecycleConfigInput AWS API Documentation
    #
    class DescribeNotebookInstanceLifecycleConfigInput < Struct.new(
      :notebook_instance_lifecycle_config_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] notebook_instance_lifecycle_config_arn
    #   The Amazon Resource Name (ARN) of the lifecycle configuration.
    #   @return [String]
    #
    # @!attribute [rw] notebook_instance_lifecycle_config_name
    #   The name of the lifecycle configuration.
    #   @return [String]
    #
    # @!attribute [rw] on_create
    #   The shell script that runs only once, when you create a notebook
    #   instance.
    #   @return [Array<Types::NotebookInstanceLifecycleHook>]
    #
    # @!attribute [rw] on_start
    #   The shell script that runs every time you start a notebook instance,
    #   including when you create the notebook instance.
    #   @return [Array<Types::NotebookInstanceLifecycleHook>]
    #
    # @!attribute [rw] last_modified_time
    #   A timestamp that tells when the lifecycle configuration was last
    #   modified.
    #   @return [Time]
    #
    # @!attribute [rw] creation_time
    #   A timestamp that tells when the lifecycle configuration was created.
    #   @return [Time]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeNotebookInstanceLifecycleConfigOutput AWS API Documentation
    #
    class DescribeNotebookInstanceLifecycleConfigOutput < Struct.new(
      :notebook_instance_lifecycle_config_arn,
      :notebook_instance_lifecycle_config_name,
      :on_create,
      :on_start,
      :last_modified_time,
      :creation_time)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] notebook_instance_arn
    #   The Amazon Resource Name (ARN) of the notebook instance.
    #   @return [String]
    #
    # @!attribute [rw] notebook_instance_name
    #   The name of the SageMaker AI notebook instance.
    #   @return [String]
    #
    # @!attribute [rw] notebook_instance_status
    #   The status of the notebook instance.
    #   @return [String]
    #
    # @!attribute [rw] failure_reason
    #   If status is `Failed`, the reason it failed.
    #   @return [String]
    #
    # @!attribute [rw] url
    #   The URL that you use to connect to the Jupyter notebook that is
    #   running in your notebook instance.
    #   @return [String]
    #
    # @!attribute [rw] instance_type
    #   The type of ML compute instance running on the notebook instance.
    #   @return [String]
    #
    # @!attribute [rw] ip_address_type
    #   The IP address type configured for the notebook instance. Returns
    #   `ipv4` for IPv4-only connectivity or `dualstack` for both IPv4 and
    #   IPv6 connectivity.
    #   @return [String]
    #
    # @!attribute [rw] subnet_id
    #   The ID of the VPC subnet.
    #   @return [String]
    #
    # @!attribute [rw] security_groups
    #   The IDs of the VPC security groups.
    #   @return [Array<String>]
    #
    # @!attribute [rw] role_arn
    #   The Amazon Resource Name (ARN) of the IAM role associated with the
    #   instance.
    #   @return [String]
    #
    # @!attribute [rw] kms_key_id
    #   The Amazon Web Services KMS key ID SageMaker AI uses to encrypt data
    #   when storing it on the ML storage volume attached to the instance.
    #   @return [String]
    #
    # @!attribute [rw] network_interface_id
    #   The network interface IDs that SageMaker AI created at the time of
    #   creating the instance.
    #   @return [String]
    #
    # @!attribute [rw] last_modified_time
    #   A timestamp. Use this parameter to retrieve the time when the
    #   notebook instance was last modified.
    #   @return [Time]
    #
    # @!attribute [rw] creation_time
    #   A timestamp. Use this parameter to return the time when the notebook
    #   instance was created
    #   @return [Time]
    #
    # @!attribute [rw] notebook_instance_lifecycle_config_name
    #   Returns the name of a notebook instance lifecycle configuration.
    #
    #   For information about notebook instance lifestyle configurations,
    #   see [Step 2.1: (Optional) Customize a Notebook Instance][1]
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/notebook-lifecycle-config.html
    #   @return [String]
    #
    # @!attribute [rw] direct_internet_access
    #   Describes whether SageMaker AI provides internet access to the
    #   notebook instance. If this value is set to *Disabled*, the notebook
    #   instance does not have internet access, and cannot connect to
    #   SageMaker AI training and endpoint services.
    #
    #   For more information, see [Notebook Instances Are Internet-Enabled
    #   by Default][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/appendix-additional-considerations.html#appendix-notebook-and-internet-access
    #   @return [String]
    #
    # @!attribute [rw] volume_size_in_gb
    #   The size, in GB, of the ML storage volume attached to the notebook
    #   instance.
    #   @return [Integer]
    #
    # @!attribute [rw] accelerator_types
    #   This parameter is no longer supported. Elastic Inference (EI) is no
    #   longer available.
    #
    #   This parameter was used to specify a list of the EI instance types
    #   associated with this notebook instance.
    #   @return [Array<String>]
    #
    # @!attribute [rw] default_code_repository
    #   The Git repository associated with the notebook instance as its
    #   default code repository. This can be either the name of a Git
    #   repository stored as a resource in your account, or the URL of a Git
    #   repository in [Amazon Web Services CodeCommit][1] or in any other
    #   Git repository. When you open a notebook instance, it opens in the
    #   directory that contains this repository. For more information, see
    #   [Associating Git Repositories with SageMaker AI Notebook
    #   Instances][2].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html
    #   [2]: https://docs.aws.amazon.com/sagemaker/latest/dg/nbi-git-repo.html
    #   @return [String]
    #
    # @!attribute [rw] additional_code_repositories
    #   An array of up to three Git repositories associated with the
    #   notebook instance. These can be either the names of Git repositories
    #   stored as resources in your account, or the URL of Git repositories
    #   in [Amazon Web Services CodeCommit][1] or in any other Git
    #   repository. These repositories are cloned at the same level as the
    #   default repository of your notebook instance. For more information,
    #   see [Associating Git Repositories with SageMaker AI Notebook
    #   Instances][2].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html
    #   [2]: https://docs.aws.amazon.com/sagemaker/latest/dg/nbi-git-repo.html
    #   @return [Array<String>]
    #
    # @!attribute [rw] root_access
    #   Whether root access is enabled or disabled for users of the notebook
    #   instance.
    #
    #   <note markdown="1"> Lifecycle configurations need root access to be able to set up a
    #   notebook instance. Because of this, lifecycle configurations
    #   associated with a notebook instance always run with root access even
    #   if you disable root access for users.
    #
    #    </note>
    #   @return [String]
    #
    # @!attribute [rw] platform_identifier
    #   The platform identifier of the notebook instance runtime
    #   environment.
    #   @return [String]
    #
    # @!attribute [rw] instance_metadata_service_configuration
    #   Information on the IMDS configuration of the notebook instance
    #   @return [Types::InstanceMetadataServiceConfiguration]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeNotebookInstanceOutput AWS API Documentation
    #
    class DescribeNotebookInstanceOutput < Struct.new(
      :notebook_instance_arn,
      :notebook_instance_name,
      :notebook_instance_status,
      :failure_reason,
      :url,
      :instance_type,
      :ip_address_type,
      :subnet_id,
      :security_groups,
      :role_arn,
      :kms_key_id,
      :network_interface_id,
      :last_modified_time,
      :creation_time,
      :notebook_instance_lifecycle_config_name,
      :direct_internet_access,
      :volume_size_in_gb,
      :accelerator_types,
      :default_code_repository,
      :additional_code_repositories,
      :root_access,
      :platform_identifier,
      :instance_metadata_service_configuration)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] optimization_job_name
    #   The name that you assigned to the optimization job.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeOptimizationJobRequest AWS API Documentation
    #
    class DescribeOptimizationJobRequest < Struct.new(
      :optimization_job_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] optimization_job_arn
    #   The Amazon Resource Name (ARN) of the optimization job.
    #   @return [String]
    #
    # @!attribute [rw] optimization_job_status
    #   The current status of the optimization job.
    #   @return [String]
    #
    # @!attribute [rw] optimization_start_time
    #   The time when the optimization job started.
    #   @return [Time]
    #
    # @!attribute [rw] optimization_end_time
    #   The time when the optimization job finished processing.
    #   @return [Time]
    #
    # @!attribute [rw] creation_time
    #   The time when you created the optimization job.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time
    #   The time when the optimization job was last updated.
    #   @return [Time]
    #
    # @!attribute [rw] failure_reason
    #   If the optimization job status is `FAILED`, the reason for the
    #   failure.
    #   @return [String]
    #
    # @!attribute [rw] optimization_job_name
    #   The name that you assigned to the optimization job.
    #   @return [String]
    #
    # @!attribute [rw] model_source
    #   The location of the source model to optimize with an optimization
    #   job.
    #   @return [Types::OptimizationJobModelSource]
    #
    # @!attribute [rw] optimization_environment
    #   The environment variables to set in the model container.
    #   @return [Hash<String,String>]
    #
    # @!attribute [rw] deployment_instance_type
    #   The type of instance that hosts the optimized model that you create
    #   with the optimization job.
    #   @return [String]
    #
    # @!attribute [rw] optimization_configs
    #   Settings for each of the optimization techniques that the job
    #   applies.
    #   @return [Array<Types::OptimizationConfig>]
    #
    # @!attribute [rw] output_config
    #   Details for where to store the optimized model that you create with
    #   the optimization job.
    #   @return [Types::OptimizationJobOutputConfig]
    #
    # @!attribute [rw] optimization_output
    #   Output values produced by an optimization job.
    #   @return [Types::OptimizationOutput]
    #
    # @!attribute [rw] role_arn
    #   The ARN of the IAM role that you assigned to the optimization job.
    #   @return [String]
    #
    # @!attribute [rw] stopping_condition
    #   Specifies a limit to how long a job can run. When the job reaches
    #   the time limit, SageMaker ends the job. Use this API to cap costs.
    #
    #   To stop a training job, SageMaker sends the algorithm the `SIGTERM`
    #   signal, which delays job termination for 120 seconds. Algorithms can
    #   use this 120-second window to save the model artifacts, so the
    #   results of training are not lost.
    #
    #   The training algorithms provided by SageMaker automatically save the
    #   intermediate results of a model training job when possible. This
    #   attempt to save artifacts is only a best effort case as model might
    #   not be in a state from which it can be saved. For example, if
    #   training has just started, the model might not be ready to save.
    #   When saved, this intermediate data is a valid model artifact. You
    #   can use it to create a model with `CreateModel`.
    #
    #   <note markdown="1"> The Neural Topic Model (NTM) currently does not support saving
    #   intermediate model artifacts. When training NTMs, make sure that the
    #   maximum runtime is sufficient for the training job to complete.
    #
    #    </note>
    #   @return [Types::StoppingCondition]
    #
    # @!attribute [rw] vpc_config
    #   A VPC in Amazon VPC that your optimized model has access to.
    #   @return [Types::OptimizationVpcConfig]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeOptimizationJobResponse AWS API Documentation
    #
    class DescribeOptimizationJobResponse < Struct.new(
      :optimization_job_arn,
      :optimization_job_status,
      :optimization_start_time,
      :optimization_end_time,
      :creation_time,
      :last_modified_time,
      :failure_reason,
      :optimization_job_name,
      :model_source,
      :optimization_environment,
      :deployment_instance_type,
      :optimization_configs,
      :output_config,
      :optimization_output,
      :role_arn,
      :stopping_condition,
      :vpc_config)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] arn
    #   The ARN of the SageMaker Partner AI App to describe.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribePartnerAppRequest AWS API Documentation
    #
    class DescribePartnerAppRequest < Struct.new(
      :arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] arn
    #   The ARN of the SageMaker Partner AI App that was described.
    #   @return [String]
    #
    # @!attribute [rw] name
    #   The name of the SageMaker Partner AI App.
    #   @return [String]
    #
    # @!attribute [rw] type
    #   The type of SageMaker Partner AI App. Must be one of the following:
    #   `lakera-guard`, `comet`, `deepchecks-llm-evaluation`, or `fiddler`.
    #   @return [String]
    #
    # @!attribute [rw] status
    #   The status of the SageMaker Partner AI App.
    #
    #   * Creating: SageMaker AI is creating the partner AI app. The partner
    #     AI app is not available during creation.
    #
    #   * Updating: SageMaker AI is updating the partner AI app. The partner
    #     AI app is not available when updating.
    #
    #   * Deleting: SageMaker AI is deleting the partner AI app. The partner
    #     AI app is not available during deletion.
    #
    #   * Available: The partner AI app is provisioned and accessible.
    #
    #   * Failed: The partner AI app is in a failed state and isn't
    #     available. SageMaker AI is investigating the issue. For further
    #     guidance, contact Amazon Web Services Support.
    #
    #   * UpdateFailed: The partner AI app couldn't be updated but is
    #     available.
    #
    #   * Deleted: The partner AI app is permanently deleted and not
    #     available.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   The time that the SageMaker Partner AI App was created.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time
    #   The time that the SageMaker Partner AI App was last modified.
    #   @return [Time]
    #
    # @!attribute [rw] execution_role_arn
    #   The ARN of the IAM role associated with the SageMaker Partner AI
    #   App.
    #   @return [String]
    #
    # @!attribute [rw] kms_key_id
    #   The Amazon Web Services KMS customer managed key used to encrypt the
    #   data at rest associated with SageMaker Partner AI Apps.
    #   @return [String]
    #
    # @!attribute [rw] base_url
    #   The URL of the SageMaker Partner AI App that the Application SDK
    #   uses to support in-app calls for the user.
    #   @return [String]
    #
    # @!attribute [rw] maintenance_config
    #   Maintenance configuration settings for the SageMaker Partner AI App.
    #   @return [Types::PartnerAppMaintenanceConfig]
    #
    # @!attribute [rw] tier
    #   The instance type and size of the cluster attached to the SageMaker
    #   Partner AI App.
    #   @return [String]
    #
    # @!attribute [rw] version
    #   The version of the SageMaker Partner AI App.
    #   @return [String]
    #
    # @!attribute [rw] application_config
    #   Configuration settings for the SageMaker Partner AI App.
    #   @return [Types::PartnerAppConfig]
    #
    # @!attribute [rw] auth_type
    #   The authorization type that users use to access the SageMaker
    #   Partner AI App.
    #   @return [String]
    #
    # @!attribute [rw] enable_iam_session_based_identity
    #   When set to `TRUE`, the SageMaker Partner AI App sets the Amazon Web
    #   Services IAM session name or the authenticated IAM user as the
    #   identity of the SageMaker Partner AI App user.
    #   @return [Boolean]
    #
    # @!attribute [rw] error
    #   This is an error field object that contains the error code and the
    #   reason for an operation failure.
    #   @return [Types::ErrorInfo]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribePartnerAppResponse AWS API Documentation
    #
    class DescribePartnerAppResponse < Struct.new(
      :arn,
      :name,
      :type,
      :status,
      :creation_time,
      :last_modified_time,
      :execution_role_arn,
      :kms_key_id,
      :base_url,
      :maintenance_config,
      :tier,
      :version,
      :application_config,
      :auth_type,
      :enable_iam_session_based_identity,
      :error)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] pipeline_execution_arn
    #   The Amazon Resource Name (ARN) of the pipeline execution.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribePipelineDefinitionForExecutionRequest AWS API Documentation
    #
    class DescribePipelineDefinitionForExecutionRequest < Struct.new(
      :pipeline_execution_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] pipeline_definition
    #   The JSON pipeline definition.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   The time when the pipeline was created.
    #   @return [Time]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribePipelineDefinitionForExecutionResponse AWS API Documentation
    #
    class DescribePipelineDefinitionForExecutionResponse < Struct.new(
      :pipeline_definition,
      :creation_time)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] pipeline_execution_arn
    #   The Amazon Resource Name (ARN) of the pipeline execution.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribePipelineExecutionRequest AWS API Documentation
    #
    class DescribePipelineExecutionRequest < Struct.new(
      :pipeline_execution_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] pipeline_arn
    #   The Amazon Resource Name (ARN) of the pipeline.
    #   @return [String]
    #
    # @!attribute [rw] pipeline_execution_arn
    #   The Amazon Resource Name (ARN) of the pipeline execution.
    #   @return [String]
    #
    # @!attribute [rw] pipeline_execution_display_name
    #   The display name of the pipeline execution.
    #   @return [String]
    #
    # @!attribute [rw] pipeline_execution_status
    #   The status of the pipeline execution.
    #   @return [String]
    #
    # @!attribute [rw] pipeline_execution_description
    #   The description of the pipeline execution.
    #   @return [String]
    #
    # @!attribute [rw] pipeline_experiment_config
    #   Specifies the names of the experiment and trial created by a
    #   pipeline.
    #   @return [Types::PipelineExperimentConfig]
    #
    # @!attribute [rw] failure_reason
    #   If the execution failed, a message describing why.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   The time when the pipeline execution was created.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time
    #   The time when the pipeline execution was modified last.
    #   @return [Time]
    #
    # @!attribute [rw] created_by
    #   Information about the user who created or modified a SageMaker
    #   resource.
    #   @return [Types::UserContext]
    #
    # @!attribute [rw] last_modified_by
    #   Information about the user who created or modified a SageMaker
    #   resource.
    #   @return [Types::UserContext]
    #
    # @!attribute [rw] parallelism_configuration
    #   The parallelism configuration applied to the pipeline.
    #   @return [Types::ParallelismConfiguration]
    #
    # @!attribute [rw] selective_execution_config
    #   The selective execution configuration applied to the pipeline run.
    #   @return [Types::SelectiveExecutionConfig]
    #
    # @!attribute [rw] pipeline_version_id
    #   The ID of the pipeline version.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribePipelineExecutionResponse AWS API Documentation
    #
    class DescribePipelineExecutionResponse < Struct.new(
      :pipeline_arn,
      :pipeline_execution_arn,
      :pipeline_execution_display_name,
      :pipeline_execution_status,
      :pipeline_execution_description,
      :pipeline_experiment_config,
      :failure_reason,
      :creation_time,
      :last_modified_time,
      :created_by,
      :last_modified_by,
      :parallelism_configuration,
      :selective_execution_config,
      :pipeline_version_id)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] pipeline_name
    #   The name or Amazon Resource Name (ARN) of the pipeline to describe.
    #   @return [String]
    #
    # @!attribute [rw] pipeline_version_id
    #   The ID of the pipeline version to describe.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribePipelineRequest AWS API Documentation
    #
    class DescribePipelineRequest < Struct.new(
      :pipeline_name,
      :pipeline_version_id)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] pipeline_arn
    #   The Amazon Resource Name (ARN) of the pipeline.
    #   @return [String]
    #
    # @!attribute [rw] pipeline_name
    #   The name of the pipeline.
    #   @return [String]
    #
    # @!attribute [rw] pipeline_display_name
    #   The display name of the pipeline.
    #   @return [String]
    #
    # @!attribute [rw] pipeline_definition
    #   The JSON pipeline definition.
    #   @return [String]
    #
    # @!attribute [rw] pipeline_description
    #   The description of the pipeline.
    #   @return [String]
    #
    # @!attribute [rw] role_arn
    #   The Amazon Resource Name (ARN) that the pipeline uses to execute.
    #   @return [String]
    #
    # @!attribute [rw] pipeline_status
    #   The status of the pipeline execution.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   The time when the pipeline was created.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time
    #   The time when the pipeline was last modified.
    #   @return [Time]
    #
    # @!attribute [rw] last_run_time
    #   The time when the pipeline was last run.
    #   @return [Time]
    #
    # @!attribute [rw] created_by
    #   Information about the user who created or modified a SageMaker
    #   resource.
    #   @return [Types::UserContext]
    #
    # @!attribute [rw] last_modified_by
    #   Information about the user who created or modified a SageMaker
    #   resource.
    #   @return [Types::UserContext]
    #
    # @!attribute [rw] parallelism_configuration
    #   Lists the parallelism configuration applied to the pipeline.
    #   @return [Types::ParallelismConfiguration]
    #
    # @!attribute [rw] pipeline_version_display_name
    #   The display name of the pipeline version.
    #   @return [String]
    #
    # @!attribute [rw] pipeline_version_description
    #   The description of the pipeline version.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribePipelineResponse AWS API Documentation
    #
    class DescribePipelineResponse < Struct.new(
      :pipeline_arn,
      :pipeline_name,
      :pipeline_display_name,
      :pipeline_definition,
      :pipeline_description,
      :role_arn,
      :pipeline_status,
      :creation_time,
      :last_modified_time,
      :last_run_time,
      :created_by,
      :last_modified_by,
      :parallelism_configuration,
      :pipeline_version_display_name,
      :pipeline_version_description)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] processing_job_name
    #   The name of the processing job. The name must be unique within an
    #   Amazon Web Services Region in the Amazon Web Services account.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeProcessingJobRequest AWS API Documentation
    #
    class DescribeProcessingJobRequest < Struct.new(
      :processing_job_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] processing_inputs
    #   The inputs for a processing job.
    #   @return [Array<Types::ProcessingInput>]
    #
    # @!attribute [rw] processing_output_config
    #   Output configuration for the processing job.
    #   @return [Types::ProcessingOutputConfig]
    #
    # @!attribute [rw] processing_job_name
    #   The name of the processing job. The name must be unique within an
    #   Amazon Web Services Region in the Amazon Web Services account.
    #   @return [String]
    #
    # @!attribute [rw] processing_resources
    #   Identifies the resources, ML compute instances, and ML storage
    #   volumes to deploy for a processing job. In distributed training, you
    #   specify more than one instance.
    #   @return [Types::ProcessingResources]
    #
    # @!attribute [rw] stopping_condition
    #   The time limit for how long the processing job is allowed to run.
    #   @return [Types::ProcessingStoppingCondition]
    #
    # @!attribute [rw] app_specification
    #   Configures the processing job to run a specified container image.
    #   @return [Types::AppSpecification]
    #
    # @!attribute [rw] environment
    #   The environment variables set in the Docker container.
    #   @return [Hash<String,String>]
    #
    # @!attribute [rw] network_config
    #   Networking options for a processing job.
    #   @return [Types::NetworkConfig]
    #
    # @!attribute [rw] role_arn
    #   The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker
    #   can assume to perform tasks on your behalf.
    #   @return [String]
    #
    # @!attribute [rw] experiment_config
    #   The configuration information used to create an experiment.
    #   @return [Types::ExperimentConfig]
    #
    # @!attribute [rw] processing_job_arn
    #   The Amazon Resource Name (ARN) of the processing job.
    #   @return [String]
    #
    # @!attribute [rw] processing_job_status
    #   Provides the status of a processing job.
    #   @return [String]
    #
    # @!attribute [rw] exit_message
    #   An optional string, up to one KB in size, that contains metadata
    #   from the processing container when the processing job exits.
    #   @return [String]
    #
    # @!attribute [rw] failure_reason
    #   A string, up to one KB in size, that contains the reason a
    #   processing job failed, if it failed.
    #   @return [String]
    #
    # @!attribute [rw] processing_end_time
    #   The time at which the processing job completed.
    #   @return [Time]
    #
    # @!attribute [rw] processing_start_time
    #   The time at which the processing job started.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time
    #   The time at which the processing job was last modified.
    #   @return [Time]
    #
    # @!attribute [rw] creation_time
    #   The time at which the processing job was created.
    #   @return [Time]
    #
    # @!attribute [rw] monitoring_schedule_arn
    #   The ARN of a monitoring schedule for an endpoint associated with
    #   this processing job.
    #   @return [String]
    #
    # @!attribute [rw] auto_ml_job_arn
    #   The ARN of an AutoML job associated with this processing job.
    #   @return [String]
    #
    # @!attribute [rw] training_job_arn
    #   The ARN of a training job associated with this processing job.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeProcessingJobResponse AWS API Documentation
    #
    class DescribeProcessingJobResponse < Struct.new(
      :processing_inputs,
      :processing_output_config,
      :processing_job_name,
      :processing_resources,
      :stopping_condition,
      :app_specification,
      :environment,
      :network_config,
      :role_arn,
      :experiment_config,
      :processing_job_arn,
      :processing_job_status,
      :exit_message,
      :failure_reason,
      :processing_end_time,
      :processing_start_time,
      :last_modified_time,
      :creation_time,
      :monitoring_schedule_arn,
      :auto_ml_job_arn,
      :training_job_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] project_name
    #   The name of the project to describe.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeProjectInput AWS API Documentation
    #
    class DescribeProjectInput < Struct.new(
      :project_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] project_arn
    #   The Amazon Resource Name (ARN) of the project.
    #   @return [String]
    #
    # @!attribute [rw] project_name
    #   The name of the project.
    #   @return [String]
    #
    # @!attribute [rw] project_id
    #   The ID of the project.
    #   @return [String]
    #
    # @!attribute [rw] project_description
    #   The description of the project.
    #   @return [String]
    #
    # @!attribute [rw] service_catalog_provisioning_details
    #   Information used to provision a service catalog product. For
    #   information, see [What is Amazon Web Services Service Catalog][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/servicecatalog/latest/adminguide/introduction.html
    #   @return [Types::ServiceCatalogProvisioningDetails]
    #
    # @!attribute [rw] service_catalog_provisioned_product_details
    #   Information about a provisioned service catalog product.
    #   @return [Types::ServiceCatalogProvisionedProductDetails]
    #
    # @!attribute [rw] project_status
    #   The status of the project.
    #   @return [String]
    #
    # @!attribute [rw] template_provider_details
    #   An array of template providers associated with the project.
    #   @return [Array<Types::TemplateProviderDetail>]
    #
    # @!attribute [rw] created_by
    #   Information about the user who created or modified a SageMaker
    #   resource.
    #   @return [Types::UserContext]
    #
    # @!attribute [rw] creation_time
    #   The time when the project was created.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time
    #   The timestamp when project was last modified.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_by
    #   Information about the user who created or modified a SageMaker
    #   resource.
    #   @return [Types::UserContext]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeProjectOutput AWS API Documentation
    #
    class DescribeProjectOutput < Struct.new(
      :project_arn,
      :project_name,
      :project_id,
      :project_description,
      :service_catalog_provisioning_details,
      :service_catalog_provisioned_product_details,
      :project_status,
      :template_provider_details,
      :created_by,
      :creation_time,
      :last_modified_time,
      :last_modified_by)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] reserved_capacity_arn
    #   ARN of the reserved capacity to describe.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeReservedCapacityRequest AWS API Documentation
    #
    class DescribeReservedCapacityRequest < Struct.new(
      :reserved_capacity_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] reserved_capacity_arn
    #   ARN of the reserved capacity.
    #   @return [String]
    #
    # @!attribute [rw] reserved_capacity_type
    #   The type of reserved capacity.
    #   @return [String]
    #
    # @!attribute [rw] status
    #   The current status of the reserved capacity.
    #   @return [String]
    #
    # @!attribute [rw] availability_zone
    #   The Availability Zone where the reserved capacity is provisioned.
    #   @return [String]
    #
    # @!attribute [rw] duration_hours
    #   The total duration of the reserved capacity in hours.
    #   @return [Integer]
    #
    # @!attribute [rw] duration_minutes
    #   The number of minutes for the duration of the reserved capacity. For
    #   example, if a reserved capacity starts at 08:55 and ends at 11:30,
    #   the minutes field would be 35.
    #   @return [Integer]
    #
    # @!attribute [rw] start_time
    #   The timestamp when the reserved capacity becomes active.
    #   @return [Time]
    #
    # @!attribute [rw] end_time
    #   The timestamp when the reserved capacity expires.
    #   @return [Time]
    #
    # @!attribute [rw] instance_type
    #   The Amazon EC2 instance type used in the reserved capacity.
    #   @return [String]
    #
    # @!attribute [rw] total_instance_count
    #   The total number of instances allocated to this reserved capacity.
    #   @return [Integer]
    #
    # @!attribute [rw] available_instance_count
    #   The number of instances currently available for use in this reserved
    #   capacity.
    #   @return [Integer]
    #
    # @!attribute [rw] in_use_instance_count
    #   The number of instances currently in use from this reserved
    #   capacity.
    #   @return [Integer]
    #
    # @!attribute [rw] ultra_server_summary
    #   A summary of the UltraServer associated with this reserved capacity.
    #   @return [Types::UltraServerSummary]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeReservedCapacityResponse AWS API Documentation
    #
    class DescribeReservedCapacityResponse < Struct.new(
      :reserved_capacity_arn,
      :reserved_capacity_type,
      :status,
      :availability_zone,
      :duration_hours,
      :duration_minutes,
      :start_time,
      :end_time,
      :instance_type,
      :total_instance_count,
      :available_instance_count,
      :in_use_instance_count,
      :ultra_server_summary)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] domain_id
    #   The ID of the associated domain.
    #   @return [String]
    #
    # @!attribute [rw] space_name
    #   The name of the space.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeSpaceRequest AWS API Documentation
    #
    class DescribeSpaceRequest < Struct.new(
      :domain_id,
      :space_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] domain_id
    #   The ID of the associated domain.
    #   @return [String]
    #
    # @!attribute [rw] space_arn
    #   The space's Amazon Resource Name (ARN).
    #   @return [String]
    #
    # @!attribute [rw] space_name
    #   The name of the space.
    #   @return [String]
    #
    # @!attribute [rw] home_efs_file_system_uid
    #   The ID of the space's profile in the Amazon EFS volume.
    #   @return [String]
    #
    # @!attribute [rw] status
    #   The status.
    #   @return [String]
    #
    # @!attribute [rw] last_modified_time
    #   The last modified time.
    #   @return [Time]
    #
    # @!attribute [rw] creation_time
    #   The creation time.
    #   @return [Time]
    #
    # @!attribute [rw] failure_reason
    #   The failure reason.
    #   @return [String]
    #
    # @!attribute [rw] space_settings
    #   A collection of space settings.
    #   @return [Types::SpaceSettings]
    #
    # @!attribute [rw] ownership_settings
    #   The collection of ownership settings for a space.
    #   @return [Types::OwnershipSettings]
    #
    # @!attribute [rw] space_sharing_settings
    #   The collection of space sharing settings for a space.
    #   @return [Types::SpaceSharingSettings]
    #
    # @!attribute [rw] space_display_name
    #   The name of the space that appears in the Amazon SageMaker Studio
    #   UI.
    #   @return [String]
    #
    # @!attribute [rw] url
    #   Returns the URL of the space. If the space is created with Amazon
    #   Web Services IAM Identity Center (Successor to Amazon Web Services
    #   Single Sign-On) authentication, users can navigate to the URL after
    #   appending the respective redirect parameter for the application type
    #   to be federated through Amazon Web Services IAM Identity Center.
    #
    #   The following application types are supported:
    #
    #   * Studio Classic: `&redirect=JupyterServer`
    #
    #   * JupyterLab: `&redirect=JupyterLab`
    #
    #   * Code Editor, based on Code-OSS, Visual Studio Code - Open Source:
    #     `&redirect=CodeEditor`
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeSpaceResponse AWS API Documentation
    #
    class DescribeSpaceResponse < Struct.new(
      :domain_id,
      :space_arn,
      :space_name,
      :home_efs_file_system_uid,
      :status,
      :last_modified_time,
      :creation_time,
      :failure_reason,
      :space_settings,
      :ownership_settings,
      :space_sharing_settings,
      :space_display_name,
      :url)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] studio_lifecycle_config_name
    #   The name of the Amazon SageMaker AI Studio Lifecycle Configuration
    #   to describe.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeStudioLifecycleConfigRequest AWS API Documentation
    #
    class DescribeStudioLifecycleConfigRequest < Struct.new(
      :studio_lifecycle_config_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] studio_lifecycle_config_arn
    #   The ARN of the Lifecycle Configuration to describe.
    #   @return [String]
    #
    # @!attribute [rw] studio_lifecycle_config_name
    #   The name of the Amazon SageMaker AI Studio Lifecycle Configuration
    #   that is described.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   The creation time of the Amazon SageMaker AI Studio Lifecycle
    #   Configuration.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time
    #   This value is equivalent to CreationTime because Amazon SageMaker AI
    #   Studio Lifecycle Configurations are immutable.
    #   @return [Time]
    #
    # @!attribute [rw] studio_lifecycle_config_content
    #   The content of your Amazon SageMaker AI Studio Lifecycle
    #   Configuration script.
    #   @return [String]
    #
    # @!attribute [rw] studio_lifecycle_config_app_type
    #   The App type that the Lifecycle Configuration is attached to.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeStudioLifecycleConfigResponse AWS API Documentation
    #
    class DescribeStudioLifecycleConfigResponse < Struct.new(
      :studio_lifecycle_config_arn,
      :studio_lifecycle_config_name,
      :creation_time,
      :last_modified_time,
      :studio_lifecycle_config_content,
      :studio_lifecycle_config_app_type)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] workteam_arn
    #   The Amazon Resource Name (ARN) of the subscribed work team to
    #   describe.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeSubscribedWorkteamRequest AWS API Documentation
    #
    class DescribeSubscribedWorkteamRequest < Struct.new(
      :workteam_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] subscribed_workteam
    #   A `Workteam` instance that contains information about the work team.
    #   @return [Types::SubscribedWorkteam]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeSubscribedWorkteamResponse AWS API Documentation
    #
    class DescribeSubscribedWorkteamResponse < Struct.new(
      :subscribed_workteam)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] training_job_name
    #   The name of the training job.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeTrainingJobRequest AWS API Documentation
    #
    class DescribeTrainingJobRequest < Struct.new(
      :training_job_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] training_job_name
    #   Name of the model training job.
    #   @return [String]
    #
    # @!attribute [rw] training_job_arn
    #   The Amazon Resource Name (ARN) of the training job.
    #   @return [String]
    #
    # @!attribute [rw] tuning_job_arn
    #   The Amazon Resource Name (ARN) of the associated hyperparameter
    #   tuning job if the training job was launched by a hyperparameter
    #   tuning job.
    #   @return [String]
    #
    # @!attribute [rw] labeling_job_arn
    #   The Amazon Resource Name (ARN) of the SageMaker Ground Truth
    #   labeling job that created the transform or training job.
    #   @return [String]
    #
    # @!attribute [rw] auto_ml_job_arn
    #   The Amazon Resource Name (ARN) of an AutoML job.
    #   @return [String]
    #
    # @!attribute [rw] model_artifacts
    #   Information about the Amazon S3 location that is configured for
    #   storing model artifacts.
    #   @return [Types::ModelArtifacts]
    #
    # @!attribute [rw] training_job_status
    #   The status of the training job.
    #
    #   SageMaker provides the following training job statuses:
    #
    #   * `InProgress` - The training is in progress.
    #
    #   * `Completed` - The training job has completed.
    #
    #   * `Failed` - The training job has failed. To see the reason for the
    #     failure, see the `FailureReason` field in the response to a
    #     `DescribeTrainingJobResponse` call.
    #
    #   * `Stopping` - The training job is stopping.
    #
    #   * `Stopped` - The training job has stopped.
    #
    #   For more detailed information, see `SecondaryStatus`.
    #   @return [String]
    #
    # @!attribute [rw] secondary_status
    #   Provides detailed information about the state of the training job.
    #   For detailed information on the secondary status of the training
    #   job, see `StatusMessage` under [SecondaryStatusTransition][1].
    #
    #   SageMaker provides primary statuses and secondary statuses that
    #   apply to each of them:
    #
    #   InProgress
    #   : * `Starting` - Starting the training job.
    #
    #     * `Downloading` - An optional stage for algorithms that support
    #       `File` training input mode. It indicates that data is being
    #       downloaded to the ML storage volumes.
    #
    #     * `Training` - Training is in progress.
    #
    #     * `Interrupted` - The job stopped because the managed spot
    #       training instances were interrupted.
    #
    #     * `Uploading` - Training is complete and the model artifacts are
    #       being uploaded to the S3 location.
    #
    #   Completed
    #   : * `Completed` - The training job has completed.
    #
    #     ^
    #
    #   Failed
    #   : * `Failed` - The training job has failed. The reason for the
    #       failure is returned in the `FailureReason` field of
    #       `DescribeTrainingJobResponse`.
    #
    #     ^
    #
    #   Stopped
    #   : * `MaxRuntimeExceeded` - The job stopped because it exceeded the
    #       maximum allowed runtime.
    #
    #     * `MaxWaitTimeExceeded` - The job stopped because it exceeded the
    #       maximum allowed wait time.
    #
    #     * `Stopped` - The training job has stopped.
    #
    #   Stopping
    #   : * `Stopping` - Stopping the training job.
    #
    #     ^
    #
    #   Valid values for `SecondaryStatus` are subject to change.
    #
    #   We no longer support the following secondary statuses:
    #
    #   * `LaunchingMLInstances`
    #
    #   * `PreparingTraining`
    #
    #   * `DownloadingTrainingImage`
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_SecondaryStatusTransition.html
    #   @return [String]
    #
    # @!attribute [rw] failure_reason
    #   If the training job failed, the reason it failed.
    #   @return [String]
    #
    # @!attribute [rw] hyper_parameters
    #   Algorithm-specific parameters.
    #   @return [Hash<String,String>]
    #
    # @!attribute [rw] algorithm_specification
    #   Information about the algorithm used for training, and algorithm
    #   metadata.
    #   @return [Types::AlgorithmSpecification]
    #
    # @!attribute [rw] role_arn
    #   The Amazon Web Services Identity and Access Management (IAM) role
    #   configured for the training job.
    #   @return [String]
    #
    # @!attribute [rw] input_data_config
    #   An array of `Channel` objects that describes each data input
    #   channel.
    #   @return [Array<Types::Channel>]
    #
    # @!attribute [rw] output_data_config
    #   The S3 path where model artifacts that you configured when creating
    #   the job are stored. SageMaker creates subfolders for model
    #   artifacts.
    #   @return [Types::OutputDataConfig]
    #
    # @!attribute [rw] resource_config
    #   Resources, including ML compute instances and ML storage volumes,
    #   that are configured for model training.
    #   @return [Types::ResourceConfig]
    #
    # @!attribute [rw] warm_pool_status
    #   The status of the warm pool associated with the training job.
    #   @return [Types::WarmPoolStatus]
    #
    # @!attribute [rw] vpc_config
    #   A [VpcConfig][1] object that specifies the VPC that this training
    #   job has access to. For more information, see [Protect Training Jobs
    #   by Using an Amazon Virtual Private Cloud][2].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_VpcConfig.html
    #   [2]: https://docs.aws.amazon.com/sagemaker/latest/dg/train-vpc.html
    #   @return [Types::VpcConfig]
    #
    # @!attribute [rw] stopping_condition
    #   Specifies a limit to how long a model training job can run. It also
    #   specifies how long a managed Spot training job has to complete. When
    #   the job reaches the time limit, SageMaker ends the training job. Use
    #   this API to cap model training costs.
    #
    #   To stop a job, SageMaker sends the algorithm the `SIGTERM` signal,
    #   which delays job termination for 120 seconds. Algorithms can use
    #   this 120-second window to save the model artifacts, so the results
    #   of training are not lost.
    #   @return [Types::StoppingCondition]
    #
    # @!attribute [rw] creation_time
    #   A timestamp that indicates when the training job was created.
    #   @return [Time]
    #
    # @!attribute [rw] training_start_time
    #   Indicates the time when the training job starts on training
    #   instances. You are billed for the time interval between this time
    #   and the value of `TrainingEndTime`. The start time in CloudWatch
    #   Logs might be later than this time. The difference is due to the
    #   time it takes to download the training data and to the size of the
    #   training container.
    #   @return [Time]
    #
    # @!attribute [rw] training_end_time
    #   Indicates the time when the training job ends on training instances.
    #   You are billed for the time interval between the value of
    #   `TrainingStartTime` and this time. For successful jobs and stopped
    #   jobs, this is the time after model artifacts are uploaded. For
    #   failed jobs, this is the time when SageMaker detects a job failure.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time
    #   A timestamp that indicates when the status of the training job was
    #   last modified.
    #   @return [Time]
    #
    # @!attribute [rw] secondary_status_transitions
    #   A history of all of the secondary statuses that the training job has
    #   transitioned through.
    #   @return [Array<Types::SecondaryStatusTransition>]
    #
    # @!attribute [rw] final_metric_data_list
    #   A collection of `MetricData` objects that specify the names, values,
    #   and dates and times that the training algorithm emitted to Amazon
    #   CloudWatch.
    #   @return [Array<Types::MetricData>]
    #
    # @!attribute [rw] enable_network_isolation
    #   If you want to allow inbound or outbound network calls, except for
    #   calls between peers within a training cluster for distributed
    #   training, choose `True`. If you enable network isolation for
    #   training jobs that are configured to use a VPC, SageMaker downloads
    #   and uploads customer data and model artifacts through the specified
    #   VPC, but the training container does not have network access.
    #   @return [Boolean]
    #
    # @!attribute [rw] enable_inter_container_traffic_encryption
    #   To encrypt all communications between ML compute instances in
    #   distributed training, choose `True`. Encryption provides greater
    #   security for distributed training, but training might take longer.
    #   How long it takes depends on the amount of communication between
    #   compute instances, especially if you use a deep learning algorithms
    #   in distributed training.
    #   @return [Boolean]
    #
    # @!attribute [rw] enable_managed_spot_training
    #   A Boolean indicating whether managed spot training is enabled
    #   (`True`) or not (`False`).
    #   @return [Boolean]
    #
    # @!attribute [rw] checkpoint_config
    #   Contains information about the output location for managed spot
    #   training checkpoint data.
    #   @return [Types::CheckpointConfig]
    #
    # @!attribute [rw] training_time_in_seconds
    #   The training time in seconds.
    #   @return [Integer]
    #
    # @!attribute [rw] billable_time_in_seconds
    #   The billable time in seconds. Billable time refers to the absolute
    #   wall-clock time.
    #
    #   Multiply `BillableTimeInSeconds` by the number of instances
    #   (`InstanceCount`) in your training cluster to get the total compute
    #   time SageMaker bills you if you run distributed training. The
    #   formula is as follows: `BillableTimeInSeconds * InstanceCount` .
    #
    #   You can calculate the savings from using managed spot training using
    #   the formula `(1 - BillableTimeInSeconds / TrainingTimeInSeconds) *
    #   100`. For example, if `BillableTimeInSeconds` is 100 and
    #   `TrainingTimeInSeconds` is 500, the savings is 80%.
    #   @return [Integer]
    #
    # @!attribute [rw] debug_hook_config
    #   Configuration information for the Amazon SageMaker Debugger hook
    #   parameters, metric and tensor collections, and storage paths. To
    #   learn more about how to configure the `DebugHookConfig` parameter,
    #   see [Use the SageMaker and Debugger Configuration API Operations to
    #   Create, Update, and Debug Your Training Job][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/debugger-createtrainingjob-api.html
    #   @return [Types::DebugHookConfig]
    #
    # @!attribute [rw] experiment_config
    #   Associates a SageMaker job as a trial component with an experiment
    #   and trial. Specified when you call the following APIs:
    #
    #   * [CreateProcessingJob][1]
    #
    #   * [CreateTrainingJob][2]
    #
    #   * [CreateTransformJob][3]
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateProcessingJob.html
    #   [2]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html
    #   [3]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html
    #   @return [Types::ExperimentConfig]
    #
    # @!attribute [rw] debug_rule_configurations
    #   Configuration information for Amazon SageMaker Debugger rules for
    #   debugging output tensors.
    #   @return [Array<Types::DebugRuleConfiguration>]
    #
    # @!attribute [rw] tensor_board_output_config
    #   Configuration of storage locations for the Amazon SageMaker Debugger
    #   TensorBoard output data.
    #   @return [Types::TensorBoardOutputConfig]
    #
    # @!attribute [rw] debug_rule_evaluation_statuses
    #   Evaluation status of Amazon SageMaker Debugger rules for debugging
    #   on a training job.
    #   @return [Array<Types::DebugRuleEvaluationStatus>]
    #
    # @!attribute [rw] profiler_config
    #   Configuration information for Amazon SageMaker Debugger system
    #   monitoring, framework profiling, and storage paths.
    #   @return [Types::ProfilerConfig]
    #
    # @!attribute [rw] profiler_rule_configurations
    #   Configuration information for Amazon SageMaker Debugger rules for
    #   profiling system and framework metrics.
    #   @return [Array<Types::ProfilerRuleConfiguration>]
    #
    # @!attribute [rw] profiler_rule_evaluation_statuses
    #   Evaluation status of Amazon SageMaker Debugger rules for profiling
    #   on a training job.
    #   @return [Array<Types::ProfilerRuleEvaluationStatus>]
    #
    # @!attribute [rw] profiling_status
    #   Profiling status of a training job.
    #   @return [String]
    #
    # @!attribute [rw] environment
    #   The environment variables to set in the Docker container.
    #
    #   Do not include any security-sensitive information including account
    #   access IDs, secrets, or tokens in any environment fields. As part of
    #   the shared responsibility model, you are responsible for any
    #   potential exposure, unauthorized access, or compromise of your
    #   sensitive data if caused by security-sensitive information included
    #   in the request environment variable or plain text fields.
    #   @return [Hash<String,String>]
    #
    # @!attribute [rw] retry_strategy
    #   The number of times to retry the job when the job fails due to an
    #   `InternalServerError`.
    #   @return [Types::RetryStrategy]
    #
    # @!attribute [rw] remote_debug_config
    #   Configuration for remote debugging. To learn more about the remote
    #   debugging functionality of SageMaker, see [Access a training
    #   container through Amazon Web Services Systems Manager (SSM) for
    #   remote debugging][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/train-remote-debugging.html
    #   @return [Types::RemoteDebugConfig]
    #
    # @!attribute [rw] infra_check_config
    #   Contains information about the infrastructure health check
    #   configuration for the training job.
    #   @return [Types::InfraCheckConfig]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeTrainingJobResponse AWS API Documentation
    #
    class DescribeTrainingJobResponse < Struct.new(
      :training_job_name,
      :training_job_arn,
      :tuning_job_arn,
      :labeling_job_arn,
      :auto_ml_job_arn,
      :model_artifacts,
      :training_job_status,
      :secondary_status,
      :failure_reason,
      :hyper_parameters,
      :algorithm_specification,
      :role_arn,
      :input_data_config,
      :output_data_config,
      :resource_config,
      :warm_pool_status,
      :vpc_config,
      :stopping_condition,
      :creation_time,
      :training_start_time,
      :training_end_time,
      :last_modified_time,
      :secondary_status_transitions,
      :final_metric_data_list,
      :enable_network_isolation,
      :enable_inter_container_traffic_encryption,
      :enable_managed_spot_training,
      :checkpoint_config,
      :training_time_in_seconds,
      :billable_time_in_seconds,
      :debug_hook_config,
      :experiment_config,
      :debug_rule_configurations,
      :tensor_board_output_config,
      :debug_rule_evaluation_statuses,
      :profiler_config,
      :profiler_rule_configurations,
      :profiler_rule_evaluation_statuses,
      :profiling_status,
      :environment,
      :retry_strategy,
      :remote_debug_config,
      :infra_check_config)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] training_plan_name
    #   The name of the training plan to describe.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeTrainingPlanRequest AWS API Documentation
    #
    class DescribeTrainingPlanRequest < Struct.new(
      :training_plan_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] training_plan_arn
    #   The Amazon Resource Name (ARN); of the training plan.
    #   @return [String]
    #
    # @!attribute [rw] training_plan_name
    #   The name of the training plan.
    #   @return [String]
    #
    # @!attribute [rw] status
    #   The current status of the training plan (e.g., Pending, Active,
    #   Expired). To see the complete list of status values available for a
    #   training plan, refer to the `Status` attribute within the `
    #   TrainingPlanSummary ` object.
    #   @return [String]
    #
    # @!attribute [rw] status_message
    #   A message providing additional information about the current status
    #   of the training plan.
    #   @return [String]
    #
    # @!attribute [rw] duration_hours
    #   The number of whole hours in the total duration for this training
    #   plan.
    #   @return [Integer]
    #
    # @!attribute [rw] duration_minutes
    #   The additional minutes beyond whole hours in the total duration for
    #   this training plan.
    #   @return [Integer]
    #
    # @!attribute [rw] start_time
    #   The start time of the training plan.
    #   @return [Time]
    #
    # @!attribute [rw] end_time
    #   The end time of the training plan.
    #   @return [Time]
    #
    # @!attribute [rw] upfront_fee
    #   The upfront fee for the training plan.
    #   @return [String]
    #
    # @!attribute [rw] currency_code
    #   The currency code for the upfront fee (e.g., USD).
    #   @return [String]
    #
    # @!attribute [rw] total_instance_count
    #   The total number of instances reserved in this training plan.
    #   @return [Integer]
    #
    # @!attribute [rw] available_instance_count
    #   The number of instances currently available for use in this training
    #   plan.
    #   @return [Integer]
    #
    # @!attribute [rw] in_use_instance_count
    #   The number of instances currently in use from this training plan.
    #   @return [Integer]
    #
    # @!attribute [rw] unhealthy_instance_count
    #   The number of instances in the training plan that are currently in
    #   an unhealthy state.
    #   @return [Integer]
    #
    # @!attribute [rw] available_spare_instance_count
    #   The number of available spare instances in the training plan.
    #   @return [Integer]
    #
    # @!attribute [rw] total_ultra_server_count
    #   The total number of UltraServers reserved to this training plan.
    #   @return [Integer]
    #
    # @!attribute [rw] target_resources
    #   The target resources (e.g., SageMaker Training Jobs, SageMaker
    #   HyperPod) that can use this training plan.
    #
    #   Training plans are specific to their target resource.
    #
    #   * A training plan designed for SageMaker training jobs can only be
    #     used to schedule and run training jobs.
    #
    #   * A training plan for HyperPod clusters can be used exclusively to
    #     provide compute resources to a cluster's instance group.
    #   @return [Array<String>]
    #
    # @!attribute [rw] reserved_capacity_summaries
    #   The list of Reserved Capacity providing the underlying compute
    #   resources of the plan.
    #   @return [Array<Types::ReservedCapacitySummary>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeTrainingPlanResponse AWS API Documentation
    #
    class DescribeTrainingPlanResponse < Struct.new(
      :training_plan_arn,
      :training_plan_name,
      :status,
      :status_message,
      :duration_hours,
      :duration_minutes,
      :start_time,
      :end_time,
      :upfront_fee,
      :currency_code,
      :total_instance_count,
      :available_instance_count,
      :in_use_instance_count,
      :unhealthy_instance_count,
      :available_spare_instance_count,
      :total_ultra_server_count,
      :target_resources,
      :reserved_capacity_summaries)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] transform_job_name
    #   The name of the transform job that you want to view details of.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeTransformJobRequest AWS API Documentation
    #
    class DescribeTransformJobRequest < Struct.new(
      :transform_job_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] transform_job_name
    #   The name of the transform job.
    #   @return [String]
    #
    # @!attribute [rw] transform_job_arn
    #   The Amazon Resource Name (ARN) of the transform job.
    #   @return [String]
    #
    # @!attribute [rw] transform_job_status
    #   The status of the transform job. If the transform job failed, the
    #   reason is returned in the `FailureReason` field.
    #   @return [String]
    #
    # @!attribute [rw] failure_reason
    #   If the transform job failed, `FailureReason` describes why it
    #   failed. A transform job creates a log file, which includes error
    #   messages, and stores it as an Amazon S3 object. For more
    #   information, see [Log Amazon SageMaker Events with Amazon
    #   CloudWatch][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/logging-cloudwatch.html
    #   @return [String]
    #
    # @!attribute [rw] model_name
    #   The name of the model used in the transform job.
    #   @return [String]
    #
    # @!attribute [rw] max_concurrent_transforms
    #   The maximum number of parallel requests on each instance node that
    #   can be launched in a transform job. The default value is 1.
    #   @return [Integer]
    #
    # @!attribute [rw] model_client_config
    #   The timeout and maximum number of retries for processing a transform
    #   job invocation.
    #   @return [Types::ModelClientConfig]
    #
    # @!attribute [rw] max_payload_in_mb
    #   The maximum payload size, in MB, used in the transform job.
    #   @return [Integer]
    #
    # @!attribute [rw] batch_strategy
    #   Specifies the number of records to include in a mini-batch for an
    #   HTTP inference request. A *record* ** is a single unit of input data
    #   that inference can be made on. For example, a single line in a CSV
    #   file is a record.
    #
    #   To enable the batch strategy, you must set `SplitType` to `Line`,
    #   `RecordIO`, or `TFRecord`.
    #   @return [String]
    #
    # @!attribute [rw] environment
    #   The environment variables to set in the Docker container. We support
    #   up to 16 key and values entries in the map.
    #   @return [Hash<String,String>]
    #
    # @!attribute [rw] transform_input
    #   Describes the dataset to be transformed and the Amazon S3 location
    #   where it is stored.
    #   @return [Types::TransformInput]
    #
    # @!attribute [rw] transform_output
    #   Identifies the Amazon S3 location where you want Amazon SageMaker to
    #   save the results from the transform job.
    #   @return [Types::TransformOutput]
    #
    # @!attribute [rw] data_capture_config
    #   Configuration to control how SageMaker captures inference data.
    #   @return [Types::BatchDataCaptureConfig]
    #
    # @!attribute [rw] transform_resources
    #   Describes the resources, including ML instance types and ML instance
    #   count, to use for the transform job.
    #   @return [Types::TransformResources]
    #
    # @!attribute [rw] creation_time
    #   A timestamp that shows when the transform Job was created.
    #   @return [Time]
    #
    # @!attribute [rw] transform_start_time
    #   Indicates when the transform job starts on ML instances. You are
    #   billed for the time interval between this time and the value of
    #   `TransformEndTime`.
    #   @return [Time]
    #
    # @!attribute [rw] transform_end_time
    #   Indicates when the transform job has been completed, or has stopped
    #   or failed. You are billed for the time interval between this time
    #   and the value of `TransformStartTime`.
    #   @return [Time]
    #
    # @!attribute [rw] labeling_job_arn
    #   The Amazon Resource Name (ARN) of the Amazon SageMaker Ground Truth
    #   labeling job that created the transform or training job.
    #   @return [String]
    #
    # @!attribute [rw] auto_ml_job_arn
    #   The Amazon Resource Name (ARN) of the AutoML transform job.
    #   @return [String]
    #
    # @!attribute [rw] data_processing
    #   The data structure used to specify the data to be used for inference
    #   in a batch transform job and to associate the data that is relevant
    #   to the prediction results in the output. The input filter provided
    #   allows you to exclude input data that is not needed for inference in
    #   a batch transform job. The output filter provided allows you to
    #   include input data relevant to interpreting the predictions in the
    #   output from the job. For more information, see [Associate Prediction
    #   Results with their Corresponding Input Records][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/batch-transform-data-processing.html
    #   @return [Types::DataProcessing]
    #
    # @!attribute [rw] experiment_config
    #   Associates a SageMaker job as a trial component with an experiment
    #   and trial. Specified when you call the following APIs:
    #
    #   * [CreateProcessingJob][1]
    #
    #   * [CreateTrainingJob][2]
    #
    #   * [CreateTransformJob][3]
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateProcessingJob.html
    #   [2]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html
    #   [3]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html
    #   @return [Types::ExperimentConfig]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeTransformJobResponse AWS API Documentation
    #
    class DescribeTransformJobResponse < Struct.new(
      :transform_job_name,
      :transform_job_arn,
      :transform_job_status,
      :failure_reason,
      :model_name,
      :max_concurrent_transforms,
      :model_client_config,
      :max_payload_in_mb,
      :batch_strategy,
      :environment,
      :transform_input,
      :transform_output,
      :data_capture_config,
      :transform_resources,
      :creation_time,
      :transform_start_time,
      :transform_end_time,
      :labeling_job_arn,
      :auto_ml_job_arn,
      :data_processing,
      :experiment_config)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] trial_component_name
    #   The name of the trial component to describe.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeTrialComponentRequest AWS API Documentation
    #
    class DescribeTrialComponentRequest < Struct.new(
      :trial_component_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] trial_component_name
    #   The name of the trial component.
    #   @return [String]
    #
    # @!attribute [rw] trial_component_arn
    #   The Amazon Resource Name (ARN) of the trial component.
    #   @return [String]
    #
    # @!attribute [rw] display_name
    #   The name of the component as displayed. If `DisplayName` isn't
    #   specified, `TrialComponentName` is displayed.
    #   @return [String]
    #
    # @!attribute [rw] source
    #   The Amazon Resource Name (ARN) of the source and, optionally, the
    #   job type.
    #   @return [Types::TrialComponentSource]
    #
    # @!attribute [rw] status
    #   The status of the component. States include:
    #
    #   * InProgress
    #
    #   * Completed
    #
    #   * Failed
    #   @return [Types::TrialComponentStatus]
    #
    # @!attribute [rw] start_time
    #   When the component started.
    #   @return [Time]
    #
    # @!attribute [rw] end_time
    #   When the component ended.
    #   @return [Time]
    #
    # @!attribute [rw] creation_time
    #   When the component was created.
    #   @return [Time]
    #
    # @!attribute [rw] created_by
    #   Who created the trial component.
    #   @return [Types::UserContext]
    #
    # @!attribute [rw] last_modified_time
    #   When the component was last modified.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_by
    #   Who last modified the component.
    #   @return [Types::UserContext]
    #
    # @!attribute [rw] parameters
    #   The hyperparameters of the component.
    #   @return [Hash<String,Types::TrialComponentParameterValue>]
    #
    # @!attribute [rw] input_artifacts
    #   The input artifacts of the component.
    #   @return [Hash<String,Types::TrialComponentArtifact>]
    #
    # @!attribute [rw] output_artifacts
    #   The output artifacts of the component.
    #   @return [Hash<String,Types::TrialComponentArtifact>]
    #
    # @!attribute [rw] metadata_properties
    #   Metadata properties of the tracking entity, trial, or trial
    #   component.
    #   @return [Types::MetadataProperties]
    #
    # @!attribute [rw] metrics
    #   The metrics for the component.
    #   @return [Array<Types::TrialComponentMetricSummary>]
    #
    # @!attribute [rw] lineage_group_arn
    #   The Amazon Resource Name (ARN) of the lineage group.
    #   @return [String]
    #
    # @!attribute [rw] sources
    #   A list of ARNs and, if applicable, job types for multiple sources of
    #   an experiment run.
    #   @return [Array<Types::TrialComponentSource>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeTrialComponentResponse AWS API Documentation
    #
    class DescribeTrialComponentResponse < Struct.new(
      :trial_component_name,
      :trial_component_arn,
      :display_name,
      :source,
      :status,
      :start_time,
      :end_time,
      :creation_time,
      :created_by,
      :last_modified_time,
      :last_modified_by,
      :parameters,
      :input_artifacts,
      :output_artifacts,
      :metadata_properties,
      :metrics,
      :lineage_group_arn,
      :sources)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] trial_name
    #   The name of the trial to describe.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeTrialRequest AWS API Documentation
    #
    class DescribeTrialRequest < Struct.new(
      :trial_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] trial_name
    #   The name of the trial.
    #   @return [String]
    #
    # @!attribute [rw] trial_arn
    #   The Amazon Resource Name (ARN) of the trial.
    #   @return [String]
    #
    # @!attribute [rw] display_name
    #   The name of the trial as displayed. If `DisplayName` isn't
    #   specified, `TrialName` is displayed.
    #   @return [String]
    #
    # @!attribute [rw] experiment_name
    #   The name of the experiment the trial is part of.
    #   @return [String]
    #
    # @!attribute [rw] source
    #   The Amazon Resource Name (ARN) of the source and, optionally, the
    #   job type.
    #   @return [Types::TrialSource]
    #
    # @!attribute [rw] creation_time
    #   When the trial was created.
    #   @return [Time]
    #
    # @!attribute [rw] created_by
    #   Who created the trial.
    #   @return [Types::UserContext]
    #
    # @!attribute [rw] last_modified_time
    #   When the trial was last modified.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_by
    #   Who last modified the trial.
    #   @return [Types::UserContext]
    #
    # @!attribute [rw] metadata_properties
    #   Metadata properties of the tracking entity, trial, or trial
    #   component.
    #   @return [Types::MetadataProperties]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeTrialResponse AWS API Documentation
    #
    class DescribeTrialResponse < Struct.new(
      :trial_name,
      :trial_arn,
      :display_name,
      :experiment_name,
      :source,
      :creation_time,
      :created_by,
      :last_modified_time,
      :last_modified_by,
      :metadata_properties)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] domain_id
    #   The domain ID.
    #   @return [String]
    #
    # @!attribute [rw] user_profile_name
    #   The user profile name. This value is not case sensitive.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeUserProfileRequest AWS API Documentation
    #
    class DescribeUserProfileRequest < Struct.new(
      :domain_id,
      :user_profile_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] domain_id
    #   The ID of the domain that contains the profile.
    #   @return [String]
    #
    # @!attribute [rw] user_profile_arn
    #   The user profile Amazon Resource Name (ARN).
    #   @return [String]
    #
    # @!attribute [rw] user_profile_name
    #   The user profile name.
    #   @return [String]
    #
    # @!attribute [rw] home_efs_file_system_uid
    #   The ID of the user's profile in the Amazon Elastic File System
    #   volume.
    #   @return [String]
    #
    # @!attribute [rw] status
    #   The status.
    #   @return [String]
    #
    # @!attribute [rw] last_modified_time
    #   The last modified time.
    #   @return [Time]
    #
    # @!attribute [rw] creation_time
    #   The creation time.
    #   @return [Time]
    #
    # @!attribute [rw] failure_reason
    #   The failure reason.
    #   @return [String]
    #
    # @!attribute [rw] single_sign_on_user_identifier
    #   The IAM Identity Center user identifier.
    #   @return [String]
    #
    # @!attribute [rw] single_sign_on_user_value
    #   The IAM Identity Center user value.
    #   @return [String]
    #
    # @!attribute [rw] user_settings
    #   A collection of settings.
    #   @return [Types::UserSettings]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeUserProfileResponse AWS API Documentation
    #
    class DescribeUserProfileResponse < Struct.new(
      :domain_id,
      :user_profile_arn,
      :user_profile_name,
      :home_efs_file_system_uid,
      :status,
      :last_modified_time,
      :creation_time,
      :failure_reason,
      :single_sign_on_user_identifier,
      :single_sign_on_user_value,
      :user_settings)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] workforce_name
    #   The name of the private workforce whose access you want to restrict.
    #   `WorkforceName` is automatically set to `default` when a workforce
    #   is created and cannot be modified.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeWorkforceRequest AWS API Documentation
    #
    class DescribeWorkforceRequest < Struct.new(
      :workforce_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] workforce
    #   A single private workforce, which is automatically created when you
    #   create your first private work team. You can create one private work
    #   force in each Amazon Web Services Region. By default, any
    #   workforce-related API operation used in a specific region will apply
    #   to the workforce created in that region. To learn how to create a
    #   private workforce, see [Create a Private Workforce][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/sms-workforce-create-private.html
    #   @return [Types::Workforce]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeWorkforceResponse AWS API Documentation
    #
    class DescribeWorkforceResponse < Struct.new(
      :workforce)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] workteam_name
    #   The name of the work team to return a description of.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeWorkteamRequest AWS API Documentation
    #
    class DescribeWorkteamRequest < Struct.new(
      :workteam_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] workteam
    #   A `Workteam` instance that contains information about the work team.
    #   @return [Types::Workteam]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeWorkteamResponse AWS API Documentation
    #
    class DescribeWorkteamResponse < Struct.new(
      :workteam)
      SENSITIVE = []
      include Aws::Structure
    end

    # Specifies weight and capacity values for a production variant.
    #
    # @!attribute [rw] variant_name
    #   The name of the variant to update.
    #   @return [String]
    #
    # @!attribute [rw] desired_weight
    #   The variant's weight.
    #   @return [Float]
    #
    # @!attribute [rw] desired_instance_count
    #   The variant's capacity.
    #   @return [Integer]
    #
    # @!attribute [rw] serverless_update_config
    #   Specifies the serverless update concurrency configuration for an
    #   endpoint variant.
    #   @return [Types::ProductionVariantServerlessUpdateConfig]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DesiredWeightAndCapacity AWS API Documentation
    #
    class DesiredWeightAndCapacity < Struct.new(
      :variant_name,
      :desired_weight,
      :desired_instance_count,
      :serverless_update_config)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] cluster_arn
    #   The Amazon Resource Name (ARN) of your SageMaker HyperPod cluster
    #   containing the target node. Your cluster must use EKS as the
    #   orchestration and be in the `InService` state.
    #   @return [String]
    #
    # @!attribute [rw] node_id
    #   The unique identifier of the cluster node from which you want to
    #   detach the volume.
    #   @return [String]
    #
    # @!attribute [rw] volume_id
    #   The unique identifier of your EBS volume that you want to detach.
    #   Your volume must be currently attached to the specified node.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DetachClusterNodeVolumeRequest AWS API Documentation
    #
    class DetachClusterNodeVolumeRequest < Struct.new(
      :cluster_arn,
      :node_id,
      :volume_id)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] cluster_arn
    #   The Amazon Resource Name (ARN) of your SageMaker HyperPod cluster
    #   where the volume detachment operation was performed.
    #   @return [String]
    #
    # @!attribute [rw] node_id
    #   The unique identifier of the cluster node from which your volume was
    #   detached.
    #   @return [String]
    #
    # @!attribute [rw] volume_id
    #   The unique identifier of your EBS volume that was detached.
    #   @return [String]
    #
    # @!attribute [rw] attach_time
    #   The original timestamp when your volume was initially attached to
    #   the node.
    #   @return [Time]
    #
    # @!attribute [rw] status
    #   The current status of your volume detachment operation.
    #   @return [String]
    #
    # @!attribute [rw] device_name
    #   The device name assigned to your attached volume on the target
    #   instance.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DetachClusterNodeVolumeResponse AWS API Documentation
    #
    class DetachClusterNodeVolumeResponse < Struct.new(
      :cluster_arn,
      :node_id,
      :volume_id,
      :attach_time,
      :status,
      :device_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # Information of a particular device.
    #
    # @!attribute [rw] device_name
    #   The name of the device.
    #   @return [String]
    #
    # @!attribute [rw] description
    #   Description of the device.
    #   @return [String]
    #
    # @!attribute [rw] iot_thing_name
    #   Amazon Web Services Internet of Things (IoT) object name.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/Device AWS API Documentation
    #
    class Device < Struct.new(
      :device_name,
      :description,
      :iot_thing_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # Contains information summarizing device details and deployment status.
    #
    # @!attribute [rw] edge_deployment_plan_arn
    #   The ARN of the edge deployment plan.
    #   @return [String]
    #
    # @!attribute [rw] edge_deployment_plan_name
    #   The name of the edge deployment plan.
    #   @return [String]
    #
    # @!attribute [rw] stage_name
    #   The name of the stage in the edge deployment plan.
    #   @return [String]
    #
    # @!attribute [rw] deployed_stage_name
    #   The name of the deployed stage.
    #   @return [String]
    #
    # @!attribute [rw] device_fleet_name
    #   The name of the fleet to which the device belongs to.
    #   @return [String]
    #
    # @!attribute [rw] device_name
    #   The name of the device.
    #   @return [String]
    #
    # @!attribute [rw] device_arn
    #   The ARN of the device.
    #   @return [String]
    #
    # @!attribute [rw] device_deployment_status
    #   The deployment status of the device.
    #   @return [String]
    #
    # @!attribute [rw] device_deployment_status_message
    #   The detailed error message for the deployoment status result.
    #   @return [String]
    #
    # @!attribute [rw] description
    #   The description of the device.
    #   @return [String]
    #
    # @!attribute [rw] deployment_start_time
    #   The time when the deployment on the device started.
    #   @return [Time]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeviceDeploymentSummary AWS API Documentation
    #
    class DeviceDeploymentSummary < Struct.new(
      :edge_deployment_plan_arn,
      :edge_deployment_plan_name,
      :stage_name,
      :deployed_stage_name,
      :device_fleet_name,
      :device_name,
      :device_arn,
      :device_deployment_status,
      :device_deployment_status_message,
      :description,
      :deployment_start_time)
      SENSITIVE = []
      include Aws::Structure
    end

    # Summary of the device fleet.
    #
    # @!attribute [rw] device_fleet_arn
    #   Amazon Resource Name (ARN) of the device fleet.
    #   @return [String]
    #
    # @!attribute [rw] device_fleet_name
    #   Name of the device fleet.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   Timestamp of when the device fleet was created.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time
    #   Timestamp of when the device fleet was last updated.
    #   @return [Time]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeviceFleetSummary AWS API Documentation
    #
    class DeviceFleetSummary < Struct.new(
      :device_fleet_arn,
      :device_fleet_name,
      :creation_time,
      :last_modified_time)
      SENSITIVE = []
      include Aws::Structure
    end

    # Contains information about the configurations of selected devices.
    #
    # @!attribute [rw] device_subset_type
    #   Type of device subsets to deploy to the current stage.
    #   @return [String]
    #
    # @!attribute [rw] percentage
    #   Percentage of devices in the fleet to deploy to the current stage.
    #   @return [Integer]
    #
    # @!attribute [rw] device_names
    #   List of devices chosen to deploy.
    #   @return [Array<String>]
    #
    # @!attribute [rw] device_name_contains
    #   A filter to select devices with names containing this name.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeviceSelectionConfig AWS API Documentation
    #
    class DeviceSelectionConfig < Struct.new(
      :device_subset_type,
      :percentage,
      :device_names,
      :device_name_contains)
      SENSITIVE = []
      include Aws::Structure
    end

    # Status of devices.
    #
    # @!attribute [rw] connected_device_count
    #   The number of devices connected with a heartbeat.
    #   @return [Integer]
    #
    # @!attribute [rw] registered_device_count
    #   The number of registered devices.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeviceStats AWS API Documentation
    #
    class DeviceStats < Struct.new(
      :connected_device_count,
      :registered_device_count)
      SENSITIVE = []
      include Aws::Structure
    end

    # Summary of the device.
    #
    # @!attribute [rw] device_name
    #   The unique identifier of the device.
    #   @return [String]
    #
    # @!attribute [rw] device_arn
    #   Amazon Resource Name (ARN) of the device.
    #   @return [String]
    #
    # @!attribute [rw] description
    #   A description of the device.
    #   @return [String]
    #
    # @!attribute [rw] device_fleet_name
    #   The name of the fleet the device belongs to.
    #   @return [String]
    #
    # @!attribute [rw] iot_thing_name
    #   The Amazon Web Services Internet of Things (IoT) object thing name
    #   associated with the device..
    #   @return [String]
    #
    # @!attribute [rw] registration_time
    #   The timestamp of the last registration or de-reregistration.
    #   @return [Time]
    #
    # @!attribute [rw] latest_heartbeat
    #   The last heartbeat received from the device.
    #   @return [Time]
    #
    # @!attribute [rw] models
    #   Models on the device.
    #   @return [Array<Types::EdgeModelSummary>]
    #
    # @!attribute [rw] agent_version
    #   Edge Manager agent version.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeviceSummary AWS API Documentation
    #
    class DeviceSummary < Struct.new(
      :device_name,
      :device_arn,
      :description,
      :device_fleet_name,
      :iot_thing_name,
      :registration_time,
      :latest_heartbeat,
      :models,
      :agent_version)
      SENSITIVE = []
      include Aws::Structure
    end

    # The model deployment settings for the SageMaker Canvas application.
    #
    # <note markdown="1"> In order to enable model deployment for Canvas, the SageMaker
    # Domain's or user profile's Amazon Web Services IAM execution role
    # must have the `AmazonSageMakerCanvasDirectDeployAccess` policy
    # attached. You can also turn on model deployment permissions through
    # the SageMaker Domain's or user profile's settings in the SageMaker
    # console.
    #
    #  </note>
    #
    # @!attribute [rw] status
    #   Describes whether model deployment permissions are enabled or
    #   disabled in the Canvas application.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DirectDeploySettings AWS API Documentation
    #
    class DirectDeploySettings < Struct.new(
      :status)
      SENSITIVE = []
      include Aws::Structure
    end

    # @api private
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DisableSagemakerServicecatalogPortfolioInput AWS API Documentation
    #
    class DisableSagemakerServicecatalogPortfolioInput < Aws::EmptyStructure; end

    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DisableSagemakerServicecatalogPortfolioOutput AWS API Documentation
    #
    class DisableSagemakerServicecatalogPortfolioOutput < Aws::EmptyStructure; end

    # @!attribute [rw] trial_component_name
    #   The name of the component to disassociate from the trial.
    #   @return [String]
    #
    # @!attribute [rw] trial_name
    #   The name of the trial to disassociate from.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DisassociateTrialComponentRequest AWS API Documentation
    #
    class DisassociateTrialComponentRequest < Struct.new(
      :trial_component_name,
      :trial_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] trial_component_arn
    #   The Amazon Resource Name (ARN) of the trial component.
    #   @return [String]
    #
    # @!attribute [rw] trial_arn
    #   The Amazon Resource Name (ARN) of the trial.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DisassociateTrialComponentResponse AWS API Documentation
    #
    class DisassociateTrialComponentResponse < Struct.new(
      :trial_component_arn,
      :trial_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # A collection of settings that configure the domain's Docker
    # interaction.
    #
    # @!attribute [rw] enable_docker_access
    #   Indicates whether the domain can access Docker.
    #   @return [String]
    #
    # @!attribute [rw] vpc_only_trusted_accounts
    #   The list of Amazon Web Services accounts that are trusted when the
    #   domain is created in VPC-only mode.
    #   @return [Array<String>]
    #
    # @!attribute [rw] rootless_docker
    #   Indicates whether to use rootless Docker.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DockerSettings AWS API Documentation
    #
    class DockerSettings < Struct.new(
      :enable_docker_access,
      :vpc_only_trusted_accounts,
      :rootless_docker)
      SENSITIVE = []
      include Aws::Structure
    end

    # The domain's details.
    #
    # @!attribute [rw] domain_arn
    #   The domain's Amazon Resource Name (ARN).
    #   @return [String]
    #
    # @!attribute [rw] domain_id
    #   The domain ID.
    #   @return [String]
    #
    # @!attribute [rw] domain_name
    #   The domain name.
    #   @return [String]
    #
    # @!attribute [rw] status
    #   The status.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   The creation time.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time
    #   The last modified time.
    #   @return [Time]
    #
    # @!attribute [rw] url
    #   The domain's URL.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DomainDetails AWS API Documentation
    #
    class DomainDetails < Struct.new(
      :domain_arn,
      :domain_id,
      :domain_name,
      :status,
      :creation_time,
      :last_modified_time,
      :url)
      SENSITIVE = []
      include Aws::Structure
    end

    # A collection of settings that apply to the `SageMaker Domain`. These
    # settings are specified through the `CreateDomain` API call.
    #
    # @!attribute [rw] security_group_ids
    #   The security groups for the Amazon Virtual Private Cloud that the
    #   `Domain` uses for communication between Domain-level apps and user
    #   apps.
    #   @return [Array<String>]
    #
    # @!attribute [rw] r_studio_server_pro_domain_settings
    #   A collection of settings that configure the `RStudioServerPro`
    #   Domain-level app.
    #   @return [Types::RStudioServerProDomainSettings]
    #
    # @!attribute [rw] execution_role_identity_config
    #   The configuration for attaching a SageMaker AI user profile name to
    #   the execution role as a [sts:SourceIdentity key][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_control-access_monitor.html
    #   @return [String]
    #
    # @!attribute [rw] trusted_identity_propagation_settings
    #   The Trusted Identity Propagation (TIP) settings for the SageMaker
    #   domain. These settings determine how user identities from IAM
    #   Identity Center are propagated through the domain to TIP enabled
    #   Amazon Web Services services.
    #   @return [Types::TrustedIdentityPropagationSettings]
    #
    # @!attribute [rw] docker_settings
    #   A collection of settings that configure the domain's Docker
    #   interaction.
    #   @return [Types::DockerSettings]
    #
    # @!attribute [rw] amazon_q_settings
    #   A collection of settings that configure the Amazon Q experience
    #   within the domain. The `AuthMode` that you use to create the domain
    #   must be `SSO`.
    #   @return [Types::AmazonQSettings]
    #
    # @!attribute [rw] unified_studio_settings
    #   The settings that apply to an SageMaker AI domain when you use it in
    #   Amazon SageMaker Unified Studio.
    #   @return [Types::UnifiedStudioSettings]
    #
    # @!attribute [rw] ip_address_type
    #   The IP address type for the domain. Specify `ipv4` for IPv4-only
    #   connectivity or `dualstack` for both IPv4 and IPv6 connectivity.
    #   When you specify `dualstack`, the subnet must support IPv6 CIDR
    #   blocks. If not specified, defaults to `ipv4`.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DomainSettings AWS API Documentation
    #
    class DomainSettings < Struct.new(
      :security_group_ids,
      :r_studio_server_pro_domain_settings,
      :execution_role_identity_config,
      :trusted_identity_propagation_settings,
      :docker_settings,
      :amazon_q_settings,
      :unified_studio_settings,
      :ip_address_type)
      SENSITIVE = []
      include Aws::Structure
    end

    # A collection of `Domain` configuration settings to update.
    #
    # @!attribute [rw] r_studio_server_pro_domain_settings_for_update
    #   A collection of `RStudioServerPro` Domain-level app settings to
    #   update. A single `RStudioServerPro` application is created for a
    #   domain.
    #   @return [Types::RStudioServerProDomainSettingsForUpdate]
    #
    # @!attribute [rw] execution_role_identity_config
    #   The configuration for attaching a SageMaker AI user profile name to
    #   the execution role as a [sts:SourceIdentity key][1]. This
    #   configuration can only be modified if there are no apps in the
    #   `InService` or `Pending` state.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_control-access_monitor.html
    #   @return [String]
    #
    # @!attribute [rw] security_group_ids
    #   The security groups for the Amazon Virtual Private Cloud that the
    #   `Domain` uses for communication between Domain-level apps and user
    #   apps.
    #   @return [Array<String>]
    #
    # @!attribute [rw] trusted_identity_propagation_settings
    #   The Trusted Identity Propagation (TIP) settings for the SageMaker
    #   domain. These settings determine how user identities from IAM
    #   Identity Center are propagated through the domain to TIP enabled
    #   Amazon Web Services services.
    #   @return [Types::TrustedIdentityPropagationSettings]
    #
    # @!attribute [rw] docker_settings
    #   A collection of settings that configure the domain's Docker
    #   interaction.
    #   @return [Types::DockerSettings]
    #
    # @!attribute [rw] amazon_q_settings
    #   A collection of settings that configure the Amazon Q experience
    #   within the domain.
    #   @return [Types::AmazonQSettings]
    #
    # @!attribute [rw] unified_studio_settings
    #   The settings that apply to an SageMaker AI domain when you use it in
    #   Amazon SageMaker Unified Studio.
    #   @return [Types::UnifiedStudioSettings]
    #
    # @!attribute [rw] ip_address_type
    #   The IP address type for the domain. Specify `ipv4` for IPv4-only
    #   connectivity or `dualstack` for both IPv4 and IPv6 connectivity.
    #   When you specify `dualstack`, the subnet must support IPv6 CIDR
    #   blocks.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DomainSettingsForUpdate AWS API Documentation
    #
    class DomainSettingsForUpdate < Struct.new(
      :r_studio_server_pro_domain_settings_for_update,
      :execution_role_identity_config,
      :security_group_ids,
      :trusted_identity_propagation_settings,
      :docker_settings,
      :amazon_q_settings,
      :unified_studio_settings,
      :ip_address_type)
      SENSITIVE = []
      include Aws::Structure
    end

    # Represents the drift check baselines that can be used when the model
    # monitor is set using the model package.
    #
    # @!attribute [rw] bias
    #   Represents the drift check bias baselines that can be used when the
    #   model monitor is set using the model package.
    #   @return [Types::DriftCheckBias]
    #
    # @!attribute [rw] explainability
    #   Represents the drift check explainability baselines that can be used
    #   when the model monitor is set using the model package.
    #   @return [Types::DriftCheckExplainability]
    #
    # @!attribute [rw] model_quality
    #   Represents the drift check model quality baselines that can be used
    #   when the model monitor is set using the model package.
    #   @return [Types::DriftCheckModelQuality]
    #
    # @!attribute [rw] model_data_quality
    #   Represents the drift check model data quality baselines that can be
    #   used when the model monitor is set using the model package.
    #   @return [Types::DriftCheckModelDataQuality]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DriftCheckBaselines AWS API Documentation
    #
    class DriftCheckBaselines < Struct.new(
      :bias,
      :explainability,
      :model_quality,
      :model_data_quality)
      SENSITIVE = []
      include Aws::Structure
    end

    # Represents the drift check bias baselines that can be used when the
    # model monitor is set using the model package.
    #
    # @!attribute [rw] config_file
    #   The bias config file for a model.
    #   @return [Types::FileSource]
    #
    # @!attribute [rw] pre_training_constraints
    #   The pre-training constraints.
    #   @return [Types::MetricsSource]
    #
    # @!attribute [rw] post_training_constraints
    #   The post-training constraints.
    #   @return [Types::MetricsSource]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DriftCheckBias AWS API Documentation
    #
    class DriftCheckBias < Struct.new(
      :config_file,
      :pre_training_constraints,
      :post_training_constraints)
      SENSITIVE = []
      include Aws::Structure
    end

    # Represents the drift check explainability baselines that can be used
    # when the model monitor is set using the model package.
    #
    # @!attribute [rw] constraints
    #   The drift check explainability constraints.
    #   @return [Types::MetricsSource]
    #
    # @!attribute [rw] config_file
    #   The explainability config file for the model.
    #   @return [Types::FileSource]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DriftCheckExplainability AWS API Documentation
    #
    class DriftCheckExplainability < Struct.new(
      :constraints,
      :config_file)
      SENSITIVE = []
      include Aws::Structure
    end

    # Represents the drift check data quality baselines that can be used
    # when the model monitor is set using the model package.
    #
    # @!attribute [rw] statistics
    #   The drift check model data quality statistics.
    #   @return [Types::MetricsSource]
    #
    # @!attribute [rw] constraints
    #   The drift check model data quality constraints.
    #   @return [Types::MetricsSource]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DriftCheckModelDataQuality AWS API Documentation
    #
    class DriftCheckModelDataQuality < Struct.new(
      :statistics,
      :constraints)
      SENSITIVE = []
      include Aws::Structure
    end

    # Represents the drift check model quality baselines that can be used
    # when the model monitor is set using the model package.
    #
    # @!attribute [rw] statistics
    #   The drift check model quality statistics.
    #   @return [Types::MetricsSource]
    #
    # @!attribute [rw] constraints
    #   The drift check model quality constraints.
    #   @return [Types::MetricsSource]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DriftCheckModelQuality AWS API Documentation
    #
    class DriftCheckModelQuality < Struct.new(
      :statistics,
      :constraints)
      SENSITIVE = []
      include Aws::Structure
    end

    # An object with the recommended values for you to specify when creating
    # an autoscaling policy.
    #
    # @!attribute [rw] min_capacity
    #   The recommended minimum capacity to specify for your autoscaling
    #   policy.
    #   @return [Integer]
    #
    # @!attribute [rw] max_capacity
    #   The recommended maximum capacity to specify for your autoscaling
    #   policy.
    #   @return [Integer]
    #
    # @!attribute [rw] scale_in_cooldown
    #   The recommended scale in cooldown time for your autoscaling policy.
    #   @return [Integer]
    #
    # @!attribute [rw] scale_out_cooldown
    #   The recommended scale out cooldown time for your autoscaling policy.
    #   @return [Integer]
    #
    # @!attribute [rw] scaling_policies
    #   An object of the scaling policies for each metric.
    #   @return [Array<Types::ScalingPolicy>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DynamicScalingConfiguration AWS API Documentation
    #
    class DynamicScalingConfiguration < Struct.new(
      :min_capacity,
      :max_capacity,
      :scale_in_cooldown,
      :scale_out_cooldown,
      :scaling_policies)
      SENSITIVE = []
      include Aws::Structure
    end

    # A file system, created by you in Amazon EFS, that you assign to a user
    # profile or space for an Amazon SageMaker AI Domain. Permitted users
    # can access this file system in Amazon SageMaker AI Studio.
    #
    # @!attribute [rw] file_system_id
    #   The ID of your Amazon EFS file system.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/EFSFileSystem AWS API Documentation
    #
    class EFSFileSystem < Struct.new(
      :file_system_id)
      SENSITIVE = []
      include Aws::Structure
    end

    # The settings for assigning a custom Amazon EFS file system to a user
    # profile or space for an Amazon SageMaker AI Domain.
    #
    # @!attribute [rw] file_system_id
    #   The ID of your Amazon EFS file system.
    #   @return [String]
    #
    # @!attribute [rw] file_system_path
    #   The path to the file system directory that is accessible in Amazon
    #   SageMaker AI Studio. Permitted users can access only this directory
    #   and below.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/EFSFileSystemConfig AWS API Documentation
    #
    class EFSFileSystemConfig < Struct.new(
      :file_system_id,
      :file_system_path)
      SENSITIVE = []
      include Aws::Structure
    end

    # The configurations and outcomes of an Amazon EMR step execution.
    #
    # @!attribute [rw] cluster_id
    #   The identifier of the EMR cluster.
    #   @return [String]
    #
    # @!attribute [rw] step_id
    #   The identifier of the EMR cluster step.
    #   @return [String]
    #
    # @!attribute [rw] step_name
    #   The name of the EMR cluster step.
    #   @return [String]
    #
    # @!attribute [rw] log_file_path
    #   The path to the log file where the cluster step's failure root
    #   cause is recorded.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/EMRStepMetadata AWS API Documentation
    #
    class EMRStepMetadata < Struct.new(
      :cluster_id,
      :step_id,
      :step_name,
      :log_file_path)
      SENSITIVE = []
      include Aws::Structure
    end

    # A collection of EBS storage settings that apply to both private and
    # shared spaces.
    #
    # @!attribute [rw] ebs_volume_size_in_gb
    #   The size of an EBS storage volume for a space.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/EbsStorageSettings AWS API Documentation
    #
    class EbsStorageSettings < Struct.new(
      :ebs_volume_size_in_gb)
      SENSITIVE = []
      include Aws::Structure
    end

    # The EC2 capacity reservations that are shared to an ML capacity
    # reservation.
    #
    # @!attribute [rw] ec2_capacity_reservation_id
    #   The unique identifier for an EC2 capacity reservation that's part
    #   of the ML capacity reservation.
    #   @return [String]
    #
    # @!attribute [rw] total_instance_count
    #   The number of instances that you allocated to the EC2 capacity
    #   reservation.
    #   @return [Integer]
    #
    # @!attribute [rw] available_instance_count
    #   The number of instances that are currently available in the EC2
    #   capacity reservation.
    #   @return [Integer]
    #
    # @!attribute [rw] used_by_current_endpoint
    #   The number of instances from the EC2 capacity reservation that are
    #   being used by the endpoint.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/Ec2CapacityReservation AWS API Documentation
    #
    class Ec2CapacityReservation < Struct.new(
      :ec2_capacity_reservation_id,
      :total_instance_count,
      :available_instance_count,
      :used_by_current_endpoint)
      SENSITIVE = []
      include Aws::Structure
    end

    # A directed edge connecting two lineage entities.
    #
    # @!attribute [rw] source_arn
    #   The Amazon Resource Name (ARN) of the source lineage entity of the
    #   directed edge.
    #   @return [String]
    #
    # @!attribute [rw] destination_arn
    #   The Amazon Resource Name (ARN) of the destination lineage entity of
    #   the directed edge.
    #   @return [String]
    #
    # @!attribute [rw] association_type
    #   The type of the Association(Edge) between the source and
    #   destination. For example `ContributedTo`, `Produced`, or
    #   `DerivedFrom`.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/Edge AWS API Documentation
    #
    class Edge < Struct.new(
      :source_arn,
      :destination_arn,
      :association_type)
      SENSITIVE = []
      include Aws::Structure
    end

    # Contains information about the configuration of a deployment.
    #
    # @!attribute [rw] failure_handling_policy
    #   Toggle that determines whether to rollback to previous configuration
    #   if the current deployment fails. By default this is turned on. You
    #   may turn this off if you want to investigate the errors yourself.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/EdgeDeploymentConfig AWS API Documentation
    #
    class EdgeDeploymentConfig < Struct.new(
      :failure_handling_policy)
      SENSITIVE = []
      include Aws::Structure
    end

    # Contains information about the configuration of a model in a
    # deployment.
    #
    # @!attribute [rw] model_handle
    #   The name the device application uses to reference this model.
    #   @return [String]
    #
    # @!attribute [rw] edge_packaging_job_name
    #   The edge packaging job associated with this deployment.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/EdgeDeploymentModelConfig AWS API Documentation
    #
    class EdgeDeploymentModelConfig < Struct.new(
      :model_handle,
      :edge_packaging_job_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # Contains information summarizing an edge deployment plan.
    #
    # @!attribute [rw] edge_deployment_plan_arn
    #   The ARN of the edge deployment plan.
    #   @return [String]
    #
    # @!attribute [rw] edge_deployment_plan_name
    #   The name of the edge deployment plan.
    #   @return [String]
    #
    # @!attribute [rw] device_fleet_name
    #   The name of the device fleet used for the deployment.
    #   @return [String]
    #
    # @!attribute [rw] edge_deployment_success
    #   The number of edge devices with the successful deployment.
    #   @return [Integer]
    #
    # @!attribute [rw] edge_deployment_pending
    #   The number of edge devices yet to pick up the deployment, or in
    #   progress.
    #   @return [Integer]
    #
    # @!attribute [rw] edge_deployment_failed
    #   The number of edge devices that failed the deployment.
    #   @return [Integer]
    #
    # @!attribute [rw] creation_time
    #   The time when the edge deployment plan was created.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time
    #   The time when the edge deployment plan was last updated.
    #   @return [Time]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/EdgeDeploymentPlanSummary AWS API Documentation
    #
    class EdgeDeploymentPlanSummary < Struct.new(
      :edge_deployment_plan_arn,
      :edge_deployment_plan_name,
      :device_fleet_name,
      :edge_deployment_success,
      :edge_deployment_pending,
      :edge_deployment_failed,
      :creation_time,
      :last_modified_time)
      SENSITIVE = []
      include Aws::Structure
    end

    # Contains information summarizing the deployment stage results.
    #
    # @!attribute [rw] stage_status
    #   The general status of the current stage.
    #   @return [String]
    #
    # @!attribute [rw] edge_deployment_success_in_stage
    #   The number of edge devices with the successful deployment in the
    #   current stage.
    #   @return [Integer]
    #
    # @!attribute [rw] edge_deployment_pending_in_stage
    #   The number of edge devices yet to pick up the deployment in current
    #   stage, or in progress.
    #   @return [Integer]
    #
    # @!attribute [rw] edge_deployment_failed_in_stage
    #   The number of edge devices that failed the deployment in current
    #   stage.
    #   @return [Integer]
    #
    # @!attribute [rw] edge_deployment_status_message
    #   A detailed message about deployment status in current stage.
    #   @return [String]
    #
    # @!attribute [rw] edge_deployment_stage_start_time
    #   The time when the deployment API started.
    #   @return [Time]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/EdgeDeploymentStatus AWS API Documentation
    #
    class EdgeDeploymentStatus < Struct.new(
      :stage_status,
      :edge_deployment_success_in_stage,
      :edge_deployment_pending_in_stage,
      :edge_deployment_failed_in_stage,
      :edge_deployment_status_message,
      :edge_deployment_stage_start_time)
      SENSITIVE = []
      include Aws::Structure
    end

    # The model on the edge device.
    #
    # @!attribute [rw] model_name
    #   The name of the model.
    #   @return [String]
    #
    # @!attribute [rw] model_version
    #   The model version.
    #   @return [String]
    #
    # @!attribute [rw] latest_sample_time
    #   The timestamp of the last data sample taken.
    #   @return [Time]
    #
    # @!attribute [rw] latest_inference
    #   The timestamp of the last inference that was made.
    #   @return [Time]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/EdgeModel AWS API Documentation
    #
    class EdgeModel < Struct.new(
      :model_name,
      :model_version,
      :latest_sample_time,
      :latest_inference)
      SENSITIVE = []
      include Aws::Structure
    end

    # Status of edge devices with this model.
    #
    # @!attribute [rw] model_name
    #   The name of the model.
    #   @return [String]
    #
    # @!attribute [rw] model_version
    #   The model version.
    #   @return [String]
    #
    # @!attribute [rw] offline_device_count
    #   The number of devices that have this model version and do not have a
    #   heart beat.
    #   @return [Integer]
    #
    # @!attribute [rw] connected_device_count
    #   The number of devices that have this model version and have a heart
    #   beat.
    #   @return [Integer]
    #
    # @!attribute [rw] active_device_count
    #   The number of devices that have this model version, a heart beat,
    #   and are currently running.
    #   @return [Integer]
    #
    # @!attribute [rw] sampling_device_count
    #   The number of devices with this model version and are producing
    #   sample data.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/EdgeModelStat AWS API Documentation
    #
    class EdgeModelStat < Struct.new(
      :model_name,
      :model_version,
      :offline_device_count,
      :connected_device_count,
      :active_device_count,
      :sampling_device_count)
      SENSITIVE = []
      include Aws::Structure
    end

    # Summary of model on edge device.
    #
    # @!attribute [rw] model_name
    #   The name of the model.
    #   @return [String]
    #
    # @!attribute [rw] model_version
    #   The version model.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/EdgeModelSummary AWS API Documentation
    #
    class EdgeModelSummary < Struct.new(
      :model_name,
      :model_version)
      SENSITIVE = []
      include Aws::Structure
    end

    # The output configuration.
    #
    # @!attribute [rw] s3_output_location
    #   The Amazon Simple Storage (S3) bucker URI.
    #   @return [String]
    #
    # @!attribute [rw] kms_key_id
    #   The Amazon Web Services Key Management Service (Amazon Web Services
    #   KMS) key that Amazon SageMaker uses to encrypt data on the storage
    #   volume after compilation job. If you don't provide a KMS key ID,
    #   Amazon SageMaker uses the default KMS key for Amazon S3 for your
    #   role's account.
    #   @return [String]
    #
    # @!attribute [rw] preset_deployment_type
    #   The deployment type SageMaker Edge Manager will create. Currently
    #   only supports Amazon Web Services IoT Greengrass Version 2
    #   components.
    #   @return [String]
    #
    # @!attribute [rw] preset_deployment_config
    #   The configuration used to create deployment artifacts. Specify
    #   configuration options with a JSON string. The available
    #   configuration options for each type are:
    #
    #   * `ComponentName` (optional) - Name of the GreenGrass V2 component.
    #     If not specified, the default name generated consists of
    #     "SagemakerEdgeManager" and the name of your SageMaker Edge
    #     Manager packaging job.
    #
    #   * `ComponentDescription` (optional) - Description of the component.
    #
    #   * `ComponentVersion` (optional) - The version of the component.
    #
    #     <note markdown="1"> Amazon Web Services IoT Greengrass uses semantic versions for
    #     components. Semantic versions follow a<i> major.minor.patch</i>
    #     number system. For example, version 1.0.0 represents the first
    #     major release for a component. For more information, see the
    #     [semantic version specification][1].
    #
    #      </note>
    #
    #   * `PlatformOS` (optional) - The name of the operating system for the
    #     platform. Supported platforms include Windows and Linux.
    #
    #   * `PlatformArchitecture` (optional) - The processor architecture for
    #     the platform.
    #
    #     Supported architectures Windows include: Windows32\_x86,
    #     Windows64\_x64.
    #
    #     Supported architectures for Linux include: Linux x86\_64, Linux
    #     ARMV8.
    #
    #
    #
    #   [1]: https://semver.org/
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/EdgeOutputConfig AWS API Documentation
    #
    class EdgeOutputConfig < Struct.new(
      :s3_output_location,
      :kms_key_id,
      :preset_deployment_type,
      :preset_deployment_config)
      SENSITIVE = []
      include Aws::Structure
    end

    # Summary of edge packaging job.
    #
    # @!attribute [rw] edge_packaging_job_arn
    #   The Amazon Resource Name (ARN) of the edge packaging job.
    #   @return [String]
    #
    # @!attribute [rw] edge_packaging_job_name
    #   The name of the edge packaging job.
    #   @return [String]
    #
    # @!attribute [rw] edge_packaging_job_status
    #   The status of the edge packaging job.
    #   @return [String]
    #
    # @!attribute [rw] compilation_job_name
    #   The name of the SageMaker Neo compilation job.
    #   @return [String]
    #
    # @!attribute [rw] model_name
    #   The name of the model.
    #   @return [String]
    #
    # @!attribute [rw] model_version
    #   The version of the model.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   The timestamp of when the job was created.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time
    #   The timestamp of when the edge packaging job was last updated.
    #   @return [Time]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/EdgePackagingJobSummary AWS API Documentation
    #
    class EdgePackagingJobSummary < Struct.new(
      :edge_packaging_job_arn,
      :edge_packaging_job_name,
      :edge_packaging_job_status,
      :compilation_job_name,
      :model_name,
      :model_version,
      :creation_time,
      :last_modified_time)
      SENSITIVE = []
      include Aws::Structure
    end

    # The output of a SageMaker Edge Manager deployable resource.
    #
    # @!attribute [rw] type
    #   The deployment type created by SageMaker Edge Manager. Currently
    #   only supports Amazon Web Services IoT Greengrass Version 2
    #   components.
    #   @return [String]
    #
    # @!attribute [rw] artifact
    #   The Amazon Resource Name (ARN) of the generated deployable resource.
    #   @return [String]
    #
    # @!attribute [rw] status
    #   The status of the deployable resource.
    #   @return [String]
    #
    # @!attribute [rw] status_message
    #   Returns a message describing the status of the deployed resource.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/EdgePresetDeploymentOutput AWS API Documentation
    #
    class EdgePresetDeploymentOutput < Struct.new(
      :type,
      :artifact,
      :status,
      :status_message)
      SENSITIVE = []
      include Aws::Structure
    end

    # <note markdown="1"> This data type is intended for use exclusively by
    # SageMaker Canvas and
    # cannot be used in other contexts at the moment.
    #
    #  </note>
    #
    #  Specifies the compute configuration for the EMR Serverless job.
    #
    # @!attribute [rw] execution_role_arn
    #   The ARN of the IAM role granting the AutoML job V2 the necessary
    #   permissions access policies to list, connect to, or manage EMR
    #   Serverless jobs. For detailed information about the required
    #   permissions of this role, see "How to configure AutoML to initiate
    #   a remote job on EMR Serverless for large datasets" in [Create a
    #   regression or classification job for tabular data using the AutoML
    #   API][1] or [Create an AutoML job for time-series forecasting using
    #   the API][2].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-automate-model-development-create-experiment.html
    #   [2]: https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-create-experiment-timeseries-forecasting.html#timeseries-forecasting-api-optional-params
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/EmrServerlessComputeConfig AWS API Documentation
    #
    class EmrServerlessComputeConfig < Struct.new(
      :execution_role_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # The settings for running Amazon EMR Serverless jobs in SageMaker
    # Canvas.
    #
    # @!attribute [rw] execution_role_arn
    #   The Amazon Resource Name (ARN) of the Amazon Web Services IAM role
    #   that is assumed for running Amazon EMR Serverless jobs in SageMaker
    #   Canvas. This role should have the necessary permissions to read and
    #   write data attached and a trust relationship with EMR Serverless.
    #   @return [String]
    #
    # @!attribute [rw] status
    #   Describes whether Amazon EMR Serverless job capabilities are enabled
    #   or disabled in the SageMaker Canvas application.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/EmrServerlessSettings AWS API Documentation
    #
    class EmrServerlessSettings < Struct.new(
      :execution_role_arn,
      :status)
      SENSITIVE = []
      include Aws::Structure
    end

    # The configuration parameters that specify the IAM roles assumed by the
    # execution role of SageMaker (assumable roles) and the cluster
    # instances or job execution environments (execution roles or runtime
    # roles) to manage and access resources required for running Amazon EMR
    # clusters or Amazon EMR Serverless applications.
    #
    # @!attribute [rw] assumable_role_arns
    #   An array of Amazon Resource Names (ARNs) of the IAM roles that the
    #   execution role of SageMaker can assume for performing operations or
    #   tasks related to Amazon EMR clusters or Amazon EMR Serverless
    #   applications. These roles define the permissions and access policies
    #   required when performing Amazon EMR-related operations, such as
    #   listing, connecting to, or terminating Amazon EMR clusters or Amazon
    #   EMR Serverless applications. They are typically used in
    #   cross-account access scenarios, where the Amazon EMR resources
    #   (clusters or serverless applications) are located in a different
    #   Amazon Web Services account than the SageMaker domain.
    #   @return [Array<String>]
    #
    # @!attribute [rw] execution_role_arns
    #   An array of Amazon Resource Names (ARNs) of the IAM roles used by
    #   the Amazon EMR cluster instances or job execution environments to
    #   access other Amazon Web Services services and resources needed
    #   during the runtime of your Amazon EMR or Amazon EMR Serverless
    #   workloads, such as Amazon S3 for data access, Amazon CloudWatch for
    #   logging, or other Amazon Web Services services based on the
    #   particular workload requirements.
    #   @return [Array<String>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/EmrSettings AWS API Documentation
    #
    class EmrSettings < Struct.new(
      :assumable_role_arns,
      :execution_role_arns)
      SENSITIVE = []
      include Aws::Structure
    end

    # @api private
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/EnableSagemakerServicecatalogPortfolioInput AWS API Documentation
    #
    class EnableSagemakerServicecatalogPortfolioInput < Aws::EmptyStructure; end

    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/EnableSagemakerServicecatalogPortfolioOutput AWS API Documentation
    #
    class EnableSagemakerServicecatalogPortfolioOutput < Aws::EmptyStructure; end

    # A hosted endpoint for real-time inference.
    #
    # @!attribute [rw] endpoint_name
    #   The name of the endpoint.
    #   @return [String]
    #
    # @!attribute [rw] endpoint_arn
    #   The Amazon Resource Name (ARN) of the endpoint.
    #   @return [String]
    #
    # @!attribute [rw] endpoint_config_name
    #   The endpoint configuration associated with the endpoint.
    #   @return [String]
    #
    # @!attribute [rw] production_variants
    #   A list of the production variants hosted on the endpoint. Each
    #   production variant is a model.
    #   @return [Array<Types::ProductionVariantSummary>]
    #
    # @!attribute [rw] data_capture_config
    #   The currently active data capture configuration used by your
    #   Endpoint.
    #   @return [Types::DataCaptureConfigSummary]
    #
    # @!attribute [rw] endpoint_status
    #   The status of the endpoint.
    #   @return [String]
    #
    # @!attribute [rw] failure_reason
    #   If the endpoint failed, the reason it failed.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   The time that the endpoint was created.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time
    #   The last time the endpoint was modified.
    #   @return [Time]
    #
    # @!attribute [rw] monitoring_schedules
    #   A list of monitoring schedules for the endpoint. For information
    #   about model monitoring, see [Amazon SageMaker Model Monitor][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/model-monitor.html
    #   @return [Array<Types::MonitoringSchedule>]
    #
    # @!attribute [rw] tags
    #   A list of the tags associated with the endpoint. For more
    #   information, see [Tagging Amazon Web Services resources][1] in the
    #   *Amazon Web Services General Reference Guide*.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html
    #   @return [Array<Types::Tag>]
    #
    # @!attribute [rw] shadow_production_variants
    #   A list of the shadow variants hosted on the endpoint. Each shadow
    #   variant is a model in shadow mode with production traffic replicated
    #   from the production variant.
    #   @return [Array<Types::ProductionVariantSummary>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/Endpoint AWS API Documentation
    #
    class Endpoint < Struct.new(
      :endpoint_name,
      :endpoint_arn,
      :endpoint_config_name,
      :production_variants,
      :data_capture_config,
      :endpoint_status,
      :failure_reason,
      :creation_time,
      :last_modified_time,
      :monitoring_schedules,
      :tags,
      :shadow_production_variants)
      SENSITIVE = []
      include Aws::Structure
    end

    # Metadata for an endpoint configuration step.
    #
    # @!attribute [rw] arn
    #   The Amazon Resource Name (ARN) of the endpoint configuration used in
    #   the step.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/EndpointConfigStepMetadata AWS API Documentation
    #
    class EndpointConfigStepMetadata < Struct.new(
      :arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # Provides summary information for an endpoint configuration.
    #
    # @!attribute [rw] endpoint_config_name
    #   The name of the endpoint configuration.
    #   @return [String]
    #
    # @!attribute [rw] endpoint_config_arn
    #   The Amazon Resource Name (ARN) of the endpoint configuration.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   A timestamp that shows when the endpoint configuration was created.
    #   @return [Time]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/EndpointConfigSummary AWS API Documentation
    #
    class EndpointConfigSummary < Struct.new(
      :endpoint_config_name,
      :endpoint_config_arn,
      :creation_time)
      SENSITIVE = []
      include Aws::Structure
    end

    # Details about a customer endpoint that was compared in an Inference
    # Recommender job.
    #
    # @!attribute [rw] endpoint_name
    #   The name of a customer's endpoint.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/EndpointInfo AWS API Documentation
    #
    class EndpointInfo < Struct.new(
      :endpoint_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # Input object for the endpoint
    #
    # @!attribute [rw] endpoint_name
    #   An endpoint in customer's account which has enabled
    #   `DataCaptureConfig` enabled.
    #   @return [String]
    #
    # @!attribute [rw] local_path
    #   Path to the filesystem where the endpoint data is available to the
    #   container.
    #   @return [String]
    #
    # @!attribute [rw] s3_input_mode
    #   Whether the `Pipe` or `File` is used as the input mode for
    #   transferring data for the monitoring job. `Pipe` mode is recommended
    #   for large datasets. `File` mode is useful for small files that fit
    #   in memory. Defaults to `File`.
    #   @return [String]
    #
    # @!attribute [rw] s3_data_distribution_type
    #   Whether input data distributed in Amazon S3 is fully replicated or
    #   sharded by an Amazon S3 key. Defaults to `FullyReplicated`
    #   @return [String]
    #
    # @!attribute [rw] features_attribute
    #   The attributes of the input data that are the input features.
    #   @return [String]
    #
    # @!attribute [rw] inference_attribute
    #   The attribute of the input data that represents the ground truth
    #   label.
    #   @return [String]
    #
    # @!attribute [rw] probability_attribute
    #   In a classification problem, the attribute that represents the class
    #   probability.
    #   @return [String]
    #
    # @!attribute [rw] probability_threshold_attribute
    #   The threshold for the class probability to be evaluated as a
    #   positive result.
    #   @return [Float]
    #
    # @!attribute [rw] start_time_offset
    #   If specified, monitoring jobs substract this time from the start
    #   time. For information about using offsets for scheduling monitoring
    #   jobs, see [Schedule Model Quality Monitoring Jobs][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/model-monitor-model-quality-schedule.html
    #   @return [String]
    #
    # @!attribute [rw] end_time_offset
    #   If specified, monitoring jobs substract this time from the end time.
    #   For information about using offsets for scheduling monitoring jobs,
    #   see [Schedule Model Quality Monitoring Jobs][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/model-monitor-model-quality-schedule.html
    #   @return [String]
    #
    # @!attribute [rw] exclude_features_attribute
    #   The attributes of the input data to exclude from the analysis.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/EndpointInput AWS API Documentation
    #
    class EndpointInput < Struct.new(
      :endpoint_name,
      :local_path,
      :s3_input_mode,
      :s3_data_distribution_type,
      :features_attribute,
      :inference_attribute,
      :probability_attribute,
      :probability_threshold_attribute,
      :start_time_offset,
      :end_time_offset,
      :exclude_features_attribute)
      SENSITIVE = []
      include Aws::Structure
    end

    # The endpoint configuration for the load test.
    #
    # @!attribute [rw] instance_type
    #   The instance types to use for the load test.
    #   @return [String]
    #
    # @!attribute [rw] serverless_config
    #   Specifies the serverless configuration for an endpoint variant.
    #   @return [Types::ProductionVariantServerlessConfig]
    #
    # @!attribute [rw] inference_specification_name
    #   The inference specification name in the model package version.
    #   @return [String]
    #
    # @!attribute [rw] environment_parameter_ranges
    #   The parameter you want to benchmark against.
    #   @return [Types::EnvironmentParameterRanges]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/EndpointInputConfiguration AWS API Documentation
    #
    class EndpointInputConfiguration < Struct.new(
      :instance_type,
      :serverless_config,
      :inference_specification_name,
      :environment_parameter_ranges)
      SENSITIVE = []
      include Aws::Structure
    end

    # The metadata of the endpoint.
    #
    # @!attribute [rw] endpoint_name
    #   The name of the endpoint.
    #   @return [String]
    #
    # @!attribute [rw] endpoint_config_name
    #   The name of the endpoint configuration.
    #   @return [String]
    #
    # @!attribute [rw] endpoint_status
    #   The status of the endpoint. For possible values of the status of an
    #   endpoint, see [EndpointSummary][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_EndpointSummary.html
    #   @return [String]
    #
    # @!attribute [rw] failure_reason
    #   If the status of the endpoint is `Failed`, or the status is
    #   `InService` but update operation fails, this provides the reason why
    #   it failed.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/EndpointMetadata AWS API Documentation
    #
    class EndpointMetadata < Struct.new(
      :endpoint_name,
      :endpoint_config_name,
      :endpoint_status,
      :failure_reason)
      SENSITIVE = []
      include Aws::Structure
    end

    # The endpoint configuration made by Inference Recommender during a
    # recommendation job.
    #
    # @!attribute [rw] endpoint_name
    #   The name of the endpoint made during a recommendation job.
    #   @return [String]
    #
    # @!attribute [rw] variant_name
    #   The name of the production variant (deployed model) made during a
    #   recommendation job.
    #   @return [String]
    #
    # @!attribute [rw] instance_type
    #   The instance type recommended by Amazon SageMaker Inference
    #   Recommender.
    #   @return [String]
    #
    # @!attribute [rw] initial_instance_count
    #   The number of instances recommended to launch initially.
    #   @return [Integer]
    #
    # @!attribute [rw] serverless_config
    #   Specifies the serverless configuration for an endpoint variant.
    #   @return [Types::ProductionVariantServerlessConfig]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/EndpointOutputConfiguration AWS API Documentation
    #
    class EndpointOutputConfiguration < Struct.new(
      :endpoint_name,
      :variant_name,
      :instance_type,
      :initial_instance_count,
      :serverless_config)
      SENSITIVE = []
      include Aws::Structure
    end

    # The performance results from running an Inference Recommender job on
    # an existing endpoint.
    #
    # @!attribute [rw] metrics
    #   The metrics for an existing endpoint.
    #   @return [Types::InferenceMetrics]
    #
    # @!attribute [rw] endpoint_info
    #   Details about a customer endpoint that was compared in an Inference
    #   Recommender job.
    #   @return [Types::EndpointInfo]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/EndpointPerformance AWS API Documentation
    #
    class EndpointPerformance < Struct.new(
      :metrics,
      :endpoint_info)
      SENSITIVE = []
      include Aws::Structure
    end

    # Metadata for an endpoint step.
    #
    # @!attribute [rw] arn
    #   The Amazon Resource Name (ARN) of the endpoint in the step.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/EndpointStepMetadata AWS API Documentation
    #
    class EndpointStepMetadata < Struct.new(
      :arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # Provides summary information for an endpoint.
    #
    # @!attribute [rw] endpoint_name
    #   The name of the endpoint.
    #   @return [String]
    #
    # @!attribute [rw] endpoint_arn
    #   The Amazon Resource Name (ARN) of the endpoint.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   A timestamp that shows when the endpoint was created.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time
    #   A timestamp that shows when the endpoint was last modified.
    #   @return [Time]
    #
    # @!attribute [rw] endpoint_status
    #   The status of the endpoint.
    #
    #   * `OutOfService`: Endpoint is not available to take incoming
    #     requests.
    #
    #   * `Creating`: [CreateEndpoint][1] is executing.
    #
    #   * `Updating`: [UpdateEndpoint][2] or
    #     [UpdateEndpointWeightsAndCapacities][3] is executing.
    #
    #   * `SystemUpdating`: Endpoint is undergoing maintenance and cannot be
    #     updated or deleted or re-scaled until it has completed. This
    #     maintenance operation does not change any customer-specified
    #     values such as VPC config, KMS encryption, model, instance type,
    #     or instance count.
    #
    #   * `RollingBack`: Endpoint fails to scale up or down or change its
    #     variant weight and is in the process of rolling back to its
    #     previous configuration. Once the rollback completes, endpoint
    #     returns to an `InService` status. This transitional status only
    #     applies to an endpoint that has autoscaling enabled and is
    #     undergoing variant weight or capacity changes as part of an
    #     [UpdateEndpointWeightsAndCapacities][3] call or when the
    #     [UpdateEndpointWeightsAndCapacities][3] operation is called
    #     explicitly.
    #
    #   * `InService`: Endpoint is available to process incoming requests.
    #
    #   * `Deleting`: [DeleteEndpoint][4] is executing.
    #
    #   * `Failed`: Endpoint could not be created, updated, or re-scaled.
    #     Use `DescribeEndpointOutput$FailureReason` for information about
    #     the failure. [DeleteEndpoint][4] is the only operation that can be
    #     performed on a failed endpoint.
    #
    #   To get a list of endpoints with a specified status, use the
    #   `StatusEquals` filter with a call to [ListEndpoints][5].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpoint.html
    #   [2]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateEndpoint.html
    #   [3]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateEndpointWeightsAndCapacities.html
    #   [4]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DeleteEndpoint.html
    #   [5]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ListEndpoints.html
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/EndpointSummary AWS API Documentation
    #
    class EndpointSummary < Struct.new(
      :endpoint_name,
      :endpoint_arn,
      :creation_time,
      :last_modified_time,
      :endpoint_status)
      SENSITIVE = []
      include Aws::Structure
    end

    # The configuration for the restricted instance groups (RIG)
    # environment.
    #
    # @!attribute [rw] f_sx_lustre_config
    #   Configuration settings for an Amazon FSx for Lustre file system to
    #   be used with the cluster.
    #   @return [Types::FSxLustreConfig]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/EnvironmentConfig AWS API Documentation
    #
    class EnvironmentConfig < Struct.new(
      :f_sx_lustre_config)
      SENSITIVE = []
      include Aws::Structure
    end

    # The configuration details for the restricted instance groups (RIG)
    # environment.
    #
    # @!attribute [rw] f_sx_lustre_config
    #   Configuration settings for an Amazon FSx for Lustre file system to
    #   be used with the cluster.
    #   @return [Types::FSxLustreConfig]
    #
    # @!attribute [rw] s3_output_path
    #   The Amazon S3 path where output data from the restricted instance
    #   group (RIG) environment will be stored.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/EnvironmentConfigDetails AWS API Documentation
    #
    class EnvironmentConfigDetails < Struct.new(
      :f_sx_lustre_config,
      :s3_output_path)
      SENSITIVE = []
      include Aws::Structure
    end

    # A list of environment parameters suggested by the Amazon SageMaker
    # Inference Recommender.
    #
    # @!attribute [rw] key
    #   The environment key suggested by the Amazon SageMaker Inference
    #   Recommender.
    #   @return [String]
    #
    # @!attribute [rw] value_type
    #   The value type suggested by the Amazon SageMaker Inference
    #   Recommender.
    #   @return [String]
    #
    # @!attribute [rw] value
    #   The value suggested by the Amazon SageMaker Inference Recommender.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/EnvironmentParameter AWS API Documentation
    #
    class EnvironmentParameter < Struct.new(
      :key,
      :value_type,
      :value)
      SENSITIVE = []
      include Aws::Structure
    end

    # Specifies the range of environment parameters
    #
    # @!attribute [rw] categorical_parameter_ranges
    #   Specified a list of parameters for each category.
    #   @return [Array<Types::CategoricalParameter>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/EnvironmentParameterRanges AWS API Documentation
    #
    class EnvironmentParameterRanges < Struct.new(
      :categorical_parameter_ranges)
      SENSITIVE = []
      include Aws::Structure
    end

    # This is an error field object that contains the error code and the
    # reason for an operation failure.
    #
    # @!attribute [rw] code
    #   The error code for an invalid or failed operation.
    #   @return [String]
    #
    # @!attribute [rw] reason
    #   The failure reason for the operation.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ErrorInfo AWS API Documentation
    #
    class ErrorInfo < Struct.new(
      :code,
      :reason)
      SENSITIVE = []
      include Aws::Structure
    end

    # Detailed information about a specific event, including event metadata.
    #
    # @!attribute [rw] event_metadata
    #   Metadata specific to the event, which may include information about
    #   the cluster, instance group, or instance involved.
    #   @return [Types::EventMetadata]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/EventDetails AWS API Documentation
    #
    class EventDetails < Struct.new(
      :event_metadata)
      SENSITIVE = []
      include Aws::Structure
    end

    # Metadata associated with a cluster event, which may include details
    # about various resource types.
    #
    # @note EventMetadata is a union - when returned from an API call exactly one value will be set and the returned type will be a subclass of EventMetadata corresponding to the set member.
    #
    # @!attribute [rw] cluster
    #   Metadata specific to cluster-level events.
    #   @return [Types::ClusterMetadata]
    #
    # @!attribute [rw] instance_group
    #   Metadata specific to instance group-level events.
    #   @return [Types::InstanceGroupMetadata]
    #
    # @!attribute [rw] instance_group_scaling
    #   Metadata related to instance group scaling events.
    #   @return [Types::InstanceGroupScalingMetadata]
    #
    # @!attribute [rw] instance
    #   Metadata specific to instance-level events.
    #   @return [Types::InstanceMetadata]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/EventMetadata AWS API Documentation
    #
    class EventMetadata < Struct.new(
      :cluster,
      :instance_group,
      :instance_group_scaling,
      :instance,
      :unknown)
      SENSITIVE = []
      include Aws::Structure
      include Aws::Structure::Union

      class Cluster < EventMetadata; end
      class InstanceGroup < EventMetadata; end
      class InstanceGroupScaling < EventMetadata; end
      class Instance < EventMetadata; end
      class Unknown < EventMetadata; end
    end

    # The properties of an experiment as returned by the [Search][1] API.
    # For information about experiments, see the [CreateExperiment][2] API.
    #
    #
    #
    # [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_Search.html
    # [2]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateExperiment.html
    #
    # @!attribute [rw] experiment_name
    #   The name of the experiment.
    #   @return [String]
    #
    # @!attribute [rw] experiment_arn
    #   The Amazon Resource Name (ARN) of the experiment.
    #   @return [String]
    #
    # @!attribute [rw] display_name
    #   The name of the experiment as displayed. If `DisplayName` isn't
    #   specified, `ExperimentName` is displayed.
    #   @return [String]
    #
    # @!attribute [rw] source
    #   The source of the experiment.
    #   @return [Types::ExperimentSource]
    #
    # @!attribute [rw] description
    #   The description of the experiment.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   When the experiment was created.
    #   @return [Time]
    #
    # @!attribute [rw] created_by
    #   Who created the experiment.
    #   @return [Types::UserContext]
    #
    # @!attribute [rw] last_modified_time
    #   When the experiment was last modified.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_by
    #   Information about the user who created or modified a SageMaker
    #   resource.
    #   @return [Types::UserContext]
    #
    # @!attribute [rw] tags
    #   The list of tags that are associated with the experiment. You can
    #   use [Search][1] API to search on the tags.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_Search.html
    #   @return [Array<Types::Tag>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/Experiment AWS API Documentation
    #
    class Experiment < Struct.new(
      :experiment_name,
      :experiment_arn,
      :display_name,
      :source,
      :description,
      :creation_time,
      :created_by,
      :last_modified_time,
      :last_modified_by,
      :tags)
      SENSITIVE = []
      include Aws::Structure
    end

    # Associates a SageMaker job as a trial component with an experiment and
    # trial. Specified when you call the following APIs:
    #
    # * [CreateProcessingJob][1]
    #
    # * [CreateTrainingJob][2]
    #
    # * [CreateTransformJob][3]
    #
    #
    #
    # [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateProcessingJob.html
    # [2]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html
    # [3]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html
    #
    # @!attribute [rw] experiment_name
    #   The name of an existing experiment to associate with the trial
    #   component.
    #   @return [String]
    #
    # @!attribute [rw] trial_name
    #   The name of an existing trial to associate the trial component with.
    #   If not specified, a new trial is created.
    #   @return [String]
    #
    # @!attribute [rw] trial_component_display_name
    #   The display name for the trial component. If this key isn't
    #   specified, the display name is the trial component name.
    #   @return [String]
    #
    # @!attribute [rw] run_name
    #   The name of the experiment run to associate with the trial
    #   component.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ExperimentConfig AWS API Documentation
    #
    class ExperimentConfig < Struct.new(
      :experiment_name,
      :trial_name,
      :trial_component_display_name,
      :run_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # The source of the experiment.
    #
    # @!attribute [rw] source_arn
    #   The Amazon Resource Name (ARN) of the source.
    #   @return [String]
    #
    # @!attribute [rw] source_type
    #   The source type.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ExperimentSource AWS API Documentation
    #
    class ExperimentSource < Struct.new(
      :source_arn,
      :source_type)
      SENSITIVE = []
      include Aws::Structure
    end

    # A summary of the properties of an experiment. To get the complete set
    # of properties, call the [DescribeExperiment][1] API and provide the
    # `ExperimentName`.
    #
    #
    #
    # [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeExperiment.html
    #
    # @!attribute [rw] experiment_arn
    #   The Amazon Resource Name (ARN) of the experiment.
    #   @return [String]
    #
    # @!attribute [rw] experiment_name
    #   The name of the experiment.
    #   @return [String]
    #
    # @!attribute [rw] display_name
    #   The name of the experiment as displayed. If `DisplayName` isn't
    #   specified, `ExperimentName` is displayed.
    #   @return [String]
    #
    # @!attribute [rw] experiment_source
    #   The source of the experiment.
    #   @return [Types::ExperimentSource]
    #
    # @!attribute [rw] creation_time
    #   When the experiment was created.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time
    #   When the experiment was last modified.
    #   @return [Time]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ExperimentSummary AWS API Documentation
    #
    class ExperimentSummary < Struct.new(
      :experiment_arn,
      :experiment_name,
      :display_name,
      :experiment_source,
      :creation_time,
      :last_modified_time)
      SENSITIVE = []
      include Aws::Structure
    end

    # Contains explainability metrics for a model.
    #
    # @!attribute [rw] report
    #   The explainability report for a model.
    #   @return [Types::MetricsSource]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/Explainability AWS API Documentation
    #
    class Explainability < Struct.new(
      :report)
      SENSITIVE = []
      include Aws::Structure
    end

    # A parameter to activate explainers.
    #
    # @!attribute [rw] clarify_explainer_config
    #   A member of `ExplainerConfig` that contains configuration parameters
    #   for the SageMaker Clarify explainer.
    #   @return [Types::ClarifyExplainerConfig]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ExplainerConfig AWS API Documentation
    #
    class ExplainerConfig < Struct.new(
      :clarify_explainer_config)
      SENSITIVE = []
      include Aws::Structure
    end

    # Configuration settings for an Amazon FSx for Lustre file system to be
    # used with the cluster.
    #
    # @!attribute [rw] size_in_gi_b
    #   The storage capacity of the Amazon FSx for Lustre file system,
    #   specified in gibibytes (GiB).
    #   @return [Integer]
    #
    # @!attribute [rw] per_unit_storage_throughput
    #   The throughput capacity of the Amazon FSx for Lustre file system,
    #   measured in MB/s per TiB of storage.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/FSxLustreConfig AWS API Documentation
    #
    class FSxLustreConfig < Struct.new(
      :size_in_gi_b,
      :per_unit_storage_throughput)
      SENSITIVE = []
      include Aws::Structure
    end

    # A custom file system in Amazon FSx for Lustre.
    #
    # @!attribute [rw] file_system_id
    #   Amazon FSx for Lustre file system ID.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/FSxLustreFileSystem AWS API Documentation
    #
    class FSxLustreFileSystem < Struct.new(
      :file_system_id)
      SENSITIVE = []
      include Aws::Structure
    end

    # The settings for assigning a custom Amazon FSx for Lustre file system
    # to a user profile or space for an Amazon SageMaker Domain.
    #
    # @!attribute [rw] file_system_id
    #   The globally unique, 17-digit, ID of the file system, assigned by
    #   Amazon FSx for Lustre.
    #   @return [String]
    #
    # @!attribute [rw] file_system_path
    #   The path to the file system directory that is accessible in Amazon
    #   SageMaker Studio. Permitted users can access only this directory and
    #   below.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/FSxLustreFileSystemConfig AWS API Documentation
    #
    class FSxLustreFileSystemConfig < Struct.new(
      :file_system_id,
      :file_system_path)
      SENSITIVE = []
      include Aws::Structure
    end

    # The container for the metadata for Fail step.
    #
    # @!attribute [rw] error_message
    #   A message that you define and then is processed and rendered by the
    #   Fail step when the error occurs.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/FailStepMetadata AWS API Documentation
    #
    class FailStepMetadata < Struct.new(
      :error_message)
      SENSITIVE = []
      include Aws::Structure
    end

    # A list of features. You must include `FeatureName` and `FeatureType`.
    # Valid feature `FeatureType`s are `Integral`, `Fractional` and
    # `String`.
    #
    # @!attribute [rw] feature_name
    #   The name of a feature. The type must be a string. `FeatureName`
    #   cannot be any of the following: `is_deleted`, `write_time`,
    #   `api_invocation_time`.
    #
    #   The name:
    #
    #   * Must start with an alphanumeric character.
    #
    #   * Can only include alphanumeric characters, underscores, and
    #     hyphens. Spaces are not allowed.
    #   @return [String]
    #
    # @!attribute [rw] feature_type
    #   The value type of a feature. Valid values are Integral, Fractional,
    #   or String.
    #   @return [String]
    #
    # @!attribute [rw] collection_type
    #   A grouping of elements where each element within the collection must
    #   have the same feature type (`String`, `Integral`, or `Fractional`).
    #
    #   * `List`: An ordered collection of elements.
    #
    #   * `Set`: An unordered collection of unique elements.
    #
    #   * `Vector`: A specialized list that represents a fixed-size array of
    #     elements. The vector dimension is determined by you. Must have
    #     elements with fractional feature types.
    #   @return [String]
    #
    # @!attribute [rw] collection_config
    #   Configuration for your collection.
    #   @return [Types::CollectionConfig]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/FeatureDefinition AWS API Documentation
    #
    class FeatureDefinition < Struct.new(
      :feature_name,
      :feature_type,
      :collection_type,
      :collection_config)
      SENSITIVE = []
      include Aws::Structure
    end

    # Amazon SageMaker Feature Store stores features in a collection called
    # Feature Group. A Feature Group can be visualized as a table which has
    # rows, with a unique identifier for each row where each column in the
    # table is a feature. In principle, a Feature Group is composed of
    # features and values per features.
    #
    # @!attribute [rw] feature_group_arn
    #   The Amazon Resource Name (ARN) of a `FeatureGroup`.
    #   @return [String]
    #
    # @!attribute [rw] feature_group_name
    #   The name of the `FeatureGroup`.
    #   @return [String]
    #
    # @!attribute [rw] record_identifier_feature_name
    #   The name of the `Feature` whose value uniquely identifies a `Record`
    #   defined in the `FeatureGroup` `FeatureDefinitions`.
    #   @return [String]
    #
    # @!attribute [rw] event_time_feature_name
    #   The name of the feature that stores the `EventTime` of a Record in a
    #   `FeatureGroup`.
    #
    #   A `EventTime` is point in time when a new event occurs that
    #   corresponds to the creation or update of a `Record` in
    #   `FeatureGroup`. All `Records` in the `FeatureGroup` must have a
    #   corresponding `EventTime`.
    #   @return [String]
    #
    # @!attribute [rw] feature_definitions
    #   A list of `Feature`s. Each `Feature` must include a `FeatureName`
    #   and a `FeatureType`.
    #
    #   Valid `FeatureType`s are `Integral`, `Fractional` and `String`.
    #
    #   `FeatureName`s cannot be any of the following: `is_deleted`,
    #   `write_time`, `api_invocation_time`.
    #
    #   You can create up to 2,500 `FeatureDefinition`s per `FeatureGroup`.
    #   @return [Array<Types::FeatureDefinition>]
    #
    # @!attribute [rw] creation_time
    #   The time a `FeatureGroup` was created.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time
    #   A timestamp indicating the last time you updated the feature group.
    #   @return [Time]
    #
    # @!attribute [rw] online_store_config
    #   Use this to specify the Amazon Web Services Key Management Service
    #   (KMS) Key ID, or `KMSKeyId`, for at rest data encryption. You can
    #   turn `OnlineStore` on or off by specifying the `EnableOnlineStore`
    #   flag at General Assembly.
    #
    #   The default value is `False`.
    #   @return [Types::OnlineStoreConfig]
    #
    # @!attribute [rw] offline_store_config
    #   The configuration of an `OfflineStore`.
    #
    #   Provide an `OfflineStoreConfig` in a request to `CreateFeatureGroup`
    #   to create an `OfflineStore`.
    #
    #   To encrypt an `OfflineStore` using at rest data encryption, specify
    #   Amazon Web Services Key Management Service (KMS) key ID, or
    #   `KMSKeyId`, in `S3StorageConfig`.
    #   @return [Types::OfflineStoreConfig]
    #
    # @!attribute [rw] role_arn
    #   The Amazon Resource Name (ARN) of the IAM execution role used to
    #   create the feature group.
    #   @return [String]
    #
    # @!attribute [rw] feature_group_status
    #   A `FeatureGroup` status.
    #   @return [String]
    #
    # @!attribute [rw] offline_store_status
    #   The status of `OfflineStore`.
    #   @return [Types::OfflineStoreStatus]
    #
    # @!attribute [rw] last_update_status
    #   A value that indicates whether the feature group was updated
    #   successfully.
    #   @return [Types::LastUpdateStatus]
    #
    # @!attribute [rw] failure_reason
    #   The reason that the `FeatureGroup` failed to be replicated in the
    #   `OfflineStore`. This is failure may be due to a failure to create a
    #   `FeatureGroup` in or delete a `FeatureGroup` from the
    #   `OfflineStore`.
    #   @return [String]
    #
    # @!attribute [rw] description
    #   A free form description of a `FeatureGroup`.
    #   @return [String]
    #
    # @!attribute [rw] tags
    #   Tags used to define a `FeatureGroup`.
    #   @return [Array<Types::Tag>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/FeatureGroup AWS API Documentation
    #
    class FeatureGroup < Struct.new(
      :feature_group_arn,
      :feature_group_name,
      :record_identifier_feature_name,
      :event_time_feature_name,
      :feature_definitions,
      :creation_time,
      :last_modified_time,
      :online_store_config,
      :offline_store_config,
      :role_arn,
      :feature_group_status,
      :offline_store_status,
      :last_update_status,
      :failure_reason,
      :description,
      :tags)
      SENSITIVE = []
      include Aws::Structure
    end

    # The name, ARN, `CreationTime`, `FeatureGroup` values,
    # `LastUpdatedTime` and `EnableOnlineStorage` status of a
    # `FeatureGroup`.
    #
    # @!attribute [rw] feature_group_name
    #   The name of `FeatureGroup`.
    #   @return [String]
    #
    # @!attribute [rw] feature_group_arn
    #   Unique identifier for the `FeatureGroup`.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   A timestamp indicating the time of creation time of the
    #   `FeatureGroup`.
    #   @return [Time]
    #
    # @!attribute [rw] feature_group_status
    #   The status of a FeatureGroup. The status can be any of the
    #   following: `Creating`, `Created`, `CreateFail`, `Deleting` or
    #   `DetailFail`.
    #   @return [String]
    #
    # @!attribute [rw] offline_store_status
    #   Notifies you if replicating data into the `OfflineStore` has failed.
    #   Returns either: `Active` or `Blocked`.
    #   @return [Types::OfflineStoreStatus]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/FeatureGroupSummary AWS API Documentation
    #
    class FeatureGroupSummary < Struct.new(
      :feature_group_name,
      :feature_group_arn,
      :creation_time,
      :feature_group_status,
      :offline_store_status)
      SENSITIVE = []
      include Aws::Structure
    end

    # The metadata for a feature. It can either be metadata that you
    # specify, or metadata that is updated automatically.
    #
    # @!attribute [rw] feature_group_arn
    #   The Amazon Resource Number (ARN) of the feature group.
    #   @return [String]
    #
    # @!attribute [rw] feature_group_name
    #   The name of the feature group containing the feature.
    #   @return [String]
    #
    # @!attribute [rw] feature_name
    #   The name of feature.
    #   @return [String]
    #
    # @!attribute [rw] feature_type
    #   The data type of the feature.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   A timestamp indicating when the feature was created.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time
    #   A timestamp indicating when the feature was last modified.
    #   @return [Time]
    #
    # @!attribute [rw] description
    #   An optional description that you specify to better describe the
    #   feature.
    #   @return [String]
    #
    # @!attribute [rw] parameters
    #   Optional key-value pairs that you specify to better describe the
    #   feature.
    #   @return [Array<Types::FeatureParameter>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/FeatureMetadata AWS API Documentation
    #
    class FeatureMetadata < Struct.new(
      :feature_group_arn,
      :feature_group_name,
      :feature_name,
      :feature_type,
      :creation_time,
      :last_modified_time,
      :description,
      :parameters)
      SENSITIVE = []
      include Aws::Structure
    end

    # A key-value pair that you specify to describe the feature.
    #
    # @!attribute [rw] key
    #   A key that must contain a value to describe the feature.
    #   @return [String]
    #
    # @!attribute [rw] value
    #   The value that belongs to a key.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/FeatureParameter AWS API Documentation
    #
    class FeatureParameter < Struct.new(
      :key,
      :value)
      SENSITIVE = []
      include Aws::Structure
    end

    # Contains details regarding the file source.
    #
    # @!attribute [rw] content_type
    #   The type of content stored in the file source.
    #   @return [String]
    #
    # @!attribute [rw] content_digest
    #   The digest of the file source.
    #   @return [String]
    #
    # @!attribute [rw] s3_uri
    #   The Amazon S3 URI for the file source.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/FileSource AWS API Documentation
    #
    class FileSource < Struct.new(
      :content_type,
      :content_digest,
      :s3_uri)
      SENSITIVE = []
      include Aws::Structure
    end

    # The Amazon Elastic File System storage configuration for a SageMaker
    # AI image.
    #
    # @!attribute [rw] mount_path
    #   The path within the image to mount the user's EFS home directory.
    #   The directory should be empty. If not specified, defaults to
    #   */home/sagemaker-user*.
    #   @return [String]
    #
    # @!attribute [rw] default_uid
    #   The default POSIX user ID (UID). If not specified, defaults to
    #   `1000`.
    #   @return [Integer]
    #
    # @!attribute [rw] default_gid
    #   The default POSIX group ID (GID). If not specified, defaults to
    #   `100`.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/FileSystemConfig AWS API Documentation
    #
    class FileSystemConfig < Struct.new(
      :mount_path,
      :default_uid,
      :default_gid)
      SENSITIVE = []
      include Aws::Structure
    end

    # Specifies a file system data source for a channel.
    #
    # @!attribute [rw] file_system_id
    #   The file system id.
    #   @return [String]
    #
    # @!attribute [rw] file_system_access_mode
    #   The access mode of the mount of the directory associated with the
    #   channel. A directory can be mounted either in `ro` (read-only) or
    #   `rw` (read-write) mode.
    #   @return [String]
    #
    # @!attribute [rw] file_system_type
    #   The file system type.
    #   @return [String]
    #
    # @!attribute [rw] directory_path
    #   The full path to the directory to associate with the channel.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/FileSystemDataSource AWS API Documentation
    #
    class FileSystemDataSource < Struct.new(
      :file_system_id,
      :file_system_access_mode,
      :file_system_type,
      :directory_path)
      SENSITIVE = []
      include Aws::Structure
    end

    # A conditional statement for a search expression that includes a
    # resource property, a Boolean operator, and a value. Resources that
    # match the statement are returned in the results from the [Search][1]
    # API.
    #
    # If you specify a `Value`, but not an `Operator`, SageMaker uses the
    # equals operator.
    #
    # In search, there are several property types:
    #
    # Metrics
    #
    # : To define a metric filter, enter a value using the form
    #   `"Metrics.<name>"`, where `<name>` is a metric name. For example,
    #   the following filter searches for training jobs with an `"accuracy"`
    #   metric greater than `"0.9"`:
    #
    #   `{`
    #
    #   `"Name": "Metrics.accuracy",`
    #
    #   `"Operator": "GreaterThan",`
    #
    #   `"Value": "0.9"`
    #
    #   `}`
    #
    # HyperParameters
    #
    # : To define a hyperparameter filter, enter a value with the form
    #   `"HyperParameters.<name>"`. Decimal hyperparameter values are
    #   treated as a decimal in a comparison if the specified `Value` is
    #   also a decimal value. If the specified `Value` is an integer, the
    #   decimal hyperparameter values are treated as integers. For example,
    #   the following filter is satisfied by training jobs with a
    #   `"learning_rate"` hyperparameter that is less than `"0.5"`:
    #
    #   ` {`
    #
    #   ` "Name": "HyperParameters.learning_rate",`
    #
    #   ` "Operator": "LessThan",`
    #
    #   ` "Value": "0.5"`
    #
    #   ` }`
    #
    # Tags
    #
    # : To define a tag filter, enter a value with the form `Tags.<key>`.
    #
    #
    #
    # [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_Search.html
    #
    # @!attribute [rw] name
    #   A resource property name. For example, `TrainingJobName`. For valid
    #   property names, see [SearchRecord][1]. You must specify a valid
    #   property for the resource.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_SearchRecord.html
    #   @return [String]
    #
    # @!attribute [rw] operator
    #   A Boolean binary operator that is used to evaluate the filter. The
    #   operator field contains one of the following values:
    #
    #   Equals
    #
    #   : The value of `Name` equals `Value`.
    #
    #   NotEquals
    #
    #   : The value of `Name` doesn't equal `Value`.
    #
    #   Exists
    #
    #   : The `Name` property exists.
    #
    #   NotExists
    #
    #   : The `Name` property does not exist.
    #
    #   GreaterThan
    #
    #   : The value of `Name` is greater than `Value`. Not supported for
    #     text properties.
    #
    #   GreaterThanOrEqualTo
    #
    #   : The value of `Name` is greater than or equal to `Value`. Not
    #     supported for text properties.
    #
    #   LessThan
    #
    #   : The value of `Name` is less than `Value`. Not supported for text
    #     properties.
    #
    #   LessThanOrEqualTo
    #
    #   : The value of `Name` is less than or equal to `Value`. Not
    #     supported for text properties.
    #
    #   In
    #
    #   : The value of `Name` is one of the comma delimited strings in
    #     `Value`. Only supported for text properties.
    #
    #   Contains
    #
    #   : The value of `Name` contains the string `Value`. Only supported
    #     for text properties.
    #
    #     A `SearchExpression` can include the `Contains` operator multiple
    #     times when the value of `Name` is one of the following:
    #
    #     * `Experiment.DisplayName`
    #
    #     * `Experiment.ExperimentName`
    #
    #     * `Experiment.Tags`
    #
    #     * `Trial.DisplayName`
    #
    #     * `Trial.TrialName`
    #
    #     * `Trial.Tags`
    #
    #     * `TrialComponent.DisplayName`
    #
    #     * `TrialComponent.TrialComponentName`
    #
    #     * `TrialComponent.Tags`
    #
    #     * `TrialComponent.InputArtifacts`
    #
    #     * `TrialComponent.OutputArtifacts`
    #
    #     A `SearchExpression` can include only one `Contains` operator for
    #     all other values of `Name`. In these cases, if you include
    #     multiple `Contains` operators in the `SearchExpression`, the
    #     result is the following error message: "`'CONTAINS' operator
    #     usage limit of 1 exceeded.`"
    #   @return [String]
    #
    # @!attribute [rw] value
    #   A value used with `Name` and `Operator` to determine which resources
    #   satisfy the filter's condition. For numerical properties, `Value`
    #   must be an integer or floating-point decimal. For timestamp
    #   properties, `Value` must be an ISO 8601 date-time string of the
    #   following format: `YYYY-mm-dd'T'HH:MM:SS`.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/Filter AWS API Documentation
    #
    class Filter < Struct.new(
      :name,
      :operator,
      :value)
      SENSITIVE = []
      include Aws::Structure
    end

    # The best candidate result from an AutoML training job.
    #
    # @!attribute [rw] type
    #   The type of metric with the best result.
    #   @return [String]
    #
    # @!attribute [rw] metric_name
    #   The name of the metric with the best result. For a description of
    #   the possible objective metrics, see
    #   [AutoMLJobObjective$MetricName][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLJobObjective.html
    #   @return [String]
    #
    # @!attribute [rw] value
    #   The value of the metric with the best result.
    #   @return [Float]
    #
    # @!attribute [rw] standard_metric_name
    #   The name of the standard metric. For a description of the standard
    #   metrics, see [Autopilot candidate metrics][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-metrics-validation.html#autopilot-metrics
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/FinalAutoMLJobObjectiveMetric AWS API Documentation
    #
    class FinalAutoMLJobObjectiveMetric < Struct.new(
      :type,
      :metric_name,
      :value,
      :standard_metric_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # Shows the latest objective metric emitted by a training job that was
    # launched by a hyperparameter tuning job. You define the objective
    # metric in the `HyperParameterTuningJobObjective` parameter of
    # [HyperParameterTuningJobConfig][1].
    #
    #
    #
    # [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_HyperParameterTuningJobConfig.html
    #
    # @!attribute [rw] type
    #   Select if you want to minimize or maximize the objective metric
    #   during hyperparameter tuning.
    #   @return [String]
    #
    # @!attribute [rw] metric_name
    #   The name of the objective metric. For SageMaker built-in algorithms,
    #   metrics are defined per algorithm. See the [metrics for XGBoost][1]
    #   as an example. You can also use a custom algorithm for training and
    #   define your own metrics. For more information, see [Define metrics
    #   and environment variables][2].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/xgboost-tuning.html
    #   [2]: https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-define-metrics-variables.html
    #   @return [String]
    #
    # @!attribute [rw] value
    #   The value of the objective metric.
    #   @return [Float]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/FinalHyperParameterTuningJobObjectiveMetric AWS API Documentation
    #
    class FinalHyperParameterTuningJobObjectiveMetric < Struct.new(
      :type,
      :metric_name,
      :value)
      SENSITIVE = []
      include Aws::Structure
    end

    # Contains information about where human output will be stored.
    #
    # @!attribute [rw] s3_output_path
    #   The Amazon S3 path where the object containing human output will be
    #   made available.
    #
    #   To learn more about the format of Amazon A2I output data, see
    #   [Amazon A2I Output Data][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/a2i-output-data.html
    #   @return [String]
    #
    # @!attribute [rw] kms_key_id
    #   The Amazon Key Management Service (KMS) key ID for server-side
    #   encryption.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/FlowDefinitionOutputConfig AWS API Documentation
    #
    class FlowDefinitionOutputConfig < Struct.new(
      :s3_output_path,
      :kms_key_id)
      SENSITIVE = []
      include Aws::Structure
    end

    # Contains summary information about the flow definition.
    #
    # @!attribute [rw] flow_definition_name
    #   The name of the flow definition.
    #   @return [String]
    #
    # @!attribute [rw] flow_definition_arn
    #   The Amazon Resource Name (ARN) of the flow definition.
    #   @return [String]
    #
    # @!attribute [rw] flow_definition_status
    #   The status of the flow definition. Valid values:
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   The timestamp when SageMaker created the flow definition.
    #   @return [Time]
    #
    # @!attribute [rw] failure_reason
    #   The reason why the flow definition creation failed. A failure reason
    #   is returned only when the flow definition status is `Failed`.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/FlowDefinitionSummary AWS API Documentation
    #
    class FlowDefinitionSummary < Struct.new(
      :flow_definition_name,
      :flow_definition_arn,
      :flow_definition_status,
      :creation_time,
      :failure_reason)
      SENSITIVE = []
      include Aws::Structure
    end

    # The generative AI settings for the SageMaker Canvas application.
    #
    # Configure these settings for Canvas users starting chats with
    # generative AI foundation models. For more information, see [ Use
    # generative AI with foundation models][1].
    #
    #
    #
    # [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-fm-chat.html
    #
    # @!attribute [rw] amazon_bedrock_role_arn
    #   The ARN of an Amazon Web Services IAM role that allows fine-tuning
    #   of large language models (LLMs) in Amazon Bedrock. The IAM role
    #   should have Amazon S3 read and write permissions, as well as a trust
    #   relationship that establishes `bedrock.amazonaws.com` as a service
    #   principal.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/GenerativeAiSettings AWS API Documentation
    #
    class GenerativeAiSettings < Struct.new(
      :amazon_bedrock_role_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] device_fleet_name
    #   The name of the fleet.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/GetDeviceFleetReportRequest AWS API Documentation
    #
    class GetDeviceFleetReportRequest < Struct.new(
      :device_fleet_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] device_fleet_arn
    #   The Amazon Resource Name (ARN) of the device.
    #   @return [String]
    #
    # @!attribute [rw] device_fleet_name
    #   The name of the fleet.
    #   @return [String]
    #
    # @!attribute [rw] output_config
    #   The output configuration for storing sample data collected by the
    #   fleet.
    #   @return [Types::EdgeOutputConfig]
    #
    # @!attribute [rw] description
    #   Description of the fleet.
    #   @return [String]
    #
    # @!attribute [rw] report_generated
    #   Timestamp of when the report was generated.
    #   @return [Time]
    #
    # @!attribute [rw] device_stats
    #   Status of devices.
    #   @return [Types::DeviceStats]
    #
    # @!attribute [rw] agent_versions
    #   The versions of Edge Manager agent deployed on the fleet.
    #   @return [Array<Types::AgentVersion>]
    #
    # @!attribute [rw] model_stats
    #   Status of model on device.
    #   @return [Array<Types::EdgeModelStat>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/GetDeviceFleetReportResponse AWS API Documentation
    #
    class GetDeviceFleetReportResponse < Struct.new(
      :device_fleet_arn,
      :device_fleet_name,
      :output_config,
      :description,
      :report_generated,
      :device_stats,
      :agent_versions,
      :model_stats)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] lineage_group_name
    #   The name or Amazon Resource Name (ARN) of the lineage group.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/GetLineageGroupPolicyRequest AWS API Documentation
    #
    class GetLineageGroupPolicyRequest < Struct.new(
      :lineage_group_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] lineage_group_arn
    #   The Amazon Resource Name (ARN) of the lineage group.
    #   @return [String]
    #
    # @!attribute [rw] resource_policy
    #   The resource policy that gives access to the lineage group in
    #   another account.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/GetLineageGroupPolicyResponse AWS API Documentation
    #
    class GetLineageGroupPolicyResponse < Struct.new(
      :lineage_group_arn,
      :resource_policy)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] model_package_group_name
    #   The name of the model group for which to get the resource policy.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/GetModelPackageGroupPolicyInput AWS API Documentation
    #
    class GetModelPackageGroupPolicyInput < Struct.new(
      :model_package_group_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] resource_policy
    #   The resource policy for the model group.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/GetModelPackageGroupPolicyOutput AWS API Documentation
    #
    class GetModelPackageGroupPolicyOutput < Struct.new(
      :resource_policy)
      SENSITIVE = []
      include Aws::Structure
    end

    # @api private
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/GetSagemakerServicecatalogPortfolioStatusInput AWS API Documentation
    #
    class GetSagemakerServicecatalogPortfolioStatusInput < Aws::EmptyStructure; end

    # @!attribute [rw] status
    #   Whether Service Catalog is enabled or disabled in SageMaker.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/GetSagemakerServicecatalogPortfolioStatusOutput AWS API Documentation
    #
    class GetSagemakerServicecatalogPortfolioStatusOutput < Struct.new(
      :status)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] inference_recommendations_job_name
    #   The name of a previously completed Inference Recommender job.
    #   @return [String]
    #
    # @!attribute [rw] recommendation_id
    #   The recommendation ID of a previously completed inference
    #   recommendation. This ID should come from one of the recommendations
    #   returned by the job specified in the
    #   `InferenceRecommendationsJobName` field.
    #
    #   Specify either this field or the `EndpointName` field.
    #   @return [String]
    #
    # @!attribute [rw] endpoint_name
    #   The name of an endpoint benchmarked during a previously completed
    #   inference recommendation job. This name should come from one of the
    #   recommendations returned by the job specified in the
    #   `InferenceRecommendationsJobName` field.
    #
    #   Specify either this field or the `RecommendationId` field.
    #   @return [String]
    #
    # @!attribute [rw] target_cpu_utilization_per_core
    #   The percentage of how much utilization you want an instance to use
    #   before autoscaling. The default value is 50%.
    #   @return [Integer]
    #
    # @!attribute [rw] scaling_policy_objective
    #   An object where you specify the anticipated traffic pattern for an
    #   endpoint.
    #   @return [Types::ScalingPolicyObjective]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/GetScalingConfigurationRecommendationRequest AWS API Documentation
    #
    class GetScalingConfigurationRecommendationRequest < Struct.new(
      :inference_recommendations_job_name,
      :recommendation_id,
      :endpoint_name,
      :target_cpu_utilization_per_core,
      :scaling_policy_objective)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] inference_recommendations_job_name
    #   The name of a previously completed Inference Recommender job.
    #   @return [String]
    #
    # @!attribute [rw] recommendation_id
    #   The recommendation ID of a previously completed inference
    #   recommendation.
    #   @return [String]
    #
    # @!attribute [rw] endpoint_name
    #   The name of an endpoint benchmarked during a previously completed
    #   Inference Recommender job.
    #   @return [String]
    #
    # @!attribute [rw] target_cpu_utilization_per_core
    #   The percentage of how much utilization you want an instance to use
    #   before autoscaling, which you specified in the request. The default
    #   value is 50%.
    #   @return [Integer]
    #
    # @!attribute [rw] scaling_policy_objective
    #   An object representing the anticipated traffic pattern for an
    #   endpoint that you specified in the request.
    #   @return [Types::ScalingPolicyObjective]
    #
    # @!attribute [rw] metric
    #   An object with a list of metrics that were benchmarked during the
    #   previously completed Inference Recommender job.
    #   @return [Types::ScalingPolicyMetric]
    #
    # @!attribute [rw] dynamic_scaling_configuration
    #   An object with the recommended values for you to specify when
    #   creating an autoscaling policy.
    #   @return [Types::DynamicScalingConfiguration]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/GetScalingConfigurationRecommendationResponse AWS API Documentation
    #
    class GetScalingConfigurationRecommendationResponse < Struct.new(
      :inference_recommendations_job_name,
      :recommendation_id,
      :endpoint_name,
      :target_cpu_utilization_per_core,
      :scaling_policy_objective,
      :metric,
      :dynamic_scaling_configuration)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] resource
    #   The name of the SageMaker resource to search for.
    #   @return [String]
    #
    # @!attribute [rw] suggestion_query
    #   Limits the property names that are included in the response.
    #   @return [Types::SuggestionQuery]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/GetSearchSuggestionsRequest AWS API Documentation
    #
    class GetSearchSuggestionsRequest < Struct.new(
      :resource,
      :suggestion_query)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] property_name_suggestions
    #   A list of property names for a `Resource` that match a
    #   `SuggestionQuery`.
    #   @return [Array<Types::PropertyNameSuggestion>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/GetSearchSuggestionsResponse AWS API Documentation
    #
    class GetSearchSuggestionsResponse < Struct.new(
      :property_name_suggestions)
      SENSITIVE = []
      include Aws::Structure
    end

    # Specifies configuration details for a Git repository in your Amazon
    # Web Services account.
    #
    # @!attribute [rw] repository_url
    #   The URL where the Git repository is located.
    #   @return [String]
    #
    # @!attribute [rw] branch
    #   The default branch for the Git repository.
    #   @return [String]
    #
    # @!attribute [rw] secret_arn
    #   The Amazon Resource Name (ARN) of the Amazon Web Services Secrets
    #   Manager secret that contains the credentials used to access the git
    #   repository. The secret must have a staging label of `AWSCURRENT` and
    #   must be in the following format:
    #
    #   `{"username": UserName, "password": Password}`
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/GitConfig AWS API Documentation
    #
    class GitConfig < Struct.new(
      :repository_url,
      :branch,
      :secret_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # Specifies configuration details for a Git repository when the
    # repository is updated.
    #
    # @!attribute [rw] secret_arn
    #   The Amazon Resource Name (ARN) of the Amazon Web Services Secrets
    #   Manager secret that contains the credentials used to access the git
    #   repository. The secret must have a staging label of `AWSCURRENT` and
    #   must be in the following format:
    #
    #   `{"username": UserName, "password": Password}`
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/GitConfigForUpdate AWS API Documentation
    #
    class GitConfigForUpdate < Struct.new(
      :secret_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # The SageMaker images that are hidden from the Studio user interface.
    # You must specify the SageMaker image name and version aliases.
    #
    # @!attribute [rw] sage_maker_image_name
    #   The SageMaker image name that you are hiding from the Studio user
    #   interface.
    #   @return [String]
    #
    # @!attribute [rw] version_aliases
    #   The version aliases you are hiding from the Studio user interface.
    #   @return [Array<String>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/HiddenSageMakerImage AWS API Documentation
    #
    class HiddenSageMakerImage < Struct.new(
      :sage_maker_image_name,
      :version_aliases)
      SENSITIVE = []
      include Aws::Structure
    end

    # Stores the holiday featurization attributes applicable to each item of
    # time-series datasets during the training of a forecasting model. This
    # allows the model to identify patterns associated with specific
    # holidays.
    #
    # @!attribute [rw] country_code
    #   The country code for the holiday calendar.
    #
    #   For the list of public holiday calendars supported by AutoML job V2,
    #   see [Country Codes][1]. Use the country code corresponding to the
    #   country of your choice.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-timeseries-forecasting-holiday-calendars.html#holiday-country-codes
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/HolidayConfigAttributes AWS API Documentation
    #
    class HolidayConfigAttributes < Struct.new(
      :country_code)
      SENSITIVE = []
      include Aws::Structure
    end

    # The configuration for a private hub model reference that points to a
    # public SageMaker JumpStart model.
    #
    # For more information about private hubs, see [Private curated hubs for
    # foundation model access control in JumpStart][1].
    #
    #
    #
    # [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/jumpstart-curated-hubs.html
    #
    # @!attribute [rw] hub_content_arn
    #   The ARN of your private model hub content. This should be a
    #   `ModelReference` resource type that points to a SageMaker JumpStart
    #   public hub model.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/HubAccessConfig AWS API Documentation
    #
    class HubAccessConfig < Struct.new(
      :hub_content_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # Any dependencies related to hub content, such as scripts, model
    # artifacts, datasets, or notebooks.
    #
    # @!attribute [rw] dependency_origin_path
    #   The hub content dependency origin path.
    #   @return [String]
    #
    # @!attribute [rw] dependency_copy_path
    #   The hub content dependency copy path.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/HubContentDependency AWS API Documentation
    #
    class HubContentDependency < Struct.new(
      :dependency_origin_path,
      :dependency_copy_path)
      SENSITIVE = []
      include Aws::Structure
    end

    # Information about hub content.
    #
    # @!attribute [rw] hub_content_name
    #   The name of the hub content.
    #   @return [String]
    #
    # @!attribute [rw] hub_content_arn
    #   The Amazon Resource Name (ARN) of the hub content.
    #   @return [String]
    #
    # @!attribute [rw] sage_maker_public_hub_content_arn
    #   The ARN of the public hub content.
    #   @return [String]
    #
    # @!attribute [rw] hub_content_version
    #   The version of the hub content.
    #   @return [String]
    #
    # @!attribute [rw] hub_content_type
    #   The type of hub content.
    #   @return [String]
    #
    # @!attribute [rw] document_schema_version
    #   The version of the hub content document schema.
    #   @return [String]
    #
    # @!attribute [rw] hub_content_display_name
    #   The display name of the hub content.
    #   @return [String]
    #
    # @!attribute [rw] hub_content_description
    #   A description of the hub content.
    #   @return [String]
    #
    # @!attribute [rw] support_status
    #   The support status of the hub content.
    #   @return [String]
    #
    # @!attribute [rw] hub_content_search_keywords
    #   The searchable keywords for the hub content.
    #   @return [Array<String>]
    #
    # @!attribute [rw] hub_content_status
    #   The status of the hub content.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   The date and time that the hub content was created.
    #   @return [Time]
    #
    # @!attribute [rw] original_creation_time
    #   The date and time when the hub content was originally created,
    #   before any updates or revisions.
    #   @return [Time]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/HubContentInfo AWS API Documentation
    #
    class HubContentInfo < Struct.new(
      :hub_content_name,
      :hub_content_arn,
      :sage_maker_public_hub_content_arn,
      :hub_content_version,
      :hub_content_type,
      :document_schema_version,
      :hub_content_display_name,
      :hub_content_description,
      :support_status,
      :hub_content_search_keywords,
      :hub_content_status,
      :creation_time,
      :original_creation_time)
      SENSITIVE = []
      include Aws::Structure
    end

    # Information about a hub.
    #
    # @!attribute [rw] hub_name
    #   The name of the hub.
    #   @return [String]
    #
    # @!attribute [rw] hub_arn
    #   The Amazon Resource Name (ARN) of the hub.
    #   @return [String]
    #
    # @!attribute [rw] hub_display_name
    #   The display name of the hub.
    #   @return [String]
    #
    # @!attribute [rw] hub_description
    #   A description of the hub.
    #   @return [String]
    #
    # @!attribute [rw] hub_search_keywords
    #   The searchable keywords for the hub.
    #   @return [Array<String>]
    #
    # @!attribute [rw] hub_status
    #   The status of the hub.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   The date and time that the hub was created.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time
    #   The date and time that the hub was last modified.
    #   @return [Time]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/HubInfo AWS API Documentation
    #
    class HubInfo < Struct.new(
      :hub_name,
      :hub_arn,
      :hub_display_name,
      :hub_description,
      :hub_search_keywords,
      :hub_status,
      :creation_time,
      :last_modified_time)
      SENSITIVE = []
      include Aws::Structure
    end

    # The Amazon S3 storage configuration of a hub.
    #
    # @!attribute [rw] s3_output_path
    #   The Amazon S3 bucket prefix for hosting hub content.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/HubS3StorageConfig AWS API Documentation
    #
    class HubS3StorageConfig < Struct.new(
      :s3_output_path)
      SENSITIVE = []
      include Aws::Structure
    end

    # Defines under what conditions SageMaker creates a human loop. Used
    # within [CreateFlowDefinition][1]. See
    # [HumanLoopActivationConditionsConfig][2] for the required format of
    # activation conditions.
    #
    #
    #
    # [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateFlowDefinition.html
    # [2]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_HumanLoopActivationConditionsConfig.html
    #
    # @!attribute [rw] human_loop_activation_conditions
    #   JSON expressing use-case specific conditions declaratively. If any
    #   condition is matched, atomic tasks are created against the
    #   configured work team. The set of conditions is different for
    #   Rekognition and Textract. For more information about how to
    #   structure the JSON, see [JSON Schema for Human Loop Activation
    #   Conditions in Amazon Augmented AI][1] in the *Amazon SageMaker
    #   Developer Guide*.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/a2i-human-fallback-conditions-json-schema.html
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/HumanLoopActivationConditionsConfig AWS API Documentation
    #
    class HumanLoopActivationConditionsConfig < Struct.new(
      :human_loop_activation_conditions)
      SENSITIVE = []
      include Aws::Structure
    end

    # Provides information about how and under what conditions SageMaker
    # creates a human loop. If `HumanLoopActivationConfig` is not given,
    # then all requests go to humans.
    #
    # @!attribute [rw] human_loop_activation_conditions_config
    #   Container structure for defining under what conditions SageMaker
    #   creates a human loop.
    #   @return [Types::HumanLoopActivationConditionsConfig]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/HumanLoopActivationConfig AWS API Documentation
    #
    class HumanLoopActivationConfig < Struct.new(
      :human_loop_activation_conditions_config)
      SENSITIVE = []
      include Aws::Structure
    end

    # Describes the work to be performed by human workers.
    #
    # @!attribute [rw] workteam_arn
    #   Amazon Resource Name (ARN) of a team of workers. To learn more about
    #   the types of workforces and work teams you can create and use with
    #   Amazon A2I, see [Create and Manage Workforces][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/sms-workforce-management.html
    #   @return [String]
    #
    # @!attribute [rw] human_task_ui_arn
    #   The Amazon Resource Name (ARN) of the human task user interface.
    #
    #   You can use standard HTML and Crowd HTML Elements to create a custom
    #   worker task template. You use this template to create a human task
    #   UI.
    #
    #   To learn how to create a custom HTML template, see [Create Custom
    #   Worker Task Template][1].
    #
    #   To learn how to create a human task UI, which is a worker task
    #   template that can be used in a flow definition, see [Create and
    #   Delete a Worker Task Templates][2].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/a2i-custom-templates.html
    #   [2]: https://docs.aws.amazon.com/sagemaker/latest/dg/a2i-worker-template-console.html
    #   @return [String]
    #
    # @!attribute [rw] task_title
    #   A title for the human worker task.
    #   @return [String]
    #
    # @!attribute [rw] task_description
    #   A description for the human worker task.
    #   @return [String]
    #
    # @!attribute [rw] task_count
    #   The number of distinct workers who will perform the same task on
    #   each object. For example, if `TaskCount` is set to `3` for an image
    #   classification labeling job, three workers will classify each input
    #   image. Increasing `TaskCount` can improve label accuracy.
    #   @return [Integer]
    #
    # @!attribute [rw] task_availability_lifetime_in_seconds
    #   The length of time that a task remains available for review by human
    #   workers.
    #   @return [Integer]
    #
    # @!attribute [rw] task_time_limit_in_seconds
    #   The amount of time that a worker has to complete a task. The default
    #   value is 3,600 seconds (1 hour).
    #   @return [Integer]
    #
    # @!attribute [rw] task_keywords
    #   Keywords used to describe the task so that workers can discover the
    #   task.
    #   @return [Array<String>]
    #
    # @!attribute [rw] public_workforce_task_price
    #   Defines the amount of money paid to an Amazon Mechanical Turk worker
    #   for each task performed.
    #
    #   Use one of the following prices for bounding box tasks. Prices are
    #   in US dollars and should be based on the complexity of the task; the
    #   longer it takes in your initial testing, the more you should offer.
    #
    #   * 0.036
    #
    #   * 0.048
    #
    #   * 0.060
    #
    #   * 0.072
    #
    #   * 0.120
    #
    #   * 0.240
    #
    #   * 0.360
    #
    #   * 0.480
    #
    #   * 0.600
    #
    #   * 0.720
    #
    #   * 0.840
    #
    #   * 0.960
    #
    #   * 1.080
    #
    #   * 1.200
    #
    #   Use one of the following prices for image classification, text
    #   classification, and custom tasks. Prices are in US dollars.
    #
    #   * 0.012
    #
    #   * 0.024
    #
    #   * 0.036
    #
    #   * 0.048
    #
    #   * 0.060
    #
    #   * 0.072
    #
    #   * 0.120
    #
    #   * 0.240
    #
    #   * 0.360
    #
    #   * 0.480
    #
    #   * 0.600
    #
    #   * 0.720
    #
    #   * 0.840
    #
    #   * 0.960
    #
    #   * 1.080
    #
    #   * 1.200
    #
    #   Use one of the following prices for semantic segmentation tasks.
    #   Prices are in US dollars.
    #
    #   * 0.840
    #
    #   * 0.960
    #
    #   * 1.080
    #
    #   * 1.200
    #
    #   Use one of the following prices for Textract AnalyzeDocument
    #   Important Form Key Amazon Augmented AI review tasks. Prices are in
    #   US dollars.
    #
    #   * 2.400
    #
    #   * 2.280
    #
    #   * 2.160
    #
    #   * 2.040
    #
    #   * 1.920
    #
    #   * 1.800
    #
    #   * 1.680
    #
    #   * 1.560
    #
    #   * 1.440
    #
    #   * 1.320
    #
    #   * 1.200
    #
    #   * 1.080
    #
    #   * 0.960
    #
    #   * 0.840
    #
    #   * 0.720
    #
    #   * 0.600
    #
    #   * 0.480
    #
    #   * 0.360
    #
    #   * 0.240
    #
    #   * 0.120
    #
    #   * 0.072
    #
    #   * 0.060
    #
    #   * 0.048
    #
    #   * 0.036
    #
    #   * 0.024
    #
    #   * 0.012
    #
    #   Use one of the following prices for Rekognition
    #   DetectModerationLabels Amazon Augmented AI review tasks. Prices are
    #   in US dollars.
    #
    #   * 1.200
    #
    #   * 1.080
    #
    #   * 0.960
    #
    #   * 0.840
    #
    #   * 0.720
    #
    #   * 0.600
    #
    #   * 0.480
    #
    #   * 0.360
    #
    #   * 0.240
    #
    #   * 0.120
    #
    #   * 0.072
    #
    #   * 0.060
    #
    #   * 0.048
    #
    #   * 0.036
    #
    #   * 0.024
    #
    #   * 0.012
    #
    #   Use one of the following prices for Amazon Augmented AI custom human
    #   review tasks. Prices are in US dollars.
    #
    #   * 1.200
    #
    #   * 1.080
    #
    #   * 0.960
    #
    #   * 0.840
    #
    #   * 0.720
    #
    #   * 0.600
    #
    #   * 0.480
    #
    #   * 0.360
    #
    #   * 0.240
    #
    #   * 0.120
    #
    #   * 0.072
    #
    #   * 0.060
    #
    #   * 0.048
    #
    #   * 0.036
    #
    #   * 0.024
    #
    #   * 0.012
    #   @return [Types::PublicWorkforceTaskPrice]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/HumanLoopConfig AWS API Documentation
    #
    class HumanLoopConfig < Struct.new(
      :workteam_arn,
      :human_task_ui_arn,
      :task_title,
      :task_description,
      :task_count,
      :task_availability_lifetime_in_seconds,
      :task_time_limit_in_seconds,
      :task_keywords,
      :public_workforce_task_price)
      SENSITIVE = []
      include Aws::Structure
    end

    # Container for configuring the source of human task requests.
    #
    # @!attribute [rw] aws_managed_human_loop_request_source
    #   Specifies whether Amazon Rekognition or Amazon Textract are used as
    #   the integration source. The default field settings and JSON parsing
    #   rules are different based on the integration source. Valid values:
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/HumanLoopRequestSource AWS API Documentation
    #
    class HumanLoopRequestSource < Struct.new(
      :aws_managed_human_loop_request_source)
      SENSITIVE = []
      include Aws::Structure
    end

    # Information required for human workers to complete a labeling task.
    #
    # @!attribute [rw] workteam_arn
    #   The Amazon Resource Name (ARN) of the work team assigned to complete
    #   the tasks.
    #   @return [String]
    #
    # @!attribute [rw] ui_config
    #   Information about the user interface that workers use to complete
    #   the labeling task.
    #   @return [Types::UiConfig]
    #
    # @!attribute [rw] pre_human_task_lambda_arn
    #   The Amazon Resource Name (ARN) of a Lambda function that is run
    #   before a data object is sent to a human worker. Use this function to
    #   provide input to a custom labeling job.
    #
    #   For [built-in task types][1], use one of the following Amazon
    #   SageMaker Ground Truth Lambda function ARNs for
    #   `PreHumanTaskLambdaArn`. For custom labeling workflows, see
    #   [Pre-annotation Lambda][2].
    #
    #   **Bounding box** - Finds the most similar boxes from different
    #   workers based on the Jaccard index of the boxes.
    #
    #   * `arn:aws:lambda:us-east-1:432418664414:function:PRE-BoundingBox`
    #
    #   * `arn:aws:lambda:us-east-2:266458841044:function:PRE-BoundingBox`
    #
    #   * `arn:aws:lambda:us-west-2:081040173940:function:PRE-BoundingBox`
    #
    #   * `arn:aws:lambda:ca-central-1:918755190332:function:PRE-BoundingBox`
    #
    #   * `arn:aws:lambda:eu-west-1:568282634449:function:PRE-BoundingBox`
    #
    #   * `arn:aws:lambda:eu-west-2:487402164563:function:PRE-BoundingBox`
    #
    #   * `arn:aws:lambda:eu-central-1:203001061592:function:PRE-BoundingBox`
    #
    #   * `arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-BoundingBox`
    #
    #   * `arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-BoundingBox`
    #
    #   * `arn:aws:lambda:ap-south-1:565803892007:function:PRE-BoundingBox`
    #
    #   * `arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-BoundingBox`
    #
    #   * `arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-BoundingBox`
    #
    #   **Image classification** - Uses a variant of the Expectation
    #   Maximization approach to estimate the true class of an image based
    #   on annotations from individual workers.
    #
    #   * `arn:aws:lambda:us-east-1:432418664414:function:PRE-ImageMultiClass`
    #
    #   * `arn:aws:lambda:us-east-2:266458841044:function:PRE-ImageMultiClass`
    #
    #   * `arn:aws:lambda:us-west-2:081040173940:function:PRE-ImageMultiClass`
    #
    #   * `arn:aws:lambda:ca-central-1:918755190332:function:PRE-ImageMultiClass`
    #
    #   * `arn:aws:lambda:eu-west-1:568282634449:function:PRE-ImageMultiClass`
    #
    #   * `arn:aws:lambda:eu-west-2:487402164563:function:PRE-ImageMultiClass`
    #
    #   * `arn:aws:lambda:eu-central-1:203001061592:function:PRE-ImageMultiClass`
    #
    #   * `arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-ImageMultiClass`
    #
    #   * `arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-ImageMultiClass`
    #
    #   * `arn:aws:lambda:ap-south-1:565803892007:function:PRE-ImageMultiClass`
    #
    #   * `arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-ImageMultiClass`
    #
    #   * `arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-ImageMultiClass`
    #
    #   **Multi-label image classification** - Uses a variant of the
    #   Expectation Maximization approach to estimate the true classes of an
    #   image based on annotations from individual workers.
    #
    #   * `arn:aws:lambda:us-east-1:432418664414:function:PRE-ImageMultiClassMultiLabel`
    #
    #   * `arn:aws:lambda:us-east-2:266458841044:function:PRE-ImageMultiClassMultiLabel`
    #
    #   * `arn:aws:lambda:us-west-2:081040173940:function:PRE-ImageMultiClassMultiLabel`
    #
    #   * `arn:aws:lambda:ca-central-1:918755190332:function:PRE-ImageMultiClassMultiLabel`
    #
    #   * `arn:aws:lambda:eu-west-1:568282634449:function:PRE-ImageMultiClassMultiLabel`
    #
    #   * `arn:aws:lambda:eu-west-2:487402164563:function:PRE-ImageMultiClassMultiLabel`
    #
    #   * `arn:aws:lambda:eu-central-1:203001061592:function:PRE-ImageMultiClassMultiLabel`
    #
    #   * `arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-ImageMultiClassMultiLabel`
    #
    #   * `arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-ImageMultiClassMultiLabel`
    #
    #   * `arn:aws:lambda:ap-south-1:565803892007:function:PRE-ImageMultiClassMultiLabel`
    #
    #   * `arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-ImageMultiClassMultiLabel`
    #
    #   * `arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-ImageMultiClassMultiLabel`
    #
    #   **Semantic segmentation** - Treats each pixel in an image as a
    #   multi-class classification and treats pixel annotations from workers
    #   as "votes" for the correct label.
    #
    #   * `arn:aws:lambda:us-east-1:432418664414:function:PRE-SemanticSegmentation`
    #
    #   * `arn:aws:lambda:us-east-2:266458841044:function:PRE-SemanticSegmentation`
    #
    #   * `arn:aws:lambda:us-west-2:081040173940:function:PRE-SemanticSegmentation`
    #
    #   * `arn:aws:lambda:ca-central-1:918755190332:function:PRE-SemanticSegmentation`
    #
    #   * `arn:aws:lambda:eu-west-1:568282634449:function:PRE-SemanticSegmentation`
    #
    #   * `arn:aws:lambda:eu-west-2:487402164563:function:PRE-SemanticSegmentation`
    #
    #   * `arn:aws:lambda:eu-central-1:203001061592:function:PRE-SemanticSegmentation`
    #
    #   * `arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-SemanticSegmentation`
    #
    #   * `arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-SemanticSegmentation`
    #
    #   * `arn:aws:lambda:ap-south-1:565803892007:function:PRE-SemanticSegmentation`
    #
    #   * `arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-SemanticSegmentation`
    #
    #   * `arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-SemanticSegmentation`
    #
    #   **Text classification** - Uses a variant of the Expectation
    #   Maximization approach to estimate the true class of text based on
    #   annotations from individual workers.
    #
    #   * `arn:aws:lambda:us-east-1:432418664414:function:PRE-TextMultiClass`
    #
    #   * `arn:aws:lambda:us-east-2:266458841044:function:PRE-TextMultiClass`
    #
    #   * `arn:aws:lambda:us-west-2:081040173940:function:PRE-TextMultiClass`
    #
    #   * `arn:aws:lambda:ca-central-1:918755190332:function:PRE-TextMultiClass`
    #
    #   * `arn:aws:lambda:eu-west-1:568282634449:function:PRE-TextMultiClass`
    #
    #   * `arn:aws:lambda:eu-west-2:487402164563:function:PRE-TextMultiClass`
    #
    #   * `arn:aws:lambda:eu-central-1:203001061592:function:PRE-TextMultiClass`
    #
    #   * `arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-TextMultiClass`
    #
    #   * `arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-TextMultiClass`
    #
    #   * `arn:aws:lambda:ap-south-1:565803892007:function:PRE-TextMultiClass`
    #
    #   * `arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-TextMultiClass`
    #
    #   * `arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-TextMultiClass`
    #
    #   **Multi-label text classification** - Uses a variant of the
    #   Expectation Maximization approach to estimate the true classes of
    #   text based on annotations from individual workers.
    #
    #   * `arn:aws:lambda:us-east-1:432418664414:function:PRE-TextMultiClassMultiLabel`
    #
    #   * `arn:aws:lambda:us-east-2:266458841044:function:PRE-TextMultiClassMultiLabel`
    #
    #   * `arn:aws:lambda:us-west-2:081040173940:function:PRE-TextMultiClassMultiLabel`
    #
    #   * `arn:aws:lambda:ca-central-1:918755190332:function:PRE-TextMultiClassMultiLabel`
    #
    #   * `arn:aws:lambda:eu-west-1:568282634449:function:PRE-TextMultiClassMultiLabel`
    #
    #   * `arn:aws:lambda:eu-west-2:487402164563:function:PRE-TextMultiClassMultiLabel`
    #
    #   * `arn:aws:lambda:eu-central-1:203001061592:function:PRE-TextMultiClassMultiLabel`
    #
    #   * `arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-TextMultiClassMultiLabel`
    #
    #   * `arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-TextMultiClassMultiLabel`
    #
    #   * `arn:aws:lambda:ap-south-1:565803892007:function:PRE-TextMultiClassMultiLabel`
    #
    #   * `arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-TextMultiClassMultiLabel`
    #
    #   * `arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-TextMultiClassMultiLabel`
    #
    #   **Named entity recognition** - Groups similar selections and
    #   calculates aggregate boundaries, resolving to most-assigned label.
    #
    #   * `arn:aws:lambda:us-east-1:432418664414:function:PRE-NamedEntityRecognition`
    #
    #   * `arn:aws:lambda:us-east-2:266458841044:function:PRE-NamedEntityRecognition`
    #
    #   * `arn:aws:lambda:us-west-2:081040173940:function:PRE-NamedEntityRecognition`
    #
    #   * `arn:aws:lambda:ca-central-1:918755190332:function:PRE-NamedEntityRecognition`
    #
    #   * `arn:aws:lambda:eu-west-1:568282634449:function:PRE-NamedEntityRecognition`
    #
    #   * `arn:aws:lambda:eu-west-2:487402164563:function:PRE-NamedEntityRecognition`
    #
    #   * `arn:aws:lambda:eu-central-1:203001061592:function:PRE-NamedEntityRecognition`
    #
    #   * `arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-NamedEntityRecognition`
    #
    #   * `arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-NamedEntityRecognition`
    #
    #   * `arn:aws:lambda:ap-south-1:565803892007:function:PRE-NamedEntityRecognition`
    #
    #   * `arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-NamedEntityRecognition`
    #
    #   * `arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-NamedEntityRecognition`
    #
    #   **Video Classification** - Use this task type when you need workers
    #   to classify videos using predefined labels that you specify. Workers
    #   are shown videos and are asked to choose one label for each video.
    #
    #   * `arn:aws:lambda:us-east-1:432418664414:function:PRE-VideoMultiClass`
    #
    #   * `arn:aws:lambda:us-east-2:266458841044:function:PRE-VideoMultiClass`
    #
    #   * `arn:aws:lambda:us-west-2:081040173940:function:PRE-VideoMultiClass`
    #
    #   * `arn:aws:lambda:eu-west-1:568282634449:function:PRE-VideoMultiClass`
    #
    #   * `arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-VideoMultiClass`
    #
    #   * `arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-VideoMultiClass`
    #
    #   * `arn:aws:lambda:ap-south-1:565803892007:function:PRE-VideoMultiClass`
    #
    #   * `arn:aws:lambda:eu-central-1:203001061592:function:PRE-VideoMultiClass`
    #
    #   * `arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-VideoMultiClass`
    #
    #   * `arn:aws:lambda:eu-west-2:487402164563:function:PRE-VideoMultiClass`
    #
    #   * `arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-VideoMultiClass`
    #
    #   * `arn:aws:lambda:ca-central-1:918755190332:function:PRE-VideoMultiClass`
    #
    #   **Video Frame Object Detection** - Use this task type to have
    #   workers identify and locate objects in a sequence of video frames
    #   (images extracted from a video) using bounding boxes. For example,
    #   you can use this task to ask workers to identify and localize
    #   various objects in a series of video frames, such as cars, bikes,
    #   and pedestrians.
    #
    #   * `arn:aws:lambda:us-east-1:432418664414:function:PRE-VideoObjectDetection`
    #
    #   * `arn:aws:lambda:us-east-2:266458841044:function:PRE-VideoObjectDetection`
    #
    #   * `arn:aws:lambda:us-west-2:081040173940:function:PRE-VideoObjectDetection`
    #
    #   * `arn:aws:lambda:eu-west-1:568282634449:function:PRE-VideoObjectDetection`
    #
    #   * `arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-VideoObjectDetection`
    #
    #   * `arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-VideoObjectDetection`
    #
    #   * `arn:aws:lambda:ap-south-1:565803892007:function:PRE-VideoObjectDetection`
    #
    #   * `arn:aws:lambda:eu-central-1:203001061592:function:PRE-VideoObjectDetection`
    #
    #   * `arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-VideoObjectDetection`
    #
    #   * `arn:aws:lambda:eu-west-2:487402164563:function:PRE-VideoObjectDetection`
    #
    #   * `arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-VideoObjectDetection`
    #
    #   * `arn:aws:lambda:ca-central-1:918755190332:function:PRE-VideoObjectDetection`
    #
    #   **Video Frame Object Tracking** - Use this task type to have workers
    #   track the movement of objects in a sequence of video frames (images
    #   extracted from a video) using bounding boxes. For example, you can
    #   use this task to ask workers to track the movement of objects, such
    #   as cars, bikes, and pedestrians.
    #
    #   * `arn:aws:lambda:us-east-1:432418664414:function:PRE-VideoObjectTracking`
    #
    #   * `arn:aws:lambda:us-east-2:266458841044:function:PRE-VideoObjectTracking`
    #
    #   * `arn:aws:lambda:us-west-2:081040173940:function:PRE-VideoObjectTracking`
    #
    #   * `arn:aws:lambda:eu-west-1:568282634449:function:PRE-VideoObjectTracking`
    #
    #   * `arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-VideoObjectTracking`
    #
    #   * `arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-VideoObjectTracking`
    #
    #   * `arn:aws:lambda:ap-south-1:565803892007:function:PRE-VideoObjectTracking`
    #
    #   * `arn:aws:lambda:eu-central-1:203001061592:function:PRE-VideoObjectTracking`
    #
    #   * `arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-VideoObjectTracking`
    #
    #   * `arn:aws:lambda:eu-west-2:487402164563:function:PRE-VideoObjectTracking`
    #
    #   * `arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-VideoObjectTracking`
    #
    #   * `arn:aws:lambda:ca-central-1:918755190332:function:PRE-VideoObjectTracking`
    #
    #   **3D Point Cloud Modalities**
    #
    #   Use the following pre-annotation lambdas for 3D point cloud labeling
    #   modality tasks. See [3D Point Cloud Task types ][3] to learn more.
    #
    #   **3D Point Cloud Object Detection** - Use this task type when you
    #   want workers to classify objects in a 3D point cloud by drawing 3D
    #   cuboids around objects. For example, you can use this task type to
    #   ask workers to identify different types of objects in a point cloud,
    #   such as cars, bikes, and pedestrians.
    #
    #   * `arn:aws:lambda:us-east-1:432418664414:function:PRE-3DPointCloudObjectDetection`
    #
    #   * `arn:aws:lambda:us-east-2:266458841044:function:PRE-3DPointCloudObjectDetection`
    #
    #   * `arn:aws:lambda:us-west-2:081040173940:function:PRE-3DPointCloudObjectDetection`
    #
    #   * `arn:aws:lambda:eu-west-1:568282634449:function:PRE-3DPointCloudObjectDetection`
    #
    #   * `arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-3DPointCloudObjectDetection`
    #
    #   * `arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-3DPointCloudObjectDetection`
    #
    #   * `arn:aws:lambda:ap-south-1:565803892007:function:PRE-3DPointCloudObjectDetection`
    #
    #   * `arn:aws:lambda:eu-central-1:203001061592:function:PRE-3DPointCloudObjectDetection`
    #
    #   * `arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-3DPointCloudObjectDetection`
    #
    #   * `arn:aws:lambda:eu-west-2:487402164563:function:PRE-3DPointCloudObjectDetection`
    #
    #   * `arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-3DPointCloudObjectDetection`
    #
    #   * `arn:aws:lambda:ca-central-1:918755190332:function:PRE-3DPointCloudObjectDetection`
    #
    #   **3D Point Cloud Object Tracking** - Use this task type when you
    #   want workers to draw 3D cuboids around objects that appear in a
    #   sequence of 3D point cloud frames. For example, you can use this
    #   task type to ask workers to track the movement of vehicles across
    #   multiple point cloud frames.
    #
    #   * `arn:aws:lambda:us-east-1:432418664414:function:PRE-3DPointCloudObjectTracking`
    #
    #   * `arn:aws:lambda:us-east-2:266458841044:function:PRE-3DPointCloudObjectTracking`
    #
    #   * `arn:aws:lambda:us-west-2:081040173940:function:PRE-3DPointCloudObjectTracking`
    #
    #   * `arn:aws:lambda:eu-west-1:568282634449:function:PRE-3DPointCloudObjectTracking`
    #
    #   * `arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-3DPointCloudObjectTracking`
    #
    #   * `arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-3DPointCloudObjectTracking`
    #
    #   * `arn:aws:lambda:ap-south-1:565803892007:function:PRE-3DPointCloudObjectTracking`
    #
    #   * `arn:aws:lambda:eu-central-1:203001061592:function:PRE-3DPointCloudObjectTracking`
    #
    #   * `arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-3DPointCloudObjectTracking`
    #
    #   * `arn:aws:lambda:eu-west-2:487402164563:function:PRE-3DPointCloudObjectTracking`
    #
    #   * `arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-3DPointCloudObjectTracking`
    #
    #   * `arn:aws:lambda:ca-central-1:918755190332:function:PRE-3DPointCloudObjectTracking`
    #
    #   **3D Point Cloud Semantic Segmentation** - Use this task type when
    #   you want workers to create a point-level semantic segmentation masks
    #   by painting objects in a 3D point cloud using different colors where
    #   each color is assigned to one of the classes you specify.
    #
    #   * `arn:aws:lambda:us-east-1:432418664414:function:PRE-3DPointCloudSemanticSegmentation`
    #
    #   * `arn:aws:lambda:us-east-2:266458841044:function:PRE-3DPointCloudSemanticSegmentation`
    #
    #   * `arn:aws:lambda:us-west-2:081040173940:function:PRE-3DPointCloudSemanticSegmentation`
    #
    #   * `arn:aws:lambda:eu-west-1:568282634449:function:PRE-3DPointCloudSemanticSegmentation`
    #
    #   * `arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-3DPointCloudSemanticSegmentation`
    #
    #   * `arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-3DPointCloudSemanticSegmentation`
    #
    #   * `arn:aws:lambda:ap-south-1:565803892007:function:PRE-3DPointCloudSemanticSegmentation`
    #
    #   * `arn:aws:lambda:eu-central-1:203001061592:function:PRE-3DPointCloudSemanticSegmentation`
    #
    #   * `arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-3DPointCloudSemanticSegmentation`
    #
    #   * `arn:aws:lambda:eu-west-2:487402164563:function:PRE-3DPointCloudSemanticSegmentation`
    #
    #   * `arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-3DPointCloudSemanticSegmentation`
    #
    #   * `arn:aws:lambda:ca-central-1:918755190332:function:PRE-3DPointCloudSemanticSegmentation`
    #
    #   **Use the following ARNs for Label Verification and Adjustment
    #   Jobs**
    #
    #   Use label verification and adjustment jobs to review and adjust
    #   labels. To learn more, see [Verify and Adjust Labels ][4].
    #
    #   **Bounding box verification** - Uses a variant of the Expectation
    #   Maximization approach to estimate the true class of verification
    #   judgement for bounding box labels based on annotations from
    #   individual workers.
    #
    #   * `arn:aws:lambda:us-east-1:432418664414:function:PRE-VerificationBoundingBox`
    #
    #   * `arn:aws:lambda:us-east-2:266458841044:function:PRE-VerificationBoundingBox`
    #
    #   * `arn:aws:lambda:us-west-2:081040173940:function:PRE-VerificationBoundingBox`
    #
    #   * `arn:aws:lambda:eu-west-1:568282634449:function:PRE-VerificationBoundingBox`
    #
    #   * `arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-VerificationBoundingBox`
    #
    #   * `arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-VerificationBoundingBox`
    #
    #   * `arn:aws:lambda:ap-south-1:565803892007:function:PRE-VerificationBoundingBox`
    #
    #   * `arn:aws:lambda:eu-central-1:203001061592:function:PRE-VerificationBoundingBox`
    #
    #   * `arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-VerificationBoundingBox`
    #
    #   * `arn:aws:lambda:eu-west-2:487402164563:function:PRE-VerificationBoundingBox`
    #
    #   * `arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-VerificationBoundingBox`
    #
    #   * `arn:aws:lambda:ca-central-1:918755190332:function:PRE-VerificationBoundingBox`
    #
    #   **Bounding box adjustment** - Finds the most similar boxes from
    #   different workers based on the Jaccard index of the adjusted
    #   annotations.
    #
    #   * `arn:aws:lambda:us-east-1:432418664414:function:PRE-AdjustmentBoundingBox`
    #
    #   * `arn:aws:lambda:us-east-2:266458841044:function:PRE-AdjustmentBoundingBox`
    #
    #   * `arn:aws:lambda:us-west-2:081040173940:function:PRE-AdjustmentBoundingBox`
    #
    #   * `arn:aws:lambda:ca-central-1:918755190332:function:PRE-AdjustmentBoundingBox`
    #
    #   * `arn:aws:lambda:eu-west-1:568282634449:function:PRE-AdjustmentBoundingBox`
    #
    #   * `arn:aws:lambda:eu-west-2:487402164563:function:PRE-AdjustmentBoundingBox`
    #
    #   * `arn:aws:lambda:eu-central-1:203001061592:function:PRE-AdjustmentBoundingBox`
    #
    #   * `arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-AdjustmentBoundingBox`
    #
    #   * `arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-AdjustmentBoundingBox`
    #
    #   * `arn:aws:lambda:ap-south-1:565803892007:function:PRE-AdjustmentBoundingBox`
    #
    #   * `arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-AdjustmentBoundingBox`
    #
    #   * `arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-AdjustmentBoundingBox`
    #
    #   **Semantic segmentation verification** - Uses a variant of the
    #   Expectation Maximization approach to estimate the true class of
    #   verification judgment for semantic segmentation labels based on
    #   annotations from individual workers.
    #
    #   * `arn:aws:lambda:us-east-1:432418664414:function:PRE-VerificationSemanticSegmentation`
    #
    #   * `arn:aws:lambda:us-east-2:266458841044:function:PRE-VerificationSemanticSegmentation`
    #
    #   * `arn:aws:lambda:us-west-2:081040173940:function:PRE-VerificationSemanticSegmentation`
    #
    #   * `arn:aws:lambda:ca-central-1:918755190332:function:PRE-VerificationSemanticSegmentation`
    #
    #   * `arn:aws:lambda:eu-west-1:568282634449:function:PRE-VerificationSemanticSegmentation`
    #
    #   * `arn:aws:lambda:eu-west-2:487402164563:function:PRE-VerificationSemanticSegmentation`
    #
    #   * `arn:aws:lambda:eu-central-1:203001061592:function:PRE-VerificationSemanticSegmentation`
    #
    #   * `arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-VerificationSemanticSegmentation`
    #
    #   * `arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-VerificationSemanticSegmentation`
    #
    #   * `arn:aws:lambda:ap-south-1:565803892007:function:PRE-VerificationSemanticSegmentation`
    #
    #   * `arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-VerificationSemanticSegmentation`
    #
    #   * `arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-VerificationSemanticSegmentation`
    #
    #   **Semantic segmentation adjustment** - Treats each pixel in an image
    #   as a multi-class classification and treats pixel adjusted
    #   annotations from workers as "votes" for the correct label.
    #
    #   * `arn:aws:lambda:us-east-1:432418664414:function:PRE-AdjustmentSemanticSegmentation`
    #
    #   * `arn:aws:lambda:us-east-2:266458841044:function:PRE-AdjustmentSemanticSegmentation`
    #
    #   * `arn:aws:lambda:us-west-2:081040173940:function:PRE-AdjustmentSemanticSegmentation`
    #
    #   * `arn:aws:lambda:ca-central-1:918755190332:function:PRE-AdjustmentSemanticSegmentation`
    #
    #   * `arn:aws:lambda:eu-west-1:568282634449:function:PRE-AdjustmentSemanticSegmentation`
    #
    #   * `arn:aws:lambda:eu-west-2:487402164563:function:PRE-AdjustmentSemanticSegmentation`
    #
    #   * `arn:aws:lambda:eu-central-1:203001061592:function:PRE-AdjustmentSemanticSegmentation`
    #
    #   * `arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-AdjustmentSemanticSegmentation`
    #
    #   * `arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-AdjustmentSemanticSegmentation`
    #
    #   * `arn:aws:lambda:ap-south-1:565803892007:function:PRE-AdjustmentSemanticSegmentation`
    #
    #   * `arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-AdjustmentSemanticSegmentation`
    #
    #   * `arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-AdjustmentSemanticSegmentation`
    #
    #   **Video Frame Object Detection Adjustment** - Use this task type
    #   when you want workers to adjust bounding boxes that workers have
    #   added to video frames to classify and localize objects in a sequence
    #   of video frames.
    #
    #   * `arn:aws:lambda:us-east-1:432418664414:function:PRE-AdjustmentVideoObjectDetection`
    #
    #   * `arn:aws:lambda:us-east-2:266458841044:function:PRE-AdjustmentVideoObjectDetection`
    #
    #   * `arn:aws:lambda:us-west-2:081040173940:function:PRE-AdjustmentVideoObjectDetection`
    #
    #   * `arn:aws:lambda:eu-west-1:568282634449:function:PRE-AdjustmentVideoObjectDetection`
    #
    #   * `arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-AdjustmentVideoObjectDetection`
    #
    #   * `arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-AdjustmentVideoObjectDetection`
    #
    #   * `arn:aws:lambda:ap-south-1:565803892007:function:PRE-AdjustmentVideoObjectDetection`
    #
    #   * `arn:aws:lambda:eu-central-1:203001061592:function:PRE-AdjustmentVideoObjectDetection`
    #
    #   * `arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-AdjustmentVideoObjectDetection`
    #
    #   * `arn:aws:lambda:eu-west-2:487402164563:function:PRE-AdjustmentVideoObjectDetection`
    #
    #   * `arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-AdjustmentVideoObjectDetection`
    #
    #   * `arn:aws:lambda:ca-central-1:918755190332:function:PRE-AdjustmentVideoObjectDetection`
    #
    #   **Video Frame Object Tracking Adjustment** - Use this task type when
    #   you want workers to adjust bounding boxes that workers have added to
    #   video frames to track object movement across a sequence of video
    #   frames.
    #
    #   * `arn:aws:lambda:us-east-1:432418664414:function:PRE-AdjustmentVideoObjectTracking`
    #
    #   * `arn:aws:lambda:us-east-2:266458841044:function:PRE-AdjustmentVideoObjectTracking`
    #
    #   * `arn:aws:lambda:us-west-2:081040173940:function:PRE-AdjustmentVideoObjectTracking`
    #
    #   * `arn:aws:lambda:eu-west-1:568282634449:function:PRE-AdjustmentVideoObjectTracking`
    #
    #   * `arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-AdjustmentVideoObjectTracking`
    #
    #   * `arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-AdjustmentVideoObjectTracking`
    #
    #   * `arn:aws:lambda:ap-south-1:565803892007:function:PRE-AdjustmentVideoObjectTracking`
    #
    #   * `arn:aws:lambda:eu-central-1:203001061592:function:PRE-AdjustmentVideoObjectTracking`
    #
    #   * `arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-AdjustmentVideoObjectTracking`
    #
    #   * `arn:aws:lambda:eu-west-2:487402164563:function:PRE-AdjustmentVideoObjectTracking`
    #
    #   * `arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-AdjustmentVideoObjectTracking`
    #
    #   * `arn:aws:lambda:ca-central-1:918755190332:function:PRE-AdjustmentVideoObjectTracking`
    #
    #   **3D point cloud object detection adjustment** - Adjust 3D cuboids
    #   in a point cloud frame.
    #
    #   * `arn:aws:lambda:us-east-1:432418664414:function:PRE-Adjustment3DPointCloudObjectDetection`
    #
    #   * `arn:aws:lambda:us-east-2:266458841044:function:PRE-Adjustment3DPointCloudObjectDetection`
    #
    #   * `arn:aws:lambda:us-west-2:081040173940:function:PRE-Adjustment3DPointCloudObjectDetection`
    #
    #   * `arn:aws:lambda:eu-west-1:568282634449:function:PRE-Adjustment3DPointCloudObjectDetection`
    #
    #   * `arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-Adjustment3DPointCloudObjectDetection`
    #
    #   * `arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-Adjustment3DPointCloudObjectDetection`
    #
    #   * `arn:aws:lambda:ap-south-1:565803892007:function:PRE-Adjustment3DPointCloudObjectDetection`
    #
    #   * `arn:aws:lambda:eu-central-1:203001061592:function:PRE-Adjustment3DPointCloudObjectDetection`
    #
    #   * `arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-Adjustment3DPointCloudObjectDetection`
    #
    #   * `arn:aws:lambda:eu-west-2:487402164563:function:PRE-Adjustment3DPointCloudObjectDetection`
    #
    #   * `arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-Adjustment3DPointCloudObjectDetection`
    #
    #   * `arn:aws:lambda:ca-central-1:918755190332:function:PRE-Adjustment3DPointCloudObjectDetection`
    #
    #   **3D point cloud object tracking adjustment** - Adjust 3D cuboids
    #   across a sequence of point cloud frames.
    #
    #   * `arn:aws:lambda:us-east-1:432418664414:function:PRE-Adjustment3DPointCloudObjectTracking`
    #
    #   * `arn:aws:lambda:us-east-2:266458841044:function:PRE-Adjustment3DPointCloudObjectTracking`
    #
    #   * `arn:aws:lambda:us-west-2:081040173940:function:PRE-Adjustment3DPointCloudObjectTracking`
    #
    #   * `arn:aws:lambda:eu-west-1:568282634449:function:PRE-Adjustment3DPointCloudObjectTracking`
    #
    #   * `arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-Adjustment3DPointCloudObjectTracking`
    #
    #   * `arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-Adjustment3DPointCloudObjectTracking`
    #
    #   * `arn:aws:lambda:ap-south-1:565803892007:function:PRE-Adjustment3DPointCloudObjectTracking`
    #
    #   * `arn:aws:lambda:eu-central-1:203001061592:function:PRE-Adjustment3DPointCloudObjectTracking`
    #
    #   * `arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-Adjustment3DPointCloudObjectTracking`
    #
    #   * `arn:aws:lambda:eu-west-2:487402164563:function:PRE-Adjustment3DPointCloudObjectTracking`
    #
    #   * `arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-Adjustment3DPointCloudObjectTracking`
    #
    #   * `arn:aws:lambda:ca-central-1:918755190332:function:PRE-Adjustment3DPointCloudObjectTracking`
    #
    #   **3D point cloud semantic segmentation adjustment** - Adjust
    #   semantic segmentation masks in a 3D point cloud.
    #
    #   * `arn:aws:lambda:us-east-1:432418664414:function:PRE-Adjustment3DPointCloudSemanticSegmentation`
    #
    #   * `arn:aws:lambda:us-east-2:266458841044:function:PRE-Adjustment3DPointCloudSemanticSegmentation`
    #
    #   * `arn:aws:lambda:us-west-2:081040173940:function:PRE-Adjustment3DPointCloudSemanticSegmentation`
    #
    #   * `arn:aws:lambda:eu-west-1:568282634449:function:PRE-Adjustment3DPointCloudSemanticSegmentation`
    #
    #   * `arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-Adjustment3DPointCloudSemanticSegmentation`
    #
    #   * `arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-Adjustment3DPointCloudSemanticSegmentation`
    #
    #   * `arn:aws:lambda:ap-south-1:565803892007:function:PRE-Adjustment3DPointCloudSemanticSegmentation`
    #
    #   * `arn:aws:lambda:eu-central-1:203001061592:function:PRE-Adjustment3DPointCloudSemanticSegmentation`
    #
    #   * `arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-Adjustment3DPointCloudSemanticSegmentation`
    #
    #   * `arn:aws:lambda:eu-west-2:487402164563:function:PRE-Adjustment3DPointCloudSemanticSegmentation`
    #
    #   * `arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-Adjustment3DPointCloudSemanticSegmentation`
    #
    #   * `arn:aws:lambda:ca-central-1:918755190332:function:PRE-Adjustment3DPointCloudSemanticSegmentation`
    #
    #   **Generative AI/Custom** - Direct passthrough of input data without
    #   any transformation.
    #
    #   * `arn:aws:lambda:us-east-1:432418664414:function:PRE-PassThrough`
    #
    #   * `arn:aws:lambda:us-east-2:266458841044:function:PRE-PassThrough`
    #
    #   * `arn:aws:lambda:us-west-2:081040173940:function:PRE-PassThrough`
    #
    #   * `arn:aws:lambda:ca-central-1:918755190332:function:PRE-PassThrough`
    #
    #   * `arn:aws:lambda:eu-west-1:568282634449:function:PRE-PassThrough`
    #
    #   * `arn:aws:lambda:eu-west-2:487402164563:function:PRE-PassThrough`
    #
    #   * `arn:aws:lambda:eu-central-1:203001061592:function:PRE-PassThrough`
    #
    #   * `arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-PassThrough`
    #
    #   * `arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-PassThrough`
    #
    #   * `arn:aws:lambda:ap-south-1:565803892007:function:PRE-PassThrough`
    #
    #   * `arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-PassThrough`
    #
    #   * `arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-PassThrough`
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/sms-task-types.html
    #   [2]: https://docs.aws.amazon.com/sagemaker/latest/dg/sms-custom-templates-step3.html#sms-custom-templates-step3-prelambda
    #   [3]: https://docs.aws.amazon.com/sagemaker/latest/dg/sms-point-cloud-task-types.html
    #   [4]: https://docs.aws.amazon.com/sagemaker/latest/dg/sms-verification-data.html
    #   @return [String]
    #
    # @!attribute [rw] task_keywords
    #   Keywords used to describe the task so that workers on Amazon
    #   Mechanical Turk can discover the task.
    #   @return [Array<String>]
    #
    # @!attribute [rw] task_title
    #   A title for the task for your human workers.
    #   @return [String]
    #
    # @!attribute [rw] task_description
    #   A description of the task for your human workers.
    #   @return [String]
    #
    # @!attribute [rw] number_of_human_workers_per_data_object
    #   The number of human workers that will label an object.
    #   @return [Integer]
    #
    # @!attribute [rw] task_time_limit_in_seconds
    #   The amount of time that a worker has to complete a task.
    #
    #   If you create a custom labeling job, the maximum value for this
    #   parameter is 8 hours (28,800 seconds).
    #
    #   If you create a labeling job using a [built-in task type][1] the
    #   maximum for this parameter depends on the task type you use:
    #
    #   * For [image][2] and [text][3] labeling jobs, the maximum is 8 hours
    #     (28,800 seconds).
    #
    #   * For [3D point cloud][4] and [video frame][5] labeling jobs, the
    #     maximum is 30 days (2952,000 seconds) for non-AL mode. For most
    #     users, the maximum is also 30 days.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/sms-task-types.html
    #   [2]: https://docs.aws.amazon.com/sagemaker/latest/dg/sms-label-images.html
    #   [3]: https://docs.aws.amazon.com/sagemaker/latest/dg/sms-label-text.html
    #   [4]: https://docs.aws.amazon.com/sagemaker/latest/dg/sms-point-cloud.html
    #   [5]: https://docs.aws.amazon.com/sagemaker/latest/dg/sms-video.html
    #   @return [Integer]
    #
    # @!attribute [rw] task_availability_lifetime_in_seconds
    #   The length of time that a task remains available for labeling by
    #   human workers. The default and maximum values for this parameter
    #   depend on the type of workforce you use.
    #
    #   * If you choose the Amazon Mechanical Turk workforce, the maximum is
    #     12 hours (43,200 seconds). The default is 6 hours (21,600
    #     seconds).
    #
    #   * If you choose a private or vendor workforce, the default value is
    #     30 days (2592,000 seconds) for non-AL mode. For most users, the
    #     maximum is also 30 days.
    #   @return [Integer]
    #
    # @!attribute [rw] max_concurrent_task_count
    #   Defines the maximum number of data objects that can be labeled by
    #   human workers at the same time. Also referred to as batch size. Each
    #   object may have more than one worker at one time. The default value
    #   is 1000 objects. To increase the maximum value to 5000 objects,
    #   contact Amazon Web Services Support.
    #   @return [Integer]
    #
    # @!attribute [rw] annotation_consolidation_config
    #   Configures how labels are consolidated across human workers.
    #   @return [Types::AnnotationConsolidationConfig]
    #
    # @!attribute [rw] public_workforce_task_price
    #   The price that you pay for each task performed by an Amazon
    #   Mechanical Turk worker.
    #   @return [Types::PublicWorkforceTaskPrice]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/HumanTaskConfig AWS API Documentation
    #
    class HumanTaskConfig < Struct.new(
      :workteam_arn,
      :ui_config,
      :pre_human_task_lambda_arn,
      :task_keywords,
      :task_title,
      :task_description,
      :number_of_human_workers_per_data_object,
      :task_time_limit_in_seconds,
      :task_availability_lifetime_in_seconds,
      :max_concurrent_task_count,
      :annotation_consolidation_config,
      :public_workforce_task_price)
      SENSITIVE = []
      include Aws::Structure
    end

    # Container for human task user interface information.
    #
    # @!attribute [rw] human_task_ui_name
    #   The name of the human task user interface.
    #   @return [String]
    #
    # @!attribute [rw] human_task_ui_arn
    #   The Amazon Resource Name (ARN) of the human task user interface.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   A timestamp when SageMaker created the human task user interface.
    #   @return [Time]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/HumanTaskUiSummary AWS API Documentation
    #
    class HumanTaskUiSummary < Struct.new(
      :human_task_ui_name,
      :human_task_ui_arn,
      :creation_time)
      SENSITIVE = []
      include Aws::Structure
    end

    # Specifies which training algorithm to use for training jobs that a
    # hyperparameter tuning job launches and the metrics to monitor.
    #
    # @!attribute [rw] training_image
    #   The registry path of the Docker image that contains the training
    #   algorithm. For information about Docker registry paths for built-in
    #   algorithms, see [Algorithms Provided by Amazon SageMaker: Common
    #   Parameters][1]. SageMaker supports both `registry/repository[:tag]`
    #   and `registry/repository[@digest]` image path formats. For more
    #   information, see [Using Your Own Algorithms with Amazon
    #   SageMaker][2].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-algo-docker-registry-paths.html
    #   [2]: https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms.html
    #   @return [String]
    #
    # @!attribute [rw] training_input_mode
    #   The training input mode that the algorithm supports. For more
    #   information about input modes, see [Algorithms][1].
    #
    #   **Pipe mode**
    #
    #   If an algorithm supports `Pipe` mode, Amazon SageMaker streams data
    #   directly from Amazon S3 to the container.
    #
    #   **File mode**
    #
    #   If an algorithm supports `File` mode, SageMaker downloads the
    #   training data from S3 to the provisioned ML storage volume, and
    #   mounts the directory to the Docker volume for the training
    #   container.
    #
    #   You must provision the ML storage volume with sufficient capacity to
    #   accommodate the data downloaded from S3. In addition to the training
    #   data, the ML storage volume also stores the output model. The
    #   algorithm container uses the ML storage volume to also store
    #   intermediate information, if any.
    #
    #   For distributed algorithms, training data is distributed uniformly.
    #   Your training duration is predictable if the input data objects
    #   sizes are approximately the same. SageMaker does not split the files
    #   any further for model training. If the object sizes are skewed,
    #   training won't be optimal as the data distribution is also skewed
    #   when one host in a training cluster is overloaded, thus becoming a
    #   bottleneck in training.
    #
    #   **FastFile mode**
    #
    #   If an algorithm supports `FastFile` mode, SageMaker streams data
    #   directly from S3 to the container with no code changes, and provides
    #   file system access to the data. Users can author their training
    #   script to interact with these files as if they were stored on disk.
    #
    #   `FastFile` mode works best when the data is read sequentially.
    #   Augmented manifest files aren't supported. The startup time is
    #   lower when there are fewer files in the S3 bucket provided.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/algos.html
    #   @return [String]
    #
    # @!attribute [rw] algorithm_name
    #   The name of the resource algorithm to use for the hyperparameter
    #   tuning job. If you specify a value for this parameter, do not
    #   specify a value for `TrainingImage`.
    #   @return [String]
    #
    # @!attribute [rw] metric_definitions
    #   An array of [MetricDefinition][1] objects that specify the metrics
    #   that the algorithm emits.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_MetricDefinition.html
    #   @return [Array<Types::MetricDefinition>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/HyperParameterAlgorithmSpecification AWS API Documentation
    #
    class HyperParameterAlgorithmSpecification < Struct.new(
      :training_image,
      :training_input_mode,
      :algorithm_name,
      :metric_definitions)
      SENSITIVE = []
      include Aws::Structure
    end

    # Defines a hyperparameter to be used by an algorithm.
    #
    # @!attribute [rw] name
    #   The name of this hyperparameter. The name must be unique.
    #   @return [String]
    #
    # @!attribute [rw] description
    #   A brief description of the hyperparameter.
    #   @return [String]
    #
    # @!attribute [rw] type
    #   The type of this hyperparameter. The valid types are `Integer`,
    #   `Continuous`, `Categorical`, and `FreeText`.
    #   @return [String]
    #
    # @!attribute [rw] range
    #   The allowed range for this hyperparameter.
    #   @return [Types::ParameterRange]
    #
    # @!attribute [rw] is_tunable
    #   Indicates whether this hyperparameter is tunable in a hyperparameter
    #   tuning job.
    #   @return [Boolean]
    #
    # @!attribute [rw] is_required
    #   Indicates whether this hyperparameter is required.
    #   @return [Boolean]
    #
    # @!attribute [rw] default_value
    #   The default value for this hyperparameter. If a default value is
    #   specified, a hyperparameter cannot be required.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/HyperParameterSpecification AWS API Documentation
    #
    class HyperParameterSpecification < Struct.new(
      :name,
      :description,
      :type,
      :range,
      :is_tunable,
      :is_required,
      :default_value)
      SENSITIVE = []
      include Aws::Structure
    end

    # Defines the training jobs launched by a hyperparameter tuning job.
    #
    # @!attribute [rw] definition_name
    #   The job definition name.
    #   @return [String]
    #
    # @!attribute [rw] tuning_objective
    #   Defines the objective metric for a hyperparameter tuning job.
    #   Hyperparameter tuning uses the value of this metric to evaluate the
    #   training jobs it launches, and returns the training job that results
    #   in either the highest or lowest value for this metric, depending on
    #   the value you specify for the `Type` parameter. If you want to
    #   define a custom objective metric, see [Define metrics and
    #   environment variables][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-define-metrics-variables.html
    #   @return [Types::HyperParameterTuningJobObjective]
    #
    # @!attribute [rw] hyper_parameter_ranges
    #   Specifies ranges of integer, continuous, and categorical
    #   hyperparameters that a hyperparameter tuning job searches. The
    #   hyperparameter tuning job launches training jobs with hyperparameter
    #   values within these ranges to find the combination of values that
    #   result in the training job with the best performance as measured by
    #   the objective metric of the hyperparameter tuning job.
    #
    #   <note markdown="1"> The maximum number of items specified for `Array Members` refers to
    #   the maximum number of hyperparameters for each range and also the
    #   maximum for the hyperparameter tuning job itself. That is, the sum
    #   of the number of hyperparameters for all the ranges can't exceed
    #   the maximum number specified.
    #
    #    </note>
    #   @return [Types::ParameterRanges]
    #
    # @!attribute [rw] static_hyper_parameters
    #   Specifies the values of hyperparameters that do not change for the
    #   tuning job.
    #   @return [Hash<String,String>]
    #
    # @!attribute [rw] algorithm_specification
    #   The [HyperParameterAlgorithmSpecification][1] object that specifies
    #   the resource algorithm to use for the training jobs that the tuning
    #   job launches.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_HyperParameterAlgorithmSpecification.html
    #   @return [Types::HyperParameterAlgorithmSpecification]
    #
    # @!attribute [rw] role_arn
    #   The Amazon Resource Name (ARN) of the IAM role associated with the
    #   training jobs that the tuning job launches.
    #   @return [String]
    #
    # @!attribute [rw] input_data_config
    #   An array of [Channel][1] objects that specify the input for the
    #   training jobs that the tuning job launches.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_Channel.html
    #   @return [Array<Types::Channel>]
    #
    # @!attribute [rw] vpc_config
    #   The [VpcConfig][1] object that specifies the VPC that you want the
    #   training jobs that this hyperparameter tuning job launches to
    #   connect to. Control access to and from your training container by
    #   configuring the VPC. For more information, see [Protect Training
    #   Jobs by Using an Amazon Virtual Private Cloud][2].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_VpcConfig.html
    #   [2]: https://docs.aws.amazon.com/sagemaker/latest/dg/train-vpc.html
    #   @return [Types::VpcConfig]
    #
    # @!attribute [rw] output_data_config
    #   Specifies the path to the Amazon S3 bucket where you store model
    #   artifacts from the training jobs that the tuning job launches.
    #   @return [Types::OutputDataConfig]
    #
    # @!attribute [rw] resource_config
    #   The resources, including the compute instances and storage volumes,
    #   to use for the training jobs that the tuning job launches.
    #
    #   Storage volumes store model artifacts and incremental states.
    #   Training algorithms might also use storage volumes for scratch
    #   space. If you want SageMaker to use the storage volume to store the
    #   training data, choose `File` as the `TrainingInputMode` in the
    #   algorithm specification. For distributed training algorithms,
    #   specify an instance count greater than 1.
    #
    #   <note markdown="1"> If you want to use hyperparameter optimization with instance type
    #   flexibility, use `HyperParameterTuningResourceConfig` instead.
    #
    #    </note>
    #   @return [Types::ResourceConfig]
    #
    # @!attribute [rw] hyper_parameter_tuning_resource_config
    #   The configuration for the hyperparameter tuning resources, including
    #   the compute instances and storage volumes, used for training jobs
    #   launched by the tuning job. By default, storage volumes hold model
    #   artifacts and incremental states. Choose `File` for
    #   `TrainingInputMode` in the `AlgorithmSpecification` parameter to
    #   additionally store training data in the storage volume (optional).
    #   @return [Types::HyperParameterTuningResourceConfig]
    #
    # @!attribute [rw] stopping_condition
    #   Specifies a limit to how long a model hyperparameter training job
    #   can run. It also specifies how long a managed spot training job has
    #   to complete. When the job reaches the time limit, SageMaker ends the
    #   training job. Use this API to cap model training costs.
    #   @return [Types::StoppingCondition]
    #
    # @!attribute [rw] enable_network_isolation
    #   Isolates the training container. No inbound or outbound network
    #   calls can be made, except for calls between peers within a training
    #   cluster for distributed training. If network isolation is used for
    #   training jobs that are configured to use a VPC, SageMaker downloads
    #   and uploads customer data and model artifacts through the specified
    #   VPC, but the training container does not have network access.
    #   @return [Boolean]
    #
    # @!attribute [rw] enable_inter_container_traffic_encryption
    #   To encrypt all communications between ML compute instances in
    #   distributed training, choose `True`. Encryption provides greater
    #   security for distributed training, but training might take longer.
    #   How long it takes depends on the amount of communication between
    #   compute instances, especially if you use a deep learning algorithm
    #   in distributed training.
    #   @return [Boolean]
    #
    # @!attribute [rw] enable_managed_spot_training
    #   A Boolean indicating whether managed spot training is enabled
    #   (`True`) or not (`False`).
    #   @return [Boolean]
    #
    # @!attribute [rw] checkpoint_config
    #   Contains information about the output location for managed spot
    #   training checkpoint data.
    #   @return [Types::CheckpointConfig]
    #
    # @!attribute [rw] retry_strategy
    #   The number of times to retry the job when the job fails due to an
    #   `InternalServerError`.
    #   @return [Types::RetryStrategy]
    #
    # @!attribute [rw] environment
    #   An environment variable that you can pass into the SageMaker
    #   [CreateTrainingJob][1] API. You can use an existing [environment
    #   variable from the training container][2] or use your own. See
    #   [Define metrics and variables][3] for more information.
    #
    #   <note markdown="1"> The maximum number of items specified for `Map Entries` refers to
    #   the maximum number of environment variables for each
    #   `TrainingJobDefinition` and also the maximum for the hyperparameter
    #   tuning job itself. That is, the sum of the number of environment
    #   variables for all the training job definitions can't exceed the
    #   maximum number specified.
    #
    #    </note>
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html
    #   [2]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html#sagemaker-CreateTrainingJob-request-Environment
    #   [3]: https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-define-metrics-variables.html
    #   @return [Hash<String,String>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/HyperParameterTrainingJobDefinition AWS API Documentation
    #
    class HyperParameterTrainingJobDefinition < Struct.new(
      :definition_name,
      :tuning_objective,
      :hyper_parameter_ranges,
      :static_hyper_parameters,
      :algorithm_specification,
      :role_arn,
      :input_data_config,
      :vpc_config,
      :output_data_config,
      :resource_config,
      :hyper_parameter_tuning_resource_config,
      :stopping_condition,
      :enable_network_isolation,
      :enable_inter_container_traffic_encryption,
      :enable_managed_spot_training,
      :checkpoint_config,
      :retry_strategy,
      :environment)
      SENSITIVE = []
      include Aws::Structure
    end

    # The container for the summary information about a training job.
    #
    # @!attribute [rw] training_job_definition_name
    #   The training job definition name.
    #   @return [String]
    #
    # @!attribute [rw] training_job_name
    #   The name of the training job.
    #   @return [String]
    #
    # @!attribute [rw] training_job_arn
    #   The Amazon Resource Name (ARN) of the training job.
    #   @return [String]
    #
    # @!attribute [rw] tuning_job_name
    #   The HyperParameter tuning job that launched the training job.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   The date and time that the training job was created.
    #   @return [Time]
    #
    # @!attribute [rw] training_start_time
    #   The date and time that the training job started.
    #   @return [Time]
    #
    # @!attribute [rw] training_end_time
    #   Specifies the time when the training job ends on training instances.
    #   You are billed for the time interval between the value of
    #   `TrainingStartTime` and this time. For successful jobs and stopped
    #   jobs, this is the time after model artifacts are uploaded. For
    #   failed jobs, this is the time when SageMaker detects a job failure.
    #   @return [Time]
    #
    # @!attribute [rw] training_job_status
    #   The status of the training job.
    #   @return [String]
    #
    # @!attribute [rw] tuned_hyper_parameters
    #   A list of the hyperparameters for which you specified ranges to
    #   search.
    #   @return [Hash<String,String>]
    #
    # @!attribute [rw] failure_reason
    #   The reason that the training job failed.
    #   @return [String]
    #
    # @!attribute [rw] final_hyper_parameter_tuning_job_objective_metric
    #   The [FinalHyperParameterTuningJobObjectiveMetric][1] object that
    #   specifies the value of the objective metric of the tuning job that
    #   launched this training job.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_FinalHyperParameterTuningJobObjectiveMetric.html
    #   @return [Types::FinalHyperParameterTuningJobObjectiveMetric]
    #
    # @!attribute [rw] objective_status
    #   The status of the objective metric for the training job:
    #
    #   * Succeeded: The final objective metric for the training job was
    #     evaluated by the hyperparameter tuning job and used in the
    #     hyperparameter tuning process.
    #
    #   ^
    #   ^
    #
    #   * Pending: The training job is in progress and evaluation of its
    #     final objective metric is pending.
    #
    #   ^
    #   ^
    #
    #   * Failed: The final objective metric for the training job was not
    #     evaluated, and was not used in the hyperparameter tuning process.
    #     This typically occurs when the training job failed or did not emit
    #     an objective metric.
    #
    #   ^
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/HyperParameterTrainingJobSummary AWS API Documentation
    #
    class HyperParameterTrainingJobSummary < Struct.new(
      :training_job_definition_name,
      :training_job_name,
      :training_job_arn,
      :tuning_job_name,
      :creation_time,
      :training_start_time,
      :training_end_time,
      :training_job_status,
      :tuned_hyper_parameters,
      :failure_reason,
      :final_hyper_parameter_tuning_job_objective_metric,
      :objective_status)
      SENSITIVE = []
      include Aws::Structure
    end

    # The configuration for hyperparameter tuning resources for use in
    # training jobs launched by the tuning job. These resources include
    # compute instances and storage volumes. Specify one or more compute
    # instance configurations and allocation strategies to select resources
    # (optional).
    #
    # @!attribute [rw] instance_type
    #   The instance type used for processing of hyperparameter optimization
    #   jobs. Choose from general purpose (no GPUs) instance types:
    #   ml.m5.xlarge, ml.m5.2xlarge, and ml.m5.4xlarge or compute optimized
    #   (no GPUs) instance types: ml.c5.xlarge and ml.c5.2xlarge. For more
    #   information about instance types, see [instance type
    #   descriptions][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/notebooks-available-instance-types.html
    #   @return [String]
    #
    # @!attribute [rw] instance_count
    #   The number of instances of the type specified by `InstanceType`.
    #   Choose an instance count larger than 1 for distributed training
    #   algorithms. See [Step 2: Launch a SageMaker Distributed Training Job
    #   Using the SageMaker Python SDK][1] for more information.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/data-parallel-use-api.html
    #   @return [Integer]
    #
    # @!attribute [rw] volume_size_in_gb
    #   The volume size in GB of the data to be processed for hyperparameter
    #   optimization (optional).
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/HyperParameterTuningInstanceConfig AWS API Documentation
    #
    class HyperParameterTuningInstanceConfig < Struct.new(
      :instance_type,
      :instance_count,
      :volume_size_in_gb)
      SENSITIVE = []
      include Aws::Structure
    end

    # A structure that contains runtime information about both current and
    # completed hyperparameter tuning jobs.
    #
    # @!attribute [rw] number_of_training_jobs_objective_not_improving
    #   The number of training jobs launched by a tuning job that are not
    #   improving (1% or less) as measured by model performance evaluated
    #   against an objective function.
    #   @return [Integer]
    #
    # @!attribute [rw] convergence_detected_time
    #   The time in timestamp format that AMT detected model convergence, as
    #   defined by a lack of significant improvement over time based on
    #   criteria developed over a wide range of diverse benchmarking tests.
    #   @return [Time]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/HyperParameterTuningJobCompletionDetails AWS API Documentation
    #
    class HyperParameterTuningJobCompletionDetails < Struct.new(
      :number_of_training_jobs_objective_not_improving,
      :convergence_detected_time)
      SENSITIVE = []
      include Aws::Structure
    end

    # Configures a hyperparameter tuning job.
    #
    # @!attribute [rw] strategy
    #   Specifies how hyperparameter tuning chooses the combinations of
    #   hyperparameter values to use for the training job it launches. For
    #   information about search strategies, see [How Hyperparameter Tuning
    #   Works][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-how-it-works.html
    #   @return [String]
    #
    # @!attribute [rw] strategy_config
    #   The configuration for the `Hyperband` optimization strategy. This
    #   parameter should be provided only if `Hyperband` is selected as the
    #   strategy for `HyperParameterTuningJobConfig`.
    #   @return [Types::HyperParameterTuningJobStrategyConfig]
    #
    # @!attribute [rw] hyper_parameter_tuning_job_objective
    #   The [HyperParameterTuningJobObjective][1] specifies the objective
    #   metric used to evaluate the performance of training jobs launched by
    #   this tuning job.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_HyperParameterTuningJobObjective.html
    #   @return [Types::HyperParameterTuningJobObjective]
    #
    # @!attribute [rw] resource_limits
    #   The [ResourceLimits][1] object that specifies the maximum number of
    #   training and parallel training jobs that can be used for this
    #   hyperparameter tuning job.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ResourceLimits.html
    #   @return [Types::ResourceLimits]
    #
    # @!attribute [rw] parameter_ranges
    #   The [ParameterRanges][1] object that specifies the ranges of
    #   hyperparameters that this tuning job searches over to find the
    #   optimal configuration for the highest model performance against your
    #   chosen objective metric.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ParameterRanges.html
    #   @return [Types::ParameterRanges]
    #
    # @!attribute [rw] training_job_early_stopping_type
    #   Specifies whether to use early stopping for training jobs launched
    #   by the hyperparameter tuning job. Because the `Hyperband` strategy
    #   has its own advanced internal early stopping mechanism,
    #   `TrainingJobEarlyStoppingType` must be `OFF` to use `Hyperband`.
    #   This parameter can take on one of the following values (the default
    #   value is `OFF`):
    #
    #   OFF
    #
    #   : Training jobs launched by the hyperparameter tuning job do not use
    #     early stopping.
    #
    #   AUTO
    #
    #   : SageMaker stops training jobs launched by the hyperparameter
    #     tuning job when they are unlikely to perform better than
    #     previously completed training jobs. For more information, see
    #     [Stop Training Jobs Early][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-early-stopping.html
    #   @return [String]
    #
    # @!attribute [rw] tuning_job_completion_criteria
    #   The tuning job's completion criteria.
    #   @return [Types::TuningJobCompletionCriteria]
    #
    # @!attribute [rw] random_seed
    #   A value used to initialize a pseudo-random number generator. Setting
    #   a random seed and using the same seed later for the same tuning job
    #   will allow hyperparameter optimization to find more a consistent
    #   hyperparameter configuration between the two runs.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/HyperParameterTuningJobConfig AWS API Documentation
    #
    class HyperParameterTuningJobConfig < Struct.new(
      :strategy,
      :strategy_config,
      :hyper_parameter_tuning_job_objective,
      :resource_limits,
      :parameter_ranges,
      :training_job_early_stopping_type,
      :tuning_job_completion_criteria,
      :random_seed)
      SENSITIVE = []
      include Aws::Structure
    end

    # The total resources consumed by your hyperparameter tuning job.
    #
    # @!attribute [rw] runtime_in_seconds
    #   The wall clock runtime in seconds used by your hyperparameter tuning
    #   job.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/HyperParameterTuningJobConsumedResources AWS API Documentation
    #
    class HyperParameterTuningJobConsumedResources < Struct.new(
      :runtime_in_seconds)
      SENSITIVE = []
      include Aws::Structure
    end

    # Defines the objective metric for a hyperparameter tuning job.
    # Hyperparameter tuning uses the value of this metric to evaluate the
    # training jobs it launches, and returns the training job that results
    # in either the highest or lowest value for this metric, depending on
    # the value you specify for the `Type` parameter. If you want to define
    # a custom objective metric, see [Define metrics and environment
    # variables][1].
    #
    #
    #
    # [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-define-metrics-variables.html
    #
    # @!attribute [rw] type
    #   Whether to minimize or maximize the objective metric.
    #   @return [String]
    #
    # @!attribute [rw] metric_name
    #   The name of the metric to use for the objective metric.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/HyperParameterTuningJobObjective AWS API Documentation
    #
    class HyperParameterTuningJobObjective < Struct.new(
      :type,
      :metric_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # An entity returned by the [SearchRecord][1] API containing the
    # properties of a hyperparameter tuning job.
    #
    #
    #
    # [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_SearchRecord.html
    #
    # @!attribute [rw] hyper_parameter_tuning_job_name
    #   The name of a hyperparameter tuning job.
    #   @return [String]
    #
    # @!attribute [rw] hyper_parameter_tuning_job_arn
    #   The Amazon Resource Name (ARN) of a hyperparameter tuning job.
    #   @return [String]
    #
    # @!attribute [rw] hyper_parameter_tuning_job_config
    #   Configures a hyperparameter tuning job.
    #   @return [Types::HyperParameterTuningJobConfig]
    #
    # @!attribute [rw] training_job_definition
    #   Defines the training jobs launched by a hyperparameter tuning job.
    #   @return [Types::HyperParameterTrainingJobDefinition]
    #
    # @!attribute [rw] training_job_definitions
    #   The job definitions included in a hyperparameter tuning job.
    #   @return [Array<Types::HyperParameterTrainingJobDefinition>]
    #
    # @!attribute [rw] hyper_parameter_tuning_job_status
    #   The status of a hyperparameter tuning job.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   The time that a hyperparameter tuning job was created.
    #   @return [Time]
    #
    # @!attribute [rw] hyper_parameter_tuning_end_time
    #   The time that a hyperparameter tuning job ended.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time
    #   The time that a hyperparameter tuning job was last modified.
    #   @return [Time]
    #
    # @!attribute [rw] training_job_status_counters
    #   The numbers of training jobs launched by a hyperparameter tuning
    #   job, categorized by status.
    #   @return [Types::TrainingJobStatusCounters]
    #
    # @!attribute [rw] objective_status_counters
    #   Specifies the number of training jobs that this hyperparameter
    #   tuning job launched, categorized by the status of their objective
    #   metric. The objective metric status shows whether the final
    #   objective metric for the training job has been evaluated by the
    #   tuning job and used in the hyperparameter tuning process.
    #   @return [Types::ObjectiveStatusCounters]
    #
    # @!attribute [rw] best_training_job
    #   The container for the summary information about a training job.
    #   @return [Types::HyperParameterTrainingJobSummary]
    #
    # @!attribute [rw] overall_best_training_job
    #   The container for the summary information about a training job.
    #   @return [Types::HyperParameterTrainingJobSummary]
    #
    # @!attribute [rw] warm_start_config
    #   Specifies the configuration for a hyperparameter tuning job that
    #   uses one or more previous hyperparameter tuning jobs as a starting
    #   point. The results of previous tuning jobs are used to inform which
    #   combinations of hyperparameters to search over in the new tuning
    #   job.
    #
    #   All training jobs launched by the new hyperparameter tuning job are
    #   evaluated by using the objective metric, and the training job that
    #   performs the best is compared to the best training jobs from the
    #   parent tuning jobs. From these, the training job that performs the
    #   best as measured by the objective metric is returned as the overall
    #   best training job.
    #
    #   <note markdown="1"> All training jobs launched by parent hyperparameter tuning jobs and
    #   the new hyperparameter tuning jobs count against the limit of
    #   training jobs for the tuning job.
    #
    #    </note>
    #   @return [Types::HyperParameterTuningJobWarmStartConfig]
    #
    # @!attribute [rw] failure_reason
    #   The error that was created when a hyperparameter tuning job failed.
    #   @return [String]
    #
    # @!attribute [rw] tuning_job_completion_details
    #   Information about either a current or completed hyperparameter
    #   tuning job.
    #   @return [Types::HyperParameterTuningJobCompletionDetails]
    #
    # @!attribute [rw] consumed_resources
    #   The total amount of resources consumed by a hyperparameter tuning
    #   job.
    #   @return [Types::HyperParameterTuningJobConsumedResources]
    #
    # @!attribute [rw] tags
    #   The tags associated with a hyperparameter tuning job. For more
    #   information see [Tagging Amazon Web Services resources][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html
    #   @return [Array<Types::Tag>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/HyperParameterTuningJobSearchEntity AWS API Documentation
    #
    class HyperParameterTuningJobSearchEntity < Struct.new(
      :hyper_parameter_tuning_job_name,
      :hyper_parameter_tuning_job_arn,
      :hyper_parameter_tuning_job_config,
      :training_job_definition,
      :training_job_definitions,
      :hyper_parameter_tuning_job_status,
      :creation_time,
      :hyper_parameter_tuning_end_time,
      :last_modified_time,
      :training_job_status_counters,
      :objective_status_counters,
      :best_training_job,
      :overall_best_training_job,
      :warm_start_config,
      :failure_reason,
      :tuning_job_completion_details,
      :consumed_resources,
      :tags)
      SENSITIVE = []
      include Aws::Structure
    end

    # The configuration for a training job launched by a hyperparameter
    # tuning job. Choose `Bayesian` for Bayesian optimization, and `Random`
    # for random search optimization. For more advanced use cases, use
    # `Hyperband`, which evaluates objective metrics for training jobs after
    # every epoch. For more information about strategies, see [How
    # Hyperparameter Tuning Works][1].
    #
    #
    #
    # [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-how-it-works.html
    #
    # @!attribute [rw] hyperband_strategy_config
    #   The configuration for the object that specifies the `Hyperband`
    #   strategy. This parameter is only supported for the `Hyperband`
    #   selection for `Strategy` within the `HyperParameterTuningJobConfig`
    #   API.
    #   @return [Types::HyperbandStrategyConfig]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/HyperParameterTuningJobStrategyConfig AWS API Documentation
    #
    class HyperParameterTuningJobStrategyConfig < Struct.new(
      :hyperband_strategy_config)
      SENSITIVE = []
      include Aws::Structure
    end

    # Provides summary information about a hyperparameter tuning job.
    #
    # @!attribute [rw] hyper_parameter_tuning_job_name
    #   The name of the tuning job.
    #   @return [String]
    #
    # @!attribute [rw] hyper_parameter_tuning_job_arn
    #   The Amazon Resource Name (ARN) of the tuning job.
    #   @return [String]
    #
    # @!attribute [rw] hyper_parameter_tuning_job_status
    #   The status of the tuning job.
    #   @return [String]
    #
    # @!attribute [rw] strategy
    #   Specifies the search strategy hyperparameter tuning uses to choose
    #   which hyperparameters to evaluate at each iteration.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   The date and time that the tuning job was created.
    #   @return [Time]
    #
    # @!attribute [rw] hyper_parameter_tuning_end_time
    #   The date and time that the tuning job ended.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time
    #   The date and time that the tuning job was modified.
    #   @return [Time]
    #
    # @!attribute [rw] training_job_status_counters
    #   The [TrainingJobStatusCounters][1] object that specifies the numbers
    #   of training jobs, categorized by status, that this tuning job
    #   launched.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TrainingJobStatusCounters.html
    #   @return [Types::TrainingJobStatusCounters]
    #
    # @!attribute [rw] objective_status_counters
    #   The [ObjectiveStatusCounters][1] object that specifies the numbers
    #   of training jobs, categorized by objective metric status, that this
    #   tuning job launched.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ObjectiveStatusCounters.html
    #   @return [Types::ObjectiveStatusCounters]
    #
    # @!attribute [rw] resource_limits
    #   The [ResourceLimits][1] object that specifies the maximum number of
    #   training jobs and parallel training jobs allowed for this tuning
    #   job.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ResourceLimits.html
    #   @return [Types::ResourceLimits]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/HyperParameterTuningJobSummary AWS API Documentation
    #
    class HyperParameterTuningJobSummary < Struct.new(
      :hyper_parameter_tuning_job_name,
      :hyper_parameter_tuning_job_arn,
      :hyper_parameter_tuning_job_status,
      :strategy,
      :creation_time,
      :hyper_parameter_tuning_end_time,
      :last_modified_time,
      :training_job_status_counters,
      :objective_status_counters,
      :resource_limits)
      SENSITIVE = []
      include Aws::Structure
    end

    # Specifies the configuration for a hyperparameter tuning job that uses
    # one or more previous hyperparameter tuning jobs as a starting point.
    # The results of previous tuning jobs are used to inform which
    # combinations of hyperparameters to search over in the new tuning job.
    #
    # All training jobs launched by the new hyperparameter tuning job are
    # evaluated by using the objective metric, and the training job that
    # performs the best is compared to the best training jobs from the
    # parent tuning jobs. From these, the training job that performs the
    # best as measured by the objective metric is returned as the overall
    # best training job.
    #
    # <note markdown="1"> All training jobs launched by parent hyperparameter tuning jobs and
    # the new hyperparameter tuning jobs count against the limit of training
    # jobs for the tuning job.
    #
    #  </note>
    #
    # @!attribute [rw] parent_hyper_parameter_tuning_jobs
    #   An array of hyperparameter tuning jobs that are used as the starting
    #   point for the new hyperparameter tuning job. For more information
    #   about warm starting a hyperparameter tuning job, see [Using a
    #   Previous Hyperparameter Tuning Job as a Starting Point][1].
    #
    #   Hyperparameter tuning jobs created before October 1, 2018 cannot be
    #   used as parent jobs for warm start tuning jobs.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-warm-start.html
    #   @return [Array<Types::ParentHyperParameterTuningJob>]
    #
    # @!attribute [rw] warm_start_type
    #   Specifies one of the following:
    #
    #   IDENTICAL\_DATA\_AND\_ALGORITHM
    #
    #   : The new hyperparameter tuning job uses the same input data and
    #     training image as the parent tuning jobs. You can change the
    #     hyperparameter ranges to search and the maximum number of training
    #     jobs that the hyperparameter tuning job launches. You cannot use a
    #     new version of the training algorithm, unless the changes in the
    #     new version do not affect the algorithm itself. For example,
    #     changes that improve logging or adding support for a different
    #     data format are allowed. You can also change hyperparameters from
    #     tunable to static, and from static to tunable, but the total
    #     number of static plus tunable hyperparameters must remain the same
    #     as it is in all parent jobs. The objective metric for the new
    #     tuning job must be the same as for all parent jobs.
    #
    #   TRANSFER\_LEARNING
    #
    #   : The new hyperparameter tuning job can include input data,
    #     hyperparameter ranges, maximum number of concurrent training jobs,
    #     and maximum number of training jobs that are different than those
    #     of its parent hyperparameter tuning jobs. The training image can
    #     also be a different version from the version used in the parent
    #     hyperparameter tuning job. You can also change hyperparameters
    #     from tunable to static, and from static to tunable, but the total
    #     number of static plus tunable hyperparameters must remain the same
    #     as it is in all parent jobs. The objective metric for the new
    #     tuning job must be the same as for all parent jobs.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/HyperParameterTuningJobWarmStartConfig AWS API Documentation
    #
    class HyperParameterTuningJobWarmStartConfig < Struct.new(
      :parent_hyper_parameter_tuning_jobs,
      :warm_start_type)
      SENSITIVE = []
      include Aws::Structure
    end

    # The configuration of resources, including compute instances and
    # storage volumes for use in training jobs launched by hyperparameter
    # tuning jobs. `HyperParameterTuningResourceConfig` is similar to
    # `ResourceConfig`, but has the additional `InstanceConfigs` and
    # `AllocationStrategy` fields to allow for flexible instance management.
    # Specify one or more instance types, count, and the allocation strategy
    # for instance selection.
    #
    # <note markdown="1"> `HyperParameterTuningResourceConfig` supports the capabilities of
    # `ResourceConfig` with the exception of `KeepAlivePeriodInSeconds`.
    # Hyperparameter tuning jobs use warm pools by default, which reuse
    # clusters between training jobs.
    #
    #  </note>
    #
    # @!attribute [rw] instance_type
    #   The instance type used to run hyperparameter optimization tuning
    #   jobs. See [ descriptions of instance types][1] for more information.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/notebooks-available-instance-types.html
    #   @return [String]
    #
    # @!attribute [rw] instance_count
    #   The number of compute instances of type `InstanceType` to use. For
    #   [distributed training][1], select a value greater than 1.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/data-parallel-use-api.html
    #   @return [Integer]
    #
    # @!attribute [rw] volume_size_in_gb
    #   The volume size in GB for the storage volume to be used in
    #   processing hyperparameter optimization jobs (optional). These
    #   volumes store model artifacts, incremental states and optionally,
    #   scratch space for training algorithms. Do not provide a value for
    #   this parameter if a value for `InstanceConfigs` is also specified.
    #
    #   Some instance types have a fixed total local storage size. If you
    #   select one of these instances for training, `VolumeSizeInGB` cannot
    #   be greater than this total size. For a list of instance types with
    #   local instance storage and their sizes, see [instance store
    #   volumes][1].
    #
    #   <note markdown="1"> SageMaker supports only the [General Purpose SSD (gp2)][2] storage
    #   volume type.
    #
    #    </note>
    #
    #
    #
    #   [1]: http://aws.amazon.com/releasenotes/host-instance-storage-volumes-table/
    #   [2]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-volume-types.html
    #   @return [Integer]
    #
    # @!attribute [rw] volume_kms_key_id
    #   A key used by Amazon Web Services Key Management Service to encrypt
    #   data on the storage volume attached to the compute instances used to
    #   run the training job. You can use either of the following formats to
    #   specify a key.
    #
    #   KMS Key ID:
    #
    #   `"1234abcd-12ab-34cd-56ef-1234567890ab"`
    #
    #   Amazon Resource Name (ARN) of a KMS key:
    #
    #   `"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"`
    #
    #   Some instances use local storage, which use a [hardware module to
    #   encrypt][1] storage volumes. If you choose one of these instance
    #   types, you cannot request a `VolumeKmsKeyId`. For a list of instance
    #   types that use local storage, see [instance store volumes][2]. For
    #   more information about Amazon Web Services Key Management Service,
    #   see [KMS encryption][3] for more information.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ssd-instance-store.html
    #   [2]: http://aws.amazon.com/releasenotes/host-instance-storage-volumes-table/
    #   [3]: https://docs.aws.amazon.com/sagemaker/latest/dg/sms-security-kms-permissions.html
    #   @return [String]
    #
    # @!attribute [rw] allocation_strategy
    #   The strategy that determines the order of preference for resources
    #   specified in `InstanceConfigs` used in hyperparameter optimization.
    #   @return [String]
    #
    # @!attribute [rw] instance_configs
    #   A list containing the configuration(s) for one or more resources for
    #   processing hyperparameter jobs. These resources include compute
    #   instances and storage volumes to use in model training jobs launched
    #   by hyperparameter tuning jobs. The `AllocationStrategy` controls the
    #   order in which multiple configurations provided in `InstanceConfigs`
    #   are used.
    #
    #   <note markdown="1"> If you only want to use a single instance configuration inside the
    #   `HyperParameterTuningResourceConfig` API, do not provide a value for
    #   `InstanceConfigs`. Instead, use `InstanceType`, `VolumeSizeInGB` and
    #   `InstanceCount`. If you use `InstanceConfigs`, do not provide values
    #   for `InstanceType`, `VolumeSizeInGB` or `InstanceCount`.
    #
    #    </note>
    #   @return [Array<Types::HyperParameterTuningInstanceConfig>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/HyperParameterTuningResourceConfig AWS API Documentation
    #
    class HyperParameterTuningResourceConfig < Struct.new(
      :instance_type,
      :instance_count,
      :volume_size_in_gb,
      :volume_kms_key_id,
      :allocation_strategy,
      :instance_configs)
      SENSITIVE = []
      include Aws::Structure
    end

    # The configuration for `Hyperband`, a multi-fidelity based
    # hyperparameter tuning strategy. `Hyperband` uses the final and
    # intermediate results of a training job to dynamically allocate
    # resources to utilized hyperparameter configurations while
    # automatically stopping under-performing configurations. This parameter
    # should be provided only if `Hyperband` is selected as the
    # `StrategyConfig` under the `HyperParameterTuningJobConfig` API.
    #
    # @!attribute [rw] min_resource
    #   The minimum number of resources (such as epochs) that can be used by
    #   a training job launched by a hyperparameter tuning job. If the value
    #   for `MinResource` has not been reached, the training job is not
    #   stopped by `Hyperband`.
    #   @return [Integer]
    #
    # @!attribute [rw] max_resource
    #   The maximum number of resources (such as epochs) that can be used by
    #   a training job launched by a hyperparameter tuning job. Once a job
    #   reaches the `MaxResource` value, it is stopped. If a value for
    #   `MaxResource` is not provided, and `Hyperband` is selected as the
    #   hyperparameter tuning strategy, `HyperbandTraining` attempts to
    #   infer `MaxResource` from the following keys (if present) in
    #   [StaticsHyperParameters][1]:
    #
    #   * `epochs`
    #
    #   * `numepochs`
    #
    #   * `n-epochs`
    #
    #   * `n_epochs`
    #
    #   * `num_epochs`
    #
    #   If `HyperbandStrategyConfig` is unable to infer a value for
    #   `MaxResource`, it generates a validation error. The maximum value is
    #   20,000 epochs. All metrics that correspond to an objective metric
    #   are used to derive [early stopping decisions][2]. For
    #   [distributed][3] training jobs, ensure that duplicate metrics are
    #   not printed in the logs across the individual nodes in a training
    #   job. If multiple nodes are publishing duplicate or incorrect
    #   metrics, training jobs may make an incorrect stopping decision and
    #   stop the job prematurely.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_HyperParameterTrainingJobDefinition.html#sagemaker-Type-HyperParameterTrainingJobDefinition-StaticHyperParameters
    #   [2]: https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-early-stopping.html
    #   [3]: https://docs.aws.amazon.com/sagemaker/latest/dg/distributed-training.html
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/HyperbandStrategyConfig AWS API Documentation
    #
    class HyperbandStrategyConfig < Struct.new(
      :min_resource,
      :max_resource)
      SENSITIVE = []
      include Aws::Structure
    end

    # The IAM Identity details associated with the user. These details are
    # associated with model package groups, model packages and project
    # entities only.
    #
    # @!attribute [rw] arn
    #   The Amazon Resource Name (ARN) of the IAM identity.
    #   @return [String]
    #
    # @!attribute [rw] principal_id
    #   The ID of the principal that assumes the IAM identity.
    #   @return [String]
    #
    # @!attribute [rw] source_identity
    #   The person or application which assumes the IAM identity.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/IamIdentity AWS API Documentation
    #
    class IamIdentity < Struct.new(
      :arn,
      :principal_id,
      :source_identity)
      SENSITIVE = []
      include Aws::Structure
    end

    # Use this parameter to specify a supported global condition key that is
    # added to the IAM policy.
    #
    # @!attribute [rw] source_ip
    #   When `SourceIp` is `Enabled` the worker's IP address when a task is
    #   rendered in the worker portal is added to the IAM policy as a
    #   `Condition` used to generate the Amazon S3 presigned URL. This IP
    #   address is checked by Amazon S3 and must match in order for the
    #   Amazon S3 resource to be rendered in the worker portal.
    #   @return [String]
    #
    # @!attribute [rw] vpc_source_ip
    #   When `VpcSourceIp` is `Enabled` the worker's IP address when a task
    #   is rendered in private worker portal inside the VPC is added to the
    #   IAM policy as a `Condition` used to generate the Amazon S3 presigned
    #   URL. To render the task successfully Amazon S3 checks that the
    #   presigned URL is being accessed over an Amazon S3 VPC Endpoint, and
    #   that the worker's IP address matches the IP address in the IAM
    #   policy. To learn more about configuring private worker portal, see
    #   [Use Amazon VPC mode from a private worker portal][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/samurai-vpc-worker-portal.html
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/IamPolicyConstraints AWS API Documentation
    #
    class IamPolicyConstraints < Struct.new(
      :source_ip,
      :vpc_source_ip)
      SENSITIVE = []
      include Aws::Structure
    end

    # The Amazon SageMaker Canvas application setting where you configure
    # OAuth for connecting to an external data source, such as Snowflake.
    #
    # @!attribute [rw] data_source_name
    #   The name of the data source that you're connecting to. Canvas
    #   currently supports OAuth for Snowflake and Salesforce Data Cloud.
    #   @return [String]
    #
    # @!attribute [rw] status
    #   Describes whether OAuth for a data source is enabled or disabled in
    #   the Canvas application.
    #   @return [String]
    #
    # @!attribute [rw] secret_arn
    #   The ARN of an Amazon Web Services Secrets Manager secret that stores
    #   the credentials from your identity provider, such as the client ID
    #   and secret, authorization URL, and token URL.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/IdentityProviderOAuthSetting AWS API Documentation
    #
    class IdentityProviderOAuthSetting < Struct.new(
      :data_source_name,
      :status,
      :secret_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # Settings related to idle shutdown of Studio applications.
    #
    # @!attribute [rw] lifecycle_management
    #   Indicates whether idle shutdown is activated for the application
    #   type.
    #   @return [String]
    #
    # @!attribute [rw] idle_timeout_in_minutes
    #   The time that SageMaker waits after the application becomes idle
    #   before shutting it down.
    #   @return [Integer]
    #
    # @!attribute [rw] min_idle_timeout_in_minutes
    #   The minimum value in minutes that custom idle shutdown can be set to
    #   by the user.
    #   @return [Integer]
    #
    # @!attribute [rw] max_idle_timeout_in_minutes
    #   The maximum value in minutes that custom idle shutdown can be set to
    #   by the user.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/IdleSettings AWS API Documentation
    #
    class IdleSettings < Struct.new(
      :lifecycle_management,
      :idle_timeout_in_minutes,
      :min_idle_timeout_in_minutes,
      :max_idle_timeout_in_minutes)
      SENSITIVE = []
      include Aws::Structure
    end

    # A SageMaker AI image. A SageMaker AI image represents a set of
    # container images that are derived from a common base container image.
    # Each of these container images is represented by a SageMaker AI
    # `ImageVersion`.
    #
    # @!attribute [rw] creation_time
    #   When the image was created.
    #   @return [Time]
    #
    # @!attribute [rw] description
    #   The description of the image.
    #   @return [String]
    #
    # @!attribute [rw] display_name
    #   The name of the image as displayed.
    #   @return [String]
    #
    # @!attribute [rw] failure_reason
    #   When a create, update, or delete operation fails, the reason for the
    #   failure.
    #   @return [String]
    #
    # @!attribute [rw] image_arn
    #   The ARN of the image.
    #   @return [String]
    #
    # @!attribute [rw] image_name
    #   The name of the image.
    #   @return [String]
    #
    # @!attribute [rw] image_status
    #   The status of the image.
    #   @return [String]
    #
    # @!attribute [rw] last_modified_time
    #   When the image was last modified.
    #   @return [Time]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/Image AWS API Documentation
    #
    class Image < Struct.new(
      :creation_time,
      :description,
      :display_name,
      :failure_reason,
      :image_arn,
      :image_name,
      :image_status,
      :last_modified_time)
      SENSITIVE = []
      include Aws::Structure
    end

    # The collection of settings used by an AutoML job V2 for the image
    # classification problem type.
    #
    # @!attribute [rw] completion_criteria
    #   How long a job is allowed to run, or how many candidates a job is
    #   allowed to generate.
    #   @return [Types::AutoMLJobCompletionCriteria]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ImageClassificationJobConfig AWS API Documentation
    #
    class ImageClassificationJobConfig < Struct.new(
      :completion_criteria)
      SENSITIVE = []
      include Aws::Structure
    end

    # Specifies whether the model container is in Amazon ECR or a private
    # Docker registry accessible from your Amazon Virtual Private Cloud
    # (VPC).
    #
    # @!attribute [rw] repository_access_mode
    #   Set this to one of the following values:
    #
    #   * `Platform` - The model image is hosted in Amazon ECR.
    #
    #   * `Vpc` - The model image is hosted in a private Docker registry in
    #     your VPC.
    #   @return [String]
    #
    # @!attribute [rw] repository_auth_config
    #   (Optional) Specifies an authentication configuration for the private
    #   docker registry where your model image is hosted. Specify a value
    #   for this property only if you specified `Vpc` as the value for the
    #   `RepositoryAccessMode` field, and the private Docker registry where
    #   the model image is hosted requires authentication.
    #   @return [Types::RepositoryAuthConfig]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ImageConfig AWS API Documentation
    #
    class ImageConfig < Struct.new(
      :repository_access_mode,
      :repository_auth_config)
      SENSITIVE = []
      include Aws::Structure
    end

    # A version of a SageMaker AI `Image`. A version represents an existing
    # container image.
    #
    # @!attribute [rw] creation_time
    #   When the version was created.
    #   @return [Time]
    #
    # @!attribute [rw] failure_reason
    #   When a create or delete operation fails, the reason for the failure.
    #   @return [String]
    #
    # @!attribute [rw] image_arn
    #   The ARN of the image the version is based on.
    #   @return [String]
    #
    # @!attribute [rw] image_version_arn
    #   The ARN of the version.
    #   @return [String]
    #
    # @!attribute [rw] image_version_status
    #   The status of the version.
    #   @return [String]
    #
    # @!attribute [rw] last_modified_time
    #   When the version was last modified.
    #   @return [Time]
    #
    # @!attribute [rw] version
    #   The version number.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ImageVersion AWS API Documentation
    #
    class ImageVersion < Struct.new(
      :creation_time,
      :failure_reason,
      :image_arn,
      :image_version_arn,
      :image_version_status,
      :last_modified_time,
      :version)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] hub_content_name
    #   The name of the hub content to import.
    #   @return [String]
    #
    # @!attribute [rw] hub_content_version
    #   The version of the hub content to import.
    #   @return [String]
    #
    # @!attribute [rw] hub_content_type
    #   The type of hub content to import.
    #   @return [String]
    #
    # @!attribute [rw] document_schema_version
    #   The version of the hub content schema to import.
    #   @return [String]
    #
    # @!attribute [rw] hub_name
    #   The name of the hub to import content into.
    #   @return [String]
    #
    # @!attribute [rw] hub_content_display_name
    #   The display name of the hub content to import.
    #   @return [String]
    #
    # @!attribute [rw] hub_content_description
    #   A description of the hub content to import.
    #   @return [String]
    #
    # @!attribute [rw] hub_content_markdown
    #   A string that provides a description of the hub content. This string
    #   can include links, tables, and standard markdown formating.
    #   @return [String]
    #
    # @!attribute [rw] hub_content_document
    #   The hub content document that describes information about the hub
    #   content such as type, associated containers, scripts, and more.
    #   @return [String]
    #
    # @!attribute [rw] support_status
    #   The status of the hub content resource.
    #   @return [String]
    #
    # @!attribute [rw] hub_content_search_keywords
    #   The searchable keywords of the hub content.
    #   @return [Array<String>]
    #
    # @!attribute [rw] tags
    #   Any tags associated with the hub content.
    #   @return [Array<Types::Tag>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ImportHubContentRequest AWS API Documentation
    #
    class ImportHubContentRequest < Struct.new(
      :hub_content_name,
      :hub_content_version,
      :hub_content_type,
      :document_schema_version,
      :hub_name,
      :hub_content_display_name,
      :hub_content_description,
      :hub_content_markdown,
      :hub_content_document,
      :support_status,
      :hub_content_search_keywords,
      :tags)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] hub_arn
    #   The ARN of the hub that the content was imported into.
    #   @return [String]
    #
    # @!attribute [rw] hub_content_arn
    #   The ARN of the hub content that was imported.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ImportHubContentResponse AWS API Documentation
    #
    class ImportHubContentResponse < Struct.new(
      :hub_arn,
      :hub_content_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # Specifies the type and size of the endpoint capacity to activate for a
    # rolling deployment or a rollback strategy. You can specify your
    # batches as either of the following:
    #
    # * A count of inference component copies
    #
    # * The overall percentage or your fleet
    #
    # For a rollback strategy, if you don't specify the fields in this
    # object, or if you set the `Value` parameter to 100%, then SageMaker AI
    # uses a blue/green rollback strategy and rolls all traffic back to the
    # blue fleet.
    #
    # @!attribute [rw] type
    #   Specifies the endpoint capacity type.
    #
    #   COPY\_COUNT
    #
    #   : The endpoint activates based on the number of inference component
    #     copies.
    #
    #   CAPACITY\_PERCENT
    #
    #   : The endpoint activates based on the specified percentage of
    #     capacity.
    #   @return [String]
    #
    # @!attribute [rw] value
    #   Defines the capacity size, either as a number of inference component
    #   copies or a capacity percentage.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/InferenceComponentCapacitySize AWS API Documentation
    #
    class InferenceComponentCapacitySize < Struct.new(
      :type,
      :value)
      SENSITIVE = []
      include Aws::Structure
    end

    # Defines the compute resources to allocate to run a model, plus any
    # adapter models, that you assign to an inference component. These
    # resources include CPU cores, accelerators, and memory.
    #
    # @!attribute [rw] number_of_cpu_cores_required
    #   The number of CPU cores to allocate to run a model that you assign
    #   to an inference component.
    #   @return [Float]
    #
    # @!attribute [rw] number_of_accelerator_devices_required
    #   The number of accelerators to allocate to run a model that you
    #   assign to an inference component. Accelerators include GPUs and
    #   Amazon Web Services Inferentia.
    #   @return [Float]
    #
    # @!attribute [rw] min_memory_required_in_mb
    #   The minimum MB of memory to allocate to run a model that you assign
    #   to an inference component.
    #   @return [Integer]
    #
    # @!attribute [rw] max_memory_required_in_mb
    #   The maximum MB of memory to allocate to run a model that you assign
    #   to an inference component.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/InferenceComponentComputeResourceRequirements AWS API Documentation
    #
    class InferenceComponentComputeResourceRequirements < Struct.new(
      :number_of_cpu_cores_required,
      :number_of_accelerator_devices_required,
      :min_memory_required_in_mb,
      :max_memory_required_in_mb)
      SENSITIVE = []
      include Aws::Structure
    end

    # Defines a container that provides the runtime environment for a model
    # that you deploy with an inference component.
    #
    # @!attribute [rw] image
    #   The Amazon Elastic Container Registry (Amazon ECR) path where the
    #   Docker image for the model is stored.
    #   @return [String]
    #
    # @!attribute [rw] artifact_url
    #   The Amazon S3 path where the model artifacts, which result from
    #   model training, are stored. This path must point to a single gzip
    #   compressed tar archive (.tar.gz suffix).
    #   @return [String]
    #
    # @!attribute [rw] environment
    #   The environment variables to set in the Docker container. Each key
    #   and value in the Environment string-to-string map can have length of
    #   up to 1024. We support up to 16 entries in the map.
    #   @return [Hash<String,String>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/InferenceComponentContainerSpecification AWS API Documentation
    #
    class InferenceComponentContainerSpecification < Struct.new(
      :image,
      :artifact_url,
      :environment)
      SENSITIVE = []
      include Aws::Structure
    end

    # Details about the resources that are deployed with this inference
    # component.
    #
    # @!attribute [rw] deployed_image
    #   Gets the Amazon EC2 Container Registry path of the docker image of
    #   the model that is hosted in this [ProductionVariant][1].
    #
    #   If you used the `registry/repository[:tag]` form to specify the
    #   image path of the primary container when you created the model
    #   hosted in this `ProductionVariant`, the path resolves to a path of
    #   the form `registry/repository[@digest]`. A digest is a hash value
    #   that identifies a specific version of an image. For information
    #   about Amazon ECR paths, see [Pulling an Image][2] in the *Amazon ECR
    #   User Guide*.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ProductionVariant.html
    #   [2]: https://docs.aws.amazon.com/AmazonECR/latest/userguide/docker-pull-ecr-image.html
    #   @return [Types::DeployedImage]
    #
    # @!attribute [rw] artifact_url
    #   The Amazon S3 path where the model artifacts are stored.
    #   @return [String]
    #
    # @!attribute [rw] environment
    #   The environment variables to set in the Docker container.
    #   @return [Hash<String,String>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/InferenceComponentContainerSpecificationSummary AWS API Documentation
    #
    class InferenceComponentContainerSpecificationSummary < Struct.new(
      :deployed_image,
      :artifact_url,
      :environment)
      SENSITIVE = []
      include Aws::Structure
    end

    # The deployment configuration for an endpoint that hosts inference
    # components. The configuration includes the desired deployment strategy
    # and rollback settings.
    #
    # @!attribute [rw] rolling_update_policy
    #   Specifies a rolling deployment strategy for updating a SageMaker AI
    #   endpoint.
    #   @return [Types::InferenceComponentRollingUpdatePolicy]
    #
    # @!attribute [rw] auto_rollback_configuration
    #   Automatic rollback configuration for handling endpoint deployment
    #   failures and recovery.
    #   @return [Types::AutoRollbackConfig]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/InferenceComponentDeploymentConfig AWS API Documentation
    #
    class InferenceComponentDeploymentConfig < Struct.new(
      :rolling_update_policy,
      :auto_rollback_configuration)
      SENSITIVE = []
      include Aws::Structure
    end

    # Specifies a rolling deployment strategy for updating a SageMaker AI
    # inference component.
    #
    # @!attribute [rw] maximum_batch_size
    #   The batch size for each rolling step in the deployment process. For
    #   each step, SageMaker AI provisions capacity on the new endpoint
    #   fleet, routes traffic to that fleet, and terminates capacity on the
    #   old endpoint fleet. The value must be between 5% to 50% of the copy
    #   count of the inference component.
    #   @return [Types::InferenceComponentCapacitySize]
    #
    # @!attribute [rw] wait_interval_in_seconds
    #   The length of the baking period, during which SageMaker AI monitors
    #   alarms for each batch on the new fleet.
    #   @return [Integer]
    #
    # @!attribute [rw] maximum_execution_timeout_in_seconds
    #   The time limit for the total deployment. Exceeding this limit causes
    #   a timeout.
    #   @return [Integer]
    #
    # @!attribute [rw] rollback_maximum_batch_size
    #   The batch size for a rollback to the old endpoint fleet. If this
    #   field is absent, the value is set to the default, which is 100% of
    #   the total capacity. When the default is used, SageMaker AI
    #   provisions the entire capacity of the old fleet at once during
    #   rollback.
    #   @return [Types::InferenceComponentCapacitySize]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/InferenceComponentRollingUpdatePolicy AWS API Documentation
    #
    class InferenceComponentRollingUpdatePolicy < Struct.new(
      :maximum_batch_size,
      :wait_interval_in_seconds,
      :maximum_execution_timeout_in_seconds,
      :rollback_maximum_batch_size)
      SENSITIVE = []
      include Aws::Structure
    end

    # Runtime settings for a model that is deployed with an inference
    # component.
    #
    # @!attribute [rw] copy_count
    #   The number of runtime copies of the model container to deploy with
    #   the inference component. Each copy can serve inference requests.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/InferenceComponentRuntimeConfig AWS API Documentation
    #
    class InferenceComponentRuntimeConfig < Struct.new(
      :copy_count)
      SENSITIVE = []
      include Aws::Structure
    end

    # Details about the runtime settings for the model that is deployed with
    # the inference component.
    #
    # @!attribute [rw] desired_copy_count
    #   The number of runtime copies of the model container that you
    #   requested to deploy with the inference component.
    #   @return [Integer]
    #
    # @!attribute [rw] current_copy_count
    #   The number of runtime copies of the model container that are
    #   currently deployed.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/InferenceComponentRuntimeConfigSummary AWS API Documentation
    #
    class InferenceComponentRuntimeConfigSummary < Struct.new(
      :desired_copy_count,
      :current_copy_count)
      SENSITIVE = []
      include Aws::Structure
    end

    # Details about the resources to deploy with this inference component,
    # including the model, container, and compute resources.
    #
    # @!attribute [rw] model_name
    #   The name of an existing SageMaker AI model object in your account
    #   that you want to deploy with the inference component.
    #   @return [String]
    #
    # @!attribute [rw] container
    #   Defines a container that provides the runtime environment for a
    #   model that you deploy with an inference component.
    #   @return [Types::InferenceComponentContainerSpecification]
    #
    # @!attribute [rw] startup_parameters
    #   Settings that take effect while the model container starts up.
    #   @return [Types::InferenceComponentStartupParameters]
    #
    # @!attribute [rw] compute_resource_requirements
    #   The compute resources allocated to run the model, plus any adapter
    #   models, that you assign to the inference component.
    #
    #   Omit this parameter if your request is meant to create an adapter
    #   inference component. An adapter inference component is loaded by a
    #   base inference component, and it uses the compute resources of the
    #   base inference component.
    #   @return [Types::InferenceComponentComputeResourceRequirements]
    #
    # @!attribute [rw] base_inference_component_name
    #   The name of an existing inference component that is to contain the
    #   inference component that you're creating with your request.
    #
    #   Specify this parameter only if your request is meant to create an
    #   adapter inference component. An adapter inference component contains
    #   the path to an adapter model. The purpose of the adapter model is to
    #   tailor the inference output of a base foundation model, which is
    #   hosted by the base inference component. The adapter inference
    #   component uses the compute resources that you assigned to the base
    #   inference component.
    #
    #   When you create an adapter inference component, use the `Container`
    #   parameter to specify the location of the adapter artifacts. In the
    #   parameter value, use the `ArtifactUrl` parameter of the
    #   `InferenceComponentContainerSpecification` data type.
    #
    #   Before you can create an adapter inference component, you must have
    #   an existing inference component that contains the foundation model
    #   that you want to adapt.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/InferenceComponentSpecification AWS API Documentation
    #
    class InferenceComponentSpecification < Struct.new(
      :model_name,
      :container,
      :startup_parameters,
      :compute_resource_requirements,
      :base_inference_component_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # Details about the resources that are deployed with this inference
    # component.
    #
    # @!attribute [rw] model_name
    #   The name of the SageMaker AI model object that is deployed with the
    #   inference component.
    #   @return [String]
    #
    # @!attribute [rw] container
    #   Details about the container that provides the runtime environment
    #   for the model that is deployed with the inference component.
    #   @return [Types::InferenceComponentContainerSpecificationSummary]
    #
    # @!attribute [rw] startup_parameters
    #   Settings that take effect while the model container starts up.
    #   @return [Types::InferenceComponentStartupParameters]
    #
    # @!attribute [rw] compute_resource_requirements
    #   The compute resources allocated to run the model, plus any adapter
    #   models, that you assign to the inference component.
    #   @return [Types::InferenceComponentComputeResourceRequirements]
    #
    # @!attribute [rw] base_inference_component_name
    #   The name of the base inference component that contains this
    #   inference component.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/InferenceComponentSpecificationSummary AWS API Documentation
    #
    class InferenceComponentSpecificationSummary < Struct.new(
      :model_name,
      :container,
      :startup_parameters,
      :compute_resource_requirements,
      :base_inference_component_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # Settings that take effect while the model container starts up.
    #
    # @!attribute [rw] model_data_download_timeout_in_seconds
    #   The timeout value, in seconds, to download and extract the model
    #   that you want to host from Amazon S3 to the individual inference
    #   instance associated with this inference component.
    #   @return [Integer]
    #
    # @!attribute [rw] container_startup_health_check_timeout_in_seconds
    #   The timeout value, in seconds, for your inference container to pass
    #   health check by Amazon S3 Hosting. For more information about health
    #   check, see [How Your Container Should Respond to Health Check (Ping)
    #   Requests][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms-inference-code.html#your-algorithms-inference-algo-ping-requests
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/InferenceComponentStartupParameters AWS API Documentation
    #
    class InferenceComponentStartupParameters < Struct.new(
      :model_data_download_timeout_in_seconds,
      :container_startup_health_check_timeout_in_seconds)
      SENSITIVE = []
      include Aws::Structure
    end

    # A summary of the properties of an inference component.
    #
    # @!attribute [rw] creation_time
    #   The time when the inference component was created.
    #   @return [Time]
    #
    # @!attribute [rw] inference_component_arn
    #   The Amazon Resource Name (ARN) of the inference component.
    #   @return [String]
    #
    # @!attribute [rw] inference_component_name
    #   The name of the inference component.
    #   @return [String]
    #
    # @!attribute [rw] endpoint_arn
    #   The Amazon Resource Name (ARN) of the endpoint that hosts the
    #   inference component.
    #   @return [String]
    #
    # @!attribute [rw] endpoint_name
    #   The name of the endpoint that hosts the inference component.
    #   @return [String]
    #
    # @!attribute [rw] variant_name
    #   The name of the production variant that hosts the inference
    #   component.
    #   @return [String]
    #
    # @!attribute [rw] inference_component_status
    #   The status of the inference component.
    #   @return [String]
    #
    # @!attribute [rw] last_modified_time
    #   The time when the inference component was last updated.
    #   @return [Time]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/InferenceComponentSummary AWS API Documentation
    #
    class InferenceComponentSummary < Struct.new(
      :creation_time,
      :inference_component_arn,
      :inference_component_name,
      :endpoint_arn,
      :endpoint_name,
      :variant_name,
      :inference_component_status,
      :last_modified_time)
      SENSITIVE = []
      include Aws::Structure
    end

    # Specifies details about how containers in a multi-container endpoint
    # are run.
    #
    # @!attribute [rw] mode
    #   How containers in a multi-container are run. The following values
    #   are valid.
    #
    #   * `SERIAL` - Containers run as a serial pipeline.
    #
    #   * `DIRECT` - Only the individual container that you specify is run.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/InferenceExecutionConfig AWS API Documentation
    #
    class InferenceExecutionConfig < Struct.new(
      :mode)
      SENSITIVE = []
      include Aws::Structure
    end

    # The Amazon S3 location and configuration for storing inference request
    # and response data.
    #
    # @!attribute [rw] destination
    #   The Amazon S3 bucket where the inference request and response data
    #   is stored.
    #   @return [String]
    #
    # @!attribute [rw] kms_key
    #   The Amazon Web Services Key Management Service key that Amazon
    #   SageMaker uses to encrypt captured data at rest using Amazon S3
    #   server-side encryption.
    #   @return [String]
    #
    # @!attribute [rw] content_type
    #   Configuration specifying how to treat different headers. If no
    #   headers are specified Amazon SageMaker AI will by default base64
    #   encode when capturing the data.
    #   @return [Types::CaptureContentTypeHeader]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/InferenceExperimentDataStorageConfig AWS API Documentation
    #
    class InferenceExperimentDataStorageConfig < Struct.new(
      :destination,
      :kms_key,
      :content_type)
      SENSITIVE = []
      include Aws::Structure
    end

    # The start and end times of an inference experiment.
    #
    # The maximum duration that you can set for an inference experiment is
    # 30 days.
    #
    # @!attribute [rw] start_time
    #   The timestamp at which the inference experiment started or will
    #   start.
    #   @return [Time]
    #
    # @!attribute [rw] end_time
    #   The timestamp at which the inference experiment ended or will end.
    #   @return [Time]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/InferenceExperimentSchedule AWS API Documentation
    #
    class InferenceExperimentSchedule < Struct.new(
      :start_time,
      :end_time)
      SENSITIVE = []
      include Aws::Structure
    end

    # Lists a summary of properties of an inference experiment.
    #
    # @!attribute [rw] name
    #   The name of the inference experiment.
    #   @return [String]
    #
    # @!attribute [rw] type
    #   The type of the inference experiment.
    #   @return [String]
    #
    # @!attribute [rw] schedule
    #   The duration for which the inference experiment ran or will run.
    #
    #   The maximum duration that you can set for an inference experiment is
    #   30 days.
    #   @return [Types::InferenceExperimentSchedule]
    #
    # @!attribute [rw] status
    #   The status of the inference experiment.
    #   @return [String]
    #
    # @!attribute [rw] status_reason
    #   The error message for the inference experiment status result.
    #   @return [String]
    #
    # @!attribute [rw] description
    #   The description of the inference experiment.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   The timestamp at which the inference experiment was created.
    #   @return [Time]
    #
    # @!attribute [rw] completion_time
    #   The timestamp at which the inference experiment was completed.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time
    #   The timestamp when you last modified the inference experiment.
    #   @return [Time]
    #
    # @!attribute [rw] role_arn
    #   The ARN of the IAM role that Amazon SageMaker can assume to access
    #   model artifacts and container images, and manage Amazon SageMaker
    #   Inference endpoints for model deployment.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/InferenceExperimentSummary AWS API Documentation
    #
    class InferenceExperimentSummary < Struct.new(
      :name,
      :type,
      :schedule,
      :status,
      :status_reason,
      :description,
      :creation_time,
      :completion_time,
      :last_modified_time,
      :role_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # Configuration information specifying which hub contents have
    # accessible deployment options.
    #
    # @!attribute [rw] hub_content_arn
    #   The ARN of the hub content for which deployment access is allowed.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/InferenceHubAccessConfig AWS API Documentation
    #
    class InferenceHubAccessConfig < Struct.new(
      :hub_content_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # The metrics for an existing endpoint compared in an Inference
    # Recommender job.
    #
    # @!attribute [rw] max_invocations
    #   The expected maximum number of requests per minute for the instance.
    #   @return [Integer]
    #
    # @!attribute [rw] model_latency
    #   The expected model latency at maximum invocations per minute for the
    #   instance.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/InferenceMetrics AWS API Documentation
    #
    class InferenceMetrics < Struct.new(
      :max_invocations,
      :model_latency)
      SENSITIVE = []
      include Aws::Structure
    end

    # A list of recommendations made by Amazon SageMaker Inference
    # Recommender.
    #
    # @!attribute [rw] recommendation_id
    #   The recommendation ID which uniquely identifies each recommendation.
    #   @return [String]
    #
    # @!attribute [rw] metrics
    #   The metrics used to decide what recommendation to make.
    #   @return [Types::RecommendationMetrics]
    #
    # @!attribute [rw] endpoint_configuration
    #   Defines the endpoint configuration parameters.
    #   @return [Types::EndpointOutputConfiguration]
    #
    # @!attribute [rw] model_configuration
    #   Defines the model configuration.
    #   @return [Types::ModelConfiguration]
    #
    # @!attribute [rw] invocation_end_time
    #   A timestamp that shows when the benchmark completed.
    #   @return [Time]
    #
    # @!attribute [rw] invocation_start_time
    #   A timestamp that shows when the benchmark started.
    #   @return [Time]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/InferenceRecommendation AWS API Documentation
    #
    class InferenceRecommendation < Struct.new(
      :recommendation_id,
      :metrics,
      :endpoint_configuration,
      :model_configuration,
      :invocation_end_time,
      :invocation_start_time)
      SENSITIVE = []
      include Aws::Structure
    end

    # A structure that contains a list of recommendation jobs.
    #
    # @!attribute [rw] job_name
    #   The name of the job.
    #   @return [String]
    #
    # @!attribute [rw] job_description
    #   The job description.
    #   @return [String]
    #
    # @!attribute [rw] job_type
    #   The recommendation job type.
    #   @return [String]
    #
    # @!attribute [rw] job_arn
    #   The Amazon Resource Name (ARN) of the recommendation job.
    #   @return [String]
    #
    # @!attribute [rw] status
    #   The status of the job.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   A timestamp that shows when the job was created.
    #   @return [Time]
    #
    # @!attribute [rw] completion_time
    #   A timestamp that shows when the job completed.
    #   @return [Time]
    #
    # @!attribute [rw] role_arn
    #   The Amazon Resource Name (ARN) of an IAM role that enables Amazon
    #   SageMaker to perform tasks on your behalf.
    #   @return [String]
    #
    # @!attribute [rw] last_modified_time
    #   A timestamp that shows when the job was last modified.
    #   @return [Time]
    #
    # @!attribute [rw] failure_reason
    #   If the job fails, provides information why the job failed.
    #   @return [String]
    #
    # @!attribute [rw] model_name
    #   The name of the created model.
    #   @return [String]
    #
    # @!attribute [rw] sample_payload_url
    #   The Amazon Simple Storage Service (Amazon S3) path where the sample
    #   payload is stored. This path must point to a single gzip compressed
    #   tar archive (.tar.gz suffix).
    #   @return [String]
    #
    # @!attribute [rw] model_package_version_arn
    #   The Amazon Resource Name (ARN) of a versioned model package.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/InferenceRecommendationsJob AWS API Documentation
    #
    class InferenceRecommendationsJob < Struct.new(
      :job_name,
      :job_description,
      :job_type,
      :job_arn,
      :status,
      :creation_time,
      :completion_time,
      :role_arn,
      :last_modified_time,
      :failure_reason,
      :model_name,
      :sample_payload_url,
      :model_package_version_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # A returned array object for the `Steps` response field in the
    # [ListInferenceRecommendationsJobSteps][1] API command.
    #
    #
    #
    # [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ListInferenceRecommendationsJobSteps.html
    #
    # @!attribute [rw] step_type
    #   The type of the subtask.
    #
    #   `BENCHMARK`: Evaluate the performance of your model on different
    #   instance types.
    #   @return [String]
    #
    # @!attribute [rw] job_name
    #   The name of the Inference Recommender job.
    #   @return [String]
    #
    # @!attribute [rw] status
    #   The current status of the benchmark.
    #   @return [String]
    #
    # @!attribute [rw] inference_benchmark
    #   The details for a specific benchmark.
    #   @return [Types::RecommendationJobInferenceBenchmark]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/InferenceRecommendationsJobStep AWS API Documentation
    #
    class InferenceRecommendationsJobStep < Struct.new(
      :step_type,
      :job_name,
      :status,
      :inference_benchmark)
      SENSITIVE = []
      include Aws::Structure
    end

    # Defines how to perform inference generation after a training job is
    # run.
    #
    # @!attribute [rw] containers
    #   The Amazon ECR registry path of the Docker image that contains the
    #   inference code.
    #   @return [Array<Types::ModelPackageContainerDefinition>]
    #
    # @!attribute [rw] supported_transform_instance_types
    #   A list of the instance types on which a transformation job can be
    #   run or on which an endpoint can be deployed.
    #
    #   This parameter is required for unversioned models, and optional for
    #   versioned models.
    #   @return [Array<String>]
    #
    # @!attribute [rw] supported_realtime_inference_instance_types
    #   A list of the instance types that are used to generate inferences in
    #   real-time.
    #
    #   This parameter is required for unversioned models, and optional for
    #   versioned models.
    #   @return [Array<String>]
    #
    # @!attribute [rw] supported_content_types
    #   The supported MIME types for the input data.
    #   @return [Array<String>]
    #
    # @!attribute [rw] supported_response_mime_types
    #   The supported MIME types for the output data.
    #   @return [Array<String>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/InferenceSpecification AWS API Documentation
    #
    class InferenceSpecification < Struct.new(
      :containers,
      :supported_transform_instance_types,
      :supported_realtime_inference_instance_types,
      :supported_content_types,
      :supported_response_mime_types)
      SENSITIVE = []
      include Aws::Structure
    end

    # Configuration information for the infrastructure health check of a
    # training job. A SageMaker-provided health check tests the health of
    # instance hardware and cluster network connectivity.
    #
    # @!attribute [rw] enable_infra_check
    #   Enables an infrastructure health check.
    #   @return [Boolean]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/InfraCheckConfig AWS API Documentation
    #
    class InfraCheckConfig < Struct.new(
      :enable_infra_check)
      SENSITIVE = []
      include Aws::Structure
    end

    # Contains information about the location of input model artifacts, the
    # name and shape of the expected data inputs, and the framework in which
    # the model was trained.
    #
    # @!attribute [rw] s3_uri
    #   The S3 path where the model artifacts, which result from model
    #   training, are stored. This path must point to a single gzip
    #   compressed tar archive (.tar.gz suffix).
    #   @return [String]
    #
    # @!attribute [rw] data_input_config
    #   Specifies the name and shape of the expected data inputs for your
    #   trained model with a JSON dictionary form. The data inputs are
    #   `Framework` specific.
    #
    #   * `TensorFlow`: You must specify the name and shape (NHWC format) of
    #     the expected data inputs using a dictionary format for your
    #     trained model. The dictionary formats required for the console and
    #     CLI are different.
    #
    #     * Examples for one input:
    #
    #       * If using the console, `{"input":[1,1024,1024,3]}`
    #
    #       * If using the CLI, `{"input":[1,1024,1024,3]}`
    #     * Examples for two inputs:
    #
    #       * If using the console, `{"data1": [1,28,28,1],
    #         "data2":[1,28,28,1]}`
    #
    #       * If using the CLI, `{"data1": [1,28,28,1],
    #         "data2":[1,28,28,1]}`
    #   * `KERAS`: You must specify the name and shape (NCHW format) of
    #     expected data inputs using a dictionary format for your trained
    #     model. Note that while Keras model artifacts should be uploaded in
    #     NHWC (channel-last) format, `DataInputConfig` should be specified
    #     in NCHW (channel-first) format. The dictionary formats required
    #     for the console and CLI are different.
    #
    #     * Examples for one input:
    #
    #       * If using the console, `{"input_1":[1,3,224,224]}`
    #
    #       * If using the CLI, `{"input_1":[1,3,224,224]}`
    #     * Examples for two inputs:
    #
    #       * If using the console, `{"input_1": [1,3,224,224],
    #         "input_2":[1,3,224,224]} `
    #
    #       * If using the CLI, `{"input_1": [1,3,224,224],
    #         "input_2":[1,3,224,224]}`
    #   * `MXNET/ONNX/DARKNET`: You must specify the name and shape (NCHW
    #     format) of the expected data inputs in order using a dictionary
    #     format for your trained model. The dictionary formats required for
    #     the console and CLI are different.
    #
    #     * Examples for one input:
    #
    #       * If using the console, `{"data":[1,3,1024,1024]}`
    #
    #       * If using the CLI, `{"data":[1,3,1024,1024]}`
    #     * Examples for two inputs:
    #
    #       * If using the console, `{"var1": [1,1,28,28],
    #         "var2":[1,1,28,28]} `
    #
    #       * If using the CLI, `{"var1": [1,1,28,28],
    #         "var2":[1,1,28,28]}`
    #   * `PyTorch`: You can either specify the name and shape (NCHW format)
    #     of expected data inputs in order using a dictionary format for
    #     your trained model or you can specify the shape only using a list
    #     format. The dictionary formats required for the console and CLI
    #     are different. The list formats for the console and CLI are the
    #     same.
    #
    #     * Examples for one input in dictionary format:
    #
    #       * If using the console, `{"input0":[1,3,224,224]}`
    #
    #       * If using the CLI, `{"input0":[1,3,224,224]}`
    #     * Example for one input in list format: `[[1,3,224,224]]`
    #
    #     * Examples for two inputs in dictionary format:
    #
    #       * If using the console, `{"input0":[1,3,224,224],
    #         "input1":[1,3,224,224]}`
    #
    #       * If using the CLI, `{"input0":[1,3,224,224],
    #         "input1":[1,3,224,224]} `
    #     * Example for two inputs in list format: `[[1,3,224,224],
    #       [1,3,224,224]]`
    #   * `XGBOOST`: input data name and shape are not needed.
    #
    #   `DataInputConfig` supports the following parameters for `CoreML`
    #   `TargetDevice` (ML Model format):
    #
    #   * `shape`: Input shape, for example `{"input_1": {"shape":
    #     [1,224,224,3]}}`. In addition to static input shapes, CoreML
    #     converter supports Flexible input shapes:
    #
    #     * Range Dimension. You can use the Range Dimension feature if you
    #       know the input shape will be within some specific interval in
    #       that dimension, for example: `{"input_1": {"shape": ["1..10",
    #       224, 224, 3]}}`
    #
    #     * Enumerated shapes. Sometimes, the models are trained to work
    #       only on a select set of inputs. You can enumerate all supported
    #       input shapes, for example: `{"input_1": {"shape": [[1, 224, 224,
    #       3], [1, 160, 160, 3]]}}`
    #   * `default_shape`: Default input shape. You can set a default shape
    #     during conversion for both Range Dimension and Enumerated Shapes.
    #     For example `{"input_1": {"shape": ["1..10", 224, 224, 3],
    #     "default_shape": [1, 224, 224, 3]}}`
    #
    #   * `type`: Input type. Allowed values: `Image` and `Tensor`. By
    #     default, the converter generates an ML Model with inputs of type
    #     Tensor (MultiArray). User can set input type to be Image. Image
    #     input type requires additional input parameters such as `bias` and
    #     `scale`.
    #
    #   * `bias`: If the input type is an Image, you need to provide the
    #     bias vector.
    #
    #   * `scale`: If the input type is an Image, you need to provide a
    #     scale factor.
    #
    #   CoreML `ClassifierConfig` parameters can be specified using
    #   [OutputConfig][1] `CompilerOptions`. CoreML converter supports
    #   Tensorflow and PyTorch models. CoreML conversion examples:
    #
    #   * Tensor type input:
    #
    #     * `"DataInputConfig": {"input_1": {"shape": [[1,224,224,3],
    #       [1,160,160,3]], "default_shape": [1,224,224,3]}}`
    #
    #     ^
    #   * Tensor type input without input name (PyTorch):
    #
    #     * `"DataInputConfig": [{"shape": [[1,3,224,224], [1,3,160,160]],
    #       "default_shape": [1,3,224,224]}]`
    #
    #     ^
    #   * Image type input:
    #
    #     * `"DataInputConfig": {"input_1": {"shape": [[1,224,224,3],
    #       [1,160,160,3]], "default_shape": [1,224,224,3], "type": "Image",
    #       "bias": [-1,-1,-1], "scale": 0.007843137255}}`
    #
    #     * `"CompilerOptions": {"class_labels":
    #       "imagenet_labels_1000.txt"}`
    #   * Image type input without input name (PyTorch):
    #
    #     * `"DataInputConfig": [{"shape": [[1,3,224,224], [1,3,160,160]],
    #       "default_shape": [1,3,224,224], "type": "Image", "bias":
    #       [-1,-1,-1], "scale": 0.007843137255}]`
    #
    #     * `"CompilerOptions": {"class_labels":
    #       "imagenet_labels_1000.txt"}`
    #
    #   Depending on the model format, `DataInputConfig` requires the
    #   following parameters for `ml_eia2` [OutputConfig:TargetDevice][2].
    #
    #   * For TensorFlow models saved in the SavedModel format, specify the
    #     input names from `signature_def_key` and the input model shapes
    #     for `DataInputConfig`. Specify the `signature_def_key` in [
    #     `OutputConfig:CompilerOptions` ][3] if the model does not use
    #     TensorFlow's default signature def key. For example:
    #
    #     * `"DataInputConfig": {"inputs": [1, 224, 224, 3]}`
    #
    #     * `"CompilerOptions": {"signature_def_key": "serving_custom"}`
    #   * For TensorFlow models saved as a frozen graph, specify the input
    #     tensor names and shapes in `DataInputConfig` and the output tensor
    #     names for `output_names` in [ `OutputConfig:CompilerOptions` ][3].
    #     For example:
    #
    #     * `"DataInputConfig": {"input_tensor:0": [1, 224, 224, 3]}`
    #
    #     * `"CompilerOptions": {"output_names": ["output_tensor:0"]}`
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_OutputConfig.html
    #   [2]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_OutputConfig.html#sagemaker-Type-OutputConfig-TargetDevice
    #   [3]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_OutputConfig.html#sagemaker-Type-OutputConfig-CompilerOptions
    #   @return [String]
    #
    # @!attribute [rw] framework
    #   Identifies the framework in which the model was trained. For
    #   example: TENSORFLOW.
    #   @return [String]
    #
    # @!attribute [rw] framework_version
    #   Specifies the framework version to use. This API field is only
    #   supported for the MXNet, PyTorch, TensorFlow and TensorFlow Lite
    #   frameworks.
    #
    #   For information about framework versions supported for cloud targets
    #   and edge devices, see [Cloud Supported Instance Types and
    #   Frameworks][1] and [Edge Supported Frameworks][2].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/neo-supported-cloud.html
    #   [2]: https://docs.aws.amazon.com/sagemaker/latest/dg/neo-supported-devices-edge-frameworks.html
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/InputConfig AWS API Documentation
    #
    class InputConfig < Struct.new(
      :s3_uri,
      :data_input_config,
      :framework,
      :framework_version)
      SENSITIVE = []
      include Aws::Structure
    end

    # Defines an instance group for heterogeneous cluster training. When
    # requesting a training job using the [CreateTrainingJob][1] API, you
    # can configure multiple instance groups .
    #
    #
    #
    # [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html
    #
    # @!attribute [rw] instance_type
    #   Specifies the instance type of the instance group.
    #   @return [String]
    #
    # @!attribute [rw] instance_count
    #   Specifies the number of instances of the instance group.
    #   @return [Integer]
    #
    # @!attribute [rw] instance_group_name
    #   Specifies the name of the instance group.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/InstanceGroup AWS API Documentation
    #
    class InstanceGroup < Struct.new(
      :instance_type,
      :instance_count,
      :instance_group_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # Metadata information about an instance group in a HyperPod cluster.
    #
    # @!attribute [rw] failure_message
    #   An error message describing why the instance group level operation
    #   (such as creating, scaling, or deleting) failed.
    #   @return [String]
    #
    # @!attribute [rw] availability_zone_id
    #   The ID of the Availability Zone where the instance group is located.
    #   @return [String]
    #
    # @!attribute [rw] capacity_reservation
    #   Information about the Capacity Reservation used by the instance
    #   group.
    #   @return [Types::CapacityReservation]
    #
    # @!attribute [rw] subnet_id
    #   The ID of the subnet where the instance group is located.
    #   @return [String]
    #
    # @!attribute [rw] security_group_ids
    #   A list of security group IDs associated with the instance group.
    #   @return [Array<String>]
    #
    # @!attribute [rw] ami_override
    #   If you use a custom Amazon Machine Image (AMI) for the instance
    #   group, this field shows the ID of the custom AMI.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/InstanceGroupMetadata AWS API Documentation
    #
    class InstanceGroupMetadata < Struct.new(
      :failure_message,
      :availability_zone_id,
      :capacity_reservation,
      :subnet_id,
      :security_group_ids,
      :ami_override)
      SENSITIVE = []
      include Aws::Structure
    end

    # Metadata information about scaling operations for an instance group.
    #
    # @!attribute [rw] instance_count
    #   The current number of instances in the group.
    #   @return [Integer]
    #
    # @!attribute [rw] target_count
    #   The desired number of instances for the group after scaling.
    #   @return [Integer]
    #
    # @!attribute [rw] failure_message
    #   An error message describing why the scaling operation failed, if
    #   applicable.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/InstanceGroupScalingMetadata AWS API Documentation
    #
    class InstanceGroupScalingMetadata < Struct.new(
      :instance_count,
      :target_count,
      :failure_message)
      SENSITIVE = []
      include Aws::Structure
    end

    # Metadata information about an instance in a HyperPod cluster.
    #
    # @!attribute [rw] customer_eni
    #   The ID of the customer-managed Elastic Network Interface (ENI)
    #   associated with the instance.
    #   @return [String]
    #
    # @!attribute [rw] additional_enis
    #   Information about additional Elastic Network Interfaces (ENIs)
    #   associated with the instance.
    #   @return [Types::AdditionalEnis]
    #
    # @!attribute [rw] capacity_reservation
    #   Information about the Capacity Reservation used by the instance.
    #   @return [Types::CapacityReservation]
    #
    # @!attribute [rw] failure_message
    #   An error message describing why the instance creation or update
    #   failed, if applicable.
    #   @return [String]
    #
    # @!attribute [rw] lcs_execution_state
    #   The execution state of the Lifecycle Script (LCS) for the instance.
    #   @return [String]
    #
    # @!attribute [rw] node_logical_id
    #   The unique logical identifier of the node within the cluster. The ID
    #   used here is the same object as in the `BatchAddClusterNodes` API.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/InstanceMetadata AWS API Documentation
    #
    class InstanceMetadata < Struct.new(
      :customer_eni,
      :additional_enis,
      :capacity_reservation,
      :failure_message,
      :lcs_execution_state,
      :node_logical_id)
      SENSITIVE = []
      include Aws::Structure
    end

    # Information on the IMDS configuration of the notebook instance
    #
    # @!attribute [rw] minimum_instance_metadata_service_version
    #   Indicates the minimum IMDS version that the notebook instance
    #   supports. When passed as part of `CreateNotebookInstance`, if no
    #   value is selected, then it defaults to IMDSv1. This means that both
    #   IMDSv1 and IMDSv2 are supported. If passed as part of
    #   `UpdateNotebookInstance`, there is no default.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/InstanceMetadataServiceConfiguration AWS API Documentation
    #
    class InstanceMetadataServiceConfiguration < Struct.new(
      :minimum_instance_metadata_service_version)
      SENSITIVE = []
      include Aws::Structure
    end

    # Configuration for how instances are placed and allocated within
    # UltraServers. This is only applicable for UltraServer capacity.
    #
    # @!attribute [rw] enable_multiple_jobs
    #   If set to true, allows multiple jobs to share the same UltraServer
    #   instances. If set to false, ensures this job's instances are placed
    #   on an UltraServer exclusively, with no other jobs sharing the same
    #   UltraServer. Default is false.
    #   @return [Boolean]
    #
    # @!attribute [rw] placement_specifications
    #   A list of specifications for how instances should be placed on
    #   specific UltraServers. Maximum of 10 items is supported.
    #   @return [Array<Types::PlacementSpecification>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/InstancePlacementConfig AWS API Documentation
    #
    class InstancePlacementConfig < Struct.new(
      :enable_multiple_jobs,
      :placement_specifications)
      SENSITIVE = []
      include Aws::Structure
    end

    # For a hyperparameter of the integer type, specifies the range that a
    # hyperparameter tuning job searches.
    #
    # @!attribute [rw] name
    #   The name of the hyperparameter to search.
    #   @return [String]
    #
    # @!attribute [rw] min_value
    #   The minimum value of the hyperparameter to search.
    #   @return [String]
    #
    # @!attribute [rw] max_value
    #   The maximum value of the hyperparameter to search.
    #   @return [String]
    #
    # @!attribute [rw] scaling_type
    #   The scale that hyperparameter tuning uses to search the
    #   hyperparameter range. For information about choosing a
    #   hyperparameter scale, see [Hyperparameter Scaling][1]. One of the
    #   following values:
    #
    #   Auto
    #
    #   : SageMaker hyperparameter tuning chooses the best scale for the
    #     hyperparameter.
    #
    #   Linear
    #
    #   : Hyperparameter tuning searches the values in the hyperparameter
    #     range by using a linear scale.
    #
    #   Logarithmic
    #
    #   : Hyperparameter tuning searches the values in the hyperparameter
    #     range by using a logarithmic scale.
    #
    #     Logarithmic scaling works only for ranges that have only values
    #     greater than 0.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-define-ranges.html#scaling-type
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/IntegerParameterRange AWS API Documentation
    #
    class IntegerParameterRange < Struct.new(
      :name,
      :min_value,
      :max_value,
      :scaling_type)
      SENSITIVE = []
      include Aws::Structure
    end

    # Defines the possible values for an integer hyperparameter.
    #
    # @!attribute [rw] min_value
    #   The minimum integer value allowed.
    #   @return [String]
    #
    # @!attribute [rw] max_value
    #   The maximum integer value allowed.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/IntegerParameterRangeSpecification AWS API Documentation
    #
    class IntegerParameterRangeSpecification < Struct.new(
      :min_value,
      :max_value)
      SENSITIVE = []
      include Aws::Structure
    end

    # The configuration for the file system and kernels in a SageMaker AI
    # image running as a JupyterLab app. The `FileSystemConfig` object is
    # not supported.
    #
    # @!attribute [rw] file_system_config
    #   The Amazon Elastic File System storage configuration for a SageMaker
    #   AI image.
    #   @return [Types::FileSystemConfig]
    #
    # @!attribute [rw] container_config
    #   The configuration used to run the application image container.
    #   @return [Types::ContainerConfig]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/JupyterLabAppImageConfig AWS API Documentation
    #
    class JupyterLabAppImageConfig < Struct.new(
      :file_system_config,
      :container_config)
      SENSITIVE = []
      include Aws::Structure
    end

    # The settings for the JupyterLab application.
    #
    # @!attribute [rw] default_resource_spec
    #   Specifies the ARN's of a SageMaker AI image and SageMaker AI image
    #   version, and the instance type that the version runs on.
    #
    #   <note markdown="1"> When both `SageMakerImageVersionArn` and `SageMakerImageArn` are
    #   passed, `SageMakerImageVersionArn` is used. Any updates to
    #   `SageMakerImageArn` will not take effect if
    #   `SageMakerImageVersionArn` already exists in the `ResourceSpec`
    #   because `SageMakerImageVersionArn` always takes precedence. To clear
    #   the value set for `SageMakerImageVersionArn`, pass `None` as the
    #   value.
    #
    #    </note>
    #   @return [Types::ResourceSpec]
    #
    # @!attribute [rw] custom_images
    #   A list of custom SageMaker images that are configured to run as a
    #   JupyterLab app.
    #   @return [Array<Types::CustomImage>]
    #
    # @!attribute [rw] lifecycle_config_arns
    #   The Amazon Resource Name (ARN) of the lifecycle configurations
    #   attached to the user profile or domain. To remove a lifecycle
    #   config, you must set `LifecycleConfigArns` to an empty list.
    #   @return [Array<String>]
    #
    # @!attribute [rw] code_repositories
    #   A list of Git repositories that SageMaker automatically displays to
    #   users for cloning in the JupyterLab application.
    #   @return [Array<Types::CodeRepository>]
    #
    # @!attribute [rw] app_lifecycle_management
    #   Indicates whether idle shutdown is activated for JupyterLab
    #   applications.
    #   @return [Types::AppLifecycleManagement]
    #
    # @!attribute [rw] emr_settings
    #   The configuration parameters that specify the IAM roles assumed by
    #   the execution role of SageMaker (assumable roles) and the cluster
    #   instances or job execution environments (execution roles or runtime
    #   roles) to manage and access resources required for running Amazon
    #   EMR clusters or Amazon EMR Serverless applications.
    #   @return [Types::EmrSettings]
    #
    # @!attribute [rw] built_in_lifecycle_config_arn
    #   The lifecycle configuration that runs before the default lifecycle
    #   configuration. It can override changes made in the default lifecycle
    #   configuration.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/JupyterLabAppSettings AWS API Documentation
    #
    class JupyterLabAppSettings < Struct.new(
      :default_resource_spec,
      :custom_images,
      :lifecycle_config_arns,
      :code_repositories,
      :app_lifecycle_management,
      :emr_settings,
      :built_in_lifecycle_config_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # The JupyterServer app settings.
    #
    # @!attribute [rw] default_resource_spec
    #   The default instance type and the Amazon Resource Name (ARN) of the
    #   default SageMaker AI image used by the JupyterServer app. If you use
    #   the `LifecycleConfigArns` parameter, then this parameter is also
    #   required.
    #   @return [Types::ResourceSpec]
    #
    # @!attribute [rw] lifecycle_config_arns
    #   The Amazon Resource Name (ARN) of the Lifecycle Configurations
    #   attached to the JupyterServerApp. If you use this parameter, the
    #   `DefaultResourceSpec` parameter is also required.
    #
    #   <note markdown="1"> To remove a Lifecycle Config, you must set `LifecycleConfigArns` to
    #   an empty list.
    #
    #    </note>
    #   @return [Array<String>]
    #
    # @!attribute [rw] code_repositories
    #   A list of Git repositories that SageMaker AI automatically displays
    #   to users for cloning in the JupyterServer application.
    #   @return [Array<Types::CodeRepository>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/JupyterServerAppSettings AWS API Documentation
    #
    class JupyterServerAppSettings < Struct.new(
      :default_resource_spec,
      :lifecycle_config_arns,
      :code_repositories)
      SENSITIVE = []
      include Aws::Structure
    end

    # The Amazon SageMaker Canvas application setting where you configure
    # document querying.
    #
    # @!attribute [rw] status
    #   Describes whether the document querying feature is enabled or
    #   disabled in the Canvas application.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/KendraSettings AWS API Documentation
    #
    class KendraSettings < Struct.new(
      :status)
      SENSITIVE = []
      include Aws::Structure
    end

    # The KernelGateway app settings.
    #
    # @!attribute [rw] default_resource_spec
    #   The default instance type and the Amazon Resource Name (ARN) of the
    #   default SageMaker AI image used by the KernelGateway app.
    #
    #   <note markdown="1"> The Amazon SageMaker AI Studio UI does not use the default instance
    #   type value set here. The default instance type set here is used when
    #   Apps are created using the CLI or CloudFormation and the instance
    #   type parameter value is not passed.
    #
    #    </note>
    #   @return [Types::ResourceSpec]
    #
    # @!attribute [rw] custom_images
    #   A list of custom SageMaker AI images that are configured to run as a
    #   KernelGateway app.
    #
    #   The maximum number of custom images are as follows.
    #
    #   * On a domain level: 200
    #
    #   * On a space level: 5
    #
    #   * On a user profile level: 5
    #   @return [Array<Types::CustomImage>]
    #
    # @!attribute [rw] lifecycle_config_arns
    #   The Amazon Resource Name (ARN) of the Lifecycle Configurations
    #   attached to the the user profile or domain.
    #
    #   <note markdown="1"> To remove a Lifecycle Config, you must set `LifecycleConfigArns` to
    #   an empty list.
    #
    #    </note>
    #   @return [Array<String>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/KernelGatewayAppSettings AWS API Documentation
    #
    class KernelGatewayAppSettings < Struct.new(
      :default_resource_spec,
      :custom_images,
      :lifecycle_config_arns)
      SENSITIVE = []
      include Aws::Structure
    end

    # The configuration for the file system and kernels in a SageMaker AI
    # image running as a KernelGateway app.
    #
    # @!attribute [rw] kernel_specs
    #   The specification of the Jupyter kernels in the image.
    #   @return [Array<Types::KernelSpec>]
    #
    # @!attribute [rw] file_system_config
    #   The Amazon Elastic File System storage configuration for a SageMaker
    #   AI image.
    #   @return [Types::FileSystemConfig]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/KernelGatewayImageConfig AWS API Documentation
    #
    class KernelGatewayImageConfig < Struct.new(
      :kernel_specs,
      :file_system_config)
      SENSITIVE = []
      include Aws::Structure
    end

    # The specification of a Jupyter kernel.
    #
    # @!attribute [rw] name
    #   The name of the Jupyter kernel in the image. This value is case
    #   sensitive.
    #   @return [String]
    #
    # @!attribute [rw] display_name
    #   The display name of the kernel.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/KernelSpec AWS API Documentation
    #
    class KernelSpec < Struct.new(
      :name,
      :display_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # Provides a breakdown of the number of objects labeled.
    #
    # @!attribute [rw] total_labeled
    #   The total number of objects labeled.
    #   @return [Integer]
    #
    # @!attribute [rw] human_labeled
    #   The total number of objects labeled by a human worker.
    #   @return [Integer]
    #
    # @!attribute [rw] machine_labeled
    #   The total number of objects labeled by automated data labeling.
    #   @return [Integer]
    #
    # @!attribute [rw] failed_non_retryable_error
    #   The total number of objects that could not be labeled due to an
    #   error.
    #   @return [Integer]
    #
    # @!attribute [rw] unlabeled
    #   The total number of objects not yet labeled.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/LabelCounters AWS API Documentation
    #
    class LabelCounters < Struct.new(
      :total_labeled,
      :human_labeled,
      :machine_labeled,
      :failed_non_retryable_error,
      :unlabeled)
      SENSITIVE = []
      include Aws::Structure
    end

    # Provides counts for human-labeled tasks in the labeling job.
    #
    # @!attribute [rw] human_labeled
    #   The total number of data objects labeled by a human worker.
    #   @return [Integer]
    #
    # @!attribute [rw] pending_human
    #   The total number of data objects that need to be labeled by a human
    #   worker.
    #   @return [Integer]
    #
    # @!attribute [rw] total
    #   The total number of tasks in the labeling job.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/LabelCountersForWorkteam AWS API Documentation
    #
    class LabelCountersForWorkteam < Struct.new(
      :human_labeled,
      :pending_human,
      :total)
      SENSITIVE = []
      include Aws::Structure
    end

    # Provides configuration information for auto-labeling of your data
    # objects. A `LabelingJobAlgorithmsConfig` object must be supplied in
    # order to use auto-labeling.
    #
    # @!attribute [rw] labeling_job_algorithm_specification_arn
    #   Specifies the Amazon Resource Name (ARN) of the algorithm used for
    #   auto-labeling. You must select one of the following ARNs:
    #
    #   * *Image classification*
    #
    #     `arn:aws:sagemaker:region:027400017018:labeling-job-algorithm-specification/image-classification`
    #
    #   * *Text classification*
    #
    #     `arn:aws:sagemaker:region:027400017018:labeling-job-algorithm-specification/text-classification`
    #
    #   * *Object detection*
    #
    #     `arn:aws:sagemaker:region:027400017018:labeling-job-algorithm-specification/object-detection`
    #
    #   * *Semantic Segmentation*
    #
    #     `arn:aws:sagemaker:region:027400017018:labeling-job-algorithm-specification/semantic-segmentation`
    #   @return [String]
    #
    # @!attribute [rw] initial_active_learning_model_arn
    #   At the end of an auto-label job Ground Truth sends the Amazon
    #   Resource Name (ARN) of the final model used for auto-labeling. You
    #   can use this model as the starting point for subsequent similar jobs
    #   by providing the ARN of the model here.
    #   @return [String]
    #
    # @!attribute [rw] labeling_job_resource_config
    #   Provides configuration information for a labeling job.
    #   @return [Types::LabelingJobResourceConfig]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/LabelingJobAlgorithmsConfig AWS API Documentation
    #
    class LabelingJobAlgorithmsConfig < Struct.new(
      :labeling_job_algorithm_specification_arn,
      :initial_active_learning_model_arn,
      :labeling_job_resource_config)
      SENSITIVE = []
      include Aws::Structure
    end

    # Attributes of the data specified by the customer. Use these to
    # describe the data to be labeled.
    #
    # @!attribute [rw] content_classifiers
    #   Declares that your content is free of personally identifiable
    #   information or adult content. SageMaker may restrict the Amazon
    #   Mechanical Turk workers that can view your task based on this
    #   information.
    #   @return [Array<String>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/LabelingJobDataAttributes AWS API Documentation
    #
    class LabelingJobDataAttributes < Struct.new(
      :content_classifiers)
      SENSITIVE = []
      include Aws::Structure
    end

    # Provides information about the location of input data.
    #
    # You must specify at least one of the following: `S3DataSource` or
    # `SnsDataSource`.
    #
    # Use `SnsDataSource` to specify an SNS input topic for a streaming
    # labeling job. If you do not specify and SNS input topic ARN, Ground
    # Truth will create a one-time labeling job.
    #
    # Use `S3DataSource` to specify an input manifest file for both
    # streaming and one-time labeling jobs. Adding an `S3DataSource` is
    # optional if you use `SnsDataSource` to create a streaming labeling
    # job.
    #
    # @!attribute [rw] s3_data_source
    #   The Amazon S3 location of the input data objects.
    #   @return [Types::LabelingJobS3DataSource]
    #
    # @!attribute [rw] sns_data_source
    #   An Amazon SNS data source used for streaming labeling jobs. To learn
    #   more, see [Send Data to a Streaming Labeling Job][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/sms-streaming-labeling-job.html#sms-streaming-how-it-works-send-data
    #   @return [Types::LabelingJobSnsDataSource]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/LabelingJobDataSource AWS API Documentation
    #
    class LabelingJobDataSource < Struct.new(
      :s3_data_source,
      :sns_data_source)
      SENSITIVE = []
      include Aws::Structure
    end

    # Provides summary information for a work team.
    #
    # @!attribute [rw] labeling_job_name
    #   The name of the labeling job that the work team is assigned to.
    #   @return [String]
    #
    # @!attribute [rw] job_reference_code
    #   A unique identifier for a labeling job. You can use this to refer to
    #   a specific labeling job.
    #   @return [String]
    #
    # @!attribute [rw] work_requester_account_id
    #   The Amazon Web Services account ID of the account used to start the
    #   labeling job.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   The date and time that the labeling job was created.
    #   @return [Time]
    #
    # @!attribute [rw] label_counters
    #   Provides information about the progress of a labeling job.
    #   @return [Types::LabelCountersForWorkteam]
    #
    # @!attribute [rw] number_of_human_workers_per_data_object
    #   The configured number of workers per data object.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/LabelingJobForWorkteamSummary AWS API Documentation
    #
    class LabelingJobForWorkteamSummary < Struct.new(
      :labeling_job_name,
      :job_reference_code,
      :work_requester_account_id,
      :creation_time,
      :label_counters,
      :number_of_human_workers_per_data_object)
      SENSITIVE = []
      include Aws::Structure
    end

    # Input configuration information for a labeling job.
    #
    # @!attribute [rw] data_source
    #   The location of the input data.
    #   @return [Types::LabelingJobDataSource]
    #
    # @!attribute [rw] data_attributes
    #   Attributes of the data specified by the customer.
    #   @return [Types::LabelingJobDataAttributes]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/LabelingJobInputConfig AWS API Documentation
    #
    class LabelingJobInputConfig < Struct.new(
      :data_source,
      :data_attributes)
      SENSITIVE = []
      include Aws::Structure
    end

    # Specifies the location of the output produced by the labeling job.
    #
    # @!attribute [rw] output_dataset_s3_uri
    #   The Amazon S3 bucket location of the manifest file for labeled data.
    #   @return [String]
    #
    # @!attribute [rw] final_active_learning_model_arn
    #   The Amazon Resource Name (ARN) for the most recent SageMaker model
    #   trained as part of automated data labeling.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/LabelingJobOutput AWS API Documentation
    #
    class LabelingJobOutput < Struct.new(
      :output_dataset_s3_uri,
      :final_active_learning_model_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # Output configuration information for a labeling job.
    #
    # @!attribute [rw] s3_output_path
    #   The Amazon S3 location to write output data.
    #   @return [String]
    #
    # @!attribute [rw] kms_key_id
    #   The Amazon Web Services Key Management Service ID of the key used to
    #   encrypt the output data, if any.
    #
    #   If you provide your own KMS key ID, you must add the required
    #   permissions to your KMS key described in [Encrypt Output Data and
    #   Storage Volume with Amazon Web Services KMS][1].
    #
    #   If you don't provide a KMS key ID, Amazon SageMaker uses the
    #   default Amazon Web Services KMS key for Amazon S3 for your role's
    #   account to encrypt your output data.
    #
    #   If you use a bucket policy with an `s3:PutObject` permission that
    #   only allows objects with server-side encryption, set the condition
    #   key of `s3:x-amz-server-side-encryption` to `"aws:kms"`. For more
    #   information, see [KMS-Managed Encryption Keys][2] in the *Amazon
    #   Simple Storage Service Developer Guide.*
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/sms-security-permission.html#sms-security-kms-permissions
    #   [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html
    #   @return [String]
    #
    # @!attribute [rw] sns_topic_arn
    #   An Amazon Simple Notification Service (Amazon SNS) output topic ARN.
    #   Provide a `SnsTopicArn` if you want to do real time chaining to
    #   another streaming job and receive an Amazon SNS notifications each
    #   time a data object is submitted by a worker.
    #
    #   If you provide an `SnsTopicArn` in `OutputConfig`, when workers
    #   complete labeling tasks, Ground Truth will send labeling task output
    #   data to the SNS output topic you specify here.
    #
    #   To learn more, see [Receive Output Data from a Streaming Labeling
    #   Job][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/sms-streaming-labeling-job.html#sms-streaming-how-it-works-output-data
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/LabelingJobOutputConfig AWS API Documentation
    #
    class LabelingJobOutputConfig < Struct.new(
      :s3_output_path,
      :kms_key_id,
      :sns_topic_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # Configure encryption on the storage volume attached to the ML compute
    # instance used to run automated data labeling model training and
    # inference.
    #
    # @!attribute [rw] volume_kms_key_id
    #   The Amazon Web Services Key Management Service (Amazon Web Services
    #   KMS) key that Amazon SageMaker uses to encrypt data on the storage
    #   volume attached to the ML compute instance(s) that run the training
    #   and inference jobs used for automated data labeling.
    #
    #   You can only specify a `VolumeKmsKeyId` when you create a labeling
    #   job with automated data labeling enabled using the API operation
    #   `CreateLabelingJob`. You cannot specify an Amazon Web Services KMS
    #   key to encrypt the storage volume used for automated data labeling
    #   model training and inference when you create a labeling job using
    #   the console. To learn more, see [Output Data and Storage Volume
    #   Encryption][1].
    #
    #   The `VolumeKmsKeyId` can be any of the following formats:
    #
    #   * KMS Key ID
    #
    #     `"1234abcd-12ab-34cd-56ef-1234567890ab"`
    #
    #   * Amazon Resource Name (ARN) of a KMS Key
    #
    #     `"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"`
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/sms-security.html
    #   @return [String]
    #
    # @!attribute [rw] vpc_config
    #   Specifies an Amazon Virtual Private Cloud (VPC) that your SageMaker
    #   jobs, hosted models, and compute resources have access to. You can
    #   control access to and from your resources by configuring a VPC. For
    #   more information, see [Give SageMaker Access to Resources in your
    #   Amazon VPC][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/infrastructure-give-access.html
    #   @return [Types::VpcConfig]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/LabelingJobResourceConfig AWS API Documentation
    #
    class LabelingJobResourceConfig < Struct.new(
      :volume_kms_key_id,
      :vpc_config)
      SENSITIVE = []
      include Aws::Structure
    end

    # The Amazon S3 location of the input data objects.
    #
    # @!attribute [rw] manifest_s3_uri
    #   The Amazon S3 location of the manifest file that describes the input
    #   data objects.
    #
    #   The input manifest file referenced in `ManifestS3Uri` must contain
    #   one of the following keys: `source-ref` or `source`. The value of
    #   the keys are interpreted as follows:
    #
    #   * `source-ref`: The source of the object is the Amazon S3 object
    #     specified in the value. Use this value when the object is a binary
    #     object, such as an image.
    #
    #   * `source`: The source of the object is the value. Use this value
    #     when the object is a text value.
    #
    #   If you are a new user of Ground Truth, it is recommended you review
    #   [Use an Input Manifest File ][1] in the Amazon SageMaker Developer
    #   Guide to learn how to create an input manifest file.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/sms-input-data-input-manifest.html
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/LabelingJobS3DataSource AWS API Documentation
    #
    class LabelingJobS3DataSource < Struct.new(
      :manifest_s3_uri)
      SENSITIVE = []
      include Aws::Structure
    end

    # An Amazon SNS data source used for streaming labeling jobs.
    #
    # @!attribute [rw] sns_topic_arn
    #   The Amazon SNS input topic Amazon Resource Name (ARN). Specify the
    #   ARN of the input topic you will use to send new data objects to a
    #   streaming labeling job.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/LabelingJobSnsDataSource AWS API Documentation
    #
    class LabelingJobSnsDataSource < Struct.new(
      :sns_topic_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # A set of conditions for stopping a labeling job. If any of the
    # conditions are met, the job is automatically stopped. You can use
    # these conditions to control the cost of data labeling.
    #
    # <note markdown="1"> Labeling jobs fail after 30 days with an appropriate client error
    # message.
    #
    #  </note>
    #
    # @!attribute [rw] max_human_labeled_object_count
    #   The maximum number of objects that can be labeled by human workers.
    #   @return [Integer]
    #
    # @!attribute [rw] max_percentage_of_input_dataset_labeled
    #   The maximum number of input data objects that should be labeled.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/LabelingJobStoppingConditions AWS API Documentation
    #
    class LabelingJobStoppingConditions < Struct.new(
      :max_human_labeled_object_count,
      :max_percentage_of_input_dataset_labeled)
      SENSITIVE = []
      include Aws::Structure
    end

    # Provides summary information about a labeling job.
    #
    # @!attribute [rw] labeling_job_name
    #   The name of the labeling job.
    #   @return [String]
    #
    # @!attribute [rw] labeling_job_arn
    #   The Amazon Resource Name (ARN) assigned to the labeling job when it
    #   was created.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   The date and time that the job was created (timestamp).
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time
    #   The date and time that the job was last modified (timestamp).
    #   @return [Time]
    #
    # @!attribute [rw] labeling_job_status
    #   The current status of the labeling job.
    #   @return [String]
    #
    # @!attribute [rw] label_counters
    #   Counts showing the progress of the labeling job.
    #   @return [Types::LabelCounters]
    #
    # @!attribute [rw] workteam_arn
    #   The Amazon Resource Name (ARN) of the work team assigned to the job.
    #   @return [String]
    #
    # @!attribute [rw] pre_human_task_lambda_arn
    #   The Amazon Resource Name (ARN) of a Lambda function. The function is
    #   run before each data object is sent to a worker.
    #   @return [String]
    #
    # @!attribute [rw] annotation_consolidation_lambda_arn
    #   The Amazon Resource Name (ARN) of the Lambda function used to
    #   consolidate the annotations from individual workers into a label for
    #   a data object. For more information, see [Annotation
    #   Consolidation][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/sms-annotation-consolidation.html
    #   @return [String]
    #
    # @!attribute [rw] failure_reason
    #   If the `LabelingJobStatus` field is `Failed`, this field contains a
    #   description of the error.
    #   @return [String]
    #
    # @!attribute [rw] labeling_job_output
    #   The location of the output produced by the labeling job.
    #   @return [Types::LabelingJobOutput]
    #
    # @!attribute [rw] input_config
    #   Input configuration for the labeling job.
    #   @return [Types::LabelingJobInputConfig]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/LabelingJobSummary AWS API Documentation
    #
    class LabelingJobSummary < Struct.new(
      :labeling_job_name,
      :labeling_job_arn,
      :creation_time,
      :last_modified_time,
      :labeling_job_status,
      :label_counters,
      :workteam_arn,
      :pre_human_task_lambda_arn,
      :annotation_consolidation_lambda_arn,
      :failure_reason,
      :labeling_job_output,
      :input_config)
      SENSITIVE = []
      include Aws::Structure
    end

    # Metadata for a Lambda step.
    #
    # @!attribute [rw] arn
    #   The Amazon Resource Name (ARN) of the Lambda function that was run
    #   by this step execution.
    #   @return [String]
    #
    # @!attribute [rw] output_parameters
    #   A list of the output parameters of the Lambda step.
    #   @return [Array<Types::OutputParameter>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/LambdaStepMetadata AWS API Documentation
    #
    class LambdaStepMetadata < Struct.new(
      :arn,
      :output_parameters)
      SENSITIVE = []
      include Aws::Structure
    end

    # A value that indicates whether the update was successful.
    #
    # @!attribute [rw] status
    #   A value that indicates whether the update was made successful.
    #   @return [String]
    #
    # @!attribute [rw] failure_reason
    #   If the update wasn't successful, indicates the reason why it
    #   failed.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/LastUpdateStatus AWS API Documentation
    #
    class LastUpdateStatus < Struct.new(
      :status,
      :failure_reason)
      SENSITIVE = []
      include Aws::Structure
    end

    # Lists a summary of the properties of a lineage group. A lineage group
    # provides a group of shareable lineage entity resources.
    #
    # @!attribute [rw] lineage_group_arn
    #   The Amazon Resource Name (ARN) of the lineage group resource.
    #   @return [String]
    #
    # @!attribute [rw] lineage_group_name
    #   The name or Amazon Resource Name (ARN) of the lineage group.
    #   @return [String]
    #
    # @!attribute [rw] display_name
    #   The display name of the lineage group summary.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   The creation time of the lineage group summary.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time
    #   The last modified time of the lineage group summary.
    #   @return [Time]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/LineageGroupSummary AWS API Documentation
    #
    class LineageGroupSummary < Struct.new(
      :lineage_group_arn,
      :lineage_group_name,
      :display_name,
      :creation_time,
      :last_modified_time)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] source_uri
    #   A filter that returns only actions with the specified source URI.
    #   @return [String]
    #
    # @!attribute [rw] action_type
    #   A filter that returns only actions of the specified type.
    #   @return [String]
    #
    # @!attribute [rw] created_after
    #   A filter that returns only actions created on or after the specified
    #   time.
    #   @return [Time]
    #
    # @!attribute [rw] created_before
    #   A filter that returns only actions created on or before the
    #   specified time.
    #   @return [Time]
    #
    # @!attribute [rw] sort_by
    #   The property used to sort results. The default value is
    #   `CreationTime`.
    #   @return [String]
    #
    # @!attribute [rw] sort_order
    #   The sort order. The default value is `Descending`.
    #   @return [String]
    #
    # @!attribute [rw] next_token
    #   If the previous call to `ListActions` didn't return the full set of
    #   actions, the call returns a token for getting the next set of
    #   actions.
    #   @return [String]
    #
    # @!attribute [rw] max_results
    #   The maximum number of actions to return in the response. The default
    #   value is 10.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListActionsRequest AWS API Documentation
    #
    class ListActionsRequest < Struct.new(
      :source_uri,
      :action_type,
      :created_after,
      :created_before,
      :sort_by,
      :sort_order,
      :next_token,
      :max_results)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] action_summaries
    #   A list of actions and their properties.
    #   @return [Array<Types::ActionSummary>]
    #
    # @!attribute [rw] next_token
    #   A token for getting the next set of actions, if there are any.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListActionsResponse AWS API Documentation
    #
    class ListActionsResponse < Struct.new(
      :action_summaries,
      :next_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] creation_time_after
    #   A filter that returns only algorithms created after the specified
    #   time (timestamp).
    #   @return [Time]
    #
    # @!attribute [rw] creation_time_before
    #   A filter that returns only algorithms created before the specified
    #   time (timestamp).
    #   @return [Time]
    #
    # @!attribute [rw] max_results
    #   The maximum number of algorithms to return in the response.
    #   @return [Integer]
    #
    # @!attribute [rw] name_contains
    #   A string in the algorithm name. This filter returns only algorithms
    #   whose name contains the specified string.
    #   @return [String]
    #
    # @!attribute [rw] next_token
    #   If the response to a previous `ListAlgorithms` request was
    #   truncated, the response includes a `NextToken`. To retrieve the next
    #   set of algorithms, use the token in the next request.
    #   @return [String]
    #
    # @!attribute [rw] sort_by
    #   The parameter by which to sort the results. The default is
    #   `CreationTime`.
    #   @return [String]
    #
    # @!attribute [rw] sort_order
    #   The sort order for the results. The default is `Ascending`.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListAlgorithmsInput AWS API Documentation
    #
    class ListAlgorithmsInput < Struct.new(
      :creation_time_after,
      :creation_time_before,
      :max_results,
      :name_contains,
      :next_token,
      :sort_by,
      :sort_order)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] algorithm_summary_list
    #   &gt;An array of `AlgorithmSummary` objects, each of which lists an
    #   algorithm.
    #   @return [Array<Types::AlgorithmSummary>]
    #
    # @!attribute [rw] next_token
    #   If the response is truncated, SageMaker returns this token. To
    #   retrieve the next set of algorithms, use it in the subsequent
    #   request.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListAlgorithmsOutput AWS API Documentation
    #
    class ListAlgorithmsOutput < Struct.new(
      :algorithm_summary_list,
      :next_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] image_name
    #   The name of the image.
    #   @return [String]
    #
    # @!attribute [rw] alias
    #   The alias of the image version.
    #   @return [String]
    #
    # @!attribute [rw] version
    #   The version of the image. If image version is not specified, the
    #   aliases of all versions of the image are listed.
    #   @return [Integer]
    #
    # @!attribute [rw] max_results
    #   The maximum number of aliases to return.
    #   @return [Integer]
    #
    # @!attribute [rw] next_token
    #   If the previous call to `ListAliases` didn't return the full set of
    #   aliases, the call returns a token for retrieving the next set of
    #   aliases.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListAliasesRequest AWS API Documentation
    #
    class ListAliasesRequest < Struct.new(
      :image_name,
      :alias,
      :version,
      :max_results,
      :next_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] sage_maker_image_version_aliases
    #   A list of SageMaker AI image version aliases.
    #   @return [Array<String>]
    #
    # @!attribute [rw] next_token
    #   A token for getting the next set of aliases, if more aliases exist.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListAliasesResponse AWS API Documentation
    #
    class ListAliasesResponse < Struct.new(
      :sage_maker_image_version_aliases,
      :next_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] max_results
    #   The total number of items to return in the response. If the total
    #   number of items available is more than the value specified, a
    #   `NextToken` is provided in the response. To resume pagination,
    #   provide the `NextToken` value in the as part of a subsequent call.
    #   The default value is 10.
    #   @return [Integer]
    #
    # @!attribute [rw] next_token
    #   If the previous call to `ListImages` didn't return the full set of
    #   AppImageConfigs, the call returns a token for getting the next set
    #   of AppImageConfigs.
    #   @return [String]
    #
    # @!attribute [rw] name_contains
    #   A filter that returns only AppImageConfigs whose name contains the
    #   specified string.
    #   @return [String]
    #
    # @!attribute [rw] creation_time_before
    #   A filter that returns only AppImageConfigs created on or before the
    #   specified time.
    #   @return [Time]
    #
    # @!attribute [rw] creation_time_after
    #   A filter that returns only AppImageConfigs created on or after the
    #   specified time.
    #   @return [Time]
    #
    # @!attribute [rw] modified_time_before
    #   A filter that returns only AppImageConfigs modified on or before the
    #   specified time.
    #   @return [Time]
    #
    # @!attribute [rw] modified_time_after
    #   A filter that returns only AppImageConfigs modified on or after the
    #   specified time.
    #   @return [Time]
    #
    # @!attribute [rw] sort_by
    #   The property used to sort results. The default value is
    #   `CreationTime`.
    #   @return [String]
    #
    # @!attribute [rw] sort_order
    #   The sort order. The default value is `Descending`.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListAppImageConfigsRequest AWS API Documentation
    #
    class ListAppImageConfigsRequest < Struct.new(
      :max_results,
      :next_token,
      :name_contains,
      :creation_time_before,
      :creation_time_after,
      :modified_time_before,
      :modified_time_after,
      :sort_by,
      :sort_order)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] next_token
    #   A token for getting the next set of AppImageConfigs, if there are
    #   any.
    #   @return [String]
    #
    # @!attribute [rw] app_image_configs
    #   A list of AppImageConfigs and their properties.
    #   @return [Array<Types::AppImageConfigDetails>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListAppImageConfigsResponse AWS API Documentation
    #
    class ListAppImageConfigsResponse < Struct.new(
      :next_token,
      :app_image_configs)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] next_token
    #   If the previous response was truncated, you will receive this token.
    #   Use it in your next request to receive the next set of results.
    #   @return [String]
    #
    # @!attribute [rw] max_results
    #   This parameter defines the maximum number of results that can be
    #   return in a single response. The `MaxResults` parameter is an upper
    #   bound, not a target. If there are more results available than the
    #   value specified, a `NextToken` is provided in the response. The
    #   `NextToken` indicates that the user should get the next set of
    #   results by providing this token as a part of a subsequent call. The
    #   default value for `MaxResults` is 10.
    #   @return [Integer]
    #
    # @!attribute [rw] sort_order
    #   The sort order for the results. The default is Ascending.
    #   @return [String]
    #
    # @!attribute [rw] sort_by
    #   The parameter by which to sort the results. The default is
    #   CreationTime.
    #   @return [String]
    #
    # @!attribute [rw] domain_id_equals
    #   A parameter to search for the domain ID.
    #   @return [String]
    #
    # @!attribute [rw] user_profile_name_equals
    #   A parameter to search by user profile name. If `SpaceNameEquals` is
    #   set, then this value cannot be set.
    #   @return [String]
    #
    # @!attribute [rw] space_name_equals
    #   A parameter to search by space name. If `UserProfileNameEquals` is
    #   set, then this value cannot be set.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListAppsRequest AWS API Documentation
    #
    class ListAppsRequest < Struct.new(
      :next_token,
      :max_results,
      :sort_order,
      :sort_by,
      :domain_id_equals,
      :user_profile_name_equals,
      :space_name_equals)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] apps
    #   The list of apps.
    #   @return [Array<Types::AppDetails>]
    #
    # @!attribute [rw] next_token
    #   If the previous response was truncated, you will receive this token.
    #   Use it in your next request to receive the next set of results.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListAppsResponse AWS API Documentation
    #
    class ListAppsResponse < Struct.new(
      :apps,
      :next_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] source_uri
    #   A filter that returns only artifacts with the specified source URI.
    #   @return [String]
    #
    # @!attribute [rw] artifact_type
    #   A filter that returns only artifacts of the specified type.
    #   @return [String]
    #
    # @!attribute [rw] created_after
    #   A filter that returns only artifacts created on or after the
    #   specified time.
    #   @return [Time]
    #
    # @!attribute [rw] created_before
    #   A filter that returns only artifacts created on or before the
    #   specified time.
    #   @return [Time]
    #
    # @!attribute [rw] sort_by
    #   The property used to sort results. The default value is
    #   `CreationTime`.
    #   @return [String]
    #
    # @!attribute [rw] sort_order
    #   The sort order. The default value is `Descending`.
    #   @return [String]
    #
    # @!attribute [rw] next_token
    #   If the previous call to `ListArtifacts` didn't return the full set
    #   of artifacts, the call returns a token for getting the next set of
    #   artifacts.
    #   @return [String]
    #
    # @!attribute [rw] max_results
    #   The maximum number of artifacts to return in the response. The
    #   default value is 10.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListArtifactsRequest AWS API Documentation
    #
    class ListArtifactsRequest < Struct.new(
      :source_uri,
      :artifact_type,
      :created_after,
      :created_before,
      :sort_by,
      :sort_order,
      :next_token,
      :max_results)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] artifact_summaries
    #   A list of artifacts and their properties.
    #   @return [Array<Types::ArtifactSummary>]
    #
    # @!attribute [rw] next_token
    #   A token for getting the next set of artifacts, if there are any.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListArtifactsResponse AWS API Documentation
    #
    class ListArtifactsResponse < Struct.new(
      :artifact_summaries,
      :next_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] source_arn
    #   A filter that returns only associations with the specified source
    #   ARN.
    #   @return [String]
    #
    # @!attribute [rw] destination_arn
    #   A filter that returns only associations with the specified
    #   destination Amazon Resource Name (ARN).
    #   @return [String]
    #
    # @!attribute [rw] source_type
    #   A filter that returns only associations with the specified source
    #   type.
    #   @return [String]
    #
    # @!attribute [rw] destination_type
    #   A filter that returns only associations with the specified
    #   destination type.
    #   @return [String]
    #
    # @!attribute [rw] association_type
    #   A filter that returns only associations of the specified type.
    #   @return [String]
    #
    # @!attribute [rw] created_after
    #   A filter that returns only associations created on or after the
    #   specified time.
    #   @return [Time]
    #
    # @!attribute [rw] created_before
    #   A filter that returns only associations created on or before the
    #   specified time.
    #   @return [Time]
    #
    # @!attribute [rw] sort_by
    #   The property used to sort results. The default value is
    #   `CreationTime`.
    #   @return [String]
    #
    # @!attribute [rw] sort_order
    #   The sort order. The default value is `Descending`.
    #   @return [String]
    #
    # @!attribute [rw] next_token
    #   If the previous call to `ListAssociations` didn't return the full
    #   set of associations, the call returns a token for getting the next
    #   set of associations.
    #   @return [String]
    #
    # @!attribute [rw] max_results
    #   The maximum number of associations to return in the response. The
    #   default value is 10.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListAssociationsRequest AWS API Documentation
    #
    class ListAssociationsRequest < Struct.new(
      :source_arn,
      :destination_arn,
      :source_type,
      :destination_type,
      :association_type,
      :created_after,
      :created_before,
      :sort_by,
      :sort_order,
      :next_token,
      :max_results)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] association_summaries
    #   A list of associations and their properties.
    #   @return [Array<Types::AssociationSummary>]
    #
    # @!attribute [rw] next_token
    #   A token for getting the next set of associations, if there are any.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListAssociationsResponse AWS API Documentation
    #
    class ListAssociationsResponse < Struct.new(
      :association_summaries,
      :next_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] creation_time_after
    #   Request a list of jobs, using a filter for time.
    #   @return [Time]
    #
    # @!attribute [rw] creation_time_before
    #   Request a list of jobs, using a filter for time.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time_after
    #   Request a list of jobs, using a filter for time.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time_before
    #   Request a list of jobs, using a filter for time.
    #   @return [Time]
    #
    # @!attribute [rw] name_contains
    #   Request a list of jobs, using a search filter for name.
    #   @return [String]
    #
    # @!attribute [rw] status_equals
    #   Request a list of jobs, using a filter for status.
    #   @return [String]
    #
    # @!attribute [rw] sort_order
    #   The sort order for the results. The default is `Descending`.
    #   @return [String]
    #
    # @!attribute [rw] sort_by
    #   The parameter by which to sort the results. The default is `Name`.
    #   @return [String]
    #
    # @!attribute [rw] max_results
    #   Request a list of jobs up to a specified limit.
    #   @return [Integer]
    #
    # @!attribute [rw] next_token
    #   If the previous response was truncated, you receive this token. Use
    #   it in your next request to receive the next set of results.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListAutoMLJobsRequest AWS API Documentation
    #
    class ListAutoMLJobsRequest < Struct.new(
      :creation_time_after,
      :creation_time_before,
      :last_modified_time_after,
      :last_modified_time_before,
      :name_contains,
      :status_equals,
      :sort_order,
      :sort_by,
      :max_results,
      :next_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] auto_ml_job_summaries
    #   Returns a summary list of jobs.
    #   @return [Array<Types::AutoMLJobSummary>]
    #
    # @!attribute [rw] next_token
    #   If the previous response was truncated, you receive this token. Use
    #   it in your next request to receive the next set of results.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListAutoMLJobsResponse AWS API Documentation
    #
    class ListAutoMLJobsResponse < Struct.new(
      :auto_ml_job_summaries,
      :next_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] auto_ml_job_name
    #   List the candidates created for the job by providing the job's
    #   name.
    #   @return [String]
    #
    # @!attribute [rw] status_equals
    #   List the candidates for the job and filter by status.
    #   @return [String]
    #
    # @!attribute [rw] candidate_name_equals
    #   List the candidates for the job and filter by candidate name.
    #   @return [String]
    #
    # @!attribute [rw] sort_order
    #   The sort order for the results. The default is `Ascending`.
    #   @return [String]
    #
    # @!attribute [rw] sort_by
    #   The parameter by which to sort the results. The default is
    #   `Descending`.
    #   @return [String]
    #
    # @!attribute [rw] max_results
    #   List the job's candidates up to a specified limit.
    #   @return [Integer]
    #
    # @!attribute [rw] next_token
    #   If the previous response was truncated, you receive this token. Use
    #   it in your next request to receive the next set of results.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListCandidatesForAutoMLJobRequest AWS API Documentation
    #
    class ListCandidatesForAutoMLJobRequest < Struct.new(
      :auto_ml_job_name,
      :status_equals,
      :candidate_name_equals,
      :sort_order,
      :sort_by,
      :max_results,
      :next_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] candidates
    #   Summaries about the `AutoMLCandidates`.
    #   @return [Array<Types::AutoMLCandidate>]
    #
    # @!attribute [rw] next_token
    #   If the previous response was truncated, you receive this token. Use
    #   it in your next request to receive the next set of results.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListCandidatesForAutoMLJobResponse AWS API Documentation
    #
    class ListCandidatesForAutoMLJobResponse < Struct.new(
      :candidates,
      :next_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] cluster_name
    #   The name or Amazon Resource Name (ARN) of the HyperPod cluster for
    #   which to list events.
    #   @return [String]
    #
    # @!attribute [rw] instance_group_name
    #   The name of the instance group to filter events. If specified, only
    #   events related to this instance group are returned.
    #   @return [String]
    #
    # @!attribute [rw] node_id
    #   The EC2 instance ID to filter events. If specified, only events
    #   related to this instance are returned.
    #   @return [String]
    #
    # @!attribute [rw] event_time_after
    #   The start of the time range for filtering events. Only events that
    #   occurred after this time are included in the results.
    #   @return [Time]
    #
    # @!attribute [rw] event_time_before
    #   The end of the time range for filtering events. Only events that
    #   occurred before this time are included in the results.
    #   @return [Time]
    #
    # @!attribute [rw] sort_by
    #   The field to use for sorting the event list. Currently, the only
    #   supported value is `EventTime`.
    #   @return [String]
    #
    # @!attribute [rw] sort_order
    #   The order in which to sort the results. Valid values are `Ascending`
    #   or `Descending` (the default is `Descending`).
    #   @return [String]
    #
    # @!attribute [rw] resource_type
    #   The type of resource for which to filter events. Valid values are
    #   `Cluster`, `InstanceGroup`, or `Instance`.
    #   @return [String]
    #
    # @!attribute [rw] max_results
    #   The maximum number of events to return in the response. Valid range
    #   is 1 to 100.
    #   @return [Integer]
    #
    # @!attribute [rw] next_token
    #   A token to retrieve the next set of results. This token is obtained
    #   from the output of a previous `ListClusterEvents` call.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListClusterEventsRequest AWS API Documentation
    #
    class ListClusterEventsRequest < Struct.new(
      :cluster_name,
      :instance_group_name,
      :node_id,
      :event_time_after,
      :event_time_before,
      :sort_by,
      :sort_order,
      :resource_type,
      :max_results,
      :next_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] next_token
    #   A token to retrieve the next set of results. Include this token in
    #   subsequent `ListClusterEvents` calls to fetch more events.
    #   @return [String]
    #
    # @!attribute [rw] events
    #   A list of event summaries matching the specified criteria.
    #   @return [Array<Types::ClusterEventSummary>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListClusterEventsResponse AWS API Documentation
    #
    class ListClusterEventsResponse < Struct.new(
      :next_token,
      :events)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] cluster_name
    #   The string name or the Amazon Resource Name (ARN) of the SageMaker
    #   HyperPod cluster in which you want to retrieve the list of nodes.
    #   @return [String]
    #
    # @!attribute [rw] creation_time_after
    #   A filter that returns nodes in a SageMaker HyperPod cluster created
    #   after the specified time. Timestamps are formatted according to the
    #   ISO 8601 standard.
    #
    #   Acceptable formats include:
    #
    #   * `YYYY-MM-DDThh:mm:ss.sssTZD` (UTC), for example,
    #     `2014-10-01T20:30:00.000Z`
    #
    #   * `YYYY-MM-DDThh:mm:ss.sssTZD` (with offset), for example,
    #     `2014-10-01T12:30:00.000-08:00`
    #
    #   * `YYYY-MM-DD`, for example, `2014-10-01`
    #
    #   * Unix time in seconds, for example, `1412195400`. This is also
    #     referred to as Unix Epoch time and represents the number of
    #     seconds since midnight, January 1, 1970 UTC.
    #
    #   For more information about the timestamp format, see [Timestamp][1]
    #   in the *Amazon Web Services Command Line Interface User Guide*.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-parameters-types.html#parameter-type-timestamp
    #   @return [Time]
    #
    # @!attribute [rw] creation_time_before
    #   A filter that returns nodes in a SageMaker HyperPod cluster created
    #   before the specified time. The acceptable formats are the same as
    #   the timestamp formats for `CreationTimeAfter`. For more information
    #   about the timestamp format, see [Timestamp][1] in the *Amazon Web
    #   Services Command Line Interface User Guide*.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-parameters-types.html#parameter-type-timestamp
    #   @return [Time]
    #
    # @!attribute [rw] instance_group_name_contains
    #   A filter that returns the instance groups whose name contain a
    #   specified string.
    #   @return [String]
    #
    # @!attribute [rw] max_results
    #   The maximum number of nodes to return in the response.
    #   @return [Integer]
    #
    # @!attribute [rw] next_token
    #   If the result of the previous `ListClusterNodes` request was
    #   truncated, the response includes a `NextToken`. To retrieve the next
    #   set of cluster nodes, use the token in the next request.
    #   @return [String]
    #
    # @!attribute [rw] sort_by
    #   The field by which to sort results. The default value is
    #   `CREATION_TIME`.
    #   @return [String]
    #
    # @!attribute [rw] sort_order
    #   The sort order for results. The default value is `Ascending`.
    #   @return [String]
    #
    # @!attribute [rw] include_node_logical_ids
    #   Specifies whether to include nodes that are still being provisioned
    #   in the response. When set to true, the response includes all nodes
    #   regardless of their provisioning status. When set to `False`
    #   (default), only nodes with assigned `InstanceIds` are returned.
    #   @return [Boolean]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListClusterNodesRequest AWS API Documentation
    #
    class ListClusterNodesRequest < Struct.new(
      :cluster_name,
      :creation_time_after,
      :creation_time_before,
      :instance_group_name_contains,
      :max_results,
      :next_token,
      :sort_by,
      :sort_order,
      :include_node_logical_ids)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] next_token
    #   The next token specified for listing instances in a SageMaker
    #   HyperPod cluster.
    #   @return [String]
    #
    # @!attribute [rw] cluster_node_summaries
    #   The summaries of listed instances in a SageMaker HyperPod cluster
    #   @return [Array<Types::ClusterNodeSummary>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListClusterNodesResponse AWS API Documentation
    #
    class ListClusterNodesResponse < Struct.new(
      :next_token,
      :cluster_node_summaries)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] created_after
    #   Filter for after this creation time. The input for this parameter is
    #   a Unix timestamp. To convert a date and time into a Unix timestamp,
    #   see [EpochConverter][1].
    #
    #
    #
    #   [1]: https://www.epochconverter.com/
    #   @return [Time]
    #
    # @!attribute [rw] created_before
    #   Filter for before this creation time. The input for this parameter
    #   is a Unix timestamp. To convert a date and time into a Unix
    #   timestamp, see [EpochConverter][1].
    #
    #
    #
    #   [1]: https://www.epochconverter.com/
    #   @return [Time]
    #
    # @!attribute [rw] name_contains
    #   Filter for name containing this string.
    #   @return [String]
    #
    # @!attribute [rw] cluster_arn
    #   Filter for ARN of the cluster.
    #   @return [String]
    #
    # @!attribute [rw] status
    #   Filter for status.
    #   @return [String]
    #
    # @!attribute [rw] sort_by
    #   Filter for sorting the list by a given value. For example, sort by
    #   name, creation time, or status.
    #   @return [String]
    #
    # @!attribute [rw] sort_order
    #   The order of the list. By default, listed in `Descending` order
    #   according to by `SortBy`. To change the list order, you can specify
    #   `SortOrder` to be `Ascending`.
    #   @return [String]
    #
    # @!attribute [rw] next_token
    #   If the previous response was truncated, you will receive this token.
    #   Use it in your next request to receive the next set of results.
    #   @return [String]
    #
    # @!attribute [rw] max_results
    #   The maximum number of cluster policies to list.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListClusterSchedulerConfigsRequest AWS API Documentation
    #
    class ListClusterSchedulerConfigsRequest < Struct.new(
      :created_after,
      :created_before,
      :name_contains,
      :cluster_arn,
      :status,
      :sort_by,
      :sort_order,
      :next_token,
      :max_results)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] cluster_scheduler_config_summaries
    #   Summaries of the cluster policies.
    #   @return [Array<Types::ClusterSchedulerConfigSummary>]
    #
    # @!attribute [rw] next_token
    #   If the previous response was truncated, you will receive this token.
    #   Use it in your next request to receive the next set of results.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListClusterSchedulerConfigsResponse AWS API Documentation
    #
    class ListClusterSchedulerConfigsResponse < Struct.new(
      :cluster_scheduler_config_summaries,
      :next_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] creation_time_after
    #   Set a start time for the time range during which you want to list
    #   SageMaker HyperPod clusters. Timestamps are formatted according to
    #   the ISO 8601 standard.
    #
    #   Acceptable formats include:
    #
    #   * `YYYY-MM-DDThh:mm:ss.sssTZD` (UTC), for example,
    #     `2014-10-01T20:30:00.000Z`
    #
    #   * `YYYY-MM-DDThh:mm:ss.sssTZD` (with offset), for example,
    #     `2014-10-01T12:30:00.000-08:00`
    #
    #   * `YYYY-MM-DD`, for example, `2014-10-01`
    #
    #   * Unix time in seconds, for example, `1412195400`. This is also
    #     referred to as Unix Epoch time and represents the number of
    #     seconds since midnight, January 1, 1970 UTC.
    #
    #   For more information about the timestamp format, see [Timestamp][1]
    #   in the *Amazon Web Services Command Line Interface User Guide*.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-parameters-types.html#parameter-type-timestamp
    #   @return [Time]
    #
    # @!attribute [rw] creation_time_before
    #   Set an end time for the time range during which you want to list
    #   SageMaker HyperPod clusters. A filter that returns nodes in a
    #   SageMaker HyperPod cluster created before the specified time. The
    #   acceptable formats are the same as the timestamp formats for
    #   `CreationTimeAfter`. For more information about the timestamp
    #   format, see [Timestamp][1] in the *Amazon Web Services Command Line
    #   Interface User Guide*.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-parameters-types.html#parameter-type-timestamp
    #   @return [Time]
    #
    # @!attribute [rw] max_results
    #   Specifies the maximum number of clusters to evaluate for the
    #   operation (not necessarily the number of matching items). After
    #   SageMaker processes the number of clusters up to `MaxResults`, it
    #   stops the operation and returns the matching clusters up to that
    #   point. If all the matching clusters are desired, SageMaker will go
    #   through all the clusters until `NextToken` is empty.
    #   @return [Integer]
    #
    # @!attribute [rw] name_contains
    #   Set the maximum number of instances to print in the list.
    #   @return [String]
    #
    # @!attribute [rw] next_token
    #   Set the next token to retrieve the list of SageMaker HyperPod
    #   clusters.
    #   @return [String]
    #
    # @!attribute [rw] sort_by
    #   The field by which to sort results. The default value is
    #   `CREATION_TIME`.
    #   @return [String]
    #
    # @!attribute [rw] sort_order
    #   The sort order for results. The default value is `Ascending`.
    #   @return [String]
    #
    # @!attribute [rw] training_plan_arn
    #   The Amazon Resource Name (ARN); of the training plan to filter
    #   clusters by. For more information about reserving GPU capacity for
    #   your SageMaker HyperPod clusters using Amazon SageMaker Training
    #   Plan, see ` CreateTrainingPlan `.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListClustersRequest AWS API Documentation
    #
    class ListClustersRequest < Struct.new(
      :creation_time_after,
      :creation_time_before,
      :max_results,
      :name_contains,
      :next_token,
      :sort_by,
      :sort_order,
      :training_plan_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] next_token
    #   If the result of the previous `ListClusters` request was truncated,
    #   the response includes a `NextToken`. To retrieve the next set of
    #   clusters, use the token in the next request.
    #   @return [String]
    #
    # @!attribute [rw] cluster_summaries
    #   The summaries of listed SageMaker HyperPod clusters.
    #   @return [Array<Types::ClusterSummary>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListClustersResponse AWS API Documentation
    #
    class ListClustersResponse < Struct.new(
      :next_token,
      :cluster_summaries)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] creation_time_after
    #   A filter that returns only Git repositories that were created after
    #   the specified time.
    #   @return [Time]
    #
    # @!attribute [rw] creation_time_before
    #   A filter that returns only Git repositories that were created before
    #   the specified time.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time_after
    #   A filter that returns only Git repositories that were last modified
    #   after the specified time.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time_before
    #   A filter that returns only Git repositories that were last modified
    #   before the specified time.
    #   @return [Time]
    #
    # @!attribute [rw] max_results
    #   The maximum number of Git repositories to return in the response.
    #   @return [Integer]
    #
    # @!attribute [rw] name_contains
    #   A string in the Git repositories name. This filter returns only
    #   repositories whose name contains the specified string.
    #   @return [String]
    #
    # @!attribute [rw] next_token
    #   If the result of a `ListCodeRepositoriesOutput` request was
    #   truncated, the response includes a `NextToken`. To get the next set
    #   of Git repositories, use the token in the next request.
    #   @return [String]
    #
    # @!attribute [rw] sort_by
    #   The field to sort results by. The default is `Name`.
    #   @return [String]
    #
    # @!attribute [rw] sort_order
    #   The sort order for results. The default is `Ascending`.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListCodeRepositoriesInput AWS API Documentation
    #
    class ListCodeRepositoriesInput < Struct.new(
      :creation_time_after,
      :creation_time_before,
      :last_modified_time_after,
      :last_modified_time_before,
      :max_results,
      :name_contains,
      :next_token,
      :sort_by,
      :sort_order)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] code_repository_summary_list
    #   Gets a list of summaries of the Git repositories. Each summary
    #   specifies the following values for the repository:
    #
    #   * Name
    #
    #   * Amazon Resource Name (ARN)
    #
    #   * Creation time
    #
    #   * Last modified time
    #
    #   * Configuration information, including the URL location of the
    #     repository and the ARN of the Amazon Web Services Secrets Manager
    #     secret that contains the credentials used to access the
    #     repository.
    #   @return [Array<Types::CodeRepositorySummary>]
    #
    # @!attribute [rw] next_token
    #   If the result of a `ListCodeRepositoriesOutput` request was
    #   truncated, the response includes a `NextToken`. To get the next set
    #   of Git repositories, use the token in the next request.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListCodeRepositoriesOutput AWS API Documentation
    #
    class ListCodeRepositoriesOutput < Struct.new(
      :code_repository_summary_list,
      :next_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] next_token
    #   If the result of the previous `ListCompilationJobs` request was
    #   truncated, the response includes a `NextToken`. To retrieve the next
    #   set of model compilation jobs, use the token in the next request.
    #   @return [String]
    #
    # @!attribute [rw] max_results
    #   The maximum number of model compilation jobs to return in the
    #   response.
    #   @return [Integer]
    #
    # @!attribute [rw] creation_time_after
    #   A filter that returns the model compilation jobs that were created
    #   after a specified time.
    #   @return [Time]
    #
    # @!attribute [rw] creation_time_before
    #   A filter that returns the model compilation jobs that were created
    #   before a specified time.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time_after
    #   A filter that returns the model compilation jobs that were modified
    #   after a specified time.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time_before
    #   A filter that returns the model compilation jobs that were modified
    #   before a specified time.
    #   @return [Time]
    #
    # @!attribute [rw] name_contains
    #   A filter that returns the model compilation jobs whose name contains
    #   a specified string.
    #   @return [String]
    #
    # @!attribute [rw] status_equals
    #   A filter that retrieves model compilation jobs with a specific
    #   `CompilationJobStatus` status.
    #   @return [String]
    #
    # @!attribute [rw] sort_by
    #   The field by which to sort results. The default is `CreationTime`.
    #   @return [String]
    #
    # @!attribute [rw] sort_order
    #   The sort order for results. The default is `Ascending`.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListCompilationJobsRequest AWS API Documentation
    #
    class ListCompilationJobsRequest < Struct.new(
      :next_token,
      :max_results,
      :creation_time_after,
      :creation_time_before,
      :last_modified_time_after,
      :last_modified_time_before,
      :name_contains,
      :status_equals,
      :sort_by,
      :sort_order)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] compilation_job_summaries
    #   An array of [CompilationJobSummary][1] objects, each describing a
    #   model compilation job.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CompilationJobSummary.html
    #   @return [Array<Types::CompilationJobSummary>]
    #
    # @!attribute [rw] next_token
    #   If the response is truncated, Amazon SageMaker AI returns this
    #   `NextToken`. To retrieve the next set of model compilation jobs, use
    #   this token in the next request.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListCompilationJobsResponse AWS API Documentation
    #
    class ListCompilationJobsResponse < Struct.new(
      :compilation_job_summaries,
      :next_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] created_after
    #   Filter for after this creation time. The input for this parameter is
    #   a Unix timestamp. To convert a date and time into a Unix timestamp,
    #   see [EpochConverter][1].
    #
    #
    #
    #   [1]: https://www.epochconverter.com/
    #   @return [Time]
    #
    # @!attribute [rw] created_before
    #   Filter for before this creation time. The input for this parameter
    #   is a Unix timestamp. To convert a date and time into a Unix
    #   timestamp, see [EpochConverter][1].
    #
    #
    #
    #   [1]: https://www.epochconverter.com/
    #   @return [Time]
    #
    # @!attribute [rw] name_contains
    #   Filter for name containing this string.
    #   @return [String]
    #
    # @!attribute [rw] status
    #   Filter for status.
    #   @return [String]
    #
    # @!attribute [rw] cluster_arn
    #   Filter for ARN of the cluster.
    #   @return [String]
    #
    # @!attribute [rw] sort_by
    #   Filter for sorting the list by a given value. For example, sort by
    #   name, creation time, or status.
    #   @return [String]
    #
    # @!attribute [rw] sort_order
    #   The order of the list. By default, listed in `Descending` order
    #   according to by `SortBy`. To change the list order, you can specify
    #   `SortOrder` to be `Ascending`.
    #   @return [String]
    #
    # @!attribute [rw] next_token
    #   If the previous response was truncated, you will receive this token.
    #   Use it in your next request to receive the next set of results.
    #   @return [String]
    #
    # @!attribute [rw] max_results
    #   The maximum number of compute allocation definitions to list.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListComputeQuotasRequest AWS API Documentation
    #
    class ListComputeQuotasRequest < Struct.new(
      :created_after,
      :created_before,
      :name_contains,
      :status,
      :cluster_arn,
      :sort_by,
      :sort_order,
      :next_token,
      :max_results)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] compute_quota_summaries
    #   Summaries of the compute allocation definitions.
    #   @return [Array<Types::ComputeQuotaSummary>]
    #
    # @!attribute [rw] next_token
    #   If the previous response was truncated, you will receive this token.
    #   Use it in your next request to receive the next set of results.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListComputeQuotasResponse AWS API Documentation
    #
    class ListComputeQuotasResponse < Struct.new(
      :compute_quota_summaries,
      :next_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] source_uri
    #   A filter that returns only contexts with the specified source URI.
    #   @return [String]
    #
    # @!attribute [rw] context_type
    #   A filter that returns only contexts of the specified type.
    #   @return [String]
    #
    # @!attribute [rw] created_after
    #   A filter that returns only contexts created on or after the
    #   specified time.
    #   @return [Time]
    #
    # @!attribute [rw] created_before
    #   A filter that returns only contexts created on or before the
    #   specified time.
    #   @return [Time]
    #
    # @!attribute [rw] sort_by
    #   The property used to sort results. The default value is
    #   `CreationTime`.
    #   @return [String]
    #
    # @!attribute [rw] sort_order
    #   The sort order. The default value is `Descending`.
    #   @return [String]
    #
    # @!attribute [rw] next_token
    #   If the previous call to `ListContexts` didn't return the full set
    #   of contexts, the call returns a token for getting the next set of
    #   contexts.
    #   @return [String]
    #
    # @!attribute [rw] max_results
    #   The maximum number of contexts to return in the response. The
    #   default value is 10.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListContextsRequest AWS API Documentation
    #
    class ListContextsRequest < Struct.new(
      :source_uri,
      :context_type,
      :created_after,
      :created_before,
      :sort_by,
      :sort_order,
      :next_token,
      :max_results)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] context_summaries
    #   A list of contexts and their properties.
    #   @return [Array<Types::ContextSummary>]
    #
    # @!attribute [rw] next_token
    #   A token for getting the next set of contexts, if there are any.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListContextsResponse AWS API Documentation
    #
    class ListContextsResponse < Struct.new(
      :context_summaries,
      :next_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] endpoint_name
    #   A filter that lists the data quality job definitions associated with
    #   the specified endpoint.
    #   @return [String]
    #
    # @!attribute [rw] sort_by
    #   The field to sort results by. The default is `CreationTime`.
    #   @return [String]
    #
    # @!attribute [rw] sort_order
    #   Whether to sort the results in `Ascending` or `Descending` order.
    #   The default is `Descending`.
    #   @return [String]
    #
    # @!attribute [rw] next_token
    #   If the result of the previous `ListDataQualityJobDefinitions`
    #   request was truncated, the response includes a `NextToken`. To
    #   retrieve the next set of transform jobs, use the token in the next
    #   request.&gt;
    #   @return [String]
    #
    # @!attribute [rw] max_results
    #   The maximum number of data quality monitoring job definitions to
    #   return in the response.
    #   @return [Integer]
    #
    # @!attribute [rw] name_contains
    #   A string in the data quality monitoring job definition name. This
    #   filter returns only data quality monitoring job definitions whose
    #   name contains the specified string.
    #   @return [String]
    #
    # @!attribute [rw] creation_time_before
    #   A filter that returns only data quality monitoring job definitions
    #   created before the specified time.
    #   @return [Time]
    #
    # @!attribute [rw] creation_time_after
    #   A filter that returns only data quality monitoring job definitions
    #   created after the specified time.
    #   @return [Time]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListDataQualityJobDefinitionsRequest AWS API Documentation
    #
    class ListDataQualityJobDefinitionsRequest < Struct.new(
      :endpoint_name,
      :sort_by,
      :sort_order,
      :next_token,
      :max_results,
      :name_contains,
      :creation_time_before,
      :creation_time_after)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] job_definition_summaries
    #   A list of data quality monitoring job definitions.
    #   @return [Array<Types::MonitoringJobDefinitionSummary>]
    #
    # @!attribute [rw] next_token
    #   If the result of the previous `ListDataQualityJobDefinitions`
    #   request was truncated, the response includes a `NextToken`. To
    #   retrieve the next set of data quality monitoring job definitions,
    #   use the token in the next request.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListDataQualityJobDefinitionsResponse AWS API Documentation
    #
    class ListDataQualityJobDefinitionsResponse < Struct.new(
      :job_definition_summaries,
      :next_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] next_token
    #   The response from the last list when returning a list large enough
    #   to need tokening.
    #   @return [String]
    #
    # @!attribute [rw] max_results
    #   The maximum number of results to select.
    #   @return [Integer]
    #
    # @!attribute [rw] creation_time_after
    #   Filter fleets where packaging job was created after specified time.
    #   @return [Time]
    #
    # @!attribute [rw] creation_time_before
    #   Filter fleets where the edge packaging job was created before
    #   specified time.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time_after
    #   Select fleets where the job was updated after X
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time_before
    #   Select fleets where the job was updated before X
    #   @return [Time]
    #
    # @!attribute [rw] name_contains
    #   Filter for fleets containing this name in their fleet device name.
    #   @return [String]
    #
    # @!attribute [rw] sort_by
    #   The column to sort by.
    #   @return [String]
    #
    # @!attribute [rw] sort_order
    #   What direction to sort in.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListDeviceFleetsRequest AWS API Documentation
    #
    class ListDeviceFleetsRequest < Struct.new(
      :next_token,
      :max_results,
      :creation_time_after,
      :creation_time_before,
      :last_modified_time_after,
      :last_modified_time_before,
      :name_contains,
      :sort_by,
      :sort_order)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] device_fleet_summaries
    #   Summary of the device fleet.
    #   @return [Array<Types::DeviceFleetSummary>]
    #
    # @!attribute [rw] next_token
    #   The response from the last list when returning a list large enough
    #   to need tokening.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListDeviceFleetsResponse AWS API Documentation
    #
    class ListDeviceFleetsResponse < Struct.new(
      :device_fleet_summaries,
      :next_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] next_token
    #   The response from the last list when returning a list large enough
    #   to need tokening.
    #   @return [String]
    #
    # @!attribute [rw] max_results
    #   Maximum number of results to select.
    #   @return [Integer]
    #
    # @!attribute [rw] latest_heartbeat_after
    #   Select fleets where the job was updated after X
    #   @return [Time]
    #
    # @!attribute [rw] model_name
    #   A filter that searches devices that contains this name in any of
    #   their models.
    #   @return [String]
    #
    # @!attribute [rw] device_fleet_name
    #   Filter for fleets containing this name in their device fleet name.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListDevicesRequest AWS API Documentation
    #
    class ListDevicesRequest < Struct.new(
      :next_token,
      :max_results,
      :latest_heartbeat_after,
      :model_name,
      :device_fleet_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] device_summaries
    #   Summary of devices.
    #   @return [Array<Types::DeviceSummary>]
    #
    # @!attribute [rw] next_token
    #   The response from the last list when returning a list large enough
    #   to need tokening.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListDevicesResponse AWS API Documentation
    #
    class ListDevicesResponse < Struct.new(
      :device_summaries,
      :next_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] next_token
    #   If the previous response was truncated, you will receive this token.
    #   Use it in your next request to receive the next set of results.
    #   @return [String]
    #
    # @!attribute [rw] max_results
    #   This parameter defines the maximum number of results that can be
    #   return in a single response. The `MaxResults` parameter is an upper
    #   bound, not a target. If there are more results available than the
    #   value specified, a `NextToken` is provided in the response. The
    #   `NextToken` indicates that the user should get the next set of
    #   results by providing this token as a part of a subsequent call. The
    #   default value for `MaxResults` is 10.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListDomainsRequest AWS API Documentation
    #
    class ListDomainsRequest < Struct.new(
      :next_token,
      :max_results)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] domains
    #   The list of domains.
    #   @return [Array<Types::DomainDetails>]
    #
    # @!attribute [rw] next_token
    #   If the previous response was truncated, you will receive this token.
    #   Use it in your next request to receive the next set of results.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListDomainsResponse AWS API Documentation
    #
    class ListDomainsResponse < Struct.new(
      :domains,
      :next_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] next_token
    #   The response from the last list when returning a list large enough
    #   to need tokening.
    #   @return [String]
    #
    # @!attribute [rw] max_results
    #   The maximum number of results to select (50 by default).
    #   @return [Integer]
    #
    # @!attribute [rw] creation_time_after
    #   Selects edge deployment plans created after this time.
    #   @return [Time]
    #
    # @!attribute [rw] creation_time_before
    #   Selects edge deployment plans created before this time.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time_after
    #   Selects edge deployment plans that were last updated after this
    #   time.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time_before
    #   Selects edge deployment plans that were last updated before this
    #   time.
    #   @return [Time]
    #
    # @!attribute [rw] name_contains
    #   Selects edge deployment plans with names containing this name.
    #   @return [String]
    #
    # @!attribute [rw] device_fleet_name_contains
    #   Selects edge deployment plans with a device fleet name containing
    #   this name.
    #   @return [String]
    #
    # @!attribute [rw] sort_by
    #   The column by which to sort the edge deployment plans. Can be one of
    #   `NAME`, `DEVICEFLEETNAME`, `CREATIONTIME`, `LASTMODIFIEDTIME`.
    #   @return [String]
    #
    # @!attribute [rw] sort_order
    #   The direction of the sorting (ascending or descending).
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListEdgeDeploymentPlansRequest AWS API Documentation
    #
    class ListEdgeDeploymentPlansRequest < Struct.new(
      :next_token,
      :max_results,
      :creation_time_after,
      :creation_time_before,
      :last_modified_time_after,
      :last_modified_time_before,
      :name_contains,
      :device_fleet_name_contains,
      :sort_by,
      :sort_order)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] edge_deployment_plan_summaries
    #   List of summaries of edge deployment plans.
    #   @return [Array<Types::EdgeDeploymentPlanSummary>]
    #
    # @!attribute [rw] next_token
    #   The token to use when calling the next page of results.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListEdgeDeploymentPlansResponse AWS API Documentation
    #
    class ListEdgeDeploymentPlansResponse < Struct.new(
      :edge_deployment_plan_summaries,
      :next_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] next_token
    #   The response from the last list when returning a list large enough
    #   to need tokening.
    #   @return [String]
    #
    # @!attribute [rw] max_results
    #   Maximum number of results to select.
    #   @return [Integer]
    #
    # @!attribute [rw] creation_time_after
    #   Select jobs where the job was created after specified time.
    #   @return [Time]
    #
    # @!attribute [rw] creation_time_before
    #   Select jobs where the job was created before specified time.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time_after
    #   Select jobs where the job was updated after specified time.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time_before
    #   Select jobs where the job was updated before specified time.
    #   @return [Time]
    #
    # @!attribute [rw] name_contains
    #   Filter for jobs containing this name in their packaging job name.
    #   @return [String]
    #
    # @!attribute [rw] model_name_contains
    #   Filter for jobs where the model name contains this string.
    #   @return [String]
    #
    # @!attribute [rw] status_equals
    #   The job status to filter for.
    #   @return [String]
    #
    # @!attribute [rw] sort_by
    #   Use to specify what column to sort by.
    #   @return [String]
    #
    # @!attribute [rw] sort_order
    #   What direction to sort by.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListEdgePackagingJobsRequest AWS API Documentation
    #
    class ListEdgePackagingJobsRequest < Struct.new(
      :next_token,
      :max_results,
      :creation_time_after,
      :creation_time_before,
      :last_modified_time_after,
      :last_modified_time_before,
      :name_contains,
      :model_name_contains,
      :status_equals,
      :sort_by,
      :sort_order)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] edge_packaging_job_summaries
    #   Summaries of edge packaging jobs.
    #   @return [Array<Types::EdgePackagingJobSummary>]
    #
    # @!attribute [rw] next_token
    #   Token to use when calling the next page of results.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListEdgePackagingJobsResponse AWS API Documentation
    #
    class ListEdgePackagingJobsResponse < Struct.new(
      :edge_packaging_job_summaries,
      :next_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] sort_by
    #   The field to sort results by. The default is `CreationTime`.
    #   @return [String]
    #
    # @!attribute [rw] sort_order
    #   The sort order for results. The default is `Descending`.
    #   @return [String]
    #
    # @!attribute [rw] next_token
    #   If the result of the previous `ListEndpointConfig` request was
    #   truncated, the response includes a `NextToken`. To retrieve the next
    #   set of endpoint configurations, use the token in the next request.
    #   @return [String]
    #
    # @!attribute [rw] max_results
    #   The maximum number of training jobs to return in the response.
    #   @return [Integer]
    #
    # @!attribute [rw] name_contains
    #   A string in the endpoint configuration name. This filter returns
    #   only endpoint configurations whose name contains the specified
    #   string.
    #   @return [String]
    #
    # @!attribute [rw] creation_time_before
    #   A filter that returns only endpoint configurations created before
    #   the specified time (timestamp).
    #   @return [Time]
    #
    # @!attribute [rw] creation_time_after
    #   A filter that returns only endpoint configurations with a creation
    #   time greater than or equal to the specified time (timestamp).
    #   @return [Time]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListEndpointConfigsInput AWS API Documentation
    #
    class ListEndpointConfigsInput < Struct.new(
      :sort_by,
      :sort_order,
      :next_token,
      :max_results,
      :name_contains,
      :creation_time_before,
      :creation_time_after)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] endpoint_configs
    #   An array of endpoint configurations.
    #   @return [Array<Types::EndpointConfigSummary>]
    #
    # @!attribute [rw] next_token
    #   If the response is truncated, SageMaker returns this token. To
    #   retrieve the next set of endpoint configurations, use it in the
    #   subsequent request
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListEndpointConfigsOutput AWS API Documentation
    #
    class ListEndpointConfigsOutput < Struct.new(
      :endpoint_configs,
      :next_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] sort_by
    #   Sorts the list of results. The default is `CreationTime`.
    #   @return [String]
    #
    # @!attribute [rw] sort_order
    #   The sort order for results. The default is `Descending`.
    #   @return [String]
    #
    # @!attribute [rw] next_token
    #   If the result of a `ListEndpoints` request was truncated, the
    #   response includes a `NextToken`. To retrieve the next set of
    #   endpoints, use the token in the next request.
    #   @return [String]
    #
    # @!attribute [rw] max_results
    #   The maximum number of endpoints to return in the response. This
    #   value defaults to 10.
    #   @return [Integer]
    #
    # @!attribute [rw] name_contains
    #   A string in endpoint names. This filter returns only endpoints whose
    #   name contains the specified string.
    #   @return [String]
    #
    # @!attribute [rw] creation_time_before
    #   A filter that returns only endpoints that were created before the
    #   specified time (timestamp).
    #   @return [Time]
    #
    # @!attribute [rw] creation_time_after
    #   A filter that returns only endpoints with a creation time greater
    #   than or equal to the specified time (timestamp).
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time_before
    #   A filter that returns only endpoints that were modified before the
    #   specified timestamp.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time_after
    #   A filter that returns only endpoints that were modified after the
    #   specified timestamp.
    #   @return [Time]
    #
    # @!attribute [rw] status_equals
    #   A filter that returns only endpoints with the specified status.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListEndpointsInput AWS API Documentation
    #
    class ListEndpointsInput < Struct.new(
      :sort_by,
      :sort_order,
      :next_token,
      :max_results,
      :name_contains,
      :creation_time_before,
      :creation_time_after,
      :last_modified_time_before,
      :last_modified_time_after,
      :status_equals)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] endpoints
    #   An array or endpoint objects.
    #   @return [Array<Types::EndpointSummary>]
    #
    # @!attribute [rw] next_token
    #   If the response is truncated, SageMaker returns this token. To
    #   retrieve the next set of training jobs, use it in the subsequent
    #   request.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListEndpointsOutput AWS API Documentation
    #
    class ListEndpointsOutput < Struct.new(
      :endpoints,
      :next_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] created_after
    #   A filter that returns only experiments created after the specified
    #   time.
    #   @return [Time]
    #
    # @!attribute [rw] created_before
    #   A filter that returns only experiments created before the specified
    #   time.
    #   @return [Time]
    #
    # @!attribute [rw] sort_by
    #   The property used to sort results. The default value is
    #   `CreationTime`.
    #   @return [String]
    #
    # @!attribute [rw] sort_order
    #   The sort order. The default value is `Descending`.
    #   @return [String]
    #
    # @!attribute [rw] next_token
    #   If the previous call to `ListExperiments` didn't return the full
    #   set of experiments, the call returns a token for getting the next
    #   set of experiments.
    #   @return [String]
    #
    # @!attribute [rw] max_results
    #   The maximum number of experiments to return in the response. The
    #   default value is 10.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListExperimentsRequest AWS API Documentation
    #
    class ListExperimentsRequest < Struct.new(
      :created_after,
      :created_before,
      :sort_by,
      :sort_order,
      :next_token,
      :max_results)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] experiment_summaries
    #   A list of the summaries of your experiments.
    #   @return [Array<Types::ExperimentSummary>]
    #
    # @!attribute [rw] next_token
    #   A token for getting the next set of experiments, if there are any.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListExperimentsResponse AWS API Documentation
    #
    class ListExperimentsResponse < Struct.new(
      :experiment_summaries,
      :next_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] name_contains
    #   A string that partially matches one or more `FeatureGroup`s names.
    #   Filters `FeatureGroup`s by name.
    #   @return [String]
    #
    # @!attribute [rw] feature_group_status_equals
    #   A `FeatureGroup` status. Filters by `FeatureGroup` status.
    #   @return [String]
    #
    # @!attribute [rw] offline_store_status_equals
    #   An `OfflineStore` status. Filters by `OfflineStore` status.
    #   @return [String]
    #
    # @!attribute [rw] creation_time_after
    #   Use this parameter to search for `FeatureGroups`s created after a
    #   specific date and time.
    #   @return [Time]
    #
    # @!attribute [rw] creation_time_before
    #   Use this parameter to search for `FeatureGroups`s created before a
    #   specific date and time.
    #   @return [Time]
    #
    # @!attribute [rw] sort_order
    #   The order in which feature groups are listed.
    #   @return [String]
    #
    # @!attribute [rw] sort_by
    #   The value on which the feature group list is sorted.
    #   @return [String]
    #
    # @!attribute [rw] max_results
    #   The maximum number of results returned by `ListFeatureGroups`.
    #   @return [Integer]
    #
    # @!attribute [rw] next_token
    #   A token to resume pagination of `ListFeatureGroups` results.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListFeatureGroupsRequest AWS API Documentation
    #
    class ListFeatureGroupsRequest < Struct.new(
      :name_contains,
      :feature_group_status_equals,
      :offline_store_status_equals,
      :creation_time_after,
      :creation_time_before,
      :sort_order,
      :sort_by,
      :max_results,
      :next_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] feature_group_summaries
    #   A summary of feature groups.
    #   @return [Array<Types::FeatureGroupSummary>]
    #
    # @!attribute [rw] next_token
    #   A token to resume pagination of `ListFeatureGroups` results.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListFeatureGroupsResponse AWS API Documentation
    #
    class ListFeatureGroupsResponse < Struct.new(
      :feature_group_summaries,
      :next_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] creation_time_after
    #   A filter that returns only flow definitions with a creation time
    #   greater than or equal to the specified timestamp.
    #   @return [Time]
    #
    # @!attribute [rw] creation_time_before
    #   A filter that returns only flow definitions that were created before
    #   the specified timestamp.
    #   @return [Time]
    #
    # @!attribute [rw] sort_order
    #   An optional value that specifies whether you want the results sorted
    #   in `Ascending` or `Descending` order.
    #   @return [String]
    #
    # @!attribute [rw] next_token
    #   A token to resume pagination.
    #   @return [String]
    #
    # @!attribute [rw] max_results
    #   The total number of items to return. If the total number of
    #   available items is more than the value specified in `MaxResults`,
    #   then a `NextToken` will be provided in the output that you can use
    #   to resume pagination.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListFlowDefinitionsRequest AWS API Documentation
    #
    class ListFlowDefinitionsRequest < Struct.new(
      :creation_time_after,
      :creation_time_before,
      :sort_order,
      :next_token,
      :max_results)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] flow_definition_summaries
    #   An array of objects describing the flow definitions.
    #   @return [Array<Types::FlowDefinitionSummary>]
    #
    # @!attribute [rw] next_token
    #   A token to resume pagination.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListFlowDefinitionsResponse AWS API Documentation
    #
    class ListFlowDefinitionsResponse < Struct.new(
      :flow_definition_summaries,
      :next_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] hub_name
    #   The name of the hub to list the content versions of.
    #   @return [String]
    #
    # @!attribute [rw] hub_content_type
    #   The type of hub content to list versions of.
    #   @return [String]
    #
    # @!attribute [rw] hub_content_name
    #   The name of the hub content.
    #   @return [String]
    #
    # @!attribute [rw] min_version
    #   The lower bound of the hub content versions to list.
    #   @return [String]
    #
    # @!attribute [rw] max_schema_version
    #   The upper bound of the hub content schema version.
    #   @return [String]
    #
    # @!attribute [rw] creation_time_before
    #   Only list hub content versions that were created before the time
    #   specified.
    #   @return [Time]
    #
    # @!attribute [rw] creation_time_after
    #   Only list hub content versions that were created after the time
    #   specified.
    #   @return [Time]
    #
    # @!attribute [rw] sort_by
    #   Sort hub content versions by either name or creation time.
    #   @return [String]
    #
    # @!attribute [rw] sort_order
    #   Sort hub content versions by ascending or descending order.
    #   @return [String]
    #
    # @!attribute [rw] max_results
    #   The maximum number of hub content versions to list.
    #   @return [Integer]
    #
    # @!attribute [rw] next_token
    #   If the response to a previous `ListHubContentVersions` request was
    #   truncated, the response includes a `NextToken`. To retrieve the next
    #   set of hub content versions, use the token in the next request.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListHubContentVersionsRequest AWS API Documentation
    #
    class ListHubContentVersionsRequest < Struct.new(
      :hub_name,
      :hub_content_type,
      :hub_content_name,
      :min_version,
      :max_schema_version,
      :creation_time_before,
      :creation_time_after,
      :sort_by,
      :sort_order,
      :max_results,
      :next_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] hub_content_summaries
    #   The summaries of the listed hub content versions.
    #   @return [Array<Types::HubContentInfo>]
    #
    # @!attribute [rw] next_token
    #   If the response is truncated, SageMaker returns this token. To
    #   retrieve the next set of hub content versions, use it in the
    #   subsequent request.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListHubContentVersionsResponse AWS API Documentation
    #
    class ListHubContentVersionsResponse < Struct.new(
      :hub_content_summaries,
      :next_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] hub_name
    #   The name of the hub to list the contents of.
    #   @return [String]
    #
    # @!attribute [rw] hub_content_type
    #   The type of hub content to list.
    #   @return [String]
    #
    # @!attribute [rw] name_contains
    #   Only list hub content if the name contains the specified string.
    #   @return [String]
    #
    # @!attribute [rw] max_schema_version
    #   The upper bound of the hub content schema verion.
    #   @return [String]
    #
    # @!attribute [rw] creation_time_before
    #   Only list hub content that was created before the time specified.
    #   @return [Time]
    #
    # @!attribute [rw] creation_time_after
    #   Only list hub content that was created after the time specified.
    #   @return [Time]
    #
    # @!attribute [rw] sort_by
    #   Sort hub content versions by either name or creation time.
    #   @return [String]
    #
    # @!attribute [rw] sort_order
    #   Sort hubs by ascending or descending order.
    #   @return [String]
    #
    # @!attribute [rw] max_results
    #   The maximum amount of hub content to list.
    #   @return [Integer]
    #
    # @!attribute [rw] next_token
    #   If the response to a previous `ListHubContents` request was
    #   truncated, the response includes a `NextToken`. To retrieve the next
    #   set of hub content, use the token in the next request.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListHubContentsRequest AWS API Documentation
    #
    class ListHubContentsRequest < Struct.new(
      :hub_name,
      :hub_content_type,
      :name_contains,
      :max_schema_version,
      :creation_time_before,
      :creation_time_after,
      :sort_by,
      :sort_order,
      :max_results,
      :next_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] hub_content_summaries
    #   The summaries of the listed hub content.
    #   @return [Array<Types::HubContentInfo>]
    #
    # @!attribute [rw] next_token
    #   If the response is truncated, SageMaker returns this token. To
    #   retrieve the next set of hub content, use it in the subsequent
    #   request.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListHubContentsResponse AWS API Documentation
    #
    class ListHubContentsResponse < Struct.new(
      :hub_content_summaries,
      :next_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] name_contains
    #   Only list hubs with names that contain the specified string.
    #   @return [String]
    #
    # @!attribute [rw] creation_time_before
    #   Only list hubs that were created before the time specified.
    #   @return [Time]
    #
    # @!attribute [rw] creation_time_after
    #   Only list hubs that were created after the time specified.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time_before
    #   Only list hubs that were last modified before the time specified.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time_after
    #   Only list hubs that were last modified after the time specified.
    #   @return [Time]
    #
    # @!attribute [rw] sort_by
    #   Sort hubs by either name or creation time.
    #   @return [String]
    #
    # @!attribute [rw] sort_order
    #   Sort hubs by ascending or descending order.
    #   @return [String]
    #
    # @!attribute [rw] max_results
    #   The maximum number of hubs to list.
    #   @return [Integer]
    #
    # @!attribute [rw] next_token
    #   If the response to a previous `ListHubs` request was truncated, the
    #   response includes a `NextToken`. To retrieve the next set of hubs,
    #   use the token in the next request.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListHubsRequest AWS API Documentation
    #
    class ListHubsRequest < Struct.new(
      :name_contains,
      :creation_time_before,
      :creation_time_after,
      :last_modified_time_before,
      :last_modified_time_after,
      :sort_by,
      :sort_order,
      :max_results,
      :next_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] hub_summaries
    #   The summaries of the listed hubs.
    #   @return [Array<Types::HubInfo>]
    #
    # @!attribute [rw] next_token
    #   If the response is truncated, SageMaker returns this token. To
    #   retrieve the next set of hubs, use it in the subsequent request.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListHubsResponse AWS API Documentation
    #
    class ListHubsResponse < Struct.new(
      :hub_summaries,
      :next_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] creation_time_after
    #   A filter that returns only human task user interfaces with a
    #   creation time greater than or equal to the specified timestamp.
    #   @return [Time]
    #
    # @!attribute [rw] creation_time_before
    #   A filter that returns only human task user interfaces that were
    #   created before the specified timestamp.
    #   @return [Time]
    #
    # @!attribute [rw] sort_order
    #   An optional value that specifies whether you want the results sorted
    #   in `Ascending` or `Descending` order.
    #   @return [String]
    #
    # @!attribute [rw] next_token
    #   A token to resume pagination.
    #   @return [String]
    #
    # @!attribute [rw] max_results
    #   The total number of items to return. If the total number of
    #   available items is more than the value specified in `MaxResults`,
    #   then a `NextToken` will be provided in the output that you can use
    #   to resume pagination.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListHumanTaskUisRequest AWS API Documentation
    #
    class ListHumanTaskUisRequest < Struct.new(
      :creation_time_after,
      :creation_time_before,
      :sort_order,
      :next_token,
      :max_results)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] human_task_ui_summaries
    #   An array of objects describing the human task user interfaces.
    #   @return [Array<Types::HumanTaskUiSummary>]
    #
    # @!attribute [rw] next_token
    #   A token to resume pagination.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListHumanTaskUisResponse AWS API Documentation
    #
    class ListHumanTaskUisResponse < Struct.new(
      :human_task_ui_summaries,
      :next_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] next_token
    #   If the result of the previous `ListHyperParameterTuningJobs` request
    #   was truncated, the response includes a `NextToken`. To retrieve the
    #   next set of tuning jobs, use the token in the next request.
    #   @return [String]
    #
    # @!attribute [rw] max_results
    #   The maximum number of tuning jobs to return. The default value is
    #   10.
    #   @return [Integer]
    #
    # @!attribute [rw] sort_by
    #   The field to sort results by. The default is `Name`.
    #   @return [String]
    #
    # @!attribute [rw] sort_order
    #   The sort order for results. The default is `Ascending`.
    #   @return [String]
    #
    # @!attribute [rw] name_contains
    #   A string in the tuning job name. This filter returns only tuning
    #   jobs whose name contains the specified string.
    #   @return [String]
    #
    # @!attribute [rw] creation_time_after
    #   A filter that returns only tuning jobs that were created after the
    #   specified time.
    #   @return [Time]
    #
    # @!attribute [rw] creation_time_before
    #   A filter that returns only tuning jobs that were created before the
    #   specified time.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time_after
    #   A filter that returns only tuning jobs that were modified after the
    #   specified time.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time_before
    #   A filter that returns only tuning jobs that were modified before the
    #   specified time.
    #   @return [Time]
    #
    # @!attribute [rw] status_equals
    #   A filter that returns only tuning jobs with the specified status.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListHyperParameterTuningJobsRequest AWS API Documentation
    #
    class ListHyperParameterTuningJobsRequest < Struct.new(
      :next_token,
      :max_results,
      :sort_by,
      :sort_order,
      :name_contains,
      :creation_time_after,
      :creation_time_before,
      :last_modified_time_after,
      :last_modified_time_before,
      :status_equals)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] hyper_parameter_tuning_job_summaries
    #   A list of [HyperParameterTuningJobSummary][1] objects that describe
    #   the tuning jobs that the `ListHyperParameterTuningJobs` request
    #   returned.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_HyperParameterTuningJobSummary.html
    #   @return [Array<Types::HyperParameterTuningJobSummary>]
    #
    # @!attribute [rw] next_token
    #   If the result of this `ListHyperParameterTuningJobs` request was
    #   truncated, the response includes a `NextToken`. To retrieve the next
    #   set of tuning jobs, use the token in the next request.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListHyperParameterTuningJobsResponse AWS API Documentation
    #
    class ListHyperParameterTuningJobsResponse < Struct.new(
      :hyper_parameter_tuning_job_summaries,
      :next_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] creation_time_after
    #   A filter that returns only versions created on or after the
    #   specified time.
    #   @return [Time]
    #
    # @!attribute [rw] creation_time_before
    #   A filter that returns only versions created on or before the
    #   specified time.
    #   @return [Time]
    #
    # @!attribute [rw] image_name
    #   The name of the image to list the versions of.
    #   @return [String]
    #
    # @!attribute [rw] last_modified_time_after
    #   A filter that returns only versions modified on or after the
    #   specified time.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time_before
    #   A filter that returns only versions modified on or before the
    #   specified time.
    #   @return [Time]
    #
    # @!attribute [rw] max_results
    #   The maximum number of versions to return in the response. The
    #   default value is 10.
    #   @return [Integer]
    #
    # @!attribute [rw] next_token
    #   If the previous call to `ListImageVersions` didn't return the full
    #   set of versions, the call returns a token for getting the next set
    #   of versions.
    #   @return [String]
    #
    # @!attribute [rw] sort_by
    #   The property used to sort results. The default value is
    #   `CREATION_TIME`.
    #   @return [String]
    #
    # @!attribute [rw] sort_order
    #   The sort order. The default value is `DESCENDING`.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListImageVersionsRequest AWS API Documentation
    #
    class ListImageVersionsRequest < Struct.new(
      :creation_time_after,
      :creation_time_before,
      :image_name,
      :last_modified_time_after,
      :last_modified_time_before,
      :max_results,
      :next_token,
      :sort_by,
      :sort_order)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] image_versions
    #   A list of versions and their properties.
    #   @return [Array<Types::ImageVersion>]
    #
    # @!attribute [rw] next_token
    #   A token for getting the next set of versions, if there are any.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListImageVersionsResponse AWS API Documentation
    #
    class ListImageVersionsResponse < Struct.new(
      :image_versions,
      :next_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] creation_time_after
    #   A filter that returns only images created on or after the specified
    #   time.
    #   @return [Time]
    #
    # @!attribute [rw] creation_time_before
    #   A filter that returns only images created on or before the specified
    #   time.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time_after
    #   A filter that returns only images modified on or after the specified
    #   time.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time_before
    #   A filter that returns only images modified on or before the
    #   specified time.
    #   @return [Time]
    #
    # @!attribute [rw] max_results
    #   The maximum number of images to return in the response. The default
    #   value is 10.
    #   @return [Integer]
    #
    # @!attribute [rw] name_contains
    #   A filter that returns only images whose name contains the specified
    #   string.
    #   @return [String]
    #
    # @!attribute [rw] next_token
    #   If the previous call to `ListImages` didn't return the full set of
    #   images, the call returns a token for getting the next set of images.
    #   @return [String]
    #
    # @!attribute [rw] sort_by
    #   The property used to sort results. The default value is
    #   `CREATION_TIME`.
    #   @return [String]
    #
    # @!attribute [rw] sort_order
    #   The sort order. The default value is `DESCENDING`.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListImagesRequest AWS API Documentation
    #
    class ListImagesRequest < Struct.new(
      :creation_time_after,
      :creation_time_before,
      :last_modified_time_after,
      :last_modified_time_before,
      :max_results,
      :name_contains,
      :next_token,
      :sort_by,
      :sort_order)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] images
    #   A list of images and their properties.
    #   @return [Array<Types::Image>]
    #
    # @!attribute [rw] next_token
    #   A token for getting the next set of images, if there are any.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListImagesResponse AWS API Documentation
    #
    class ListImagesResponse < Struct.new(
      :images,
      :next_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] sort_by
    #   The field by which to sort the inference components in the response.
    #   The default is `CreationTime`.
    #   @return [String]
    #
    # @!attribute [rw] sort_order
    #   The sort order for results. The default is `Descending`.
    #   @return [String]
    #
    # @!attribute [rw] next_token
    #   A token that you use to get the next set of results following a
    #   truncated response. If the response to the previous request was
    #   truncated, that response provides the value for this token.
    #   @return [String]
    #
    # @!attribute [rw] max_results
    #   The maximum number of inference components to return in the
    #   response. This value defaults to 10.
    #   @return [Integer]
    #
    # @!attribute [rw] name_contains
    #   Filters the results to only those inference components with a name
    #   that contains the specified string.
    #   @return [String]
    #
    # @!attribute [rw] creation_time_before
    #   Filters the results to only those inference components that were
    #   created before the specified time.
    #   @return [Time]
    #
    # @!attribute [rw] creation_time_after
    #   Filters the results to only those inference components that were
    #   created after the specified time.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time_before
    #   Filters the results to only those inference components that were
    #   updated before the specified time.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time_after
    #   Filters the results to only those inference components that were
    #   updated after the specified time.
    #   @return [Time]
    #
    # @!attribute [rw] status_equals
    #   Filters the results to only those inference components with the
    #   specified status.
    #   @return [String]
    #
    # @!attribute [rw] endpoint_name_equals
    #   An endpoint name to filter the listed inference components. The
    #   response includes only those inference components that are hosted at
    #   the specified endpoint.
    #   @return [String]
    #
    # @!attribute [rw] variant_name_equals
    #   A production variant name to filter the listed inference components.
    #   The response includes only those inference components that are
    #   hosted at the specified variant.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListInferenceComponentsInput AWS API Documentation
    #
    class ListInferenceComponentsInput < Struct.new(
      :sort_by,
      :sort_order,
      :next_token,
      :max_results,
      :name_contains,
      :creation_time_before,
      :creation_time_after,
      :last_modified_time_before,
      :last_modified_time_after,
      :status_equals,
      :endpoint_name_equals,
      :variant_name_equals)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] inference_components
    #   A list of inference components and their properties that matches any
    #   of the filters you specified in the request.
    #   @return [Array<Types::InferenceComponentSummary>]
    #
    # @!attribute [rw] next_token
    #   The token to use in a subsequent request to get the next set of
    #   results following a truncated response.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListInferenceComponentsOutput AWS API Documentation
    #
    class ListInferenceComponentsOutput < Struct.new(
      :inference_components,
      :next_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] name_contains
    #   Selects inference experiments whose names contain this name.
    #   @return [String]
    #
    # @!attribute [rw] type
    #   Selects inference experiments of this type. For the possible types
    #   of inference experiments, see [CreateInferenceExperiment][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateInferenceExperiment.html
    #   @return [String]
    #
    # @!attribute [rw] status_equals
    #   Selects inference experiments which are in this status. For the
    #   possible statuses, see [DescribeInferenceExperiment][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeInferenceExperiment.html
    #   @return [String]
    #
    # @!attribute [rw] creation_time_after
    #   Selects inference experiments which were created after this
    #   timestamp.
    #   @return [Time]
    #
    # @!attribute [rw] creation_time_before
    #   Selects inference experiments which were created before this
    #   timestamp.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time_after
    #   Selects inference experiments which were last modified after this
    #   timestamp.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time_before
    #   Selects inference experiments which were last modified before this
    #   timestamp.
    #   @return [Time]
    #
    # @!attribute [rw] sort_by
    #   The column by which to sort the listed inference experiments.
    #   @return [String]
    #
    # @!attribute [rw] sort_order
    #   The direction of sorting (ascending or descending).
    #   @return [String]
    #
    # @!attribute [rw] next_token
    #   The response from the last list when returning a list large enough
    #   to need tokening.
    #   @return [String]
    #
    # @!attribute [rw] max_results
    #   The maximum number of results to select.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListInferenceExperimentsRequest AWS API Documentation
    #
    class ListInferenceExperimentsRequest < Struct.new(
      :name_contains,
      :type,
      :status_equals,
      :creation_time_after,
      :creation_time_before,
      :last_modified_time_after,
      :last_modified_time_before,
      :sort_by,
      :sort_order,
      :next_token,
      :max_results)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] inference_experiments
    #   List of inference experiments.
    #   @return [Array<Types::InferenceExperimentSummary>]
    #
    # @!attribute [rw] next_token
    #   The token to use when calling the next page of results.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListInferenceExperimentsResponse AWS API Documentation
    #
    class ListInferenceExperimentsResponse < Struct.new(
      :inference_experiments,
      :next_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] job_name
    #   The name for the Inference Recommender job.
    #   @return [String]
    #
    # @!attribute [rw] status
    #   A filter to return benchmarks of a specified status. If this field
    #   is left empty, then all benchmarks are returned.
    #   @return [String]
    #
    # @!attribute [rw] step_type
    #   A filter to return details about the specified type of subtask.
    #
    #   `BENCHMARK`: Evaluate the performance of your model on different
    #   instance types.
    #   @return [String]
    #
    # @!attribute [rw] max_results
    #   The maximum number of results to return.
    #   @return [Integer]
    #
    # @!attribute [rw] next_token
    #   A token that you can specify to return more results from the list.
    #   Specify this field if you have a token that was returned from a
    #   previous request.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListInferenceRecommendationsJobStepsRequest AWS API Documentation
    #
    class ListInferenceRecommendationsJobStepsRequest < Struct.new(
      :job_name,
      :status,
      :step_type,
      :max_results,
      :next_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] steps
    #   A list of all subtask details in Inference Recommender.
    #   @return [Array<Types::InferenceRecommendationsJobStep>]
    #
    # @!attribute [rw] next_token
    #   A token that you can specify in your next request to return more
    #   results from the list.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListInferenceRecommendationsJobStepsResponse AWS API Documentation
    #
    class ListInferenceRecommendationsJobStepsResponse < Struct.new(
      :steps,
      :next_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] creation_time_after
    #   A filter that returns only jobs created after the specified time
    #   (timestamp).
    #   @return [Time]
    #
    # @!attribute [rw] creation_time_before
    #   A filter that returns only jobs created before the specified time
    #   (timestamp).
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time_after
    #   A filter that returns only jobs that were last modified after the
    #   specified time (timestamp).
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time_before
    #   A filter that returns only jobs that were last modified before the
    #   specified time (timestamp).
    #   @return [Time]
    #
    # @!attribute [rw] name_contains
    #   A string in the job name. This filter returns only recommendations
    #   whose name contains the specified string.
    #   @return [String]
    #
    # @!attribute [rw] status_equals
    #   A filter that retrieves only inference recommendations jobs with a
    #   specific status.
    #   @return [String]
    #
    # @!attribute [rw] sort_by
    #   The parameter by which to sort the results.
    #   @return [String]
    #
    # @!attribute [rw] sort_order
    #   The sort order for the results.
    #   @return [String]
    #
    # @!attribute [rw] next_token
    #   If the response to a previous
    #   `ListInferenceRecommendationsJobsRequest` request was truncated, the
    #   response includes a `NextToken`. To retrieve the next set of
    #   recommendations, use the token in the next request.
    #   @return [String]
    #
    # @!attribute [rw] max_results
    #   The maximum number of recommendations to return in the response.
    #   @return [Integer]
    #
    # @!attribute [rw] model_name_equals
    #   A filter that returns only jobs that were created for this model.
    #   @return [String]
    #
    # @!attribute [rw] model_package_version_arn_equals
    #   A filter that returns only jobs that were created for this versioned
    #   model package.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListInferenceRecommendationsJobsRequest AWS API Documentation
    #
    class ListInferenceRecommendationsJobsRequest < Struct.new(
      :creation_time_after,
      :creation_time_before,
      :last_modified_time_after,
      :last_modified_time_before,
      :name_contains,
      :status_equals,
      :sort_by,
      :sort_order,
      :next_token,
      :max_results,
      :model_name_equals,
      :model_package_version_arn_equals)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] inference_recommendations_jobs
    #   The recommendations created from the Amazon SageMaker Inference
    #   Recommender job.
    #   @return [Array<Types::InferenceRecommendationsJob>]
    #
    # @!attribute [rw] next_token
    #   A token for getting the next set of recommendations, if there are
    #   any.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListInferenceRecommendationsJobsResponse AWS API Documentation
    #
    class ListInferenceRecommendationsJobsResponse < Struct.new(
      :inference_recommendations_jobs,
      :next_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] workteam_arn
    #   The Amazon Resource Name (ARN) of the work team for which you want
    #   to see labeling jobs for.
    #   @return [String]
    #
    # @!attribute [rw] max_results
    #   The maximum number of labeling jobs to return in each page of the
    #   response.
    #   @return [Integer]
    #
    # @!attribute [rw] next_token
    #   If the result of the previous `ListLabelingJobsForWorkteam` request
    #   was truncated, the response includes a `NextToken`. To retrieve the
    #   next set of labeling jobs, use the token in the next request.
    #   @return [String]
    #
    # @!attribute [rw] creation_time_after
    #   A filter that returns only labeling jobs created after the specified
    #   time (timestamp).
    #   @return [Time]
    #
    # @!attribute [rw] creation_time_before
    #   A filter that returns only labeling jobs created before the
    #   specified time (timestamp).
    #   @return [Time]
    #
    # @!attribute [rw] job_reference_code_contains
    #   A filter the limits jobs to only the ones whose job reference code
    #   contains the specified string.
    #   @return [String]
    #
    # @!attribute [rw] sort_by
    #   The field to sort results by. The default is `CreationTime`.
    #   @return [String]
    #
    # @!attribute [rw] sort_order
    #   The sort order for results. The default is `Ascending`.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListLabelingJobsForWorkteamRequest AWS API Documentation
    #
    class ListLabelingJobsForWorkteamRequest < Struct.new(
      :workteam_arn,
      :max_results,
      :next_token,
      :creation_time_after,
      :creation_time_before,
      :job_reference_code_contains,
      :sort_by,
      :sort_order)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] labeling_job_summary_list
    #   An array of `LabelingJobSummary` objects, each describing a labeling
    #   job.
    #   @return [Array<Types::LabelingJobForWorkteamSummary>]
    #
    # @!attribute [rw] next_token
    #   If the response is truncated, SageMaker returns this token. To
    #   retrieve the next set of labeling jobs, use it in the subsequent
    #   request.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListLabelingJobsForWorkteamResponse AWS API Documentation
    #
    class ListLabelingJobsForWorkteamResponse < Struct.new(
      :labeling_job_summary_list,
      :next_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] creation_time_after
    #   A filter that returns only labeling jobs created after the specified
    #   time (timestamp).
    #   @return [Time]
    #
    # @!attribute [rw] creation_time_before
    #   A filter that returns only labeling jobs created before the
    #   specified time (timestamp).
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time_after
    #   A filter that returns only labeling jobs modified after the
    #   specified time (timestamp).
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time_before
    #   A filter that returns only labeling jobs modified before the
    #   specified time (timestamp).
    #   @return [Time]
    #
    # @!attribute [rw] max_results
    #   The maximum number of labeling jobs to return in each page of the
    #   response.
    #   @return [Integer]
    #
    # @!attribute [rw] next_token
    #   If the result of the previous `ListLabelingJobs` request was
    #   truncated, the response includes a `NextToken`. To retrieve the next
    #   set of labeling jobs, use the token in the next request.
    #   @return [String]
    #
    # @!attribute [rw] name_contains
    #   A string in the labeling job name. This filter returns only labeling
    #   jobs whose name contains the specified string.
    #   @return [String]
    #
    # @!attribute [rw] sort_by
    #   The field to sort results by. The default is `CreationTime`.
    #   @return [String]
    #
    # @!attribute [rw] sort_order
    #   The sort order for results. The default is `Ascending`.
    #   @return [String]
    #
    # @!attribute [rw] status_equals
    #   A filter that retrieves only labeling jobs with a specific status.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListLabelingJobsRequest AWS API Documentation
    #
    class ListLabelingJobsRequest < Struct.new(
      :creation_time_after,
      :creation_time_before,
      :last_modified_time_after,
      :last_modified_time_before,
      :max_results,
      :next_token,
      :name_contains,
      :sort_by,
      :sort_order,
      :status_equals)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] labeling_job_summary_list
    #   An array of `LabelingJobSummary` objects, each describing a labeling
    #   job.
    #   @return [Array<Types::LabelingJobSummary>]
    #
    # @!attribute [rw] next_token
    #   If the response is truncated, SageMaker returns this token. To
    #   retrieve the next set of labeling jobs, use it in the subsequent
    #   request.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListLabelingJobsResponse AWS API Documentation
    #
    class ListLabelingJobsResponse < Struct.new(
      :labeling_job_summary_list,
      :next_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] created_after
    #   A timestamp to filter against lineage groups created after a certain
    #   point in time.
    #   @return [Time]
    #
    # @!attribute [rw] created_before
    #   A timestamp to filter against lineage groups created before a
    #   certain point in time.
    #   @return [Time]
    #
    # @!attribute [rw] sort_by
    #   The parameter by which to sort the results. The default is
    #   `CreationTime`.
    #   @return [String]
    #
    # @!attribute [rw] sort_order
    #   The sort order for the results. The default is `Ascending`.
    #   @return [String]
    #
    # @!attribute [rw] next_token
    #   If the response is truncated, SageMaker returns this token. To
    #   retrieve the next set of algorithms, use it in the subsequent
    #   request.
    #   @return [String]
    #
    # @!attribute [rw] max_results
    #   The maximum number of endpoints to return in the response. This
    #   value defaults to 10.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListLineageGroupsRequest AWS API Documentation
    #
    class ListLineageGroupsRequest < Struct.new(
      :created_after,
      :created_before,
      :sort_by,
      :sort_order,
      :next_token,
      :max_results)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] lineage_group_summaries
    #   A list of lineage groups and their properties.
    #   @return [Array<Types::LineageGroupSummary>]
    #
    # @!attribute [rw] next_token
    #   If the response is truncated, SageMaker returns this token. To
    #   retrieve the next set of algorithms, use it in the subsequent
    #   request.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListLineageGroupsResponse AWS API Documentation
    #
    class ListLineageGroupsResponse < Struct.new(
      :lineage_group_summaries,
      :next_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] created_after
    #   Use the `CreatedAfter` filter to only list tracking servers created
    #   after a specific date and time. Listed tracking servers are shown
    #   with a date and time such as `"2024-03-16T01:46:56+00:00"`. The
    #   `CreatedAfter` parameter takes in a Unix timestamp. To convert a
    #   date and time into a Unix timestamp, see [EpochConverter][1].
    #
    #
    #
    #   [1]: https://www.epochconverter.com/
    #   @return [Time]
    #
    # @!attribute [rw] created_before
    #   Use the `CreatedBefore` filter to only list tracking servers created
    #   before a specific date and time. Listed tracking servers are shown
    #   with a date and time such as `"2024-03-16T01:46:56+00:00"`. The
    #   `CreatedBefore` parameter takes in a Unix timestamp. To convert a
    #   date and time into a Unix timestamp, see [EpochConverter][1].
    #
    #
    #
    #   [1]: https://www.epochconverter.com/
    #   @return [Time]
    #
    # @!attribute [rw] tracking_server_status
    #   Filter for tracking servers with a specified creation status.
    #   @return [String]
    #
    # @!attribute [rw] mlflow_version
    #   Filter for tracking servers using the specified MLflow version.
    #   @return [String]
    #
    # @!attribute [rw] sort_by
    #   Filter for trackings servers sorting by name, creation time, or
    #   creation status.
    #   @return [String]
    #
    # @!attribute [rw] sort_order
    #   Change the order of the listed tracking servers. By default,
    #   tracking servers are listed in `Descending` order by creation time.
    #   To change the list order, you can specify `SortOrder` to be
    #   `Ascending`.
    #   @return [String]
    #
    # @!attribute [rw] next_token
    #   If the previous response was truncated, you will receive this token.
    #   Use it in your next request to receive the next set of results.
    #   @return [String]
    #
    # @!attribute [rw] max_results
    #   The maximum number of tracking servers to list.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListMlflowTrackingServersRequest AWS API Documentation
    #
    class ListMlflowTrackingServersRequest < Struct.new(
      :created_after,
      :created_before,
      :tracking_server_status,
      :mlflow_version,
      :sort_by,
      :sort_order,
      :next_token,
      :max_results)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] tracking_server_summaries
    #   A list of tracking servers according to chosen filters.
    #   @return [Array<Types::TrackingServerSummary>]
    #
    # @!attribute [rw] next_token
    #   If the previous response was truncated, you will receive this token.
    #   Use it in your next request to receive the next set of results.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListMlflowTrackingServersResponse AWS API Documentation
    #
    class ListMlflowTrackingServersResponse < Struct.new(
      :tracking_server_summaries,
      :next_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] endpoint_name
    #   Name of the endpoint to monitor for model bias.
    #   @return [String]
    #
    # @!attribute [rw] sort_by
    #   Whether to sort results by the `Name` or `CreationTime` field. The
    #   default is `CreationTime`.
    #   @return [String]
    #
    # @!attribute [rw] sort_order
    #   Whether to sort the results in `Ascending` or `Descending` order.
    #   The default is `Descending`.
    #   @return [String]
    #
    # @!attribute [rw] next_token
    #   The token returned if the response is truncated. To retrieve the
    #   next set of job executions, use it in the next request.
    #   @return [String]
    #
    # @!attribute [rw] max_results
    #   The maximum number of model bias jobs to return in the response. The
    #   default value is 10.
    #   @return [Integer]
    #
    # @!attribute [rw] name_contains
    #   Filter for model bias jobs whose name contains a specified string.
    #   @return [String]
    #
    # @!attribute [rw] creation_time_before
    #   A filter that returns only model bias jobs created before a
    #   specified time.
    #   @return [Time]
    #
    # @!attribute [rw] creation_time_after
    #   A filter that returns only model bias jobs created after a specified
    #   time.
    #   @return [Time]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListModelBiasJobDefinitionsRequest AWS API Documentation
    #
    class ListModelBiasJobDefinitionsRequest < Struct.new(
      :endpoint_name,
      :sort_by,
      :sort_order,
      :next_token,
      :max_results,
      :name_contains,
      :creation_time_before,
      :creation_time_after)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] job_definition_summaries
    #   A JSON array in which each element is a summary for a model bias
    #   jobs.
    #   @return [Array<Types::MonitoringJobDefinitionSummary>]
    #
    # @!attribute [rw] next_token
    #   The token returned if the response is truncated. To retrieve the
    #   next set of job executions, use it in the next request.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListModelBiasJobDefinitionsResponse AWS API Documentation
    #
    class ListModelBiasJobDefinitionsResponse < Struct.new(
      :job_definition_summaries,
      :next_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] model_card_name
    #   List export jobs for the model card with the specified name.
    #   @return [String]
    #
    # @!attribute [rw] model_card_version
    #   List export jobs for the model card with the specified version.
    #   @return [Integer]
    #
    # @!attribute [rw] creation_time_after
    #   Only list model card export jobs that were created after the time
    #   specified.
    #   @return [Time]
    #
    # @!attribute [rw] creation_time_before
    #   Only list model card export jobs that were created before the time
    #   specified.
    #   @return [Time]
    #
    # @!attribute [rw] model_card_export_job_name_contains
    #   Only list model card export jobs with names that contain the
    #   specified string.
    #   @return [String]
    #
    # @!attribute [rw] status_equals
    #   Only list model card export jobs with the specified status.
    #   @return [String]
    #
    # @!attribute [rw] sort_by
    #   Sort model card export jobs by either name or creation time. Sorts
    #   by creation time by default.
    #   @return [String]
    #
    # @!attribute [rw] sort_order
    #   Sort model card export jobs by ascending or descending order.
    #   @return [String]
    #
    # @!attribute [rw] next_token
    #   If the response to a previous `ListModelCardExportJobs` request was
    #   truncated, the response includes a `NextToken`. To retrieve the next
    #   set of model card export jobs, use the token in the next request.
    #   @return [String]
    #
    # @!attribute [rw] max_results
    #   The maximum number of model card export jobs to list.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListModelCardExportJobsRequest AWS API Documentation
    #
    class ListModelCardExportJobsRequest < Struct.new(
      :model_card_name,
      :model_card_version,
      :creation_time_after,
      :creation_time_before,
      :model_card_export_job_name_contains,
      :status_equals,
      :sort_by,
      :sort_order,
      :next_token,
      :max_results)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] model_card_export_job_summaries
    #   The summaries of the listed model card export jobs.
    #   @return [Array<Types::ModelCardExportJobSummary>]
    #
    # @!attribute [rw] next_token
    #   If the response is truncated, SageMaker returns this token. To
    #   retrieve the next set of model card export jobs, use it in the
    #   subsequent request.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListModelCardExportJobsResponse AWS API Documentation
    #
    class ListModelCardExportJobsResponse < Struct.new(
      :model_card_export_job_summaries,
      :next_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] creation_time_after
    #   Only list model card versions that were created after the time
    #   specified.
    #   @return [Time]
    #
    # @!attribute [rw] creation_time_before
    #   Only list model card versions that were created before the time
    #   specified.
    #   @return [Time]
    #
    # @!attribute [rw] max_results
    #   The maximum number of model card versions to list.
    #   @return [Integer]
    #
    # @!attribute [rw] model_card_name
    #   List model card versions for the model card with the specified name
    #   or Amazon Resource Name (ARN).
    #   @return [String]
    #
    # @!attribute [rw] model_card_status
    #   Only list model card versions with the specified approval status.
    #   @return [String]
    #
    # @!attribute [rw] next_token
    #   If the response to a previous `ListModelCardVersions` request was
    #   truncated, the response includes a `NextToken`. To retrieve the next
    #   set of model card versions, use the token in the next request.
    #   @return [String]
    #
    # @!attribute [rw] sort_by
    #   Sort listed model card versions by version. Sorts by version by
    #   default.
    #   @return [String]
    #
    # @!attribute [rw] sort_order
    #   Sort model card versions by ascending or descending order.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListModelCardVersionsRequest AWS API Documentation
    #
    class ListModelCardVersionsRequest < Struct.new(
      :creation_time_after,
      :creation_time_before,
      :max_results,
      :model_card_name,
      :model_card_status,
      :next_token,
      :sort_by,
      :sort_order)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] model_card_version_summary_list
    #   The summaries of the listed versions of the model card.
    #   @return [Array<Types::ModelCardVersionSummary>]
    #
    # @!attribute [rw] next_token
    #   If the response is truncated, SageMaker returns this token. To
    #   retrieve the next set of model card versions, use it in the
    #   subsequent request.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListModelCardVersionsResponse AWS API Documentation
    #
    class ListModelCardVersionsResponse < Struct.new(
      :model_card_version_summary_list,
      :next_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] creation_time_after
    #   Only list model cards that were created after the time specified.
    #   @return [Time]
    #
    # @!attribute [rw] creation_time_before
    #   Only list model cards that were created before the time specified.
    #   @return [Time]
    #
    # @!attribute [rw] max_results
    #   The maximum number of model cards to list.
    #   @return [Integer]
    #
    # @!attribute [rw] name_contains
    #   Only list model cards with names that contain the specified string.
    #   @return [String]
    #
    # @!attribute [rw] model_card_status
    #   Only list model cards with the specified approval status.
    #   @return [String]
    #
    # @!attribute [rw] next_token
    #   If the response to a previous `ListModelCards` request was
    #   truncated, the response includes a `NextToken`. To retrieve the next
    #   set of model cards, use the token in the next request.
    #   @return [String]
    #
    # @!attribute [rw] sort_by
    #   Sort model cards by either name or creation time. Sorts by creation
    #   time by default.
    #   @return [String]
    #
    # @!attribute [rw] sort_order
    #   Sort model cards by ascending or descending order.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListModelCardsRequest AWS API Documentation
    #
    class ListModelCardsRequest < Struct.new(
      :creation_time_after,
      :creation_time_before,
      :max_results,
      :name_contains,
      :model_card_status,
      :next_token,
      :sort_by,
      :sort_order)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] model_card_summaries
    #   The summaries of the listed model cards.
    #   @return [Array<Types::ModelCardSummary>]
    #
    # @!attribute [rw] next_token
    #   If the response is truncated, SageMaker returns this token. To
    #   retrieve the next set of model cards, use it in the subsequent
    #   request.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListModelCardsResponse AWS API Documentation
    #
    class ListModelCardsResponse < Struct.new(
      :model_card_summaries,
      :next_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] endpoint_name
    #   Name of the endpoint to monitor for model explainability.
    #   @return [String]
    #
    # @!attribute [rw] sort_by
    #   Whether to sort results by the `Name` or `CreationTime` field. The
    #   default is `CreationTime`.
    #   @return [String]
    #
    # @!attribute [rw] sort_order
    #   Whether to sort the results in `Ascending` or `Descending` order.
    #   The default is `Descending`.
    #   @return [String]
    #
    # @!attribute [rw] next_token
    #   The token returned if the response is truncated. To retrieve the
    #   next set of job executions, use it in the next request.
    #   @return [String]
    #
    # @!attribute [rw] max_results
    #   The maximum number of jobs to return in the response. The default
    #   value is 10.
    #   @return [Integer]
    #
    # @!attribute [rw] name_contains
    #   Filter for model explainability jobs whose name contains a specified
    #   string.
    #   @return [String]
    #
    # @!attribute [rw] creation_time_before
    #   A filter that returns only model explainability jobs created before
    #   a specified time.
    #   @return [Time]
    #
    # @!attribute [rw] creation_time_after
    #   A filter that returns only model explainability jobs created after a
    #   specified time.
    #   @return [Time]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListModelExplainabilityJobDefinitionsRequest AWS API Documentation
    #
    class ListModelExplainabilityJobDefinitionsRequest < Struct.new(
      :endpoint_name,
      :sort_by,
      :sort_order,
      :next_token,
      :max_results,
      :name_contains,
      :creation_time_before,
      :creation_time_after)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] job_definition_summaries
    #   A JSON array in which each element is a summary for a explainability
    #   bias jobs.
    #   @return [Array<Types::MonitoringJobDefinitionSummary>]
    #
    # @!attribute [rw] next_token
    #   The token returned if the response is truncated. To retrieve the
    #   next set of job executions, use it in the next request.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListModelExplainabilityJobDefinitionsResponse AWS API Documentation
    #
    class ListModelExplainabilityJobDefinitionsResponse < Struct.new(
      :job_definition_summaries,
      :next_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] search_expression
    #   One or more filters that searches for the specified resource or
    #   resources in a search. All resource objects that satisfy the
    #   expression's condition are included in the search results. Specify
    #   the Framework, FrameworkVersion, Domain or Task to filter supported.
    #   Filter names and values are case-sensitive.
    #   @return [Types::ModelMetadataSearchExpression]
    #
    # @!attribute [rw] next_token
    #   If the response to a previous `ListModelMetadataResponse` request
    #   was truncated, the response includes a NextToken. To retrieve the
    #   next set of model metadata, use the token in the next request.
    #   @return [String]
    #
    # @!attribute [rw] max_results
    #   The maximum number of models to return in the response.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListModelMetadataRequest AWS API Documentation
    #
    class ListModelMetadataRequest < Struct.new(
      :search_expression,
      :next_token,
      :max_results)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] model_metadata_summaries
    #   A structure that holds model metadata.
    #   @return [Array<Types::ModelMetadataSummary>]
    #
    # @!attribute [rw] next_token
    #   A token for getting the next set of recommendations, if there are
    #   any.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListModelMetadataResponse AWS API Documentation
    #
    class ListModelMetadataResponse < Struct.new(
      :model_metadata_summaries,
      :next_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] creation_time_after
    #   A filter that returns only model groups created after the specified
    #   time.
    #   @return [Time]
    #
    # @!attribute [rw] creation_time_before
    #   A filter that returns only model groups created before the specified
    #   time.
    #   @return [Time]
    #
    # @!attribute [rw] max_results
    #   The maximum number of results to return in the response.
    #   @return [Integer]
    #
    # @!attribute [rw] name_contains
    #   A string in the model group name. This filter returns only model
    #   groups whose name contains the specified string.
    #   @return [String]
    #
    # @!attribute [rw] next_token
    #   If the result of the previous `ListModelPackageGroups` request was
    #   truncated, the response includes a `NextToken`. To retrieve the next
    #   set of model groups, use the token in the next request.
    #   @return [String]
    #
    # @!attribute [rw] sort_by
    #   The field to sort results by. The default is `CreationTime`.
    #   @return [String]
    #
    # @!attribute [rw] sort_order
    #   The sort order for results. The default is `Ascending`.
    #   @return [String]
    #
    # @!attribute [rw] cross_account_filter_option
    #   A filter that returns either model groups shared with you or model
    #   groups in your own account. When the value is `CrossAccount`, the
    #   results show the resources made discoverable to you from other
    #   accounts. When the value is `SameAccount` or `null`, the results
    #   show resources from your account. The default is `SameAccount`.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListModelPackageGroupsInput AWS API Documentation
    #
    class ListModelPackageGroupsInput < Struct.new(
      :creation_time_after,
      :creation_time_before,
      :max_results,
      :name_contains,
      :next_token,
      :sort_by,
      :sort_order,
      :cross_account_filter_option)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] model_package_group_summary_list
    #   A list of summaries of the model groups in your Amazon Web Services
    #   account.
    #   @return [Array<Types::ModelPackageGroupSummary>]
    #
    # @!attribute [rw] next_token
    #   If the response is truncated, SageMaker returns this token. To
    #   retrieve the next set of model groups, use it in the subsequent
    #   request.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListModelPackageGroupsOutput AWS API Documentation
    #
    class ListModelPackageGroupsOutput < Struct.new(
      :model_package_group_summary_list,
      :next_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] creation_time_after
    #   A filter that returns only model packages created after the
    #   specified time (timestamp).
    #   @return [Time]
    #
    # @!attribute [rw] creation_time_before
    #   A filter that returns only model packages created before the
    #   specified time (timestamp).
    #   @return [Time]
    #
    # @!attribute [rw] max_results
    #   The maximum number of model packages to return in the response.
    #   @return [Integer]
    #
    # @!attribute [rw] name_contains
    #   A string in the model package name. This filter returns only model
    #   packages whose name contains the specified string.
    #   @return [String]
    #
    # @!attribute [rw] model_approval_status
    #   A filter that returns only the model packages with the specified
    #   approval status.
    #   @return [String]
    #
    # @!attribute [rw] model_package_group_name
    #   A filter that returns only model versions that belong to the
    #   specified model group.
    #   @return [String]
    #
    # @!attribute [rw] model_package_type
    #   A filter that returns only the model packages of the specified type.
    #   This can be one of the following values.
    #
    #   * `UNVERSIONED` - List only unversioined models. This is the default
    #     value if no `ModelPackageType` is specified.
    #
    #   * `VERSIONED` - List only versioned models.
    #
    #   * `BOTH` - List both versioned and unversioned models.
    #   @return [String]
    #
    # @!attribute [rw] next_token
    #   If the response to a previous `ListModelPackages` request was
    #   truncated, the response includes a `NextToken`. To retrieve the next
    #   set of model packages, use the token in the next request.
    #   @return [String]
    #
    # @!attribute [rw] sort_by
    #   The parameter by which to sort the results. The default is
    #   `CreationTime`.
    #   @return [String]
    #
    # @!attribute [rw] sort_order
    #   The sort order for the results. The default is `Ascending`.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListModelPackagesInput AWS API Documentation
    #
    class ListModelPackagesInput < Struct.new(
      :creation_time_after,
      :creation_time_before,
      :max_results,
      :name_contains,
      :model_approval_status,
      :model_package_group_name,
      :model_package_type,
      :next_token,
      :sort_by,
      :sort_order)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] model_package_summary_list
    #   An array of `ModelPackageSummary` objects, each of which lists a
    #   model package.
    #   @return [Array<Types::ModelPackageSummary>]
    #
    # @!attribute [rw] next_token
    #   If the response is truncated, SageMaker returns this token. To
    #   retrieve the next set of model packages, use it in the subsequent
    #   request.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListModelPackagesOutput AWS API Documentation
    #
    class ListModelPackagesOutput < Struct.new(
      :model_package_summary_list,
      :next_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] endpoint_name
    #   A filter that returns only model quality monitoring job definitions
    #   that are associated with the specified endpoint.
    #   @return [String]
    #
    # @!attribute [rw] sort_by
    #   The field to sort results by. The default is `CreationTime`.
    #   @return [String]
    #
    # @!attribute [rw] sort_order
    #   Whether to sort the results in `Ascending` or `Descending` order.
    #   The default is `Descending`.
    #   @return [String]
    #
    # @!attribute [rw] next_token
    #   If the result of the previous `ListModelQualityJobDefinitions`
    #   request was truncated, the response includes a `NextToken`. To
    #   retrieve the next set of model quality monitoring job definitions,
    #   use the token in the next request.
    #   @return [String]
    #
    # @!attribute [rw] max_results
    #   The maximum number of results to return in a call to
    #   `ListModelQualityJobDefinitions`.
    #   @return [Integer]
    #
    # @!attribute [rw] name_contains
    #   A string in the transform job name. This filter returns only model
    #   quality monitoring job definitions whose name contains the specified
    #   string.
    #   @return [String]
    #
    # @!attribute [rw] creation_time_before
    #   A filter that returns only model quality monitoring job definitions
    #   created before the specified time.
    #   @return [Time]
    #
    # @!attribute [rw] creation_time_after
    #   A filter that returns only model quality monitoring job definitions
    #   created after the specified time.
    #   @return [Time]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListModelQualityJobDefinitionsRequest AWS API Documentation
    #
    class ListModelQualityJobDefinitionsRequest < Struct.new(
      :endpoint_name,
      :sort_by,
      :sort_order,
      :next_token,
      :max_results,
      :name_contains,
      :creation_time_before,
      :creation_time_after)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] job_definition_summaries
    #   A list of summaries of model quality monitoring job definitions.
    #   @return [Array<Types::MonitoringJobDefinitionSummary>]
    #
    # @!attribute [rw] next_token
    #   If the response is truncated, Amazon SageMaker AI returns this
    #   token. To retrieve the next set of model quality monitoring job
    #   definitions, use it in the next request.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListModelQualityJobDefinitionsResponse AWS API Documentation
    #
    class ListModelQualityJobDefinitionsResponse < Struct.new(
      :job_definition_summaries,
      :next_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] sort_by
    #   Sorts the list of results. The default is `CreationTime`.
    #   @return [String]
    #
    # @!attribute [rw] sort_order
    #   The sort order for results. The default is `Descending`.
    #   @return [String]
    #
    # @!attribute [rw] next_token
    #   If the response to a previous `ListModels` request was truncated,
    #   the response includes a `NextToken`. To retrieve the next set of
    #   models, use the token in the next request.
    #   @return [String]
    #
    # @!attribute [rw] max_results
    #   The maximum number of models to return in the response.
    #   @return [Integer]
    #
    # @!attribute [rw] name_contains
    #   A string in the model name. This filter returns only models whose
    #   name contains the specified string.
    #   @return [String]
    #
    # @!attribute [rw] creation_time_before
    #   A filter that returns only models created before the specified time
    #   (timestamp).
    #   @return [Time]
    #
    # @!attribute [rw] creation_time_after
    #   A filter that returns only models with a creation time greater than
    #   or equal to the specified time (timestamp).
    #   @return [Time]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListModelsInput AWS API Documentation
    #
    class ListModelsInput < Struct.new(
      :sort_by,
      :sort_order,
      :next_token,
      :max_results,
      :name_contains,
      :creation_time_before,
      :creation_time_after)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] models
    #   An array of `ModelSummary` objects, each of which lists a model.
    #   @return [Array<Types::ModelSummary>]
    #
    # @!attribute [rw] next_token
    #   If the response is truncated, SageMaker returns this token. To
    #   retrieve the next set of models, use it in the subsequent request.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListModelsOutput AWS API Documentation
    #
    class ListModelsOutput < Struct.new(
      :models,
      :next_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] monitoring_schedule_name
    #   The name of a monitoring schedule.
    #   @return [String]
    #
    # @!attribute [rw] monitoring_alert_name
    #   The name of a monitoring alert.
    #   @return [String]
    #
    # @!attribute [rw] sort_by
    #   The field used to sort results. The default is `CreationTime`.
    #   @return [String]
    #
    # @!attribute [rw] sort_order
    #   The sort order, whether `Ascending` or `Descending`, of the alert
    #   history. The default is `Descending`.
    #   @return [String]
    #
    # @!attribute [rw] next_token
    #   If the result of the previous `ListMonitoringAlertHistory` request
    #   was truncated, the response includes a `NextToken`. To retrieve the
    #   next set of alerts in the history, use the token in the next
    #   request.
    #   @return [String]
    #
    # @!attribute [rw] max_results
    #   The maximum number of results to display. The default is 100.
    #   @return [Integer]
    #
    # @!attribute [rw] creation_time_before
    #   A filter that returns only alerts created on or before the specified
    #   time.
    #   @return [Time]
    #
    # @!attribute [rw] creation_time_after
    #   A filter that returns only alerts created on or after the specified
    #   time.
    #   @return [Time]
    #
    # @!attribute [rw] status_equals
    #   A filter that retrieves only alerts with a specific status.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListMonitoringAlertHistoryRequest AWS API Documentation
    #
    class ListMonitoringAlertHistoryRequest < Struct.new(
      :monitoring_schedule_name,
      :monitoring_alert_name,
      :sort_by,
      :sort_order,
      :next_token,
      :max_results,
      :creation_time_before,
      :creation_time_after,
      :status_equals)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] monitoring_alert_history
    #   An alert history for a model monitoring schedule.
    #   @return [Array<Types::MonitoringAlertHistorySummary>]
    #
    # @!attribute [rw] next_token
    #   If the response is truncated, SageMaker returns this token. To
    #   retrieve the next set of alerts, use it in the subsequent request.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListMonitoringAlertHistoryResponse AWS API Documentation
    #
    class ListMonitoringAlertHistoryResponse < Struct.new(
      :monitoring_alert_history,
      :next_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] monitoring_schedule_name
    #   The name of a monitoring schedule.
    #   @return [String]
    #
    # @!attribute [rw] next_token
    #   If the result of the previous `ListMonitoringAlerts` request was
    #   truncated, the response includes a `NextToken`. To retrieve the next
    #   set of alerts in the history, use the token in the next request.
    #   @return [String]
    #
    # @!attribute [rw] max_results
    #   The maximum number of results to display. The default is 100.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListMonitoringAlertsRequest AWS API Documentation
    #
    class ListMonitoringAlertsRequest < Struct.new(
      :monitoring_schedule_name,
      :next_token,
      :max_results)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] monitoring_alert_summaries
    #   A JSON array where each element is a summary for a monitoring alert.
    #   @return [Array<Types::MonitoringAlertSummary>]
    #
    # @!attribute [rw] next_token
    #   If the response is truncated, SageMaker returns this token. To
    #   retrieve the next set of alerts, use it in the subsequent request.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListMonitoringAlertsResponse AWS API Documentation
    #
    class ListMonitoringAlertsResponse < Struct.new(
      :monitoring_alert_summaries,
      :next_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] monitoring_schedule_name
    #   Name of a specific schedule to fetch jobs for.
    #   @return [String]
    #
    # @!attribute [rw] endpoint_name
    #   Name of a specific endpoint to fetch jobs for.
    #   @return [String]
    #
    # @!attribute [rw] sort_by
    #   Whether to sort the results by the `Status`, `CreationTime`, or
    #   `ScheduledTime` field. The default is `CreationTime`.
    #   @return [String]
    #
    # @!attribute [rw] sort_order
    #   Whether to sort the results in `Ascending` or `Descending` order.
    #   The default is `Descending`.
    #   @return [String]
    #
    # @!attribute [rw] next_token
    #   The token returned if the response is truncated. To retrieve the
    #   next set of job executions, use it in the next request.
    #   @return [String]
    #
    # @!attribute [rw] max_results
    #   The maximum number of jobs to return in the response. The default
    #   value is 10.
    #   @return [Integer]
    #
    # @!attribute [rw] scheduled_time_before
    #   Filter for jobs scheduled before a specified time.
    #   @return [Time]
    #
    # @!attribute [rw] scheduled_time_after
    #   Filter for jobs scheduled after a specified time.
    #   @return [Time]
    #
    # @!attribute [rw] creation_time_before
    #   A filter that returns only jobs created before a specified time.
    #   @return [Time]
    #
    # @!attribute [rw] creation_time_after
    #   A filter that returns only jobs created after a specified time.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time_before
    #   A filter that returns only jobs modified after a specified time.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time_after
    #   A filter that returns only jobs modified before a specified time.
    #   @return [Time]
    #
    # @!attribute [rw] status_equals
    #   A filter that retrieves only jobs with a specific status.
    #   @return [String]
    #
    # @!attribute [rw] monitoring_job_definition_name
    #   Gets a list of the monitoring job runs of the specified monitoring
    #   job definitions.
    #   @return [String]
    #
    # @!attribute [rw] monitoring_type_equals
    #   A filter that returns only the monitoring job runs of the specified
    #   monitoring type.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListMonitoringExecutionsRequest AWS API Documentation
    #
    class ListMonitoringExecutionsRequest < Struct.new(
      :monitoring_schedule_name,
      :endpoint_name,
      :sort_by,
      :sort_order,
      :next_token,
      :max_results,
      :scheduled_time_before,
      :scheduled_time_after,
      :creation_time_before,
      :creation_time_after,
      :last_modified_time_before,
      :last_modified_time_after,
      :status_equals,
      :monitoring_job_definition_name,
      :monitoring_type_equals)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] monitoring_execution_summaries
    #   A JSON array in which each element is a summary for a monitoring
    #   execution.
    #   @return [Array<Types::MonitoringExecutionSummary>]
    #
    # @!attribute [rw] next_token
    #   The token returned if the response is truncated. To retrieve the
    #   next set of job executions, use it in the next request.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListMonitoringExecutionsResponse AWS API Documentation
    #
    class ListMonitoringExecutionsResponse < Struct.new(
      :monitoring_execution_summaries,
      :next_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] endpoint_name
    #   Name of a specific endpoint to fetch schedules for.
    #   @return [String]
    #
    # @!attribute [rw] sort_by
    #   Whether to sort the results by the `Status`, `CreationTime`, or
    #   `ScheduledTime` field. The default is `CreationTime`.
    #   @return [String]
    #
    # @!attribute [rw] sort_order
    #   Whether to sort the results in `Ascending` or `Descending` order.
    #   The default is `Descending`.
    #   @return [String]
    #
    # @!attribute [rw] next_token
    #   The token returned if the response is truncated. To retrieve the
    #   next set of job executions, use it in the next request.
    #   @return [String]
    #
    # @!attribute [rw] max_results
    #   The maximum number of jobs to return in the response. The default
    #   value is 10.
    #   @return [Integer]
    #
    # @!attribute [rw] name_contains
    #   Filter for monitoring schedules whose name contains a specified
    #   string.
    #   @return [String]
    #
    # @!attribute [rw] creation_time_before
    #   A filter that returns only monitoring schedules created before a
    #   specified time.
    #   @return [Time]
    #
    # @!attribute [rw] creation_time_after
    #   A filter that returns only monitoring schedules created after a
    #   specified time.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time_before
    #   A filter that returns only monitoring schedules modified before a
    #   specified time.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time_after
    #   A filter that returns only monitoring schedules modified after a
    #   specified time.
    #   @return [Time]
    #
    # @!attribute [rw] status_equals
    #   A filter that returns only monitoring schedules modified before a
    #   specified time.
    #   @return [String]
    #
    # @!attribute [rw] monitoring_job_definition_name
    #   Gets a list of the monitoring schedules for the specified monitoring
    #   job definition.
    #   @return [String]
    #
    # @!attribute [rw] monitoring_type_equals
    #   A filter that returns only the monitoring schedules for the
    #   specified monitoring type.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListMonitoringSchedulesRequest AWS API Documentation
    #
    class ListMonitoringSchedulesRequest < Struct.new(
      :endpoint_name,
      :sort_by,
      :sort_order,
      :next_token,
      :max_results,
      :name_contains,
      :creation_time_before,
      :creation_time_after,
      :last_modified_time_before,
      :last_modified_time_after,
      :status_equals,
      :monitoring_job_definition_name,
      :monitoring_type_equals)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] monitoring_schedule_summaries
    #   A JSON array in which each element is a summary for a monitoring
    #   schedule.
    #   @return [Array<Types::MonitoringScheduleSummary>]
    #
    # @!attribute [rw] next_token
    #   The token returned if the response is truncated. To retrieve the
    #   next set of job executions, use it in the next request.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListMonitoringSchedulesResponse AWS API Documentation
    #
    class ListMonitoringSchedulesResponse < Struct.new(
      :monitoring_schedule_summaries,
      :next_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] next_token
    #   If the result of a `ListNotebookInstanceLifecycleConfigs` request
    #   was truncated, the response includes a `NextToken`. To get the next
    #   set of lifecycle configurations, use the token in the next request.
    #   @return [String]
    #
    # @!attribute [rw] max_results
    #   The maximum number of lifecycle configurations to return in the
    #   response.
    #   @return [Integer]
    #
    # @!attribute [rw] sort_by
    #   Sorts the list of results. The default is `CreationTime`.
    #   @return [String]
    #
    # @!attribute [rw] sort_order
    #   The sort order for results.
    #   @return [String]
    #
    # @!attribute [rw] name_contains
    #   A string in the lifecycle configuration name. This filter returns
    #   only lifecycle configurations whose name contains the specified
    #   string.
    #   @return [String]
    #
    # @!attribute [rw] creation_time_before
    #   A filter that returns only lifecycle configurations that were
    #   created before the specified time (timestamp).
    #   @return [Time]
    #
    # @!attribute [rw] creation_time_after
    #   A filter that returns only lifecycle configurations that were
    #   created after the specified time (timestamp).
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time_before
    #   A filter that returns only lifecycle configurations that were
    #   modified before the specified time (timestamp).
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time_after
    #   A filter that returns only lifecycle configurations that were
    #   modified after the specified time (timestamp).
    #   @return [Time]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListNotebookInstanceLifecycleConfigsInput AWS API Documentation
    #
    class ListNotebookInstanceLifecycleConfigsInput < Struct.new(
      :next_token,
      :max_results,
      :sort_by,
      :sort_order,
      :name_contains,
      :creation_time_before,
      :creation_time_after,
      :last_modified_time_before,
      :last_modified_time_after)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] next_token
    #   If the response is truncated, SageMaker AI returns this token. To
    #   get the next set of lifecycle configurations, use it in the next
    #   request.
    #   @return [String]
    #
    # @!attribute [rw] notebook_instance_lifecycle_configs
    #   An array of `NotebookInstanceLifecycleConfiguration` objects, each
    #   listing a lifecycle configuration.
    #   @return [Array<Types::NotebookInstanceLifecycleConfigSummary>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListNotebookInstanceLifecycleConfigsOutput AWS API Documentation
    #
    class ListNotebookInstanceLifecycleConfigsOutput < Struct.new(
      :next_token,
      :notebook_instance_lifecycle_configs)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] next_token
    #   If the previous call to the `ListNotebookInstances` is truncated,
    #   the response includes a `NextToken`. You can use this token in your
    #   subsequent `ListNotebookInstances` request to fetch the next set of
    #   notebook instances.
    #
    #   <note markdown="1"> You might specify a filter or a sort order in your request. When
    #   response is truncated, you must use the same values for the filer
    #   and sort order in the next request.
    #
    #    </note>
    #   @return [String]
    #
    # @!attribute [rw] max_results
    #   The maximum number of notebook instances to return.
    #   @return [Integer]
    #
    # @!attribute [rw] sort_by
    #   The field to sort results by. The default is `Name`.
    #   @return [String]
    #
    # @!attribute [rw] sort_order
    #   The sort order for results.
    #   @return [String]
    #
    # @!attribute [rw] name_contains
    #   A string in the notebook instances' name. This filter returns only
    #   notebook instances whose name contains the specified string.
    #   @return [String]
    #
    # @!attribute [rw] creation_time_before
    #   A filter that returns only notebook instances that were created
    #   before the specified time (timestamp).
    #   @return [Time]
    #
    # @!attribute [rw] creation_time_after
    #   A filter that returns only notebook instances that were created
    #   after the specified time (timestamp).
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time_before
    #   A filter that returns only notebook instances that were modified
    #   before the specified time (timestamp).
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time_after
    #   A filter that returns only notebook instances that were modified
    #   after the specified time (timestamp).
    #   @return [Time]
    #
    # @!attribute [rw] status_equals
    #   A filter that returns only notebook instances with the specified
    #   status.
    #   @return [String]
    #
    # @!attribute [rw] notebook_instance_lifecycle_config_name_contains
    #   A string in the name of a notebook instances lifecycle configuration
    #   associated with this notebook instance. This filter returns only
    #   notebook instances associated with a lifecycle configuration with a
    #   name that contains the specified string.
    #   @return [String]
    #
    # @!attribute [rw] default_code_repository_contains
    #   A string in the name or URL of a Git repository associated with this
    #   notebook instance. This filter returns only notebook instances
    #   associated with a git repository with a name that contains the
    #   specified string.
    #   @return [String]
    #
    # @!attribute [rw] additional_code_repository_equals
    #   A filter that returns only notebook instances with associated with
    #   the specified git repository.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListNotebookInstancesInput AWS API Documentation
    #
    class ListNotebookInstancesInput < Struct.new(
      :next_token,
      :max_results,
      :sort_by,
      :sort_order,
      :name_contains,
      :creation_time_before,
      :creation_time_after,
      :last_modified_time_before,
      :last_modified_time_after,
      :status_equals,
      :notebook_instance_lifecycle_config_name_contains,
      :default_code_repository_contains,
      :additional_code_repository_equals)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] next_token
    #   If the response to the previous `ListNotebookInstances` request was
    #   truncated, SageMaker AI returns this token. To retrieve the next set
    #   of notebook instances, use the token in the next request.
    #   @return [String]
    #
    # @!attribute [rw] notebook_instances
    #   An array of `NotebookInstanceSummary` objects, one for each notebook
    #   instance.
    #   @return [Array<Types::NotebookInstanceSummary>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListNotebookInstancesOutput AWS API Documentation
    #
    class ListNotebookInstancesOutput < Struct.new(
      :next_token,
      :notebook_instances)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] next_token
    #   A token that you use to get the next set of results following a
    #   truncated response. If the response to the previous request was
    #   truncated, that response provides the value for this token.
    #   @return [String]
    #
    # @!attribute [rw] max_results
    #   The maximum number of optimization jobs to return in the response.
    #   The default is 50.
    #   @return [Integer]
    #
    # @!attribute [rw] creation_time_after
    #   Filters the results to only those optimization jobs that were
    #   created after the specified time.
    #   @return [Time]
    #
    # @!attribute [rw] creation_time_before
    #   Filters the results to only those optimization jobs that were
    #   created before the specified time.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time_after
    #   Filters the results to only those optimization jobs that were
    #   updated after the specified time.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time_before
    #   Filters the results to only those optimization jobs that were
    #   updated before the specified time.
    #   @return [Time]
    #
    # @!attribute [rw] optimization_contains
    #   Filters the results to only those optimization jobs that apply the
    #   specified optimization techniques. You can specify either
    #   `Quantization` or `Compilation`.
    #   @return [String]
    #
    # @!attribute [rw] name_contains
    #   Filters the results to only those optimization jobs with a name that
    #   contains the specified string.
    #   @return [String]
    #
    # @!attribute [rw] status_equals
    #   Filters the results to only those optimization jobs with the
    #   specified status.
    #   @return [String]
    #
    # @!attribute [rw] sort_by
    #   The field by which to sort the optimization jobs in the response.
    #   The default is `CreationTime`
    #   @return [String]
    #
    # @!attribute [rw] sort_order
    #   The sort order for results. The default is `Ascending`
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListOptimizationJobsRequest AWS API Documentation
    #
    class ListOptimizationJobsRequest < Struct.new(
      :next_token,
      :max_results,
      :creation_time_after,
      :creation_time_before,
      :last_modified_time_after,
      :last_modified_time_before,
      :optimization_contains,
      :name_contains,
      :status_equals,
      :sort_by,
      :sort_order)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] optimization_job_summaries
    #   A list of optimization jobs and their properties that matches any of
    #   the filters you specified in the request.
    #   @return [Array<Types::OptimizationJobSummary>]
    #
    # @!attribute [rw] next_token
    #   The token to use in a subsequent request to get the next set of
    #   results following a truncated response.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListOptimizationJobsResponse AWS API Documentation
    #
    class ListOptimizationJobsResponse < Struct.new(
      :optimization_job_summaries,
      :next_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] max_results
    #   This parameter defines the maximum number of results that can be
    #   returned in a single response. The `MaxResults` parameter is an
    #   upper bound, not a target. If there are more results available than
    #   the value specified, a `NextToken` is provided in the response. The
    #   `NextToken` indicates that the user should get the next set of
    #   results by providing this token as a part of a subsequent call. The
    #   default value for `MaxResults` is 10.
    #   @return [Integer]
    #
    # @!attribute [rw] next_token
    #   If the previous response was truncated, you will receive this token.
    #   Use it in your next request to receive the next set of results.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListPartnerAppsRequest AWS API Documentation
    #
    class ListPartnerAppsRequest < Struct.new(
      :max_results,
      :next_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] summaries
    #   The information related to each of the SageMaker Partner AI Apps in
    #   an account.
    #   @return [Array<Types::PartnerAppSummary>]
    #
    # @!attribute [rw] next_token
    #   If the previous response was truncated, you will receive this token.
    #   Use it in your next request to receive the next set of results.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListPartnerAppsResponse AWS API Documentation
    #
    class ListPartnerAppsResponse < Struct.new(
      :summaries,
      :next_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] pipeline_execution_arn
    #   The Amazon Resource Name (ARN) of the pipeline execution.
    #   @return [String]
    #
    # @!attribute [rw] next_token
    #   If the result of the previous `ListPipelineExecutionSteps` request
    #   was truncated, the response includes a `NextToken`. To retrieve the
    #   next set of pipeline execution steps, use the token in the next
    #   request.
    #   @return [String]
    #
    # @!attribute [rw] max_results
    #   The maximum number of pipeline execution steps to return in the
    #   response.
    #   @return [Integer]
    #
    # @!attribute [rw] sort_order
    #   The field by which to sort results. The default is `CreatedTime`.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListPipelineExecutionStepsRequest AWS API Documentation
    #
    class ListPipelineExecutionStepsRequest < Struct.new(
      :pipeline_execution_arn,
      :next_token,
      :max_results,
      :sort_order)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] pipeline_execution_steps
    #   A list of `PipeLineExecutionStep` objects. Each
    #   `PipeLineExecutionStep` consists of StepName, StartTime, EndTime,
    #   StepStatus, and Metadata. Metadata is an object with properties for
    #   each job that contains relevant information about the job created by
    #   the step.
    #   @return [Array<Types::PipelineExecutionStep>]
    #
    # @!attribute [rw] next_token
    #   If the result of the previous `ListPipelineExecutionSteps` request
    #   was truncated, the response includes a `NextToken`. To retrieve the
    #   next set of pipeline execution steps, use the token in the next
    #   request.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListPipelineExecutionStepsResponse AWS API Documentation
    #
    class ListPipelineExecutionStepsResponse < Struct.new(
      :pipeline_execution_steps,
      :next_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] pipeline_name
    #   The name or Amazon Resource Name (ARN) of the pipeline.
    #   @return [String]
    #
    # @!attribute [rw] created_after
    #   A filter that returns the pipeline executions that were created
    #   after a specified time.
    #   @return [Time]
    #
    # @!attribute [rw] created_before
    #   A filter that returns the pipeline executions that were created
    #   before a specified time.
    #   @return [Time]
    #
    # @!attribute [rw] sort_by
    #   The field by which to sort results. The default is `CreatedTime`.
    #   @return [String]
    #
    # @!attribute [rw] sort_order
    #   The sort order for results.
    #   @return [String]
    #
    # @!attribute [rw] next_token
    #   If the result of the previous `ListPipelineExecutions` request was
    #   truncated, the response includes a `NextToken`. To retrieve the next
    #   set of pipeline executions, use the token in the next request.
    #   @return [String]
    #
    # @!attribute [rw] max_results
    #   The maximum number of pipeline executions to return in the response.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListPipelineExecutionsRequest AWS API Documentation
    #
    class ListPipelineExecutionsRequest < Struct.new(
      :pipeline_name,
      :created_after,
      :created_before,
      :sort_by,
      :sort_order,
      :next_token,
      :max_results)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] pipeline_execution_summaries
    #   Contains a sorted list of pipeline execution summary objects
    #   matching the specified filters. Each run summary includes the Amazon
    #   Resource Name (ARN) of the pipeline execution, the run date, and the
    #   status. This list can be empty.
    #   @return [Array<Types::PipelineExecutionSummary>]
    #
    # @!attribute [rw] next_token
    #   If the result of the previous `ListPipelineExecutions` request was
    #   truncated, the response includes a `NextToken`. To retrieve the next
    #   set of pipeline executions, use the token in the next request.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListPipelineExecutionsResponse AWS API Documentation
    #
    class ListPipelineExecutionsResponse < Struct.new(
      :pipeline_execution_summaries,
      :next_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] pipeline_execution_arn
    #   The Amazon Resource Name (ARN) of the pipeline execution.
    #   @return [String]
    #
    # @!attribute [rw] next_token
    #   If the result of the previous `ListPipelineParametersForExecution`
    #   request was truncated, the response includes a `NextToken`. To
    #   retrieve the next set of parameters, use the token in the next
    #   request.
    #   @return [String]
    #
    # @!attribute [rw] max_results
    #   The maximum number of parameters to return in the response.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListPipelineParametersForExecutionRequest AWS API Documentation
    #
    class ListPipelineParametersForExecutionRequest < Struct.new(
      :pipeline_execution_arn,
      :next_token,
      :max_results)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] pipeline_parameters
    #   Contains a list of pipeline parameters. This list can be empty.
    #   @return [Array<Types::Parameter>]
    #
    # @!attribute [rw] next_token
    #   If the result of the previous `ListPipelineParametersForExecution`
    #   request was truncated, the response includes a `NextToken`. To
    #   retrieve the next set of parameters, use the token in the next
    #   request.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListPipelineParametersForExecutionResponse AWS API Documentation
    #
    class ListPipelineParametersForExecutionResponse < Struct.new(
      :pipeline_parameters,
      :next_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] pipeline_name
    #   The Amazon Resource Name (ARN) of the pipeline.
    #   @return [String]
    #
    # @!attribute [rw] created_after
    #   A filter that returns the pipeline versions that were created after
    #   a specified time.
    #   @return [Time]
    #
    # @!attribute [rw] created_before
    #   A filter that returns the pipeline versions that were created before
    #   a specified time.
    #   @return [Time]
    #
    # @!attribute [rw] sort_order
    #   The sort order for the results.
    #   @return [String]
    #
    # @!attribute [rw] next_token
    #   If the result of the previous `ListPipelineVersions` request was
    #   truncated, the response includes a `NextToken`. To retrieve the next
    #   set of pipeline versions, use this token in your next request.
    #   @return [String]
    #
    # @!attribute [rw] max_results
    #   The maximum number of pipeline versions to return in the response.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListPipelineVersionsRequest AWS API Documentation
    #
    class ListPipelineVersionsRequest < Struct.new(
      :pipeline_name,
      :created_after,
      :created_before,
      :sort_order,
      :next_token,
      :max_results)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] pipeline_version_summaries
    #   Contains a sorted list of pipeline version summary objects matching
    #   the specified filters. Each version summary includes the pipeline
    #   version ID, the creation date, and the last pipeline execution
    #   created from that version. This list can be empty.
    #   @return [Array<Types::PipelineVersionSummary>]
    #
    # @!attribute [rw] next_token
    #   If the result of the previous `ListPipelineVersions` request was
    #   truncated, the response includes a `NextToken`. To retrieve the next
    #   set of pipeline versions, use this token in your next request.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListPipelineVersionsResponse AWS API Documentation
    #
    class ListPipelineVersionsResponse < Struct.new(
      :pipeline_version_summaries,
      :next_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] pipeline_name_prefix
    #   The prefix of the pipeline name.
    #   @return [String]
    #
    # @!attribute [rw] created_after
    #   A filter that returns the pipelines that were created after a
    #   specified time.
    #   @return [Time]
    #
    # @!attribute [rw] created_before
    #   A filter that returns the pipelines that were created before a
    #   specified time.
    #   @return [Time]
    #
    # @!attribute [rw] sort_by
    #   The field by which to sort results. The default is `CreatedTime`.
    #   @return [String]
    #
    # @!attribute [rw] sort_order
    #   The sort order for results.
    #   @return [String]
    #
    # @!attribute [rw] next_token
    #   If the result of the previous `ListPipelines` request was truncated,
    #   the response includes a `NextToken`. To retrieve the next set of
    #   pipelines, use the token in the next request.
    #   @return [String]
    #
    # @!attribute [rw] max_results
    #   The maximum number of pipelines to return in the response.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListPipelinesRequest AWS API Documentation
    #
    class ListPipelinesRequest < Struct.new(
      :pipeline_name_prefix,
      :created_after,
      :created_before,
      :sort_by,
      :sort_order,
      :next_token,
      :max_results)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] pipeline_summaries
    #   Contains a sorted list of `PipelineSummary` objects matching the
    #   specified filters. Each `PipelineSummary` consists of PipelineArn,
    #   PipelineName, ExperimentName, PipelineDescription, CreationTime,
    #   LastModifiedTime, LastRunTime, and RoleArn. This list can be empty.
    #   @return [Array<Types::PipelineSummary>]
    #
    # @!attribute [rw] next_token
    #   If the result of the previous `ListPipelines` request was truncated,
    #   the response includes a `NextToken`. To retrieve the next set of
    #   pipelines, use the token in the next request.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListPipelinesResponse AWS API Documentation
    #
    class ListPipelinesResponse < Struct.new(
      :pipeline_summaries,
      :next_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] creation_time_after
    #   A filter that returns only processing jobs created after the
    #   specified time.
    #   @return [Time]
    #
    # @!attribute [rw] creation_time_before
    #   A filter that returns only processing jobs created after the
    #   specified time.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time_after
    #   A filter that returns only processing jobs modified after the
    #   specified time.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time_before
    #   A filter that returns only processing jobs modified before the
    #   specified time.
    #   @return [Time]
    #
    # @!attribute [rw] name_contains
    #   A string in the processing job name. This filter returns only
    #   processing jobs whose name contains the specified string.
    #   @return [String]
    #
    # @!attribute [rw] status_equals
    #   A filter that retrieves only processing jobs with a specific status.
    #   @return [String]
    #
    # @!attribute [rw] sort_by
    #   The field to sort results by. The default is `CreationTime`.
    #   @return [String]
    #
    # @!attribute [rw] sort_order
    #   The sort order for results. The default is `Ascending`.
    #   @return [String]
    #
    # @!attribute [rw] next_token
    #   If the result of the previous `ListProcessingJobs` request was
    #   truncated, the response includes a `NextToken`. To retrieve the next
    #   set of processing jobs, use the token in the next request.
    #   @return [String]
    #
    # @!attribute [rw] max_results
    #   The maximum number of processing jobs to return in the response.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListProcessingJobsRequest AWS API Documentation
    #
    class ListProcessingJobsRequest < Struct.new(
      :creation_time_after,
      :creation_time_before,
      :last_modified_time_after,
      :last_modified_time_before,
      :name_contains,
      :status_equals,
      :sort_by,
      :sort_order,
      :next_token,
      :max_results)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] processing_job_summaries
    #   An array of `ProcessingJobSummary` objects, each listing a
    #   processing job.
    #   @return [Array<Types::ProcessingJobSummary>]
    #
    # @!attribute [rw] next_token
    #   If the response is truncated, Amazon SageMaker returns this token.
    #   To retrieve the next set of processing jobs, use it in the
    #   subsequent request.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListProcessingJobsResponse AWS API Documentation
    #
    class ListProcessingJobsResponse < Struct.new(
      :processing_job_summaries,
      :next_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] creation_time_after
    #   A filter that returns the projects that were created after a
    #   specified time.
    #   @return [Time]
    #
    # @!attribute [rw] creation_time_before
    #   A filter that returns the projects that were created before a
    #   specified time.
    #   @return [Time]
    #
    # @!attribute [rw] max_results
    #   The maximum number of projects to return in the response.
    #   @return [Integer]
    #
    # @!attribute [rw] name_contains
    #   A filter that returns the projects whose name contains a specified
    #   string.
    #   @return [String]
    #
    # @!attribute [rw] next_token
    #   If the result of the previous `ListProjects` request was truncated,
    #   the response includes a `NextToken`. To retrieve the next set of
    #   projects, use the token in the next request.
    #   @return [String]
    #
    # @!attribute [rw] sort_by
    #   The field by which to sort results. The default is `CreationTime`.
    #   @return [String]
    #
    # @!attribute [rw] sort_order
    #   The sort order for results. The default is `Ascending`.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListProjectsInput AWS API Documentation
    #
    class ListProjectsInput < Struct.new(
      :creation_time_after,
      :creation_time_before,
      :max_results,
      :name_contains,
      :next_token,
      :sort_by,
      :sort_order)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] project_summary_list
    #   A list of summaries of projects.
    #   @return [Array<Types::ProjectSummary>]
    #
    # @!attribute [rw] next_token
    #   If the result of the previous `ListCompilationJobs` request was
    #   truncated, the response includes a `NextToken`. To retrieve the next
    #   set of model compilation jobs, use the token in the next request.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListProjectsOutput AWS API Documentation
    #
    class ListProjectsOutput < Struct.new(
      :project_summary_list,
      :next_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] name_contains
    #   A string that partially matches one or more `ResourceCatalog`s
    #   names. Filters `ResourceCatalog` by name.
    #   @return [String]
    #
    # @!attribute [rw] creation_time_after
    #   Use this parameter to search for `ResourceCatalog`s created after a
    #   specific date and time.
    #   @return [Time]
    #
    # @!attribute [rw] creation_time_before
    #   Use this parameter to search for `ResourceCatalog`s created before a
    #   specific date and time.
    #   @return [Time]
    #
    # @!attribute [rw] sort_order
    #   The order in which the resource catalogs are listed.
    #   @return [String]
    #
    # @!attribute [rw] sort_by
    #   The value on which the resource catalog list is sorted.
    #   @return [String]
    #
    # @!attribute [rw] max_results
    #   The maximum number of results returned by `ListResourceCatalogs`.
    #   @return [Integer]
    #
    # @!attribute [rw] next_token
    #   A token to resume pagination of `ListResourceCatalogs` results.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListResourceCatalogsRequest AWS API Documentation
    #
    class ListResourceCatalogsRequest < Struct.new(
      :name_contains,
      :creation_time_after,
      :creation_time_before,
      :sort_order,
      :sort_by,
      :max_results,
      :next_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] resource_catalogs
    #   A list of the requested `ResourceCatalog`s.
    #   @return [Array<Types::ResourceCatalog>]
    #
    # @!attribute [rw] next_token
    #   A token to resume pagination of `ListResourceCatalogs` results.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListResourceCatalogsResponse AWS API Documentation
    #
    class ListResourceCatalogsResponse < Struct.new(
      :resource_catalogs,
      :next_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] next_token
    #   If the previous response was truncated, you will receive this token.
    #   Use it in your next request to receive the next set of results.
    #   @return [String]
    #
    # @!attribute [rw] max_results
    #   This parameter defines the maximum number of results that can be
    #   return in a single response. The `MaxResults` parameter is an upper
    #   bound, not a target. If there are more results available than the
    #   value specified, a `NextToken` is provided in the response. The
    #   `NextToken` indicates that the user should get the next set of
    #   results by providing this token as a part of a subsequent call. The
    #   default value for `MaxResults` is 10.
    #   @return [Integer]
    #
    # @!attribute [rw] sort_order
    #   The sort order for the results. The default is `Ascending`.
    #   @return [String]
    #
    # @!attribute [rw] sort_by
    #   The parameter by which to sort the results. The default is
    #   `CreationTime`.
    #   @return [String]
    #
    # @!attribute [rw] domain_id_equals
    #   A parameter to search for the domain ID.
    #   @return [String]
    #
    # @!attribute [rw] space_name_contains
    #   A parameter by which to filter the results.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListSpacesRequest AWS API Documentation
    #
    class ListSpacesRequest < Struct.new(
      :next_token,
      :max_results,
      :sort_order,
      :sort_by,
      :domain_id_equals,
      :space_name_contains)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] spaces
    #   The list of spaces.
    #   @return [Array<Types::SpaceDetails>]
    #
    # @!attribute [rw] next_token
    #   If the previous response was truncated, you will receive this token.
    #   Use it in your next request to receive the next set of results.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListSpacesResponse AWS API Documentation
    #
    class ListSpacesResponse < Struct.new(
      :spaces,
      :next_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] next_token
    #   The response from the last list when returning a list large enough
    #   to neeed tokening.
    #   @return [String]
    #
    # @!attribute [rw] max_results
    #   The maximum number of requests to select.
    #   @return [Integer]
    #
    # @!attribute [rw] edge_deployment_plan_name
    #   The name of the edge deployment plan.
    #   @return [String]
    #
    # @!attribute [rw] exclude_devices_deployed_in_other_stage
    #   Toggle for excluding devices deployed in other stages.
    #   @return [Boolean]
    #
    # @!attribute [rw] stage_name
    #   The name of the stage in the deployment.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListStageDevicesRequest AWS API Documentation
    #
    class ListStageDevicesRequest < Struct.new(
      :next_token,
      :max_results,
      :edge_deployment_plan_name,
      :exclude_devices_deployed_in_other_stage,
      :stage_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] device_deployment_summaries
    #   List of summaries of devices allocated to the stage.
    #   @return [Array<Types::DeviceDeploymentSummary>]
    #
    # @!attribute [rw] next_token
    #   The token to use when calling the next page of results.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListStageDevicesResponse AWS API Documentation
    #
    class ListStageDevicesResponse < Struct.new(
      :device_deployment_summaries,
      :next_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] max_results
    #   The total number of items to return in the response. If the total
    #   number of items available is more than the value specified, a
    #   `NextToken` is provided in the response. To resume pagination,
    #   provide the `NextToken` value in the as part of a subsequent call.
    #   The default value is 10.
    #   @return [Integer]
    #
    # @!attribute [rw] next_token
    #   If the previous call to ListStudioLifecycleConfigs didn't return
    #   the full set of Lifecycle Configurations, the call returns a token
    #   for getting the next set of Lifecycle Configurations.
    #   @return [String]
    #
    # @!attribute [rw] name_contains
    #   A string in the Lifecycle Configuration name. This filter returns
    #   only Lifecycle Configurations whose name contains the specified
    #   string.
    #   @return [String]
    #
    # @!attribute [rw] app_type_equals
    #   A parameter to search for the App Type to which the Lifecycle
    #   Configuration is attached.
    #   @return [String]
    #
    # @!attribute [rw] creation_time_before
    #   A filter that returns only Lifecycle Configurations created on or
    #   before the specified time.
    #   @return [Time]
    #
    # @!attribute [rw] creation_time_after
    #   A filter that returns only Lifecycle Configurations created on or
    #   after the specified time.
    #   @return [Time]
    #
    # @!attribute [rw] modified_time_before
    #   A filter that returns only Lifecycle Configurations modified before
    #   the specified time.
    #   @return [Time]
    #
    # @!attribute [rw] modified_time_after
    #   A filter that returns only Lifecycle Configurations modified after
    #   the specified time.
    #   @return [Time]
    #
    # @!attribute [rw] sort_by
    #   The property used to sort results. The default value is
    #   CreationTime.
    #   @return [String]
    #
    # @!attribute [rw] sort_order
    #   The sort order. The default value is Descending.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListStudioLifecycleConfigsRequest AWS API Documentation
    #
    class ListStudioLifecycleConfigsRequest < Struct.new(
      :max_results,
      :next_token,
      :name_contains,
      :app_type_equals,
      :creation_time_before,
      :creation_time_after,
      :modified_time_before,
      :modified_time_after,
      :sort_by,
      :sort_order)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] next_token
    #   If the previous response was truncated, you will receive this token.
    #   Use it in your next request to receive the next set of results.
    #   @return [String]
    #
    # @!attribute [rw] studio_lifecycle_configs
    #   A list of Lifecycle Configurations and their properties.
    #   @return [Array<Types::StudioLifecycleConfigDetails>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListStudioLifecycleConfigsResponse AWS API Documentation
    #
    class ListStudioLifecycleConfigsResponse < Struct.new(
      :next_token,
      :studio_lifecycle_configs)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] name_contains
    #   A string in the work team name. This filter returns only work teams
    #   whose name contains the specified string.
    #   @return [String]
    #
    # @!attribute [rw] next_token
    #   If the result of the previous `ListSubscribedWorkteams` request was
    #   truncated, the response includes a `NextToken`. To retrieve the next
    #   set of labeling jobs, use the token in the next request.
    #   @return [String]
    #
    # @!attribute [rw] max_results
    #   The maximum number of work teams to return in each page of the
    #   response.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListSubscribedWorkteamsRequest AWS API Documentation
    #
    class ListSubscribedWorkteamsRequest < Struct.new(
      :name_contains,
      :next_token,
      :max_results)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] subscribed_workteams
    #   An array of `Workteam` objects, each describing a work team.
    #   @return [Array<Types::SubscribedWorkteam>]
    #
    # @!attribute [rw] next_token
    #   If the response is truncated, Amazon SageMaker returns this token.
    #   To retrieve the next set of work teams, use it in the subsequent
    #   request.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListSubscribedWorkteamsResponse AWS API Documentation
    #
    class ListSubscribedWorkteamsResponse < Struct.new(
      :subscribed_workteams,
      :next_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] resource_arn
    #   The Amazon Resource Name (ARN) of the resource whose tags you want
    #   to retrieve.
    #   @return [String]
    #
    # @!attribute [rw] next_token
    #   If the response to the previous `ListTags` request is truncated,
    #   SageMaker returns this token. To retrieve the next set of tags, use
    #   it in the subsequent request.
    #   @return [String]
    #
    # @!attribute [rw] max_results
    #   Maximum number of tags to return.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListTagsInput AWS API Documentation
    #
    class ListTagsInput < Struct.new(
      :resource_arn,
      :next_token,
      :max_results)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] tags
    #   An array of `Tag` objects, each with a tag key and a value.
    #   @return [Array<Types::Tag>]
    #
    # @!attribute [rw] next_token
    #   If response is truncated, SageMaker includes a token in the
    #   response. You can use this token in your subsequent request to fetch
    #   next set of tokens.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListTagsOutput AWS API Documentation
    #
    class ListTagsOutput < Struct.new(
      :tags,
      :next_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] hyper_parameter_tuning_job_name
    #   The name of the tuning job whose training jobs you want to list.
    #   @return [String]
    #
    # @!attribute [rw] next_token
    #   If the result of the previous
    #   `ListTrainingJobsForHyperParameterTuningJob` request was truncated,
    #   the response includes a `NextToken`. To retrieve the next set of
    #   training jobs, use the token in the next request.
    #   @return [String]
    #
    # @!attribute [rw] max_results
    #   The maximum number of training jobs to return. The default value is
    #   10.
    #   @return [Integer]
    #
    # @!attribute [rw] status_equals
    #   A filter that returns only training jobs with the specified status.
    #   @return [String]
    #
    # @!attribute [rw] sort_by
    #   The field to sort results by. The default is `Name`.
    #
    #   If the value of this field is `FinalObjectiveMetricValue`, any
    #   training jobs that did not return an objective metric are not
    #   listed.
    #   @return [String]
    #
    # @!attribute [rw] sort_order
    #   The sort order for results. The default is `Ascending`.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListTrainingJobsForHyperParameterTuningJobRequest AWS API Documentation
    #
    class ListTrainingJobsForHyperParameterTuningJobRequest < Struct.new(
      :hyper_parameter_tuning_job_name,
      :next_token,
      :max_results,
      :status_equals,
      :sort_by,
      :sort_order)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] training_job_summaries
    #   A list of [TrainingJobSummary][1] objects that describe the training
    #   jobs that the `ListTrainingJobsForHyperParameterTuningJob` request
    #   returned.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TrainingJobSummary.html
    #   @return [Array<Types::HyperParameterTrainingJobSummary>]
    #
    # @!attribute [rw] next_token
    #   If the result of this `ListTrainingJobsForHyperParameterTuningJob`
    #   request was truncated, the response includes a `NextToken`. To
    #   retrieve the next set of training jobs, use the token in the next
    #   request.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListTrainingJobsForHyperParameterTuningJobResponse AWS API Documentation
    #
    class ListTrainingJobsForHyperParameterTuningJobResponse < Struct.new(
      :training_job_summaries,
      :next_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] next_token
    #   If the result of the previous `ListTrainingJobs` request was
    #   truncated, the response includes a `NextToken`. To retrieve the next
    #   set of training jobs, use the token in the next request.
    #   @return [String]
    #
    # @!attribute [rw] max_results
    #   The maximum number of training jobs to return in the response.
    #   @return [Integer]
    #
    # @!attribute [rw] creation_time_after
    #   A filter that returns only training jobs created after the specified
    #   time (timestamp).
    #   @return [Time]
    #
    # @!attribute [rw] creation_time_before
    #   A filter that returns only training jobs created before the
    #   specified time (timestamp).
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time_after
    #   A filter that returns only training jobs modified after the
    #   specified time (timestamp).
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time_before
    #   A filter that returns only training jobs modified before the
    #   specified time (timestamp).
    #   @return [Time]
    #
    # @!attribute [rw] name_contains
    #   A string in the training job name. This filter returns only training
    #   jobs whose name contains the specified string.
    #   @return [String]
    #
    # @!attribute [rw] status_equals
    #   A filter that retrieves only training jobs with a specific status.
    #   @return [String]
    #
    # @!attribute [rw] sort_by
    #   The field to sort results by. The default is `CreationTime`.
    #   @return [String]
    #
    # @!attribute [rw] sort_order
    #   The sort order for results. The default is `Ascending`.
    #   @return [String]
    #
    # @!attribute [rw] warm_pool_status_equals
    #   A filter that retrieves only training jobs with a specific warm pool
    #   status.
    #   @return [String]
    #
    # @!attribute [rw] training_plan_arn_equals
    #   The Amazon Resource Name (ARN); of the training plan to filter
    #   training jobs by. For more information about reserving GPU capacity
    #   for your SageMaker training jobs using Amazon SageMaker Training
    #   Plan, see ` CreateTrainingPlan `.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListTrainingJobsRequest AWS API Documentation
    #
    class ListTrainingJobsRequest < Struct.new(
      :next_token,
      :max_results,
      :creation_time_after,
      :creation_time_before,
      :last_modified_time_after,
      :last_modified_time_before,
      :name_contains,
      :status_equals,
      :sort_by,
      :sort_order,
      :warm_pool_status_equals,
      :training_plan_arn_equals)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] training_job_summaries
    #   An array of `TrainingJobSummary` objects, each listing a training
    #   job.
    #   @return [Array<Types::TrainingJobSummary>]
    #
    # @!attribute [rw] next_token
    #   If the response is truncated, SageMaker returns this token. To
    #   retrieve the next set of training jobs, use it in the subsequent
    #   request.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListTrainingJobsResponse AWS API Documentation
    #
    class ListTrainingJobsResponse < Struct.new(
      :training_job_summaries,
      :next_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] next_token
    #   A token to continue pagination if more results are available.
    #   @return [String]
    #
    # @!attribute [rw] max_results
    #   The maximum number of results to return in the response.
    #   @return [Integer]
    #
    # @!attribute [rw] start_time_after
    #   Filter to list only training plans with an actual start time after
    #   this date.
    #   @return [Time]
    #
    # @!attribute [rw] start_time_before
    #   Filter to list only training plans with an actual start time before
    #   this date.
    #   @return [Time]
    #
    # @!attribute [rw] sort_by
    #   The training plan field to sort the results by (e.g., StartTime,
    #   Status).
    #   @return [String]
    #
    # @!attribute [rw] sort_order
    #   The order to sort the results (Ascending or Descending).
    #   @return [String]
    #
    # @!attribute [rw] filters
    #   Additional filters to apply to the list of training plans.
    #   @return [Array<Types::TrainingPlanFilter>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListTrainingPlansRequest AWS API Documentation
    #
    class ListTrainingPlansRequest < Struct.new(
      :next_token,
      :max_results,
      :start_time_after,
      :start_time_before,
      :sort_by,
      :sort_order,
      :filters)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] next_token
    #   A token to continue pagination if more results are available.
    #   @return [String]
    #
    # @!attribute [rw] training_plan_summaries
    #   A list of summary information for the training plans.
    #   @return [Array<Types::TrainingPlanSummary>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListTrainingPlansResponse AWS API Documentation
    #
    class ListTrainingPlansResponse < Struct.new(
      :next_token,
      :training_plan_summaries)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] creation_time_after
    #   A filter that returns only transform jobs created after the
    #   specified time.
    #   @return [Time]
    #
    # @!attribute [rw] creation_time_before
    #   A filter that returns only transform jobs created before the
    #   specified time.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time_after
    #   A filter that returns only transform jobs modified after the
    #   specified time.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time_before
    #   A filter that returns only transform jobs modified before the
    #   specified time.
    #   @return [Time]
    #
    # @!attribute [rw] name_contains
    #   A string in the transform job name. This filter returns only
    #   transform jobs whose name contains the specified string.
    #   @return [String]
    #
    # @!attribute [rw] status_equals
    #   A filter that retrieves only transform jobs with a specific status.
    #   @return [String]
    #
    # @!attribute [rw] sort_by
    #   The field to sort results by. The default is `CreationTime`.
    #   @return [String]
    #
    # @!attribute [rw] sort_order
    #   The sort order for results. The default is `Descending`.
    #   @return [String]
    #
    # @!attribute [rw] next_token
    #   If the result of the previous `ListTransformJobs` request was
    #   truncated, the response includes a `NextToken`. To retrieve the next
    #   set of transform jobs, use the token in the next request.
    #   @return [String]
    #
    # @!attribute [rw] max_results
    #   The maximum number of transform jobs to return in the response. The
    #   default value is `10`.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListTransformJobsRequest AWS API Documentation
    #
    class ListTransformJobsRequest < Struct.new(
      :creation_time_after,
      :creation_time_before,
      :last_modified_time_after,
      :last_modified_time_before,
      :name_contains,
      :status_equals,
      :sort_by,
      :sort_order,
      :next_token,
      :max_results)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] transform_job_summaries
    #   An array of `TransformJobSummary` objects.
    #   @return [Array<Types::TransformJobSummary>]
    #
    # @!attribute [rw] next_token
    #   If the response is truncated, Amazon SageMaker returns this token.
    #   To retrieve the next set of transform jobs, use it in the next
    #   request.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListTransformJobsResponse AWS API Documentation
    #
    class ListTransformJobsResponse < Struct.new(
      :transform_job_summaries,
      :next_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] experiment_name
    #   A filter that returns only components that are part of the specified
    #   experiment. If you specify `ExperimentName`, you can't filter by
    #   `SourceArn` or `TrialName`.
    #   @return [String]
    #
    # @!attribute [rw] trial_name
    #   A filter that returns only components that are part of the specified
    #   trial. If you specify `TrialName`, you can't filter by
    #   `ExperimentName` or `SourceArn`.
    #   @return [String]
    #
    # @!attribute [rw] source_arn
    #   A filter that returns only components that have the specified source
    #   Amazon Resource Name (ARN). If you specify `SourceArn`, you can't
    #   filter by `ExperimentName` or `TrialName`.
    #   @return [String]
    #
    # @!attribute [rw] created_after
    #   A filter that returns only components created after the specified
    #   time.
    #   @return [Time]
    #
    # @!attribute [rw] created_before
    #   A filter that returns only components created before the specified
    #   time.
    #   @return [Time]
    #
    # @!attribute [rw] sort_by
    #   The property used to sort results. The default value is
    #   `CreationTime`.
    #   @return [String]
    #
    # @!attribute [rw] sort_order
    #   The sort order. The default value is `Descending`.
    #   @return [String]
    #
    # @!attribute [rw] max_results
    #   The maximum number of components to return in the response. The
    #   default value is 10.
    #   @return [Integer]
    #
    # @!attribute [rw] next_token
    #   If the previous call to `ListTrialComponents` didn't return the
    #   full set of components, the call returns a token for getting the
    #   next set of components.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListTrialComponentsRequest AWS API Documentation
    #
    class ListTrialComponentsRequest < Struct.new(
      :experiment_name,
      :trial_name,
      :source_arn,
      :created_after,
      :created_before,
      :sort_by,
      :sort_order,
      :max_results,
      :next_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] trial_component_summaries
    #   A list of the summaries of your trial components.
    #   @return [Array<Types::TrialComponentSummary>]
    #
    # @!attribute [rw] next_token
    #   A token for getting the next set of components, if there are any.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListTrialComponentsResponse AWS API Documentation
    #
    class ListTrialComponentsResponse < Struct.new(
      :trial_component_summaries,
      :next_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] experiment_name
    #   A filter that returns only trials that are part of the specified
    #   experiment.
    #   @return [String]
    #
    # @!attribute [rw] trial_component_name
    #   A filter that returns only trials that are associated with the
    #   specified trial component.
    #   @return [String]
    #
    # @!attribute [rw] created_after
    #   A filter that returns only trials created after the specified time.
    #   @return [Time]
    #
    # @!attribute [rw] created_before
    #   A filter that returns only trials created before the specified time.
    #   @return [Time]
    #
    # @!attribute [rw] sort_by
    #   The property used to sort results. The default value is
    #   `CreationTime`.
    #   @return [String]
    #
    # @!attribute [rw] sort_order
    #   The sort order. The default value is `Descending`.
    #   @return [String]
    #
    # @!attribute [rw] max_results
    #   The maximum number of trials to return in the response. The default
    #   value is 10.
    #   @return [Integer]
    #
    # @!attribute [rw] next_token
    #   If the previous call to `ListTrials` didn't return the full set of
    #   trials, the call returns a token for getting the next set of trials.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListTrialsRequest AWS API Documentation
    #
    class ListTrialsRequest < Struct.new(
      :experiment_name,
      :trial_component_name,
      :created_after,
      :created_before,
      :sort_by,
      :sort_order,
      :max_results,
      :next_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] trial_summaries
    #   A list of the summaries of your trials.
    #   @return [Array<Types::TrialSummary>]
    #
    # @!attribute [rw] next_token
    #   A token for getting the next set of trials, if there are any.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListTrialsResponse AWS API Documentation
    #
    class ListTrialsResponse < Struct.new(
      :trial_summaries,
      :next_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] reserved_capacity_arn
    #   The ARN of the reserved capacity to list UltraServers for.
    #   @return [String]
    #
    # @!attribute [rw] max_results
    #   The maximum number of UltraServers to return in the response. The
    #   default value is 10.
    #   @return [Integer]
    #
    # @!attribute [rw] next_token
    #   If the previous response was truncated, you receive this token. Use
    #   it in your next request to receive the next set of results.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListUltraServersByReservedCapacityRequest AWS API Documentation
    #
    class ListUltraServersByReservedCapacityRequest < Struct.new(
      :reserved_capacity_arn,
      :max_results,
      :next_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] next_token
    #   If the response is truncated, SageMaker returns this token. Use it
    #   in the next request to retrieve the next set of UltraServers.
    #   @return [String]
    #
    # @!attribute [rw] ultra_servers
    #   A list of UltraServers that are part of the specified reserved
    #   capacity.
    #   @return [Array<Types::UltraServer>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListUltraServersByReservedCapacityResponse AWS API Documentation
    #
    class ListUltraServersByReservedCapacityResponse < Struct.new(
      :next_token,
      :ultra_servers)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] next_token
    #   If the previous response was truncated, you will receive this token.
    #   Use it in your next request to receive the next set of results.
    #   @return [String]
    #
    # @!attribute [rw] max_results
    #   This parameter defines the maximum number of results that can be
    #   return in a single response. The `MaxResults` parameter is an upper
    #   bound, not a target. If there are more results available than the
    #   value specified, a `NextToken` is provided in the response. The
    #   `NextToken` indicates that the user should get the next set of
    #   results by providing this token as a part of a subsequent call. The
    #   default value for `MaxResults` is 10.
    #   @return [Integer]
    #
    # @!attribute [rw] sort_order
    #   The sort order for the results. The default is Ascending.
    #   @return [String]
    #
    # @!attribute [rw] sort_by
    #   The parameter by which to sort the results. The default is
    #   CreationTime.
    #   @return [String]
    #
    # @!attribute [rw] domain_id_equals
    #   A parameter by which to filter the results.
    #   @return [String]
    #
    # @!attribute [rw] user_profile_name_contains
    #   A parameter by which to filter the results.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListUserProfilesRequest AWS API Documentation
    #
    class ListUserProfilesRequest < Struct.new(
      :next_token,
      :max_results,
      :sort_order,
      :sort_by,
      :domain_id_equals,
      :user_profile_name_contains)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] user_profiles
    #   The list of user profiles.
    #   @return [Array<Types::UserProfileDetails>]
    #
    # @!attribute [rw] next_token
    #   If the previous response was truncated, you will receive this token.
    #   Use it in your next request to receive the next set of results.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListUserProfilesResponse AWS API Documentation
    #
    class ListUserProfilesResponse < Struct.new(
      :user_profiles,
      :next_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] sort_by
    #   Sort workforces using the workforce name or creation date.
    #   @return [String]
    #
    # @!attribute [rw] sort_order
    #   Sort workforces in ascending or descending order.
    #   @return [String]
    #
    # @!attribute [rw] name_contains
    #   A filter you can use to search for workforces using part of the
    #   workforce name.
    #   @return [String]
    #
    # @!attribute [rw] next_token
    #   A token to resume pagination.
    #   @return [String]
    #
    # @!attribute [rw] max_results
    #   The maximum number of workforces returned in the response.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListWorkforcesRequest AWS API Documentation
    #
    class ListWorkforcesRequest < Struct.new(
      :sort_by,
      :sort_order,
      :name_contains,
      :next_token,
      :max_results)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] workforces
    #   A list containing information about your workforce.
    #   @return [Array<Types::Workforce>]
    #
    # @!attribute [rw] next_token
    #   A token to resume pagination.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListWorkforcesResponse AWS API Documentation
    #
    class ListWorkforcesResponse < Struct.new(
      :workforces,
      :next_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] sort_by
    #   The field to sort results by. The default is `CreationTime`.
    #   @return [String]
    #
    # @!attribute [rw] sort_order
    #   The sort order for results. The default is `Ascending`.
    #   @return [String]
    #
    # @!attribute [rw] name_contains
    #   A string in the work team's name. This filter returns only work
    #   teams whose name contains the specified string.
    #   @return [String]
    #
    # @!attribute [rw] next_token
    #   If the result of the previous `ListWorkteams` request was truncated,
    #   the response includes a `NextToken`. To retrieve the next set of
    #   labeling jobs, use the token in the next request.
    #   @return [String]
    #
    # @!attribute [rw] max_results
    #   The maximum number of work teams to return in each page of the
    #   response.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListWorkteamsRequest AWS API Documentation
    #
    class ListWorkteamsRequest < Struct.new(
      :sort_by,
      :sort_order,
      :name_contains,
      :next_token,
      :max_results)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] workteams
    #   An array of `Workteam` objects, each describing a work team.
    #   @return [Array<Types::Workteam>]
    #
    # @!attribute [rw] next_token
    #   If the response is truncated, Amazon SageMaker returns this token.
    #   To retrieve the next set of work teams, use it in the subsequent
    #   request.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListWorkteamsResponse AWS API Documentation
    #
    class ListWorkteamsResponse < Struct.new(
      :workteams,
      :next_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # Defines an Amazon Cognito or your own OIDC IdP user group that is part
    # of a work team.
    #
    # @!attribute [rw] cognito_member_definition
    #   The Amazon Cognito user group that is part of the work team.
    #   @return [Types::CognitoMemberDefinition]
    #
    # @!attribute [rw] oidc_member_definition
    #   A list user groups that exist in your OIDC Identity Provider (IdP).
    #   One to ten groups can be used to create a single private work team.
    #   When you add a user group to the list of `Groups`, you can add that
    #   user group to one or more private work teams. If you add a user
    #   group to a private work team, all workers in that user group are
    #   added to the work team.
    #   @return [Types::OidcMemberDefinition]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/MemberDefinition AWS API Documentation
    #
    class MemberDefinition < Struct.new(
      :cognito_member_definition,
      :oidc_member_definition)
      SENSITIVE = []
      include Aws::Structure
    end

    # Metadata properties of the tracking entity, trial, or trial component.
    #
    # @!attribute [rw] commit_id
    #   The commit ID.
    #   @return [String]
    #
    # @!attribute [rw] repository
    #   The repository.
    #   @return [String]
    #
    # @!attribute [rw] generated_by
    #   The entity this entity was generated by.
    #   @return [String]
    #
    # @!attribute [rw] project_id
    #   The project ID.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/MetadataProperties AWS API Documentation
    #
    class MetadataProperties < Struct.new(
      :commit_id,
      :repository,
      :generated_by,
      :project_id)
      SENSITIVE = []
      include Aws::Structure
    end

    # The name, value, and date and time of a metric that was emitted to
    # Amazon CloudWatch.
    #
    # @!attribute [rw] metric_name
    #   The name of the metric.
    #   @return [String]
    #
    # @!attribute [rw] value
    #   The value of the metric.
    #   @return [Float]
    #
    # @!attribute [rw] timestamp
    #   The date and time that the algorithm emitted the metric.
    #   @return [Time]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/MetricData AWS API Documentation
    #
    class MetricData < Struct.new(
      :metric_name,
      :value,
      :timestamp)
      SENSITIVE = []
      include Aws::Structure
    end

    # Information about the metric for a candidate produced by an AutoML
    # job.
    #
    # @!attribute [rw] metric_name
    #   The name of the metric.
    #   @return [String]
    #
    # @!attribute [rw] standard_metric_name
    #   The name of the standard metric.
    #
    #   <note markdown="1"> For definitions of the standard metrics, see [ `Autopilot candidate
    #   metrics` ][1].
    #
    #    </note>
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-model-support-validation.html#autopilot-metrics
    #   @return [String]
    #
    # @!attribute [rw] value
    #   The value of the metric.
    #   @return [Float]
    #
    # @!attribute [rw] set
    #   The dataset split from which the AutoML job produced the metric.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/MetricDatum AWS API Documentation
    #
    class MetricDatum < Struct.new(
      :metric_name,
      :standard_metric_name,
      :value,
      :set)
      SENSITIVE = []
      include Aws::Structure
    end

    # Specifies a metric that the training algorithm writes to `stderr` or
    # `stdout`. You can view these logs to understand how your training job
    # performs and check for any errors encountered during training.
    # SageMaker hyperparameter tuning captures all defined metrics. Specify
    # one of the defined metrics to use as an objective metric using the
    # [TuningObjective][1] parameter in the
    # `HyperParameterTrainingJobDefinition` API to evaluate job performance
    # during hyperparameter tuning.
    #
    #
    #
    # [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_HyperParameterTrainingJobDefinition.html#sagemaker-Type-HyperParameterTrainingJobDefinition-TuningObjective
    #
    # @!attribute [rw] name
    #   The name of the metric.
    #   @return [String]
    #
    # @!attribute [rw] regex
    #   A regular expression that searches the output of a training job and
    #   gets the value of the metric. For more information about using
    #   regular expressions to define metrics, see [Defining metrics and
    #   environment variables][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-define-metrics-variables.html
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/MetricDefinition AWS API Documentation
    #
    class MetricDefinition < Struct.new(
      :name,
      :regex)
      SENSITIVE = []
      include Aws::Structure
    end

    # An object containing information about a metric.
    #
    # @note MetricSpecification is a union - when returned from an API call exactly one value will be set and the returned type will be a subclass of MetricSpecification corresponding to the set member.
    #
    # @!attribute [rw] predefined
    #   Information about a predefined metric.
    #   @return [Types::PredefinedMetricSpecification]
    #
    # @!attribute [rw] customized
    #   Information about a customized metric.
    #   @return [Types::CustomizedMetricSpecification]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/MetricSpecification AWS API Documentation
    #
    class MetricSpecification < Struct.new(
      :predefined,
      :customized,
      :unknown)
      SENSITIVE = []
      include Aws::Structure
      include Aws::Structure::Union

      class Predefined < MetricSpecification; end
      class Customized < MetricSpecification; end
      class Unknown < MetricSpecification; end
    end

    # Details about the metrics source.
    #
    # @!attribute [rw] content_type
    #   The metric source content type.
    #   @return [String]
    #
    # @!attribute [rw] content_digest
    #   The hash key used for the metrics source.
    #   @return [String]
    #
    # @!attribute [rw] s3_uri
    #   The S3 URI for the metrics source.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/MetricsSource AWS API Documentation
    #
    class MetricsSource < Struct.new(
      :content_type,
      :content_digest,
      :s3_uri)
      SENSITIVE = []
      include Aws::Structure
    end

    # The properties of a model as returned by the [Search][1] API.
    #
    #
    #
    # [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_Search.html
    #
    # @!attribute [rw] model_name
    #   The name of the model.
    #   @return [String]
    #
    # @!attribute [rw] primary_container
    #   Describes the container, as part of model definition.
    #   @return [Types::ContainerDefinition]
    #
    # @!attribute [rw] containers
    #   The containers in the inference pipeline.
    #   @return [Array<Types::ContainerDefinition>]
    #
    # @!attribute [rw] inference_execution_config
    #   Specifies details about how containers in a multi-container endpoint
    #   are run.
    #   @return [Types::InferenceExecutionConfig]
    #
    # @!attribute [rw] execution_role_arn
    #   The Amazon Resource Name (ARN) of the IAM role that you specified
    #   for the model.
    #   @return [String]
    #
    # @!attribute [rw] vpc_config
    #   Specifies an Amazon Virtual Private Cloud (VPC) that your SageMaker
    #   jobs, hosted models, and compute resources have access to. You can
    #   control access to and from your resources by configuring a VPC. For
    #   more information, see [Give SageMaker Access to Resources in your
    #   Amazon VPC][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/infrastructure-give-access.html
    #   @return [Types::VpcConfig]
    #
    # @!attribute [rw] creation_time
    #   A timestamp that indicates when the model was created.
    #   @return [Time]
    #
    # @!attribute [rw] model_arn
    #   The Amazon Resource Name (ARN) of the model.
    #   @return [String]
    #
    # @!attribute [rw] enable_network_isolation
    #   Isolates the model container. No inbound or outbound network calls
    #   can be made to or from the model container.
    #   @return [Boolean]
    #
    # @!attribute [rw] tags
    #   A list of key-value pairs associated with the model. For more
    #   information, see [Tagging Amazon Web Services resources][1] in the
    #   *Amazon Web Services General Reference Guide*.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html
    #   @return [Array<Types::Tag>]
    #
    # @!attribute [rw] deployment_recommendation
    #   A set of recommended deployment configurations for the model.
    #   @return [Types::DeploymentRecommendation]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/Model AWS API Documentation
    #
    class Model < Struct.new(
      :model_name,
      :primary_container,
      :containers,
      :inference_execution_config,
      :execution_role_arn,
      :vpc_config,
      :creation_time,
      :model_arn,
      :enable_network_isolation,
      :tags,
      :deployment_recommendation)
      SENSITIVE = []
      include Aws::Structure
    end

    # The access configuration file to control access to the ML model. You
    # can explicitly accept the model end-user license agreement (EULA)
    # within the `ModelAccessConfig`.
    #
    # * If you are a Jumpstart user, see the [End-user license
    #   agreements][1] section for more details on accepting the EULA.
    #
    # * If you are an AutoML user, see the *Optional Parameters* section of
    #   *Create an AutoML job to fine-tune text generation models using the
    #   API* for details on [How to set the EULA acceptance when fine-tuning
    #   a model using the AutoML API][2].
    #
    #
    #
    # [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/jumpstart-foundation-models-choose.html#jumpstart-foundation-models-choose-eula
    # [2]: https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-create-experiment-finetune-llms.html#autopilot-llms-finetuning-api-optional-params
    #
    # @!attribute [rw] accept_eula
    #   Specifies agreement to the model end-user license agreement (EULA).
    #   The `AcceptEula` value must be explicitly defined as `True` in order
    #   to accept the EULA that this model requires. You are responsible for
    #   reviewing and complying with any applicable license terms and making
    #   sure they are acceptable for your use case before downloading or
    #   using a model.
    #   @return [Boolean]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ModelAccessConfig AWS API Documentation
    #
    class ModelAccessConfig < Struct.new(
      :accept_eula)
      SENSITIVE = []
      include Aws::Structure
    end

    # Provides information about the location that is configured for storing
    # model artifacts.
    #
    # Model artifacts are outputs that result from training a model. They
    # typically consist of trained parameters, a model definition that
    # describes how to compute inferences, and other metadata. A SageMaker
    # container stores your trained model artifacts in the `/opt/ml/model`
    # directory. After training has completed, by default, these artifacts
    # are uploaded to your Amazon S3 bucket as compressed files.
    #
    # @!attribute [rw] s3_model_artifacts
    #   The path of the S3 object that contains the model artifacts. For
    #   example, `s3://bucket-name/keynameprefix/model.tar.gz`.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ModelArtifacts AWS API Documentation
    #
    class ModelArtifacts < Struct.new(
      :s3_model_artifacts)
      SENSITIVE = []
      include Aws::Structure
    end

    # Docker container image configuration object for the model bias job.
    #
    # @!attribute [rw] image_uri
    #   The container image to be run by the model bias job.
    #   @return [String]
    #
    # @!attribute [rw] config_uri
    #   JSON formatted S3 file that defines bias parameters. For more
    #   information on this JSON configuration file, see [Configure bias
    #   parameters][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/clarify-config-json-monitor-bias-parameters.html
    #   @return [String]
    #
    # @!attribute [rw] environment
    #   Sets the environment variables in the Docker container.
    #   @return [Hash<String,String>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ModelBiasAppSpecification AWS API Documentation
    #
    class ModelBiasAppSpecification < Struct.new(
      :image_uri,
      :config_uri,
      :environment)
      SENSITIVE = []
      include Aws::Structure
    end

    # The configuration for a baseline model bias job.
    #
    # @!attribute [rw] baselining_job_name
    #   The name of the baseline model bias job.
    #   @return [String]
    #
    # @!attribute [rw] constraints_resource
    #   The constraints resource for a monitoring job.
    #   @return [Types::MonitoringConstraintsResource]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ModelBiasBaselineConfig AWS API Documentation
    #
    class ModelBiasBaselineConfig < Struct.new(
      :baselining_job_name,
      :constraints_resource)
      SENSITIVE = []
      include Aws::Structure
    end

    # Inputs for the model bias job.
    #
    # @!attribute [rw] endpoint_input
    #   Input object for the endpoint
    #   @return [Types::EndpointInput]
    #
    # @!attribute [rw] batch_transform_input
    #   Input object for the batch transform job.
    #   @return [Types::BatchTransformInput]
    #
    # @!attribute [rw] ground_truth_s3_input
    #   Location of ground truth labels to use in model bias job.
    #   @return [Types::MonitoringGroundTruthS3Input]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ModelBiasJobInput AWS API Documentation
    #
    class ModelBiasJobInput < Struct.new(
      :endpoint_input,
      :batch_transform_input,
      :ground_truth_s3_input)
      SENSITIVE = []
      include Aws::Structure
    end

    # An Amazon SageMaker Model Card.
    #
    # @!attribute [rw] model_card_arn
    #   The Amazon Resource Name (ARN) of the model card.
    #   @return [String]
    #
    # @!attribute [rw] model_card_name
    #   The unique name of the model card.
    #   @return [String]
    #
    # @!attribute [rw] model_card_version
    #   The version of the model card.
    #   @return [Integer]
    #
    # @!attribute [rw] content
    #   The content of the model card. Content uses the [model card JSON
    #   schema][1] and provided as a string.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/model-cards.html#model-cards-json-schema
    #   @return [String]
    #
    # @!attribute [rw] model_card_status
    #   The approval status of the model card within your organization.
    #   Different organizations might have different criteria for model card
    #   review and approval.
    #
    #   * `Draft`: The model card is a work in progress.
    #
    #   * `PendingReview`: The model card is pending review.
    #
    #   * `Approved`: The model card is approved.
    #
    #   * `Archived`: The model card is archived. No more updates should be
    #     made to the model card, but it can still be exported.
    #   @return [String]
    #
    # @!attribute [rw] security_config
    #   The security configuration used to protect model card data.
    #   @return [Types::ModelCardSecurityConfig]
    #
    # @!attribute [rw] creation_time
    #   The date and time that the model card was created.
    #   @return [Time]
    #
    # @!attribute [rw] created_by
    #   Information about the user who created or modified a SageMaker
    #   resource.
    #   @return [Types::UserContext]
    #
    # @!attribute [rw] last_modified_time
    #   The date and time that the model card was last modified.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_by
    #   Information about the user who created or modified a SageMaker
    #   resource.
    #   @return [Types::UserContext]
    #
    # @!attribute [rw] tags
    #   Key-value pairs used to manage metadata for the model card.
    #   @return [Array<Types::Tag>]
    #
    # @!attribute [rw] model_id
    #   The unique name (ID) of the model.
    #   @return [String]
    #
    # @!attribute [rw] risk_rating
    #   The risk rating of the model. Different organizations might have
    #   different criteria for model card risk ratings. For more
    #   information, see [Risk ratings][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/model-cards-risk-rating.html
    #   @return [String]
    #
    # @!attribute [rw] model_package_group_name
    #   The model package group that contains the model package. Only
    #   relevant for model cards created for model packages in the Amazon
    #   SageMaker Model Registry.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ModelCard AWS API Documentation
    #
    class ModelCard < Struct.new(
      :model_card_arn,
      :model_card_name,
      :model_card_version,
      :content,
      :model_card_status,
      :security_config,
      :creation_time,
      :created_by,
      :last_modified_time,
      :last_modified_by,
      :tags,
      :model_id,
      :risk_rating,
      :model_package_group_name)
      SENSITIVE = [:content]
      include Aws::Structure
    end

    # The artifacts of the model card export job.
    #
    # @!attribute [rw] s3_export_artifacts
    #   The Amazon S3 URI of the exported model artifacts.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ModelCardExportArtifacts AWS API Documentation
    #
    class ModelCardExportArtifacts < Struct.new(
      :s3_export_artifacts)
      SENSITIVE = []
      include Aws::Structure
    end

    # The summary of the Amazon SageMaker Model Card export job.
    #
    # @!attribute [rw] model_card_export_job_name
    #   The name of the model card export job.
    #   @return [String]
    #
    # @!attribute [rw] model_card_export_job_arn
    #   The Amazon Resource Name (ARN) of the model card export job.
    #   @return [String]
    #
    # @!attribute [rw] status
    #   The completion status of the model card export job.
    #   @return [String]
    #
    # @!attribute [rw] model_card_name
    #   The name of the model card that the export job exports.
    #   @return [String]
    #
    # @!attribute [rw] model_card_version
    #   The version of the model card that the export job exports.
    #   @return [Integer]
    #
    # @!attribute [rw] created_at
    #   The date and time that the model card export job was created.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_at
    #   The date and time that the model card export job was last modified..
    #   @return [Time]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ModelCardExportJobSummary AWS API Documentation
    #
    class ModelCardExportJobSummary < Struct.new(
      :model_card_export_job_name,
      :model_card_export_job_arn,
      :status,
      :model_card_name,
      :model_card_version,
      :created_at,
      :last_modified_at)
      SENSITIVE = []
      include Aws::Structure
    end

    # Configure the export output details for an Amazon SageMaker Model
    # Card.
    #
    # @!attribute [rw] s3_output_path
    #   The Amazon S3 output path to export your model card PDF.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ModelCardExportOutputConfig AWS API Documentation
    #
    class ModelCardExportOutputConfig < Struct.new(
      :s3_output_path)
      SENSITIVE = []
      include Aws::Structure
    end

    # Configure the security settings to protect model card data.
    #
    # @!attribute [rw] kms_key_id
    #   A Key Management Service [key ID][1] to use for encrypting a model
    #   card.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-id
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ModelCardSecurityConfig AWS API Documentation
    #
    class ModelCardSecurityConfig < Struct.new(
      :kms_key_id)
      SENSITIVE = []
      include Aws::Structure
    end

    # A summary of the model card.
    #
    # @!attribute [rw] model_card_name
    #   The name of the model card.
    #   @return [String]
    #
    # @!attribute [rw] model_card_arn
    #   The Amazon Resource Name (ARN) of the model card.
    #   @return [String]
    #
    # @!attribute [rw] model_card_status
    #   The approval status of the model card within your organization.
    #   Different organizations might have different criteria for model card
    #   review and approval.
    #
    #   * `Draft`: The model card is a work in progress.
    #
    #   * `PendingReview`: The model card is pending review.
    #
    #   * `Approved`: The model card is approved.
    #
    #   * `Archived`: The model card is archived. No more updates should be
    #     made to the model card, but it can still be exported.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   The date and time that the model card was created.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time
    #   The date and time that the model card was last modified.
    #   @return [Time]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ModelCardSummary AWS API Documentation
    #
    class ModelCardSummary < Struct.new(
      :model_card_name,
      :model_card_arn,
      :model_card_status,
      :creation_time,
      :last_modified_time)
      SENSITIVE = []
      include Aws::Structure
    end

    # A summary of a specific version of the model card.
    #
    # @!attribute [rw] model_card_name
    #   The name of the model card.
    #   @return [String]
    #
    # @!attribute [rw] model_card_arn
    #   The Amazon Resource Name (ARN) of the model card.
    #   @return [String]
    #
    # @!attribute [rw] model_card_status
    #   The approval status of the model card version within your
    #   organization. Different organizations might have different criteria
    #   for model card review and approval.
    #
    #   * `Draft`: The model card is a work in progress.
    #
    #   * `PendingReview`: The model card is pending review.
    #
    #   * `Approved`: The model card is approved.
    #
    #   * `Archived`: The model card is archived. No more updates should be
    #     made to the model card, but it can still be exported.
    #   @return [String]
    #
    # @!attribute [rw] model_card_version
    #   A version of the model card.
    #   @return [Integer]
    #
    # @!attribute [rw] creation_time
    #   The date and time that the model card version was created.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time
    #   The time date and time that the model card version was last
    #   modified.
    #   @return [Time]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ModelCardVersionSummary AWS API Documentation
    #
    class ModelCardVersionSummary < Struct.new(
      :model_card_name,
      :model_card_arn,
      :model_card_status,
      :model_card_version,
      :creation_time,
      :last_modified_time)
      SENSITIVE = []
      include Aws::Structure
    end

    # Configures the timeout and maximum number of retries for processing a
    # transform job invocation.
    #
    # @!attribute [rw] invocations_timeout_in_seconds
    #   The timeout value in seconds for an invocation request. The default
    #   value is 600.
    #   @return [Integer]
    #
    # @!attribute [rw] invocations_max_retries
    #   The maximum number of retries when invocation requests are failing.
    #   The default value is 3.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ModelClientConfig AWS API Documentation
    #
    class ModelClientConfig < Struct.new(
      :invocations_timeout_in_seconds,
      :invocations_max_retries)
      SENSITIVE = []
      include Aws::Structure
    end

    # Settings for the model compilation technique that's applied by a
    # model optimization job.
    #
    # @!attribute [rw] image
    #   The URI of an LMI DLC in Amazon ECR. SageMaker uses this image to
    #   run the optimization.
    #   @return [String]
    #
    # @!attribute [rw] override_environment
    #   Environment variables that override the default ones in the model
    #   container.
    #   @return [Hash<String,String>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ModelCompilationConfig AWS API Documentation
    #
    class ModelCompilationConfig < Struct.new(
      :image,
      :override_environment)
      SENSITIVE = []
      include Aws::Structure
    end

    # Defines the model configuration. Includes the specification name and
    # environment parameters.
    #
    # @!attribute [rw] inference_specification_name
    #   The inference specification name in the model package version.
    #   @return [String]
    #
    # @!attribute [rw] environment_parameters
    #   Defines the environment parameters that includes key, value types,
    #   and values.
    #   @return [Array<Types::EnvironmentParameter>]
    #
    # @!attribute [rw] compilation_job_name
    #   The name of the compilation job used to create the recommended model
    #   artifacts.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ModelConfiguration AWS API Documentation
    #
    class ModelConfiguration < Struct.new(
      :inference_specification_name,
      :environment_parameters,
      :compilation_job_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # An endpoint that hosts a model displayed in the Amazon SageMaker Model
    # Dashboard.
    #
    # @!attribute [rw] endpoint_name
    #   The endpoint name.
    #   @return [String]
    #
    # @!attribute [rw] endpoint_arn
    #   The Amazon Resource Name (ARN) of the endpoint.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   A timestamp that indicates when the endpoint was created.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time
    #   The last time the endpoint was modified.
    #   @return [Time]
    #
    # @!attribute [rw] endpoint_status
    #   The endpoint status.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ModelDashboardEndpoint AWS API Documentation
    #
    class ModelDashboardEndpoint < Struct.new(
      :endpoint_name,
      :endpoint_arn,
      :creation_time,
      :last_modified_time,
      :endpoint_status)
      SENSITIVE = []
      include Aws::Structure
    end

    # An alert action taken to light up an icon on the Amazon SageMaker
    # Model Dashboard when an alert goes into `InAlert` status.
    #
    # @!attribute [rw] enabled
    #   Indicates whether the alert action is turned on.
    #   @return [Boolean]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ModelDashboardIndicatorAction AWS API Documentation
    #
    class ModelDashboardIndicatorAction < Struct.new(
      :enabled)
      SENSITIVE = []
      include Aws::Structure
    end

    # A model displayed in the Amazon SageMaker Model Dashboard.
    #
    # @!attribute [rw] model
    #   A model displayed in the Model Dashboard.
    #   @return [Types::Model]
    #
    # @!attribute [rw] endpoints
    #   The endpoints that host a model.
    #   @return [Array<Types::ModelDashboardEndpoint>]
    #
    # @!attribute [rw] last_batch_transform_job
    #   A batch transform job. For information about SageMaker batch
    #   transform, see [Use Batch Transform][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/batch-transform.html
    #   @return [Types::TransformJob]
    #
    # @!attribute [rw] monitoring_schedules
    #   The monitoring schedules for a model.
    #   @return [Array<Types::ModelDashboardMonitoringSchedule>]
    #
    # @!attribute [rw] model_card
    #   The model card for a model.
    #   @return [Types::ModelDashboardModelCard]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ModelDashboardModel AWS API Documentation
    #
    class ModelDashboardModel < Struct.new(
      :model,
      :endpoints,
      :last_batch_transform_job,
      :monitoring_schedules,
      :model_card)
      SENSITIVE = []
      include Aws::Structure
    end

    # The model card for a model displayed in the Amazon SageMaker Model
    # Dashboard.
    #
    # @!attribute [rw] model_card_arn
    #   The Amazon Resource Name (ARN) for a model card.
    #   @return [String]
    #
    # @!attribute [rw] model_card_name
    #   The name of a model card.
    #   @return [String]
    #
    # @!attribute [rw] model_card_version
    #   The model card version.
    #   @return [Integer]
    #
    # @!attribute [rw] model_card_status
    #   The model card status.
    #   @return [String]
    #
    # @!attribute [rw] security_config
    #   The KMS Key ID (`KMSKeyId`) for encryption of model card
    #   information.
    #   @return [Types::ModelCardSecurityConfig]
    #
    # @!attribute [rw] creation_time
    #   A timestamp that indicates when the model card was created.
    #   @return [Time]
    #
    # @!attribute [rw] created_by
    #   Information about the user who created or modified a SageMaker
    #   resource.
    #   @return [Types::UserContext]
    #
    # @!attribute [rw] last_modified_time
    #   A timestamp that indicates when the model card was last updated.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_by
    #   Information about the user who created or modified a SageMaker
    #   resource.
    #   @return [Types::UserContext]
    #
    # @!attribute [rw] tags
    #   The tags associated with a model card.
    #   @return [Array<Types::Tag>]
    #
    # @!attribute [rw] model_id
    #   For models created in SageMaker, this is the model ARN. For models
    #   created outside of SageMaker, this is a user-customized string.
    #   @return [String]
    #
    # @!attribute [rw] risk_rating
    #   A model card's risk rating. Can be low, medium, or high.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ModelDashboardModelCard AWS API Documentation
    #
    class ModelDashboardModelCard < Struct.new(
      :model_card_arn,
      :model_card_name,
      :model_card_version,
      :model_card_status,
      :security_config,
      :creation_time,
      :created_by,
      :last_modified_time,
      :last_modified_by,
      :tags,
      :model_id,
      :risk_rating)
      SENSITIVE = []
      include Aws::Structure
    end

    # A monitoring schedule for a model displayed in the Amazon SageMaker
    # Model Dashboard.
    #
    # @!attribute [rw] monitoring_schedule_arn
    #   The Amazon Resource Name (ARN) of a monitoring schedule.
    #   @return [String]
    #
    # @!attribute [rw] monitoring_schedule_name
    #   The name of a monitoring schedule.
    #   @return [String]
    #
    # @!attribute [rw] monitoring_schedule_status
    #   The status of the monitoring schedule.
    #   @return [String]
    #
    # @!attribute [rw] monitoring_type
    #   The monitor type of a model monitor.
    #   @return [String]
    #
    # @!attribute [rw] failure_reason
    #   If a monitoring job failed, provides the reason.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   A timestamp that indicates when the monitoring schedule was created.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time
    #   A timestamp that indicates when the monitoring schedule was last
    #   updated.
    #   @return [Time]
    #
    # @!attribute [rw] monitoring_schedule_config
    #   Configures the monitoring schedule and defines the monitoring job.
    #   @return [Types::MonitoringScheduleConfig]
    #
    # @!attribute [rw] endpoint_name
    #   The endpoint which is monitored.
    #   @return [String]
    #
    # @!attribute [rw] monitoring_alert_summaries
    #   A JSON array where each element is a summary for a monitoring alert.
    #   @return [Array<Types::MonitoringAlertSummary>]
    #
    # @!attribute [rw] last_monitoring_execution_summary
    #   Summary of information about the last monitoring job to run.
    #   @return [Types::MonitoringExecutionSummary]
    #
    # @!attribute [rw] batch_transform_input
    #   Input object for the batch transform job.
    #   @return [Types::BatchTransformInput]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ModelDashboardMonitoringSchedule AWS API Documentation
    #
    class ModelDashboardMonitoringSchedule < Struct.new(
      :monitoring_schedule_arn,
      :monitoring_schedule_name,
      :monitoring_schedule_status,
      :monitoring_type,
      :failure_reason,
      :creation_time,
      :last_modified_time,
      :monitoring_schedule_config,
      :endpoint_name,
      :monitoring_alert_summaries,
      :last_monitoring_execution_summary,
      :batch_transform_input)
      SENSITIVE = []
      include Aws::Structure
    end

    # Data quality constraints and statistics for a model.
    #
    # @!attribute [rw] statistics
    #   Data quality statistics for a model.
    #   @return [Types::MetricsSource]
    #
    # @!attribute [rw] constraints
    #   Data quality constraints for a model.
    #   @return [Types::MetricsSource]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ModelDataQuality AWS API Documentation
    #
    class ModelDataQuality < Struct.new(
      :statistics,
      :constraints)
      SENSITIVE = []
      include Aws::Structure
    end

    # Specifies the location of ML model data to deploy. If specified, you
    # must specify one and only one of the available data sources.
    #
    # @!attribute [rw] s3_data_source
    #   Specifies the S3 location of ML model data to deploy.
    #   @return [Types::S3ModelDataSource]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ModelDataSource AWS API Documentation
    #
    class ModelDataSource < Struct.new(
      :s3_data_source)
      SENSITIVE = []
      include Aws::Structure
    end

    # Specifies how to generate the endpoint name for an automatic one-click
    # Autopilot model deployment.
    #
    # @!attribute [rw] auto_generate_endpoint_name
    #   Set to `True` to automatically generate an endpoint name for a
    #   one-click Autopilot model deployment; set to `False` otherwise. The
    #   default value is `False`.
    #
    #   <note markdown="1"> If you set `AutoGenerateEndpointName` to `True`, do not specify the
    #   `EndpointName`; otherwise a 400 error is thrown.
    #
    #    </note>
    #   @return [Boolean]
    #
    # @!attribute [rw] endpoint_name
    #   Specifies the endpoint name to use for a one-click Autopilot model
    #   deployment if the endpoint name is not generated automatically.
    #
    #   <note markdown="1"> Specify the `EndpointName` if and only if you set
    #   `AutoGenerateEndpointName` to `False`; otherwise a 400 error is
    #   thrown.
    #
    #    </note>
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ModelDeployConfig AWS API Documentation
    #
    class ModelDeployConfig < Struct.new(
      :auto_generate_endpoint_name,
      :endpoint_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # Provides information about the endpoint of the model deployment.
    #
    # @!attribute [rw] endpoint_name
    #   The name of the endpoint to which the model has been deployed.
    #
    #   <note markdown="1"> If model deployment fails, this field is omitted from the response.
    #
    #    </note>
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ModelDeployResult AWS API Documentation
    #
    class ModelDeployResult < Struct.new(
      :endpoint_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # Provides information to verify the integrity of stored model
    # artifacts.
    #
    # @!attribute [rw] artifact_digest
    #   Provides a hash value that uniquely identifies the stored model
    #   artifacts.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ModelDigests AWS API Documentation
    #
    class ModelDigests < Struct.new(
      :artifact_digest)
      SENSITIVE = []
      include Aws::Structure
    end

    # Docker container image configuration object for the model
    # explainability job.
    #
    # @!attribute [rw] image_uri
    #   The container image to be run by the model explainability job.
    #   @return [String]
    #
    # @!attribute [rw] config_uri
    #   JSON formatted Amazon S3 file that defines explainability
    #   parameters. For more information on this JSON configuration file,
    #   see [Configure model explainability parameters][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/clarify-config-json-monitor-model-explainability-parameters.html
    #   @return [String]
    #
    # @!attribute [rw] environment
    #   Sets the environment variables in the Docker container.
    #   @return [Hash<String,String>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ModelExplainabilityAppSpecification AWS API Documentation
    #
    class ModelExplainabilityAppSpecification < Struct.new(
      :image_uri,
      :config_uri,
      :environment)
      SENSITIVE = []
      include Aws::Structure
    end

    # The configuration for a baseline model explainability job.
    #
    # @!attribute [rw] baselining_job_name
    #   The name of the baseline model explainability job.
    #   @return [String]
    #
    # @!attribute [rw] constraints_resource
    #   The constraints resource for a monitoring job.
    #   @return [Types::MonitoringConstraintsResource]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ModelExplainabilityBaselineConfig AWS API Documentation
    #
    class ModelExplainabilityBaselineConfig < Struct.new(
      :baselining_job_name,
      :constraints_resource)
      SENSITIVE = []
      include Aws::Structure
    end

    # Inputs for the model explainability job.
    #
    # @!attribute [rw] endpoint_input
    #   Input object for the endpoint
    #   @return [Types::EndpointInput]
    #
    # @!attribute [rw] batch_transform_input
    #   Input object for the batch transform job.
    #   @return [Types::BatchTransformInput]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ModelExplainabilityJobInput AWS API Documentation
    #
    class ModelExplainabilityJobInput < Struct.new(
      :endpoint_input,
      :batch_transform_input)
      SENSITIVE = []
      include Aws::Structure
    end

    # The configuration for the infrastructure that the model will be
    # deployed to.
    #
    # @!attribute [rw] infrastructure_type
    #   The inference option to which to deploy your model. Possible values
    #   are the following:
    #
    #   * `RealTime`: Deploy to real-time inference.
    #
    #   ^
    #   @return [String]
    #
    # @!attribute [rw] real_time_inference_config
    #   The infrastructure configuration for deploying the model to
    #   real-time inference.
    #   @return [Types::RealTimeInferenceConfig]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ModelInfrastructureConfig AWS API Documentation
    #
    class ModelInfrastructureConfig < Struct.new(
      :infrastructure_type,
      :real_time_inference_config)
      SENSITIVE = []
      include Aws::Structure
    end

    # Input object for the model.
    #
    # @!attribute [rw] data_input_config
    #   The input configuration object for the model.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ModelInput AWS API Documentation
    #
    class ModelInput < Struct.new(
      :data_input_config)
      SENSITIVE = []
      include Aws::Structure
    end

    # The model latency threshold.
    #
    # @!attribute [rw] percentile
    #   The model latency percentile threshold. Acceptable values are `P95`
    #   and `P99`. For custom load tests, specify the value as `P95`.
    #   @return [String]
    #
    # @!attribute [rw] value_in_milliseconds
    #   The model latency percentile value in milliseconds.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ModelLatencyThreshold AWS API Documentation
    #
    class ModelLatencyThreshold < Struct.new(
      :percentile,
      :value_in_milliseconds)
      SENSITIVE = []
      include Aws::Structure
    end

    # A structure describing the current state of the model in its life
    # cycle.
    #
    # @!attribute [rw] stage
    #   The current stage in the model life cycle.
    #   @return [String]
    #
    # @!attribute [rw] stage_status
    #   The current status of a stage in model life cycle.
    #   @return [String]
    #
    # @!attribute [rw] stage_description
    #   Describes the stage related details.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ModelLifeCycle AWS API Documentation
    #
    class ModelLifeCycle < Struct.new(
      :stage,
      :stage_status,
      :stage_description)
      SENSITIVE = []
      include Aws::Structure
    end

    # Part of the search expression. You can specify the name and value
    # (domain, task, framework, framework version, task, and model).
    #
    # @!attribute [rw] name
    #   The name of the of the model to filter by.
    #   @return [String]
    #
    # @!attribute [rw] value
    #   The value to filter the model metadata.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ModelMetadataFilter AWS API Documentation
    #
    class ModelMetadataFilter < Struct.new(
      :name,
      :value)
      SENSITIVE = []
      include Aws::Structure
    end

    # One or more filters that searches for the specified resource or
    # resources in a search. All resource objects that satisfy the
    # expression's condition are included in the search results
    #
    # @!attribute [rw] filters
    #   A list of filter objects.
    #   @return [Array<Types::ModelMetadataFilter>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ModelMetadataSearchExpression AWS API Documentation
    #
    class ModelMetadataSearchExpression < Struct.new(
      :filters)
      SENSITIVE = []
      include Aws::Structure
    end

    # A summary of the model metadata.
    #
    # @!attribute [rw] domain
    #   The machine learning domain of the model.
    #   @return [String]
    #
    # @!attribute [rw] framework
    #   The machine learning framework of the model.
    #   @return [String]
    #
    # @!attribute [rw] task
    #   The machine learning task of the model.
    #   @return [String]
    #
    # @!attribute [rw] model
    #   The name of the model.
    #   @return [String]
    #
    # @!attribute [rw] framework_version
    #   The framework version of the model.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ModelMetadataSummary AWS API Documentation
    #
    class ModelMetadataSummary < Struct.new(
      :domain,
      :framework,
      :task,
      :model,
      :framework_version)
      SENSITIVE = []
      include Aws::Structure
    end

    # Contains metrics captured from a model.
    #
    # @!attribute [rw] model_quality
    #   Metrics that measure the quality of a model.
    #   @return [Types::ModelQuality]
    #
    # @!attribute [rw] model_data_quality
    #   Metrics that measure the quality of the input data for a model.
    #   @return [Types::ModelDataQuality]
    #
    # @!attribute [rw] bias
    #   Metrics that measure bias in a model.
    #   @return [Types::Bias]
    #
    # @!attribute [rw] explainability
    #   Metrics that help explain a model.
    #   @return [Types::Explainability]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ModelMetrics AWS API Documentation
    #
    class ModelMetrics < Struct.new(
      :model_quality,
      :model_data_quality,
      :bias,
      :explainability)
      SENSITIVE = []
      include Aws::Structure
    end

    # A container for your trained model that can be deployed for SageMaker
    # inference. This can include inference code, artifacts, and metadata.
    # The model package type can be one of the following.
    #
    # * Versioned model: A part of a model package group in Model Registry.
    #
    # * Unversioned model: Not part of a model package group and used in
    #   Amazon Web Services Marketplace.
    #
    # For more information, see [ `CreateModelPackage` ][1].
    #
    #
    #
    # [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateModelPackage.html
    #
    # @!attribute [rw] model_package_name
    #   The name of the model package. The name can be as follows:
    #
    #   * For a versioned model, the name is automatically generated by
    #     SageMaker Model Registry and follows the format
    #     '`ModelPackageGroupName/ModelPackageVersion`'.
    #
    #   * For an unversioned model, you must provide the name.
    #   @return [String]
    #
    # @!attribute [rw] model_package_group_name
    #   The model group to which the model belongs.
    #   @return [String]
    #
    # @!attribute [rw] model_package_version
    #   The version number of a versioned model.
    #   @return [Integer]
    #
    # @!attribute [rw] model_package_arn
    #   The Amazon Resource Name (ARN) of the model package.
    #   @return [String]
    #
    # @!attribute [rw] model_package_description
    #   The description of the model package.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   The time that the model package was created.
    #   @return [Time]
    #
    # @!attribute [rw] inference_specification
    #   Defines how to perform inference generation after a training job is
    #   run.
    #   @return [Types::InferenceSpecification]
    #
    # @!attribute [rw] source_algorithm_specification
    #   A list of algorithms that were used to create a model package.
    #   @return [Types::SourceAlgorithmSpecification]
    #
    # @!attribute [rw] validation_specification
    #   Specifies batch transform jobs that SageMaker runs to validate your
    #   model package.
    #   @return [Types::ModelPackageValidationSpecification]
    #
    # @!attribute [rw] model_package_status
    #   The status of the model package. This can be one of the following
    #   values.
    #
    #   * `PENDING` - The model package is pending being created.
    #
    #   * `IN_PROGRESS` - The model package is in the process of being
    #     created.
    #
    #   * `COMPLETED` - The model package was successfully created.
    #
    #   * `FAILED` - The model package failed.
    #
    #   * `DELETING` - The model package is in the process of being deleted.
    #   @return [String]
    #
    # @!attribute [rw] model_package_status_details
    #   Specifies the validation and image scan statuses of the model
    #   package.
    #   @return [Types::ModelPackageStatusDetails]
    #
    # @!attribute [rw] certify_for_marketplace
    #   Whether the model package is to be certified to be listed on Amazon
    #   Web Services Marketplace. For information about listing model
    #   packages on Amazon Web Services Marketplace, see [List Your
    #   Algorithm or Model Package on Amazon Web Services Marketplace][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-mkt-list.html
    #   @return [Boolean]
    #
    # @!attribute [rw] model_approval_status
    #   The approval status of the model. This can be one of the following
    #   values.
    #
    #   * `APPROVED` - The model is approved
    #
    #   * `REJECTED` - The model is rejected.
    #
    #   * `PENDING_MANUAL_APPROVAL` - The model is waiting for manual
    #     approval.
    #   @return [String]
    #
    # @!attribute [rw] created_by
    #   Information about the user who created or modified an experiment,
    #   trial, trial component, lineage group, or project.
    #   @return [Types::UserContext]
    #
    # @!attribute [rw] metadata_properties
    #   Metadata properties of the tracking entity, trial, or trial
    #   component.
    #   @return [Types::MetadataProperties]
    #
    # @!attribute [rw] model_metrics
    #   Metrics for the model.
    #   @return [Types::ModelMetrics]
    #
    # @!attribute [rw] last_modified_time
    #   The last time the model package was modified.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_by
    #   Information about the user who created or modified an experiment,
    #   trial, trial component, lineage group, or project.
    #   @return [Types::UserContext]
    #
    # @!attribute [rw] approval_description
    #   A description provided when the model approval is set.
    #   @return [String]
    #
    # @!attribute [rw] domain
    #   The machine learning domain of your model package and its
    #   components. Common machine learning domains include computer vision
    #   and natural language processing.
    #   @return [String]
    #
    # @!attribute [rw] task
    #   The machine learning task your model package accomplishes. Common
    #   machine learning tasks include object detection and image
    #   classification.
    #   @return [String]
    #
    # @!attribute [rw] sample_payload_url
    #   The Amazon Simple Storage Service path where the sample payload are
    #   stored. This path must point to a single gzip compressed tar archive
    #   (.tar.gz suffix).
    #   @return [String]
    #
    # @!attribute [rw] additional_inference_specifications
    #   An array of additional Inference Specification objects.
    #   @return [Array<Types::AdditionalInferenceSpecificationDefinition>]
    #
    # @!attribute [rw] source_uri
    #   The URI of the source for the model package.
    #   @return [String]
    #
    # @!attribute [rw] security_config
    #   An optional Key Management Service key to encrypt, decrypt, and
    #   re-encrypt model package information for regulated workloads with
    #   highly sensitive data.
    #   @return [Types::ModelPackageSecurityConfig]
    #
    # @!attribute [rw] model_card
    #   The model card associated with the model package. Since
    #   `ModelPackageModelCard` is tied to a model package, it is a specific
    #   usage of a model card and its schema is simplified compared to the
    #   schema of `ModelCard`. The `ModelPackageModelCard` schema does not
    #   include `model_package_details`, and `model_overview` is composed of
    #   the `model_creator` and `model_artifact` properties. For more
    #   information about the model package model card schema, see [Model
    #   package model card schema][1]. For more information about the model
    #   card associated with the model package, see [View the Details of a
    #   Model Version][2].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/model-registry-details.html#model-card-schema
    #   [2]: https://docs.aws.amazon.com/sagemaker/latest/dg/model-registry-details.html
    #   @return [Types::ModelPackageModelCard]
    #
    # @!attribute [rw] model_life_cycle
    #   A structure describing the current state of the model in its life
    #   cycle.
    #   @return [Types::ModelLifeCycle]
    #
    # @!attribute [rw] tags
    #   A list of the tags associated with the model package. For more
    #   information, see [Tagging Amazon Web Services resources][1] in the
    #   *Amazon Web Services General Reference Guide*.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html
    #   @return [Array<Types::Tag>]
    #
    # @!attribute [rw] customer_metadata_properties
    #   The metadata properties for the model package.
    #   @return [Hash<String,String>]
    #
    # @!attribute [rw] drift_check_baselines
    #   Represents the drift check baselines that can be used when the model
    #   monitor is set using the model package.
    #   @return [Types::DriftCheckBaselines]
    #
    # @!attribute [rw] skip_model_validation
    #   Indicates if you want to skip model validation.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ModelPackage AWS API Documentation
    #
    class ModelPackage < Struct.new(
      :model_package_name,
      :model_package_group_name,
      :model_package_version,
      :model_package_arn,
      :model_package_description,
      :creation_time,
      :inference_specification,
      :source_algorithm_specification,
      :validation_specification,
      :model_package_status,
      :model_package_status_details,
      :certify_for_marketplace,
      :model_approval_status,
      :created_by,
      :metadata_properties,
      :model_metrics,
      :last_modified_time,
      :last_modified_by,
      :approval_description,
      :domain,
      :task,
      :sample_payload_url,
      :additional_inference_specifications,
      :source_uri,
      :security_config,
      :model_card,
      :model_life_cycle,
      :tags,
      :customer_metadata_properties,
      :drift_check_baselines,
      :skip_model_validation)
      SENSITIVE = []
      include Aws::Structure
    end

    # Describes the Docker container for the model package.
    #
    # @!attribute [rw] container_hostname
    #   The DNS host name for the Docker container.
    #   @return [String]
    #
    # @!attribute [rw] image
    #   The Amazon Elastic Container Registry (Amazon ECR) path where
    #   inference code is stored.
    #
    #   If you are using your own custom algorithm instead of an algorithm
    #   provided by SageMaker, the inference code must meet SageMaker
    #   requirements. SageMaker supports both `registry/repository[:tag]`
    #   and `registry/repository[@digest]` image path formats. For more
    #   information, see [Using Your Own Algorithms with Amazon
    #   SageMaker][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms.html
    #   @return [String]
    #
    # @!attribute [rw] image_digest
    #   An MD5 hash of the training algorithm that identifies the Docker
    #   image used for training.
    #   @return [String]
    #
    # @!attribute [rw] model_data_url
    #   The Amazon S3 path where the model artifacts, which result from
    #   model training, are stored. This path must point to a single `gzip`
    #   compressed tar archive (`.tar.gz` suffix).
    #
    #   <note markdown="1"> The model artifacts must be in an S3 bucket that is in the same
    #   region as the model package.
    #
    #    </note>
    #   @return [String]
    #
    # @!attribute [rw] model_data_source
    #   Specifies the location of ML model data to deploy during endpoint
    #   creation.
    #   @return [Types::ModelDataSource]
    #
    # @!attribute [rw] product_id
    #   The Amazon Web Services Marketplace product ID of the model package.
    #   @return [String]
    #
    # @!attribute [rw] environment
    #   The environment variables to set in the Docker container. Each key
    #   and value in the `Environment` string to string map can have length
    #   of up to 1024. We support up to 16 entries in the map.
    #   @return [Hash<String,String>]
    #
    # @!attribute [rw] model_input
    #   A structure with Model Input details.
    #   @return [Types::ModelInput]
    #
    # @!attribute [rw] framework
    #   The machine learning framework of the model package container image.
    #   @return [String]
    #
    # @!attribute [rw] framework_version
    #   The framework version of the Model Package Container Image.
    #   @return [String]
    #
    # @!attribute [rw] nearest_model_name
    #   The name of a pre-trained machine learning benchmarked by Amazon
    #   SageMaker Inference Recommender model that matches your model. You
    #   can find a list of benchmarked models by calling
    #   `ListModelMetadata`.
    #   @return [String]
    #
    # @!attribute [rw] additional_s3_data_source
    #   The additional data source that is used during inference in the
    #   Docker container for your model package.
    #   @return [Types::AdditionalS3DataSource]
    #
    # @!attribute [rw] model_data_etag
    #   The ETag associated with Model Data URL.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ModelPackageContainerDefinition AWS API Documentation
    #
    class ModelPackageContainerDefinition < Struct.new(
      :container_hostname,
      :image,
      :image_digest,
      :model_data_url,
      :model_data_source,
      :product_id,
      :environment,
      :model_input,
      :framework,
      :framework_version,
      :nearest_model_name,
      :additional_s3_data_source,
      :model_data_etag)
      SENSITIVE = []
      include Aws::Structure
    end

    # A group of versioned models in the Model Registry.
    #
    # @!attribute [rw] model_package_group_name
    #   The name of the model group.
    #   @return [String]
    #
    # @!attribute [rw] model_package_group_arn
    #   The Amazon Resource Name (ARN) of the model group.
    #   @return [String]
    #
    # @!attribute [rw] model_package_group_description
    #   The description for the model group.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   The time that the model group was created.
    #   @return [Time]
    #
    # @!attribute [rw] created_by
    #   Information about the user who created or modified a SageMaker
    #   resource.
    #   @return [Types::UserContext]
    #
    # @!attribute [rw] model_package_group_status
    #   The status of the model group. This can be one of the following
    #   values.
    #
    #   * `PENDING` - The model group is pending being created.
    #
    #   * `IN_PROGRESS` - The model group is in the process of being
    #     created.
    #
    #   * `COMPLETED` - The model group was successfully created.
    #
    #   * `FAILED` - The model group failed.
    #
    #   * `DELETING` - The model group is in the process of being deleted.
    #
    #   * `DELETE_FAILED` - SageMaker failed to delete the model group.
    #   @return [String]
    #
    # @!attribute [rw] tags
    #   A list of the tags associated with the model group. For more
    #   information, see [Tagging Amazon Web Services resources][1] in the
    #   *Amazon Web Services General Reference Guide*.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html
    #   @return [Array<Types::Tag>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ModelPackageGroup AWS API Documentation
    #
    class ModelPackageGroup < Struct.new(
      :model_package_group_name,
      :model_package_group_arn,
      :model_package_group_description,
      :creation_time,
      :created_by,
      :model_package_group_status,
      :tags)
      SENSITIVE = []
      include Aws::Structure
    end

    # Summary information about a model group.
    #
    # @!attribute [rw] model_package_group_name
    #   The name of the model group.
    #   @return [String]
    #
    # @!attribute [rw] model_package_group_arn
    #   The Amazon Resource Name (ARN) of the model group.
    #   @return [String]
    #
    # @!attribute [rw] model_package_group_description
    #   A description of the model group.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   The time that the model group was created.
    #   @return [Time]
    #
    # @!attribute [rw] model_package_group_status
    #   The status of the model group.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ModelPackageGroupSummary AWS API Documentation
    #
    class ModelPackageGroupSummary < Struct.new(
      :model_package_group_name,
      :model_package_group_arn,
      :model_package_group_description,
      :creation_time,
      :model_package_group_status)
      SENSITIVE = []
      include Aws::Structure
    end

    # The model card associated with the model package. Since
    # `ModelPackageModelCard` is tied to a model package, it is a specific
    # usage of a model card and its schema is simplified compared to the
    # schema of `ModelCard`. The `ModelPackageModelCard` schema does not
    # include `model_package_details`, and `model_overview` is composed of
    # the `model_creator` and `model_artifact` properties. For more
    # information about the model package model card schema, see [Model
    # package model card schema][1]. For more information about the model
    # card associated with the model package, see [View the Details of a
    # Model Version][2].
    #
    #
    #
    # [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/model-registry-details.html#model-card-schema
    # [2]: https://docs.aws.amazon.com/sagemaker/latest/dg/model-registry-details.html
    #
    # @!attribute [rw] model_card_content
    #   The content of the model card. The content must follow the schema
    #   described in [Model Package Model Card Schema][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/model-registry-details.html#model-card-schema
    #   @return [String]
    #
    # @!attribute [rw] model_card_status
    #   The approval status of the model card within your organization.
    #   Different organizations might have different criteria for model card
    #   review and approval.
    #
    #   * `Draft`: The model card is a work in progress.
    #
    #   * `PendingReview`: The model card is pending review.
    #
    #   * `Approved`: The model card is approved.
    #
    #   * `Archived`: The model card is archived. No more updates can be
    #     made to the model card content. If you try to update the model
    #     card content, you will receive the message `Model Card is in
    #     Archived state`.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ModelPackageModelCard AWS API Documentation
    #
    class ModelPackageModelCard < Struct.new(
      :model_card_content,
      :model_card_status)
      SENSITIVE = [:model_card_content]
      include Aws::Structure
    end

    # An optional Key Management Service key to encrypt, decrypt, and
    # re-encrypt model package information for regulated workloads with
    # highly sensitive data.
    #
    # @!attribute [rw] kms_key_id
    #   The KMS Key ID (`KMSKeyId`) used for encryption of model package
    #   information.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ModelPackageSecurityConfig AWS API Documentation
    #
    class ModelPackageSecurityConfig < Struct.new(
      :kms_key_id)
      SENSITIVE = []
      include Aws::Structure
    end

    # Specifies the validation and image scan statuses of the model package.
    #
    # @!attribute [rw] validation_statuses
    #   The validation status of the model package.
    #   @return [Array<Types::ModelPackageStatusItem>]
    #
    # @!attribute [rw] image_scan_statuses
    #   The status of the scan of the Docker image container for the model
    #   package.
    #   @return [Array<Types::ModelPackageStatusItem>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ModelPackageStatusDetails AWS API Documentation
    #
    class ModelPackageStatusDetails < Struct.new(
      :validation_statuses,
      :image_scan_statuses)
      SENSITIVE = []
      include Aws::Structure
    end

    # Represents the overall status of a model package.
    #
    # @!attribute [rw] name
    #   The name of the model package for which the overall status is being
    #   reported.
    #   @return [String]
    #
    # @!attribute [rw] status
    #   The current status.
    #   @return [String]
    #
    # @!attribute [rw] failure_reason
    #   if the overall status is `Failed`, the reason for the failure.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ModelPackageStatusItem AWS API Documentation
    #
    class ModelPackageStatusItem < Struct.new(
      :name,
      :status,
      :failure_reason)
      SENSITIVE = []
      include Aws::Structure
    end

    # Provides summary information about a model package.
    #
    # @!attribute [rw] model_package_name
    #   The name of the model package.
    #   @return [String]
    #
    # @!attribute [rw] model_package_group_name
    #   If the model package is a versioned model, the model group that the
    #   versioned model belongs to.
    #   @return [String]
    #
    # @!attribute [rw] model_package_version
    #   If the model package is a versioned model, the version of the model.
    #   @return [Integer]
    #
    # @!attribute [rw] model_package_arn
    #   The Amazon Resource Name (ARN) of the model package.
    #   @return [String]
    #
    # @!attribute [rw] model_package_description
    #   A brief description of the model package.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   A timestamp that shows when the model package was created.
    #   @return [Time]
    #
    # @!attribute [rw] model_package_status
    #   The overall status of the model package.
    #   @return [String]
    #
    # @!attribute [rw] model_approval_status
    #   The approval status of the model. This can be one of the following
    #   values.
    #
    #   * `APPROVED` - The model is approved
    #
    #   * `REJECTED` - The model is rejected.
    #
    #   * `PENDING_MANUAL_APPROVAL` - The model is waiting for manual
    #     approval.
    #   @return [String]
    #
    # @!attribute [rw] model_life_cycle
    #   A structure describing the current state of the model in its life
    #   cycle.
    #   @return [Types::ModelLifeCycle]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ModelPackageSummary AWS API Documentation
    #
    class ModelPackageSummary < Struct.new(
      :model_package_name,
      :model_package_group_name,
      :model_package_version,
      :model_package_arn,
      :model_package_description,
      :creation_time,
      :model_package_status,
      :model_approval_status,
      :model_life_cycle)
      SENSITIVE = []
      include Aws::Structure
    end

    # Contains data, such as the inputs and targeted instance types that are
    # used in the process of validating the model package.
    #
    # The data provided in the validation profile is made available to your
    # buyers on Amazon Web Services Marketplace.
    #
    # @!attribute [rw] profile_name
    #   The name of the profile for the model package.
    #   @return [String]
    #
    # @!attribute [rw] transform_job_definition
    #   The `TransformJobDefinition` object that describes the transform job
    #   used for the validation of the model package.
    #   @return [Types::TransformJobDefinition]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ModelPackageValidationProfile AWS API Documentation
    #
    class ModelPackageValidationProfile < Struct.new(
      :profile_name,
      :transform_job_definition)
      SENSITIVE = []
      include Aws::Structure
    end

    # Specifies batch transform jobs that SageMaker runs to validate your
    # model package.
    #
    # @!attribute [rw] validation_role
    #   The IAM roles to be used for the validation of the model package.
    #   @return [String]
    #
    # @!attribute [rw] validation_profiles
    #   An array of `ModelPackageValidationProfile` objects, each of which
    #   specifies a batch transform job that SageMaker runs to validate your
    #   model package.
    #   @return [Array<Types::ModelPackageValidationProfile>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ModelPackageValidationSpecification AWS API Documentation
    #
    class ModelPackageValidationSpecification < Struct.new(
      :validation_role,
      :validation_profiles)
      SENSITIVE = []
      include Aws::Structure
    end

    # Model quality statistics and constraints.
    #
    # @!attribute [rw] statistics
    #   Model quality statistics.
    #   @return [Types::MetricsSource]
    #
    # @!attribute [rw] constraints
    #   Model quality constraints.
    #   @return [Types::MetricsSource]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ModelQuality AWS API Documentation
    #
    class ModelQuality < Struct.new(
      :statistics,
      :constraints)
      SENSITIVE = []
      include Aws::Structure
    end

    # Container image configuration object for the monitoring job.
    #
    # @!attribute [rw] image_uri
    #   The address of the container image that the monitoring job runs.
    #   @return [String]
    #
    # @!attribute [rw] container_entrypoint
    #   Specifies the entrypoint for a container that the monitoring job
    #   runs.
    #   @return [Array<String>]
    #
    # @!attribute [rw] container_arguments
    #   An array of arguments for the container used to run the monitoring
    #   job.
    #   @return [Array<String>]
    #
    # @!attribute [rw] record_preprocessor_source_uri
    #   An Amazon S3 URI to a script that is called per row prior to running
    #   analysis. It can base64 decode the payload and convert it into a
    #   flattened JSON so that the built-in container can use the converted
    #   data. Applicable only for the built-in (first party) containers.
    #   @return [String]
    #
    # @!attribute [rw] post_analytics_processor_source_uri
    #   An Amazon S3 URI to a script that is called after analysis has been
    #   performed. Applicable only for the built-in (first party)
    #   containers.
    #   @return [String]
    #
    # @!attribute [rw] problem_type
    #   The machine learning problem type of the model that the monitoring
    #   job monitors.
    #   @return [String]
    #
    # @!attribute [rw] environment
    #   Sets the environment variables in the container that the monitoring
    #   job runs.
    #   @return [Hash<String,String>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ModelQualityAppSpecification AWS API Documentation
    #
    class ModelQualityAppSpecification < Struct.new(
      :image_uri,
      :container_entrypoint,
      :container_arguments,
      :record_preprocessor_source_uri,
      :post_analytics_processor_source_uri,
      :problem_type,
      :environment)
      SENSITIVE = []
      include Aws::Structure
    end

    # Configuration for monitoring constraints and monitoring statistics.
    # These baseline resources are compared against the results of the
    # current job from the series of jobs scheduled to collect data
    # periodically.
    #
    # @!attribute [rw] baselining_job_name
    #   The name of the job that performs baselining for the monitoring job.
    #   @return [String]
    #
    # @!attribute [rw] constraints_resource
    #   The constraints resource for a monitoring job.
    #   @return [Types::MonitoringConstraintsResource]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ModelQualityBaselineConfig AWS API Documentation
    #
    class ModelQualityBaselineConfig < Struct.new(
      :baselining_job_name,
      :constraints_resource)
      SENSITIVE = []
      include Aws::Structure
    end

    # The input for the model quality monitoring job. Currently endpoints
    # are supported for input for model quality monitoring jobs.
    #
    # @!attribute [rw] endpoint_input
    #   Input object for the endpoint
    #   @return [Types::EndpointInput]
    #
    # @!attribute [rw] batch_transform_input
    #   Input object for the batch transform job.
    #   @return [Types::BatchTransformInput]
    #
    # @!attribute [rw] ground_truth_s3_input
    #   The ground truth label provided for the model.
    #   @return [Types::MonitoringGroundTruthS3Input]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ModelQualityJobInput AWS API Documentation
    #
    class ModelQualityJobInput < Struct.new(
      :endpoint_input,
      :batch_transform_input,
      :ground_truth_s3_input)
      SENSITIVE = []
      include Aws::Structure
    end

    # Settings for the model quantization technique that's applied by a
    # model optimization job.
    #
    # @!attribute [rw] image
    #   The URI of an LMI DLC in Amazon ECR. SageMaker uses this image to
    #   run the optimization.
    #   @return [String]
    #
    # @!attribute [rw] override_environment
    #   Environment variables that override the default ones in the model
    #   container.
    #   @return [Hash<String,String>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ModelQuantizationConfig AWS API Documentation
    #
    class ModelQuantizationConfig < Struct.new(
      :image,
      :override_environment)
      SENSITIVE = []
      include Aws::Structure
    end

    # The model registry settings for the SageMaker Canvas application.
    #
    # @!attribute [rw] status
    #   Describes whether the integration to the model registry is enabled
    #   or disabled in the Canvas application.
    #   @return [String]
    #
    # @!attribute [rw] cross_account_model_register_role_arn
    #   The Amazon Resource Name (ARN) of the SageMaker model registry
    #   account. Required only to register model versions created by a
    #   different SageMaker Canvas Amazon Web Services account than the
    #   Amazon Web Services account in which SageMaker model registry is set
    #   up.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ModelRegisterSettings AWS API Documentation
    #
    class ModelRegisterSettings < Struct.new(
      :status,
      :cross_account_model_register_role_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # Settings for the model sharding technique that's applied by a model
    # optimization job.
    #
    # @!attribute [rw] image
    #   The URI of an LMI DLC in Amazon ECR. SageMaker uses this image to
    #   run the optimization.
    #   @return [String]
    #
    # @!attribute [rw] override_environment
    #   Environment variables that override the default ones in the model
    #   container.
    #   @return [Hash<String,String>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ModelShardingConfig AWS API Documentation
    #
    class ModelShardingConfig < Struct.new(
      :image,
      :override_environment)
      SENSITIVE = []
      include Aws::Structure
    end

    # Metadata for Model steps.
    #
    # @!attribute [rw] arn
    #   The Amazon Resource Name (ARN) of the created model.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ModelStepMetadata AWS API Documentation
    #
    class ModelStepMetadata < Struct.new(
      :arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # Provides summary information about a model.
    #
    # @!attribute [rw] model_name
    #   The name of the model that you want a summary for.
    #   @return [String]
    #
    # @!attribute [rw] model_arn
    #   The Amazon Resource Name (ARN) of the model.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   A timestamp that indicates when the model was created.
    #   @return [Time]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ModelSummary AWS API Documentation
    #
    class ModelSummary < Struct.new(
      :model_name,
      :model_arn,
      :creation_time)
      SENSITIVE = []
      include Aws::Structure
    end

    # Contains information about the deployment options of a model.
    #
    # @!attribute [rw] model_name
    #   The name of the Amazon SageMaker Model entity.
    #   @return [String]
    #
    # @!attribute [rw] variant_name
    #   The name of the variant.
    #   @return [String]
    #
    # @!attribute [rw] infrastructure_config
    #   The configuration for the infrastructure that the model will be
    #   deployed to.
    #   @return [Types::ModelInfrastructureConfig]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ModelVariantConfig AWS API Documentation
    #
    class ModelVariantConfig < Struct.new(
      :model_name,
      :variant_name,
      :infrastructure_config)
      SENSITIVE = []
      include Aws::Structure
    end

    # Summary of the deployment configuration of a model.
    #
    # @!attribute [rw] model_name
    #   The name of the Amazon SageMaker Model entity.
    #   @return [String]
    #
    # @!attribute [rw] variant_name
    #   The name of the variant.
    #   @return [String]
    #
    # @!attribute [rw] infrastructure_config
    #   The configuration of the infrastructure that the model has been
    #   deployed to.
    #   @return [Types::ModelInfrastructureConfig]
    #
    # @!attribute [rw] status
    #   The status of deployment for the model variant on the hosted
    #   inference endpoint.
    #
    #   * `Creating` - Amazon SageMaker is preparing the model variant on
    #     the hosted inference endpoint.
    #
    #   * `InService` - The model variant is running on the hosted inference
    #     endpoint.
    #
    #   * `Updating` - Amazon SageMaker is updating the model variant on the
    #     hosted inference endpoint.
    #
    #   * `Deleting` - Amazon SageMaker is deleting the model variant on the
    #     hosted inference endpoint.
    #
    #   * `Deleted` - The model variant has been deleted on the hosted
    #     inference endpoint. This can only happen after stopping the
    #     experiment.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ModelVariantConfigSummary AWS API Documentation
    #
    class ModelVariantConfigSummary < Struct.new(
      :model_name,
      :variant_name,
      :infrastructure_config,
      :status)
      SENSITIVE = []
      include Aws::Structure
    end

    # A list of alert actions taken in response to an alert going into
    # `InAlert` status.
    #
    # @!attribute [rw] model_dashboard_indicator
    #   An alert action taken to light up an icon on the Model Dashboard
    #   when an alert goes into `InAlert` status.
    #   @return [Types::ModelDashboardIndicatorAction]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/MonitoringAlertActions AWS API Documentation
    #
    class MonitoringAlertActions < Struct.new(
      :model_dashboard_indicator)
      SENSITIVE = []
      include Aws::Structure
    end

    # Provides summary information of an alert's history.
    #
    # @!attribute [rw] monitoring_schedule_name
    #   The name of a monitoring schedule.
    #   @return [String]
    #
    # @!attribute [rw] monitoring_alert_name
    #   The name of a monitoring alert.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   A timestamp that indicates when the first alert transition occurred
    #   in an alert history. An alert transition can be from status
    #   `InAlert` to `OK`, or from `OK` to `InAlert`.
    #   @return [Time]
    #
    # @!attribute [rw] alert_status
    #   The current alert status of an alert.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/MonitoringAlertHistorySummary AWS API Documentation
    #
    class MonitoringAlertHistorySummary < Struct.new(
      :monitoring_schedule_name,
      :monitoring_alert_name,
      :creation_time,
      :alert_status)
      SENSITIVE = []
      include Aws::Structure
    end

    # Provides summary information about a monitor alert.
    #
    # @!attribute [rw] monitoring_alert_name
    #   The name of a monitoring alert.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   A timestamp that indicates when a monitor alert was created.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time
    #   A timestamp that indicates when a monitor alert was last updated.
    #   @return [Time]
    #
    # @!attribute [rw] alert_status
    #   The current status of an alert.
    #   @return [String]
    #
    # @!attribute [rw] datapoints_to_alert
    #   Within `EvaluationPeriod`, how many execution failures will raise an
    #   alert.
    #   @return [Integer]
    #
    # @!attribute [rw] evaluation_period
    #   The number of most recent monitoring executions to consider when
    #   evaluating alert status.
    #   @return [Integer]
    #
    # @!attribute [rw] actions
    #   A list of alert actions taken in response to an alert going into
    #   `InAlert` status.
    #   @return [Types::MonitoringAlertActions]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/MonitoringAlertSummary AWS API Documentation
    #
    class MonitoringAlertSummary < Struct.new(
      :monitoring_alert_name,
      :creation_time,
      :last_modified_time,
      :alert_status,
      :datapoints_to_alert,
      :evaluation_period,
      :actions)
      SENSITIVE = []
      include Aws::Structure
    end

    # Container image configuration object for the monitoring job.
    #
    # @!attribute [rw] image_uri
    #   The container image to be run by the monitoring job.
    #   @return [String]
    #
    # @!attribute [rw] container_entrypoint
    #   Specifies the entrypoint for a container used to run the monitoring
    #   job.
    #   @return [Array<String>]
    #
    # @!attribute [rw] container_arguments
    #   An array of arguments for the container used to run the monitoring
    #   job.
    #   @return [Array<String>]
    #
    # @!attribute [rw] record_preprocessor_source_uri
    #   An Amazon S3 URI to a script that is called per row prior to running
    #   analysis. It can base64 decode the payload and convert it into a
    #   flattened JSON so that the built-in container can use the converted
    #   data. Applicable only for the built-in (first party) containers.
    #   @return [String]
    #
    # @!attribute [rw] post_analytics_processor_source_uri
    #   An Amazon S3 URI to a script that is called after analysis has been
    #   performed. Applicable only for the built-in (first party)
    #   containers.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/MonitoringAppSpecification AWS API Documentation
    #
    class MonitoringAppSpecification < Struct.new(
      :image_uri,
      :container_entrypoint,
      :container_arguments,
      :record_preprocessor_source_uri,
      :post_analytics_processor_source_uri)
      SENSITIVE = []
      include Aws::Structure
    end

    # Configuration for monitoring constraints and monitoring statistics.
    # These baseline resources are compared against the results of the
    # current job from the series of jobs scheduled to collect data
    # periodically.
    #
    # @!attribute [rw] baselining_job_name
    #   The name of the job that performs baselining for the monitoring job.
    #   @return [String]
    #
    # @!attribute [rw] constraints_resource
    #   The baseline constraint file in Amazon S3 that the current
    #   monitoring job should validated against.
    #   @return [Types::MonitoringConstraintsResource]
    #
    # @!attribute [rw] statistics_resource
    #   The baseline statistics file in Amazon S3 that the current
    #   monitoring job should be validated against.
    #   @return [Types::MonitoringStatisticsResource]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/MonitoringBaselineConfig AWS API Documentation
    #
    class MonitoringBaselineConfig < Struct.new(
      :baselining_job_name,
      :constraints_resource,
      :statistics_resource)
      SENSITIVE = []
      include Aws::Structure
    end

    # Configuration for the cluster used to run model monitoring jobs.
    #
    # @!attribute [rw] instance_count
    #   The number of ML compute instances to use in the model monitoring
    #   job. For distributed processing jobs, specify a value greater than
    #   1. The default value is 1.
    #   @return [Integer]
    #
    # @!attribute [rw] instance_type
    #   The ML compute instance type for the processing job.
    #   @return [String]
    #
    # @!attribute [rw] volume_size_in_gb
    #   The size of the ML storage volume, in gigabytes, that you want to
    #   provision. You must specify sufficient ML storage for your scenario.
    #   @return [Integer]
    #
    # @!attribute [rw] volume_kms_key_id
    #   The Key Management Service (KMS) key that Amazon SageMaker AI uses
    #   to encrypt data on the storage volume attached to the ML compute
    #   instance(s) that run the model monitoring job.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/MonitoringClusterConfig AWS API Documentation
    #
    class MonitoringClusterConfig < Struct.new(
      :instance_count,
      :instance_type,
      :volume_size_in_gb,
      :volume_kms_key_id)
      SENSITIVE = []
      include Aws::Structure
    end

    # The constraints resource for a monitoring job.
    #
    # @!attribute [rw] s3_uri
    #   The Amazon S3 URI for the constraints resource.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/MonitoringConstraintsResource AWS API Documentation
    #
    class MonitoringConstraintsResource < Struct.new(
      :s3_uri)
      SENSITIVE = []
      include Aws::Structure
    end

    # Represents the CSV dataset format used when running a monitoring job.
    #
    # @!attribute [rw] header
    #   Indicates if the CSV data has a header.
    #   @return [Boolean]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/MonitoringCsvDatasetFormat AWS API Documentation
    #
    class MonitoringCsvDatasetFormat < Struct.new(
      :header)
      SENSITIVE = []
      include Aws::Structure
    end

    # Represents the dataset format used when running a monitoring job.
    #
    # @!attribute [rw] csv
    #   The CSV dataset used in the monitoring job.
    #   @return [Types::MonitoringCsvDatasetFormat]
    #
    # @!attribute [rw] json
    #   The JSON dataset used in the monitoring job
    #   @return [Types::MonitoringJsonDatasetFormat]
    #
    # @!attribute [rw] parquet
    #   The Parquet dataset used in the monitoring job
    #   @return [Types::MonitoringParquetDatasetFormat]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/MonitoringDatasetFormat AWS API Documentation
    #
    class MonitoringDatasetFormat < Struct.new(
      :csv,
      :json,
      :parquet)
      SENSITIVE = []
      include Aws::Structure
    end

    # Summary of information about the last monitoring job to run.
    #
    # @!attribute [rw] monitoring_schedule_name
    #   The name of the monitoring schedule.
    #   @return [String]
    #
    # @!attribute [rw] scheduled_time
    #   The time the monitoring job was scheduled.
    #   @return [Time]
    #
    # @!attribute [rw] creation_time
    #   The time at which the monitoring job was created.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time
    #   A timestamp that indicates the last time the monitoring job was
    #   modified.
    #   @return [Time]
    #
    # @!attribute [rw] monitoring_execution_status
    #   The status of the monitoring job.
    #   @return [String]
    #
    # @!attribute [rw] processing_job_arn
    #   The Amazon Resource Name (ARN) of the monitoring job.
    #   @return [String]
    #
    # @!attribute [rw] endpoint_name
    #   The name of the endpoint used to run the monitoring job.
    #   @return [String]
    #
    # @!attribute [rw] failure_reason
    #   Contains the reason a monitoring job failed, if it failed.
    #   @return [String]
    #
    # @!attribute [rw] monitoring_job_definition_name
    #   The name of the monitoring job.
    #   @return [String]
    #
    # @!attribute [rw] monitoring_type
    #   The type of the monitoring job.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/MonitoringExecutionSummary AWS API Documentation
    #
    class MonitoringExecutionSummary < Struct.new(
      :monitoring_schedule_name,
      :scheduled_time,
      :creation_time,
      :last_modified_time,
      :monitoring_execution_status,
      :processing_job_arn,
      :endpoint_name,
      :failure_reason,
      :monitoring_job_definition_name,
      :monitoring_type)
      SENSITIVE = []
      include Aws::Structure
    end

    # The ground truth labels for the dataset used for the monitoring job.
    #
    # @!attribute [rw] s3_uri
    #   The address of the Amazon S3 location of the ground truth labels.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/MonitoringGroundTruthS3Input AWS API Documentation
    #
    class MonitoringGroundTruthS3Input < Struct.new(
      :s3_uri)
      SENSITIVE = []
      include Aws::Structure
    end

    # The inputs for a monitoring job.
    #
    # @!attribute [rw] endpoint_input
    #   The endpoint for a monitoring job.
    #   @return [Types::EndpointInput]
    #
    # @!attribute [rw] batch_transform_input
    #   Input object for the batch transform job.
    #   @return [Types::BatchTransformInput]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/MonitoringInput AWS API Documentation
    #
    class MonitoringInput < Struct.new(
      :endpoint_input,
      :batch_transform_input)
      SENSITIVE = []
      include Aws::Structure
    end

    # Defines the monitoring job.
    #
    # @!attribute [rw] baseline_config
    #   Baseline configuration used to validate that the data conforms to
    #   the specified constraints and statistics
    #   @return [Types::MonitoringBaselineConfig]
    #
    # @!attribute [rw] monitoring_inputs
    #   The array of inputs for the monitoring job. Currently we support
    #   monitoring an Amazon SageMaker AI Endpoint.
    #   @return [Array<Types::MonitoringInput>]
    #
    # @!attribute [rw] monitoring_output_config
    #   The array of outputs from the monitoring job to be uploaded to
    #   Amazon S3.
    #   @return [Types::MonitoringOutputConfig]
    #
    # @!attribute [rw] monitoring_resources
    #   Identifies the resources, ML compute instances, and ML storage
    #   volumes to deploy for a monitoring job. In distributed processing,
    #   you specify more than one instance.
    #   @return [Types::MonitoringResources]
    #
    # @!attribute [rw] monitoring_app_specification
    #   Configures the monitoring job to run a specified Docker container
    #   image.
    #   @return [Types::MonitoringAppSpecification]
    #
    # @!attribute [rw] stopping_condition
    #   Specifies a time limit for how long the monitoring job is allowed to
    #   run.
    #   @return [Types::MonitoringStoppingCondition]
    #
    # @!attribute [rw] environment
    #   Sets the environment variables in the Docker container.
    #   @return [Hash<String,String>]
    #
    # @!attribute [rw] network_config
    #   Specifies networking options for an monitoring job.
    #   @return [Types::NetworkConfig]
    #
    # @!attribute [rw] role_arn
    #   The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker
    #   AI can assume to perform tasks on your behalf.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/MonitoringJobDefinition AWS API Documentation
    #
    class MonitoringJobDefinition < Struct.new(
      :baseline_config,
      :monitoring_inputs,
      :monitoring_output_config,
      :monitoring_resources,
      :monitoring_app_specification,
      :stopping_condition,
      :environment,
      :network_config,
      :role_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # Summary information about a monitoring job.
    #
    # @!attribute [rw] monitoring_job_definition_name
    #   The name of the monitoring job.
    #   @return [String]
    #
    # @!attribute [rw] monitoring_job_definition_arn
    #   The Amazon Resource Name (ARN) of the monitoring job.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   The time that the monitoring job was created.
    #   @return [Time]
    #
    # @!attribute [rw] endpoint_name
    #   The name of the endpoint that the job monitors.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/MonitoringJobDefinitionSummary AWS API Documentation
    #
    class MonitoringJobDefinitionSummary < Struct.new(
      :monitoring_job_definition_name,
      :monitoring_job_definition_arn,
      :creation_time,
      :endpoint_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # Represents the JSON dataset format used when running a monitoring job.
    #
    # @!attribute [rw] line
    #   Indicates if the file should be read as a JSON object per line.
    #   @return [Boolean]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/MonitoringJsonDatasetFormat AWS API Documentation
    #
    class MonitoringJsonDatasetFormat < Struct.new(
      :line)
      SENSITIVE = []
      include Aws::Structure
    end

    # The networking configuration for the monitoring job.
    #
    # @!attribute [rw] enable_inter_container_traffic_encryption
    #   Whether to encrypt all communications between the instances used for
    #   the monitoring jobs. Choose `True` to encrypt communications.
    #   Encryption provides greater security for distributed jobs, but the
    #   processing might take longer.
    #   @return [Boolean]
    #
    # @!attribute [rw] enable_network_isolation
    #   Whether to allow inbound and outbound network calls to and from the
    #   containers used for the monitoring job.
    #   @return [Boolean]
    #
    # @!attribute [rw] vpc_config
    #   Specifies an Amazon Virtual Private Cloud (VPC) that your SageMaker
    #   jobs, hosted models, and compute resources have access to. You can
    #   control access to and from your resources by configuring a VPC. For
    #   more information, see [Give SageMaker Access to Resources in your
    #   Amazon VPC][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/infrastructure-give-access.html
    #   @return [Types::VpcConfig]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/MonitoringNetworkConfig AWS API Documentation
    #
    class MonitoringNetworkConfig < Struct.new(
      :enable_inter_container_traffic_encryption,
      :enable_network_isolation,
      :vpc_config)
      SENSITIVE = []
      include Aws::Structure
    end

    # The output object for a monitoring job.
    #
    # @!attribute [rw] s3_output
    #   The Amazon S3 storage location where the results of a monitoring job
    #   are saved.
    #   @return [Types::MonitoringS3Output]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/MonitoringOutput AWS API Documentation
    #
    class MonitoringOutput < Struct.new(
      :s3_output)
      SENSITIVE = []
      include Aws::Structure
    end

    # The output configuration for monitoring jobs.
    #
    # @!attribute [rw] monitoring_outputs
    #   Monitoring outputs for monitoring jobs. This is where the output of
    #   the periodic monitoring jobs is uploaded.
    #   @return [Array<Types::MonitoringOutput>]
    #
    # @!attribute [rw] kms_key_id
    #   The Key Management Service (KMS) key that Amazon SageMaker AI uses
    #   to encrypt the model artifacts at rest using Amazon S3 server-side
    #   encryption.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/MonitoringOutputConfig AWS API Documentation
    #
    class MonitoringOutputConfig < Struct.new(
      :monitoring_outputs,
      :kms_key_id)
      SENSITIVE = []
      include Aws::Structure
    end

    # Represents the Parquet dataset format used when running a monitoring
    # job.
    #
    # @api private
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/MonitoringParquetDatasetFormat AWS API Documentation
    #
    class MonitoringParquetDatasetFormat < Aws::EmptyStructure; end

    # Identifies the resources to deploy for a monitoring job.
    #
    # @!attribute [rw] cluster_config
    #   The configuration for the cluster resources used to run the
    #   processing job.
    #   @return [Types::MonitoringClusterConfig]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/MonitoringResources AWS API Documentation
    #
    class MonitoringResources < Struct.new(
      :cluster_config)
      SENSITIVE = []
      include Aws::Structure
    end

    # Information about where and how you want to store the results of a
    # monitoring job.
    #
    # @!attribute [rw] s3_uri
    #   A URI that identifies the Amazon S3 storage location where Amazon
    #   SageMaker AI saves the results of a monitoring job.
    #   @return [String]
    #
    # @!attribute [rw] local_path
    #   The local path to the Amazon S3 storage location where Amazon
    #   SageMaker AI saves the results of a monitoring job. LocalPath is an
    #   absolute path for the output data.
    #   @return [String]
    #
    # @!attribute [rw] s3_upload_mode
    #   Whether to upload the results of the monitoring job continuously or
    #   after the job completes.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/MonitoringS3Output AWS API Documentation
    #
    class MonitoringS3Output < Struct.new(
      :s3_uri,
      :local_path,
      :s3_upload_mode)
      SENSITIVE = []
      include Aws::Structure
    end

    # A schedule for a model monitoring job. For information about model
    # monitor, see [Amazon SageMaker Model Monitor][1].
    #
    #
    #
    # [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/model-monitor.html
    #
    # @!attribute [rw] monitoring_schedule_arn
    #   The Amazon Resource Name (ARN) of the monitoring schedule.
    #   @return [String]
    #
    # @!attribute [rw] monitoring_schedule_name
    #   The name of the monitoring schedule.
    #   @return [String]
    #
    # @!attribute [rw] monitoring_schedule_status
    #   The status of the monitoring schedule. This can be one of the
    #   following values.
    #
    #   * `PENDING` - The schedule is pending being created.
    #
    #   * `FAILED` - The schedule failed.
    #
    #   * `SCHEDULED` - The schedule was successfully created.
    #
    #   * `STOPPED` - The schedule was stopped.
    #   @return [String]
    #
    # @!attribute [rw] monitoring_type
    #   The type of the monitoring job definition to schedule.
    #   @return [String]
    #
    # @!attribute [rw] failure_reason
    #   If the monitoring schedule failed, the reason it failed.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   The time that the monitoring schedule was created.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time
    #   The last time the monitoring schedule was changed.
    #   @return [Time]
    #
    # @!attribute [rw] monitoring_schedule_config
    #   Configures the monitoring schedule and defines the monitoring job.
    #   @return [Types::MonitoringScheduleConfig]
    #
    # @!attribute [rw] endpoint_name
    #   The endpoint that hosts the model being monitored.
    #   @return [String]
    #
    # @!attribute [rw] last_monitoring_execution_summary
    #   Summary of information about the last monitoring job to run.
    #   @return [Types::MonitoringExecutionSummary]
    #
    # @!attribute [rw] tags
    #   A list of the tags associated with the monitoring schedlue. For more
    #   information, see [Tagging Amazon Web Services resources][1] in the
    #   *Amazon Web Services General Reference Guide*.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html
    #   @return [Array<Types::Tag>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/MonitoringSchedule AWS API Documentation
    #
    class MonitoringSchedule < Struct.new(
      :monitoring_schedule_arn,
      :monitoring_schedule_name,
      :monitoring_schedule_status,
      :monitoring_type,
      :failure_reason,
      :creation_time,
      :last_modified_time,
      :monitoring_schedule_config,
      :endpoint_name,
      :last_monitoring_execution_summary,
      :tags)
      SENSITIVE = []
      include Aws::Structure
    end

    # Configures the monitoring schedule and defines the monitoring job.
    #
    # @!attribute [rw] schedule_config
    #   Configures the monitoring schedule.
    #   @return [Types::ScheduleConfig]
    #
    # @!attribute [rw] monitoring_job_definition
    #   Defines the monitoring job.
    #   @return [Types::MonitoringJobDefinition]
    #
    # @!attribute [rw] monitoring_job_definition_name
    #   The name of the monitoring job definition to schedule.
    #   @return [String]
    #
    # @!attribute [rw] monitoring_type
    #   The type of the monitoring job definition to schedule.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/MonitoringScheduleConfig AWS API Documentation
    #
    class MonitoringScheduleConfig < Struct.new(
      :schedule_config,
      :monitoring_job_definition,
      :monitoring_job_definition_name,
      :monitoring_type)
      SENSITIVE = []
      include Aws::Structure
    end

    # Summarizes the monitoring schedule.
    #
    # @!attribute [rw] monitoring_schedule_name
    #   The name of the monitoring schedule.
    #   @return [String]
    #
    # @!attribute [rw] monitoring_schedule_arn
    #   The Amazon Resource Name (ARN) of the monitoring schedule.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   The creation time of the monitoring schedule.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time
    #   The last time the monitoring schedule was modified.
    #   @return [Time]
    #
    # @!attribute [rw] monitoring_schedule_status
    #   The status of the monitoring schedule.
    #   @return [String]
    #
    # @!attribute [rw] endpoint_name
    #   The name of the endpoint using the monitoring schedule.
    #   @return [String]
    #
    # @!attribute [rw] monitoring_job_definition_name
    #   The name of the monitoring job definition that the schedule is for.
    #   @return [String]
    #
    # @!attribute [rw] monitoring_type
    #   The type of the monitoring job definition that the schedule is for.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/MonitoringScheduleSummary AWS API Documentation
    #
    class MonitoringScheduleSummary < Struct.new(
      :monitoring_schedule_name,
      :monitoring_schedule_arn,
      :creation_time,
      :last_modified_time,
      :monitoring_schedule_status,
      :endpoint_name,
      :monitoring_job_definition_name,
      :monitoring_type)
      SENSITIVE = []
      include Aws::Structure
    end

    # The statistics resource for a monitoring job.
    #
    # @!attribute [rw] s3_uri
    #   The Amazon S3 URI for the statistics resource.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/MonitoringStatisticsResource AWS API Documentation
    #
    class MonitoringStatisticsResource < Struct.new(
      :s3_uri)
      SENSITIVE = []
      include Aws::Structure
    end

    # A time limit for how long the monitoring job is allowed to run before
    # stopping.
    #
    # @!attribute [rw] max_runtime_in_seconds
    #   The maximum runtime allowed in seconds.
    #
    #   <note markdown="1"> The `MaxRuntimeInSeconds` cannot exceed the frequency of the job.
    #   For data quality and model explainability, this can be up to 3600
    #   seconds for an hourly schedule. For model bias and model quality
    #   hourly schedules, this can be up to 1800 seconds.
    #
    #    </note>
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/MonitoringStoppingCondition AWS API Documentation
    #
    class MonitoringStoppingCondition < Struct.new(
      :max_runtime_in_seconds)
      SENSITIVE = []
      include Aws::Structure
    end

    # Specifies additional configuration for hosting multi-model endpoints.
    #
    # @!attribute [rw] model_cache_setting
    #   Whether to cache models for a multi-model endpoint. By default,
    #   multi-model endpoints cache models so that a model does not have to
    #   be loaded into memory each time it is invoked. Some use cases do not
    #   benefit from model caching. For example, if an endpoint hosts a
    #   large number of models that are each invoked infrequently, the
    #   endpoint might perform better if you disable model caching. To
    #   disable model caching, set the value of this parameter to
    #   `Disabled`.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/MultiModelConfig AWS API Documentation
    #
    class MultiModelConfig < Struct.new(
      :model_cache_setting)
      SENSITIVE = []
      include Aws::Structure
    end

    # The [VpcConfig][1] configuration object that specifies the VPC that
    # you want the compilation jobs to connect to. For more information on
    # controlling access to your Amazon S3 buckets used for compilation job,
    # see [Give Amazon SageMaker AI Compilation Jobs Access to Resources in
    # Your Amazon VPC][2].
    #
    #
    #
    # [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_VpcConfig.html
    # [2]: https://docs.aws.amazon.com/sagemaker/latest/dg/neo-vpc.html
    #
    # @!attribute [rw] security_group_ids
    #   The VPC security group IDs. IDs have the form of `sg-xxxxxxxx`.
    #   Specify the security groups for the VPC that is specified in the
    #   `Subnets` field.
    #   @return [Array<String>]
    #
    # @!attribute [rw] subnets
    #   The ID of the subnets in the VPC that you want to connect the
    #   compilation job to for accessing the model in Amazon S3.
    #   @return [Array<String>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/NeoVpcConfig AWS API Documentation
    #
    class NeoVpcConfig < Struct.new(
      :security_group_ids,
      :subnets)
      SENSITIVE = []
      include Aws::Structure
    end

    # A list of nested [Filter][1] objects. A resource must satisfy the
    # conditions of all filters to be included in the results returned from
    # the [Search][2] API.
    #
    # For example, to filter on a training job's `InputDataConfig` property
    # with a specific channel name and `S3Uri` prefix, define the following
    # filters:
    #
    # * `'{Name:"InputDataConfig.ChannelName", "Operator":"Equals",
    #   "Value":"train"}',`
    #
    # * `'{Name:"InputDataConfig.DataSource.S3DataSource.S3Uri",
    #   "Operator":"Contains", "Value":"mybucket/catdata"}'`
    #
    #
    #
    # [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_Filter.html
    # [2]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_Search.html
    #
    # @!attribute [rw] nested_property_name
    #   The name of the property to use in the nested filters. The value
    #   must match a listed property name, such as `InputDataConfig`.
    #   @return [String]
    #
    # @!attribute [rw] filters
    #   A list of filters. Each filter acts on a property. Filters must
    #   contain at least one `Filters` value. For example, a `NestedFilters`
    #   call might include a filter on the `PropertyName` parameter of the
    #   `InputDataConfig` property:
    #   `InputDataConfig.DataSource.S3DataSource.S3Uri`.
    #   @return [Array<Types::Filter>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/NestedFilters AWS API Documentation
    #
    class NestedFilters < Struct.new(
      :nested_property_name,
      :filters)
      SENSITIVE = []
      include Aws::Structure
    end

    # Networking options for a job, such as network traffic encryption
    # between containers, whether to allow inbound and outbound network
    # calls to and from containers, and the VPC subnets and security groups
    # to use for VPC-enabled jobs.
    #
    # @!attribute [rw] enable_inter_container_traffic_encryption
    #   Whether to encrypt all communications between distributed processing
    #   jobs. Choose `True` to encrypt communications. Encryption provides
    #   greater security for distributed processing jobs, but the processing
    #   might take longer.
    #   @return [Boolean]
    #
    # @!attribute [rw] enable_network_isolation
    #   Whether to allow inbound and outbound network calls to and from the
    #   containers used for the processing job.
    #   @return [Boolean]
    #
    # @!attribute [rw] vpc_config
    #   Specifies an Amazon Virtual Private Cloud (VPC) that your SageMaker
    #   jobs, hosted models, and compute resources have access to. You can
    #   control access to and from your resources by configuring a VPC. For
    #   more information, see [Give SageMaker Access to Resources in your
    #   Amazon VPC][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/infrastructure-give-access.html
    #   @return [Types::VpcConfig]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/NetworkConfig AWS API Documentation
    #
    class NetworkConfig < Struct.new(
      :enable_inter_container_traffic_encryption,
      :enable_network_isolation,
      :vpc_config)
      SENSITIVE = []
      include Aws::Structure
    end

    # Information about a node that was successfully added to the cluster.
    #
    # @!attribute [rw] node_logical_id
    #   A unique identifier assigned to the node that can be used to track
    #   its provisioning status through the `DescribeClusterNode` operation.
    #   @return [String]
    #
    # @!attribute [rw] instance_group_name
    #   The name of the instance group to which the node was added.
    #   @return [String]
    #
    # @!attribute [rw] status
    #   The current status of the node. Possible values include `Pending`,
    #   `Running`, `Failed`, `ShuttingDown`, `SystemUpdating`,
    #   `DeepHealthCheckInProgress`, and `NotFound`.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/NodeAdditionResult AWS API Documentation
    #
    class NodeAdditionResult < Struct.new(
      :node_logical_id,
      :instance_group_name,
      :status)
      SENSITIVE = []
      include Aws::Structure
    end

    # Provides a summary of a notebook instance lifecycle configuration.
    #
    # @!attribute [rw] notebook_instance_lifecycle_config_name
    #   The name of the lifecycle configuration.
    #   @return [String]
    #
    # @!attribute [rw] notebook_instance_lifecycle_config_arn
    #   The Amazon Resource Name (ARN) of the lifecycle configuration.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   A timestamp that tells when the lifecycle configuration was created.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time
    #   A timestamp that tells when the lifecycle configuration was last
    #   modified.
    #   @return [Time]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/NotebookInstanceLifecycleConfigSummary AWS API Documentation
    #
    class NotebookInstanceLifecycleConfigSummary < Struct.new(
      :notebook_instance_lifecycle_config_name,
      :notebook_instance_lifecycle_config_arn,
      :creation_time,
      :last_modified_time)
      SENSITIVE = []
      include Aws::Structure
    end

    # Contains the notebook instance lifecycle configuration script.
    #
    # Each lifecycle configuration script has a limit of 16384 characters.
    #
    # The value of the `$PATH` environment variable that is available to
    # both scripts is `/sbin:bin:/usr/sbin:/usr/bin`.
    #
    # View Amazon CloudWatch Logs for notebook instance lifecycle
    # configurations in log group `/aws/sagemaker/NotebookInstances` in log
    # stream `[notebook-instance-name]/[LifecycleConfigHook]`.
    #
    # Lifecycle configuration scripts cannot run for longer than 5 minutes.
    # If a script runs for longer than 5 minutes, it fails and the notebook
    # instance is not created or started.
    #
    # For information about notebook instance lifestyle configurations, see
    # [Step 2.1: (Optional) Customize a Notebook Instance][1].
    #
    #
    #
    # [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/notebook-lifecycle-config.html
    #
    # @!attribute [rw] content
    #   A base64-encoded string that contains a shell script for a notebook
    #   instance lifecycle configuration.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/NotebookInstanceLifecycleHook AWS API Documentation
    #
    class NotebookInstanceLifecycleHook < Struct.new(
      :content)
      SENSITIVE = []
      include Aws::Structure
    end

    # Provides summary information for an SageMaker AI notebook instance.
    #
    # @!attribute [rw] notebook_instance_name
    #   The name of the notebook instance that you want a summary for.
    #   @return [String]
    #
    # @!attribute [rw] notebook_instance_arn
    #   The Amazon Resource Name (ARN) of the notebook instance.
    #   @return [String]
    #
    # @!attribute [rw] notebook_instance_status
    #   The status of the notebook instance.
    #   @return [String]
    #
    # @!attribute [rw] url
    #   The URL that you use to connect to the Jupyter notebook running in
    #   your notebook instance.
    #   @return [String]
    #
    # @!attribute [rw] instance_type
    #   The type of ML compute instance that the notebook instance is
    #   running on.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   A timestamp that shows when the notebook instance was created.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time
    #   A timestamp that shows when the notebook instance was last modified.
    #   @return [Time]
    #
    # @!attribute [rw] notebook_instance_lifecycle_config_name
    #   The name of a notebook instance lifecycle configuration associated
    #   with this notebook instance.
    #
    #   For information about notebook instance lifestyle configurations,
    #   see [Step 2.1: (Optional) Customize a Notebook Instance][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/notebook-lifecycle-config.html
    #   @return [String]
    #
    # @!attribute [rw] default_code_repository
    #   The Git repository associated with the notebook instance as its
    #   default code repository. This can be either the name of a Git
    #   repository stored as a resource in your account, or the URL of a Git
    #   repository in [Amazon Web Services CodeCommit][1] or in any other
    #   Git repository. When you open a notebook instance, it opens in the
    #   directory that contains this repository. For more information, see
    #   [Associating Git Repositories with SageMaker AI Notebook
    #   Instances][2].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html
    #   [2]: https://docs.aws.amazon.com/sagemaker/latest/dg/nbi-git-repo.html
    #   @return [String]
    #
    # @!attribute [rw] additional_code_repositories
    #   An array of up to three Git repositories associated with the
    #   notebook instance. These can be either the names of Git repositories
    #   stored as resources in your account, or the URL of Git repositories
    #   in [Amazon Web Services CodeCommit][1] or in any other Git
    #   repository. These repositories are cloned at the same level as the
    #   default repository of your notebook instance. For more information,
    #   see [Associating Git Repositories with SageMaker AI Notebook
    #   Instances][2].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html
    #   [2]: https://docs.aws.amazon.com/sagemaker/latest/dg/nbi-git-repo.html
    #   @return [Array<String>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/NotebookInstanceSummary AWS API Documentation
    #
    class NotebookInstanceSummary < Struct.new(
      :notebook_instance_name,
      :notebook_instance_arn,
      :notebook_instance_status,
      :url,
      :instance_type,
      :creation_time,
      :last_modified_time,
      :notebook_instance_lifecycle_config_name,
      :default_code_repository,
      :additional_code_repositories)
      SENSITIVE = []
      include Aws::Structure
    end

    # Configures Amazon SNS notifications of available or expiring work
    # items for work teams.
    #
    # @!attribute [rw] notification_topic_arn
    #   The ARN for the Amazon SNS topic to which notifications should be
    #   published.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/NotificationConfiguration AWS API Documentation
    #
    class NotificationConfiguration < Struct.new(
      :notification_topic_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # Specifies the number of training jobs that this hyperparameter tuning
    # job launched, categorized by the status of their objective metric. The
    # objective metric status shows whether the final objective metric for
    # the training job has been evaluated by the tuning job and used in the
    # hyperparameter tuning process.
    #
    # @!attribute [rw] succeeded
    #   The number of training jobs whose final objective metric was
    #   evaluated by the hyperparameter tuning job and used in the
    #   hyperparameter tuning process.
    #   @return [Integer]
    #
    # @!attribute [rw] pending
    #   The number of training jobs that are in progress and pending
    #   evaluation of their final objective metric.
    #   @return [Integer]
    #
    # @!attribute [rw] failed
    #   The number of training jobs whose final objective metric was not
    #   evaluated and used in the hyperparameter tuning process. This
    #   typically occurs when the training job failed or did not emit an
    #   objective metric.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ObjectiveStatusCounters AWS API Documentation
    #
    class ObjectiveStatusCounters < Struct.new(
      :succeeded,
      :pending,
      :failed)
      SENSITIVE = []
      include Aws::Structure
    end

    # The configuration of an `OfflineStore`.
    #
    # Provide an `OfflineStoreConfig` in a request to `CreateFeatureGroup`
    # to create an `OfflineStore`.
    #
    # To encrypt an `OfflineStore` using at rest data encryption, specify
    # Amazon Web Services Key Management Service (KMS) key ID, or
    # `KMSKeyId`, in `S3StorageConfig`.
    #
    # @!attribute [rw] s3_storage_config
    #   The Amazon Simple Storage (Amazon S3) location of `OfflineStore`.
    #   @return [Types::S3StorageConfig]
    #
    # @!attribute [rw] disable_glue_table_creation
    #   Set to `True` to disable the automatic creation of an Amazon Web
    #   Services Glue table when configuring an `OfflineStore`. If set to
    #   `False`, Feature Store will name the `OfflineStore` Glue table
    #   following [Athena's naming recommendations][1].
    #
    #   The default value is `False`.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/athena/latest/ug/tables-databases-columns-names.html
    #   @return [Boolean]
    #
    # @!attribute [rw] data_catalog_config
    #   The meta data of the Glue table that is autogenerated when an
    #   `OfflineStore` is created.
    #   @return [Types::DataCatalogConfig]
    #
    # @!attribute [rw] table_format
    #   Format for the offline store table. Supported formats are Glue
    #   (Default) and [Apache Iceberg][1].
    #
    #
    #
    #   [1]: https://iceberg.apache.org/
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/OfflineStoreConfig AWS API Documentation
    #
    class OfflineStoreConfig < Struct.new(
      :s3_storage_config,
      :disable_glue_table_creation,
      :data_catalog_config,
      :table_format)
      SENSITIVE = []
      include Aws::Structure
    end

    # The status of `OfflineStore`.
    #
    # @!attribute [rw] status
    #   An `OfflineStore` status.
    #   @return [String]
    #
    # @!attribute [rw] blocked_reason
    #   The justification for why the OfflineStoreStatus is Blocked (if
    #   applicable).
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/OfflineStoreStatus AWS API Documentation
    #
    class OfflineStoreStatus < Struct.new(
      :status,
      :blocked_reason)
      SENSITIVE = []
      include Aws::Structure
    end

    # Use this parameter to configure your OIDC Identity Provider (IdP).
    #
    # @!attribute [rw] client_id
    #   The OIDC IdP client ID used to configure your private workforce.
    #   @return [String]
    #
    # @!attribute [rw] client_secret
    #   The OIDC IdP client secret used to configure your private workforce.
    #   @return [String]
    #
    # @!attribute [rw] issuer
    #   The OIDC IdP issuer used to configure your private workforce.
    #   @return [String]
    #
    # @!attribute [rw] authorization_endpoint
    #   The OIDC IdP authorization endpoint used to configure your private
    #   workforce.
    #   @return [String]
    #
    # @!attribute [rw] token_endpoint
    #   The OIDC IdP token endpoint used to configure your private
    #   workforce.
    #   @return [String]
    #
    # @!attribute [rw] user_info_endpoint
    #   The OIDC IdP user information endpoint used to configure your
    #   private workforce.
    #   @return [String]
    #
    # @!attribute [rw] logout_endpoint
    #   The OIDC IdP logout endpoint used to configure your private
    #   workforce.
    #   @return [String]
    #
    # @!attribute [rw] jwks_uri
    #   The OIDC IdP JSON Web Key Set (Jwks) URI used to configure your
    #   private workforce.
    #   @return [String]
    #
    # @!attribute [rw] scope
    #   An array of string identifiers used to refer to the specific pieces
    #   of user data or claims that the client application wants to access.
    #   @return [String]
    #
    # @!attribute [rw] authentication_request_extra_params
    #   A string to string map of identifiers specific to the custom
    #   identity provider (IdP) being used.
    #   @return [Hash<String,String>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/OidcConfig AWS API Documentation
    #
    class OidcConfig < Struct.new(
      :client_id,
      :client_secret,
      :issuer,
      :authorization_endpoint,
      :token_endpoint,
      :user_info_endpoint,
      :logout_endpoint,
      :jwks_uri,
      :scope,
      :authentication_request_extra_params)
      SENSITIVE = [:client_secret]
      include Aws::Structure
    end

    # Your OIDC IdP workforce configuration.
    #
    # @!attribute [rw] client_id
    #   The OIDC IdP client ID used to configure your private workforce.
    #   @return [String]
    #
    # @!attribute [rw] issuer
    #   The OIDC IdP issuer used to configure your private workforce.
    #   @return [String]
    #
    # @!attribute [rw] authorization_endpoint
    #   The OIDC IdP authorization endpoint used to configure your private
    #   workforce.
    #   @return [String]
    #
    # @!attribute [rw] token_endpoint
    #   The OIDC IdP token endpoint used to configure your private
    #   workforce.
    #   @return [String]
    #
    # @!attribute [rw] user_info_endpoint
    #   The OIDC IdP user information endpoint used to configure your
    #   private workforce.
    #   @return [String]
    #
    # @!attribute [rw] logout_endpoint
    #   The OIDC IdP logout endpoint used to configure your private
    #   workforce.
    #   @return [String]
    #
    # @!attribute [rw] jwks_uri
    #   The OIDC IdP JSON Web Key Set (Jwks) URI used to configure your
    #   private workforce.
    #   @return [String]
    #
    # @!attribute [rw] scope
    #   An array of string identifiers used to refer to the specific pieces
    #   of user data or claims that the client application wants to access.
    #   @return [String]
    #
    # @!attribute [rw] authentication_request_extra_params
    #   A string to string map of identifiers specific to the custom
    #   identity provider (IdP) being used.
    #   @return [Hash<String,String>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/OidcConfigForResponse AWS API Documentation
    #
    class OidcConfigForResponse < Struct.new(
      :client_id,
      :issuer,
      :authorization_endpoint,
      :token_endpoint,
      :user_info_endpoint,
      :logout_endpoint,
      :jwks_uri,
      :scope,
      :authentication_request_extra_params)
      SENSITIVE = []
      include Aws::Structure
    end

    # A list of user groups that exist in your OIDC Identity Provider (IdP).
    # One to ten groups can be used to create a single private work team.
    # When you add a user group to the list of `Groups`, you can add that
    # user group to one or more private work teams. If you add a user group
    # to a private work team, all workers in that user group are added to
    # the work team.
    #
    # @!attribute [rw] groups
    #   A list of comma seperated strings that identifies user groups in
    #   your OIDC IdP. Each user group is made up of a group of private
    #   workers.
    #   @return [Array<String>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/OidcMemberDefinition AWS API Documentation
    #
    class OidcMemberDefinition < Struct.new(
      :groups)
      SENSITIVE = []
      include Aws::Structure
    end

    # Use this to specify the Amazon Web Services Key Management Service
    # (KMS) Key ID, or `KMSKeyId`, for at rest data encryption. You can turn
    # `OnlineStore` on or off by specifying the `EnableOnlineStore` flag at
    # General Assembly.
    #
    # The default value is `False`.
    #
    # @!attribute [rw] security_config
    #   Use to specify KMS Key ID (`KMSKeyId`) for at-rest encryption of
    #   your `OnlineStore`.
    #   @return [Types::OnlineStoreSecurityConfig]
    #
    # @!attribute [rw] enable_online_store
    #   Turn `OnlineStore` off by specifying `False` for the
    #   `EnableOnlineStore` flag. Turn `OnlineStore` on by specifying `True`
    #   for the `EnableOnlineStore` flag.
    #
    #   The default value is `False`.
    #   @return [Boolean]
    #
    # @!attribute [rw] ttl_duration
    #   Time to live duration, where the record is hard deleted after the
    #   expiration time is reached; `ExpiresAt` = `EventTime` +
    #   `TtlDuration`. For information on HardDelete, see the
    #   [DeleteRecord][1] API in the Amazon SageMaker API Reference guide.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_feature_store_DeleteRecord.html
    #   @return [Types::TtlDuration]
    #
    # @!attribute [rw] storage_type
    #   Option for different tiers of low latency storage for real-time data
    #   retrieval.
    #
    #   * `Standard`: A managed low latency data store for feature groups.
    #
    #   * `InMemory`: A managed data store for feature groups that supports
    #     very low latency retrieval.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/OnlineStoreConfig AWS API Documentation
    #
    class OnlineStoreConfig < Struct.new(
      :security_config,
      :enable_online_store,
      :ttl_duration,
      :storage_type)
      SENSITIVE = []
      include Aws::Structure
    end

    # Updates the feature group online store configuration.
    #
    # @!attribute [rw] ttl_duration
    #   Time to live duration, where the record is hard deleted after the
    #   expiration time is reached; `ExpiresAt` = `EventTime` +
    #   `TtlDuration`. For information on HardDelete, see the
    #   [DeleteRecord][1] API in the Amazon SageMaker API Reference guide.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_feature_store_DeleteRecord.html
    #   @return [Types::TtlDuration]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/OnlineStoreConfigUpdate AWS API Documentation
    #
    class OnlineStoreConfigUpdate < Struct.new(
      :ttl_duration)
      SENSITIVE = []
      include Aws::Structure
    end

    # The security configuration for `OnlineStore`.
    #
    # @!attribute [rw] kms_key_id
    #   The Amazon Web Services Key Management Service (KMS) key ARN that
    #   SageMaker Feature Store uses to encrypt the Amazon S3 objects at
    #   rest using Amazon S3 server-side encryption.
    #
    #   The caller (either user or IAM role) of `CreateFeatureGroup` must
    #   have below permissions to the `OnlineStore` `KmsKeyId`:
    #
    #   * `"kms:Encrypt"`
    #
    #   * `"kms:Decrypt"`
    #
    #   * `"kms:DescribeKey"`
    #
    #   * `"kms:CreateGrant"`
    #
    #   * `"kms:RetireGrant"`
    #
    #   * `"kms:ReEncryptFrom"`
    #
    #   * `"kms:ReEncryptTo"`
    #
    #   * `"kms:GenerateDataKey"`
    #
    #   * `"kms:ListAliases"`
    #
    #   * `"kms:ListGrants"`
    #
    #   * `"kms:RevokeGrant"`
    #
    #   The caller (either user or IAM role) to all DataPlane operations
    #   (`PutRecord`, `GetRecord`, `DeleteRecord`) must have the following
    #   permissions to the `KmsKeyId`:
    #
    #   * `"kms:Decrypt"`
    #
    #   ^
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/OnlineStoreSecurityConfig AWS API Documentation
    #
    class OnlineStoreSecurityConfig < Struct.new(
      :kms_key_id)
      SENSITIVE = []
      include Aws::Structure
    end

    # Settings for an optimization technique that you apply with a model
    # optimization job.
    #
    # @note OptimizationConfig is a union - when making an API calls you must set exactly one of the members.
    #
    # @note OptimizationConfig is a union - when returned from an API call exactly one value will be set and the returned type will be a subclass of OptimizationConfig corresponding to the set member.
    #
    # @!attribute [rw] model_quantization_config
    #   Settings for the model quantization technique that's applied by a
    #   model optimization job.
    #   @return [Types::ModelQuantizationConfig]
    #
    # @!attribute [rw] model_compilation_config
    #   Settings for the model compilation technique that's applied by a
    #   model optimization job.
    #   @return [Types::ModelCompilationConfig]
    #
    # @!attribute [rw] model_sharding_config
    #   Settings for the model sharding technique that's applied by a model
    #   optimization job.
    #   @return [Types::ModelShardingConfig]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/OptimizationConfig AWS API Documentation
    #
    class OptimizationConfig < Struct.new(
      :model_quantization_config,
      :model_compilation_config,
      :model_sharding_config,
      :unknown)
      SENSITIVE = []
      include Aws::Structure
      include Aws::Structure::Union

      class ModelQuantizationConfig < OptimizationConfig; end
      class ModelCompilationConfig < OptimizationConfig; end
      class ModelShardingConfig < OptimizationConfig; end
      class Unknown < OptimizationConfig; end
    end

    # The location of the source model to optimize with an optimization job.
    #
    # @!attribute [rw] s3
    #   The Amazon S3 location of a source model to optimize with an
    #   optimization job.
    #   @return [Types::OptimizationJobModelSourceS3]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/OptimizationJobModelSource AWS API Documentation
    #
    class OptimizationJobModelSource < Struct.new(
      :s3)
      SENSITIVE = []
      include Aws::Structure
    end

    # The Amazon S3 location of a source model to optimize with an
    # optimization job.
    #
    # @!attribute [rw] s3_uri
    #   An Amazon S3 URI that locates a source model to optimize with an
    #   optimization job.
    #   @return [String]
    #
    # @!attribute [rw] model_access_config
    #   The access configuration settings for the source ML model for an
    #   optimization job, where you can accept the model end-user license
    #   agreement (EULA).
    #   @return [Types::OptimizationModelAccessConfig]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/OptimizationJobModelSourceS3 AWS API Documentation
    #
    class OptimizationJobModelSourceS3 < Struct.new(
      :s3_uri,
      :model_access_config)
      SENSITIVE = []
      include Aws::Structure
    end

    # Details for where to store the optimized model that you create with
    # the optimization job.
    #
    # @!attribute [rw] kms_key_id
    #   The Amazon Resource Name (ARN) of a key in Amazon Web Services KMS.
    #   SageMaker uses they key to encrypt the artifacts of the optimized
    #   model when SageMaker uploads the model to Amazon S3.
    #   @return [String]
    #
    # @!attribute [rw] s3_output_location
    #   The Amazon S3 URI for where to store the optimized model that you
    #   create with an optimization job.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/OptimizationJobOutputConfig AWS API Documentation
    #
    class OptimizationJobOutputConfig < Struct.new(
      :kms_key_id,
      :s3_output_location)
      SENSITIVE = []
      include Aws::Structure
    end

    # Summarizes an optimization job by providing some of its key
    # properties.
    #
    # @!attribute [rw] optimization_job_name
    #   The name that you assigned to the optimization job.
    #   @return [String]
    #
    # @!attribute [rw] optimization_job_arn
    #   The Amazon Resource Name (ARN) of the optimization job.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   The time when you created the optimization job.
    #   @return [Time]
    #
    # @!attribute [rw] optimization_job_status
    #   The current status of the optimization job.
    #   @return [String]
    #
    # @!attribute [rw] optimization_start_time
    #   The time when the optimization job started.
    #   @return [Time]
    #
    # @!attribute [rw] optimization_end_time
    #   The time when the optimization job finished processing.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time
    #   The time when the optimization job was last updated.
    #   @return [Time]
    #
    # @!attribute [rw] deployment_instance_type
    #   The type of instance that hosts the optimized model that you create
    #   with the optimization job.
    #   @return [String]
    #
    # @!attribute [rw] optimization_types
    #   The optimization techniques that are applied by the optimization
    #   job.
    #   @return [Array<String>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/OptimizationJobSummary AWS API Documentation
    #
    class OptimizationJobSummary < Struct.new(
      :optimization_job_name,
      :optimization_job_arn,
      :creation_time,
      :optimization_job_status,
      :optimization_start_time,
      :optimization_end_time,
      :last_modified_time,
      :deployment_instance_type,
      :optimization_types)
      SENSITIVE = []
      include Aws::Structure
    end

    # The access configuration settings for the source ML model for an
    # optimization job, where you can accept the model end-user license
    # agreement (EULA).
    #
    # @!attribute [rw] accept_eula
    #   Specifies agreement to the model end-user license agreement (EULA).
    #   The `AcceptEula` value must be explicitly defined as `True` in order
    #   to accept the EULA that this model requires. You are responsible for
    #   reviewing and complying with any applicable license terms and making
    #   sure they are acceptable for your use case before downloading or
    #   using a model.
    #   @return [Boolean]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/OptimizationModelAccessConfig AWS API Documentation
    #
    class OptimizationModelAccessConfig < Struct.new(
      :accept_eula)
      SENSITIVE = []
      include Aws::Structure
    end

    # Output values produced by an optimization job.
    #
    # @!attribute [rw] recommended_inference_image
    #   The image that SageMaker recommends that you use to host the
    #   optimized model that you created with an optimization job.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/OptimizationOutput AWS API Documentation
    #
    class OptimizationOutput < Struct.new(
      :recommended_inference_image)
      SENSITIVE = []
      include Aws::Structure
    end

    # A VPC in Amazon VPC that's accessible to an optimized that you create
    # with an optimization job. You can control access to and from your
    # resources by configuring a VPC. For more information, see [Give
    # SageMaker Access to Resources in your Amazon VPC][1].
    #
    #
    #
    # [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/infrastructure-give-access.html
    #
    # @!attribute [rw] security_group_ids
    #   The VPC security group IDs, in the form `sg-xxxxxxxx`. Specify the
    #   security groups for the VPC that is specified in the `Subnets`
    #   field.
    #   @return [Array<String>]
    #
    # @!attribute [rw] subnets
    #   The ID of the subnets in the VPC to which you want to connect your
    #   optimized model.
    #   @return [Array<String>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/OptimizationVpcConfig AWS API Documentation
    #
    class OptimizationVpcConfig < Struct.new(
      :security_group_ids,
      :subnets)
      SENSITIVE = []
      include Aws::Structure
    end

    # Contains information about the output location for the compiled model
    # and the target device that the model runs on. `TargetDevice` and
    # `TargetPlatform` are mutually exclusive, so you need to choose one
    # between the two to specify your target device or platform. If you
    # cannot find your device you want to use from the `TargetDevice` list,
    # use `TargetPlatform` to describe the platform of your edge device and
    # `CompilerOptions` if there are specific settings that are required or
    # recommended to use for particular TargetPlatform.
    #
    # @!attribute [rw] s3_output_location
    #   Identifies the S3 bucket where you want Amazon SageMaker AI to store
    #   the model artifacts. For example,
    #   `s3://bucket-name/key-name-prefix`.
    #   @return [String]
    #
    # @!attribute [rw] target_device
    #   Identifies the target device or the machine learning instance that
    #   you want to run your model on after the compilation has completed.
    #   Alternatively, you can specify OS, architecture, and accelerator
    #   using [TargetPlatform][1] fields. It can be used instead of
    #   `TargetPlatform`.
    #
    #   <note markdown="1"> Currently `ml_trn1` is available only in US East (N. Virginia)
    #   Region, and `ml_inf2` is available only in US East (Ohio) Region.
    #
    #    </note>
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TargetPlatform.html
    #   @return [String]
    #
    # @!attribute [rw] target_platform
    #   Contains information about a target platform that you want your
    #   model to run on, such as OS, architecture, and accelerators. It is
    #   an alternative of `TargetDevice`.
    #
    #   The following examples show how to configure the `TargetPlatform`
    #   and `CompilerOptions` JSON strings for popular target platforms:
    #
    #   * Raspberry Pi 3 Model B+
    #
    #     `"TargetPlatform": {"Os": "LINUX", "Arch": "ARM_EABIHF"},`
    #
    #     ` "CompilerOptions": {'mattr': ['+neon']}`
    #
    #   * Jetson TX2
    #
    #     `"TargetPlatform": {"Os": "LINUX", "Arch": "ARM64", "Accelerator":
    #     "NVIDIA"},`
    #
    #     ` "CompilerOptions": {'gpu-code': 'sm_62', 'trt-ver': '6.0.1',
    #     'cuda-ver': '10.0'}`
    #
    #   * EC2 m5.2xlarge instance OS
    #
    #     `"TargetPlatform": {"Os": "LINUX", "Arch": "X86_64",
    #     "Accelerator": "NVIDIA"},`
    #
    #     ` "CompilerOptions": {'mcpu': 'skylake-avx512'}`
    #
    #   * RK3399
    #
    #     `"TargetPlatform": {"Os": "LINUX", "Arch": "ARM64", "Accelerator":
    #     "MALI"}`
    #
    #   * ARMv7 phone (CPU)
    #
    #     `"TargetPlatform": {"Os": "ANDROID", "Arch": "ARM_EABI"},`
    #
    #     ` "CompilerOptions": {'ANDROID_PLATFORM': 25, 'mattr': ['+neon']}`
    #
    #   * ARMv8 phone (CPU)
    #
    #     `"TargetPlatform": {"Os": "ANDROID", "Arch": "ARM64"},`
    #
    #     ` "CompilerOptions": {'ANDROID_PLATFORM': 29}`
    #   @return [Types::TargetPlatform]
    #
    # @!attribute [rw] compiler_options
    #   Specifies additional parameters for compiler options in JSON format.
    #   The compiler options are `TargetPlatform` specific. It is required
    #   for NVIDIA accelerators and highly recommended for CPU compilations.
    #   For any other cases, it is optional to specify `CompilerOptions.`
    #
    #   * `DTYPE`: Specifies the data type for the input. When compiling for
    #     `ml_*` (except for `ml_inf`) instances using PyTorch framework,
    #     provide the data type (dtype) of the model's input. `"float32"`
    #     is used if `"DTYPE"` is not specified. Options for data type are:
    #
    #     * float32: Use either `"float"` or `"float32"`.
    #
    #     * int64: Use either `"int64"` or `"long"`.
    #     For example, `{"dtype" : "float32"}`.
    #
    #   * `CPU`: Compilation for CPU supports the following compiler
    #     options.
    #
    #     * `mcpu`: CPU micro-architecture. For example, `{'mcpu':
    #       'skylake-avx512'}`
    #
    #     * `mattr`: CPU flags. For example, `{'mattr': ['+neon',
    #       '+vfpv4']}`
    #   * `ARM`: Details of ARM CPU compilations.
    #
    #     * `NEON`: NEON is an implementation of the Advanced SIMD extension
    #       used in ARMv7 processors.
    #
    #       For example, add `{'mattr': ['+neon']}` to the compiler options
    #       if compiling for ARM 32-bit platform with the NEON support.
    #   * `NVIDIA`: Compilation for NVIDIA GPU supports the following
    #     compiler options.
    #
    #     * `gpu_code`: Specifies the targeted architecture.
    #
    #     * `trt-ver`: Specifies the TensorRT versions in x.y.z. format.
    #
    #     * `cuda-ver`: Specifies the CUDA version in x.y format.
    #     For example, `{'gpu-code': 'sm_72', 'trt-ver': '6.0.1',
    #     'cuda-ver': '10.1'}`
    #
    #   * `ANDROID`: Compilation for the Android OS supports the following
    #     compiler options:
    #
    #     * `ANDROID_PLATFORM`: Specifies the Android API levels. Available
    #       levels range from 21 to 29. For example, `{'ANDROID_PLATFORM':
    #       28}`.
    #
    #     * `mattr`: Add `{'mattr': ['+neon']}` to compiler options if
    #       compiling for ARM 32-bit platform with NEON support.
    #   * `INFERENTIA`: Compilation for target ml\_inf1 uses compiler
    #     options passed in as a JSON string. For example,
    #     `"CompilerOptions": ""--verbose 1 --num-neuroncores 2 -O2""`.
    #
    #     For information about supported compiler options, see [ Neuron
    #     Compiler CLI Reference Guide][1].
    #
    #   * `CoreML`: Compilation for the CoreML [OutputConfig][2]
    #     `TargetDevice` supports the following compiler options:
    #
    #     * `class_labels`: Specifies the classification labels file name
    #       inside input tar.gz file. For example, `{"class_labels":
    #       "imagenet_labels_1000.txt"}`. Labels inside the txt file should
    #       be separated by newlines.
    #
    #     ^
    #
    #
    #
    #   [1]: https://awsdocs-neuron.readthedocs-hosted.com/en/latest/compiler/neuronx-cc/api-reference-guide/neuron-compiler-cli-reference-guide.html
    #   [2]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_OutputConfig.html
    #   @return [String]
    #
    # @!attribute [rw] kms_key_id
    #   The Amazon Web Services Key Management Service key (Amazon Web
    #   Services KMS) that Amazon SageMaker AI uses to encrypt your output
    #   models with Amazon S3 server-side encryption after compilation job.
    #   If you don't provide a KMS key ID, Amazon SageMaker AI uses the
    #   default KMS key for Amazon S3 for your role's account. For more
    #   information, see [KMS-Managed Encryption Keys][1] in the *Amazon
    #   Simple Storage Service Developer Guide.*
    #
    #   The KmsKeyId can be any of the following formats:
    #
    #   * Key ID: `1234abcd-12ab-34cd-56ef-1234567890ab`
    #
    #   * Key ARN:
    #     `arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab`
    #
    #   * Alias name: `alias/ExampleAlias`
    #
    #   * Alias name ARN:
    #     `arn:aws:kms:us-west-2:111122223333:alias/ExampleAlias`
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/OutputConfig AWS API Documentation
    #
    class OutputConfig < Struct.new(
      :s3_output_location,
      :target_device,
      :target_platform,
      :compiler_options,
      :kms_key_id)
      SENSITIVE = []
      include Aws::Structure
    end

    # Provides information about how to store model training results (model
    # artifacts).
    #
    # @!attribute [rw] kms_key_id
    #   The Amazon Web Services Key Management Service (Amazon Web Services
    #   KMS) key that SageMaker uses to encrypt the model artifacts at rest
    #   using Amazon S3 server-side encryption. The `KmsKeyId` can be any of
    #   the following formats:
    #
    #   * // KMS Key ID
    #
    #     `"1234abcd-12ab-34cd-56ef-1234567890ab"`
    #
    #   * // Amazon Resource Name (ARN) of a KMS Key
    #
    #     `"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"`
    #
    #   * // KMS Key Alias
    #
    #     `"alias/ExampleAlias"`
    #
    #   * // Amazon Resource Name (ARN) of a KMS Key Alias
    #
    #     `"arn:aws:kms:us-west-2:111122223333:alias/ExampleAlias"`
    #
    #   If you use a KMS key ID or an alias of your KMS key, the SageMaker
    #   execution role must include permissions to call `kms:Encrypt`. If
    #   you don't provide a KMS key ID, SageMaker uses the default KMS key
    #   for Amazon S3 for your role's account. For more information, see
    #   [KMS-Managed Encryption Keys][1] in the *Amazon Simple Storage
    #   Service Developer Guide*. If the output data is stored in Amazon S3
    #   Express One Zone, it is encrypted with server-side encryption with
    #   Amazon S3 managed keys (SSE-S3). KMS key is not supported for Amazon
    #   S3 Express One Zone
    #
    #   The KMS key policy must grant permission to the IAM role that you
    #   specify in your `CreateTrainingJob`, `CreateTransformJob`, or
    #   `CreateHyperParameterTuningJob` requests. For more information, see
    #   [Using Key Policies in Amazon Web Services KMS][2] in the *Amazon
    #   Web Services Key Management Service Developer Guide*.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html
    #   [2]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html
    #   @return [String]
    #
    # @!attribute [rw] s3_output_path
    #   Identifies the S3 path where you want SageMaker to store the model
    #   artifacts. For example, `s3://bucket-name/key-name-prefix`.
    #   @return [String]
    #
    # @!attribute [rw] compression_type
    #   The model output compression type. Select `None` to output an
    #   uncompressed model, recommended for large model outputs. Defaults to
    #   gzip.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/OutputDataConfig AWS API Documentation
    #
    class OutputDataConfig < Struct.new(
      :kms_key_id,
      :s3_output_path,
      :compression_type)
      SENSITIVE = []
      include Aws::Structure
    end

    # An output parameter of a pipeline step.
    #
    # @!attribute [rw] name
    #   The name of the output parameter.
    #   @return [String]
    #
    # @!attribute [rw] value
    #   The value of the output parameter.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/OutputParameter AWS API Documentation
    #
    class OutputParameter < Struct.new(
      :name,
      :value)
      SENSITIVE = []
      include Aws::Structure
    end

    # The collection of ownership settings for a space.
    #
    # @!attribute [rw] owner_user_profile_name
    #   The user profile who is the owner of the space.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/OwnershipSettings AWS API Documentation
    #
    class OwnershipSettings < Struct.new(
      :owner_user_profile_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # Specifies summary information about the ownership settings.
    #
    # @!attribute [rw] owner_user_profile_name
    #   The user profile who is the owner of the space.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/OwnershipSettingsSummary AWS API Documentation
    #
    class OwnershipSettingsSummary < Struct.new(
      :owner_user_profile_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # Configuration that controls the parallelism of the pipeline. By
    # default, the parallelism configuration specified applies to all
    # executions of the pipeline unless overridden.
    #
    # @!attribute [rw] max_parallel_execution_steps
    #   The max number of steps that can be executed in parallel.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ParallelismConfiguration AWS API Documentation
    #
    class ParallelismConfiguration < Struct.new(
      :max_parallel_execution_steps)
      SENSITIVE = []
      include Aws::Structure
    end

    # Assigns a value to a named Pipeline parameter.
    #
    # @!attribute [rw] name
    #   The name of the parameter to assign a value to. This parameter name
    #   must match a named parameter in the pipeline definition.
    #   @return [String]
    #
    # @!attribute [rw] value
    #   The literal value for the parameter.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/Parameter AWS API Documentation
    #
    class Parameter < Struct.new(
      :name,
      :value)
      SENSITIVE = []
      include Aws::Structure
    end

    # Defines the possible values for categorical, continuous, and integer
    # hyperparameters to be used by an algorithm.
    #
    # @!attribute [rw] integer_parameter_range_specification
    #   A `IntegerParameterRangeSpecification` object that defines the
    #   possible values for an integer hyperparameter.
    #   @return [Types::IntegerParameterRangeSpecification]
    #
    # @!attribute [rw] continuous_parameter_range_specification
    #   A `ContinuousParameterRangeSpecification` object that defines the
    #   possible values for a continuous hyperparameter.
    #   @return [Types::ContinuousParameterRangeSpecification]
    #
    # @!attribute [rw] categorical_parameter_range_specification
    #   A `CategoricalParameterRangeSpecification` object that defines the
    #   possible values for a categorical hyperparameter.
    #   @return [Types::CategoricalParameterRangeSpecification]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ParameterRange AWS API Documentation
    #
    class ParameterRange < Struct.new(
      :integer_parameter_range_specification,
      :continuous_parameter_range_specification,
      :categorical_parameter_range_specification)
      SENSITIVE = []
      include Aws::Structure
    end

    # Specifies ranges of integer, continuous, and categorical
    # hyperparameters that a hyperparameter tuning job searches. The
    # hyperparameter tuning job launches training jobs with hyperparameter
    # values within these ranges to find the combination of values that
    # result in the training job with the best performance as measured by
    # the objective metric of the hyperparameter tuning job.
    #
    # <note markdown="1"> The maximum number of items specified for `Array Members` refers to
    # the maximum number of hyperparameters for each range and also the
    # maximum for the hyperparameter tuning job itself. That is, the sum of
    # the number of hyperparameters for all the ranges can't exceed the
    # maximum number specified.
    #
    #  </note>
    #
    # @!attribute [rw] integer_parameter_ranges
    #   The array of [IntegerParameterRange][1] objects that specify ranges
    #   of integer hyperparameters that a hyperparameter tuning job
    #   searches.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_IntegerParameterRange.html
    #   @return [Array<Types::IntegerParameterRange>]
    #
    # @!attribute [rw] continuous_parameter_ranges
    #   The array of [ContinuousParameterRange][1] objects that specify
    #   ranges of continuous hyperparameters that a hyperparameter tuning
    #   job searches.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ContinuousParameterRange.html
    #   @return [Array<Types::ContinuousParameterRange>]
    #
    # @!attribute [rw] categorical_parameter_ranges
    #   The array of [CategoricalParameterRange][1] objects that specify
    #   ranges of categorical hyperparameters that a hyperparameter tuning
    #   job searches.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CategoricalParameterRange.html
    #   @return [Array<Types::CategoricalParameterRange>]
    #
    # @!attribute [rw] auto_parameters
    #   A list containing hyperparameter names and example values to be used
    #   by Autotune to determine optimal ranges for your tuning job.
    #   @return [Array<Types::AutoParameter>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ParameterRanges AWS API Documentation
    #
    class ParameterRanges < Struct.new(
      :integer_parameter_ranges,
      :continuous_parameter_ranges,
      :categorical_parameter_ranges,
      :auto_parameters)
      SENSITIVE = []
      include Aws::Structure
    end

    # The trial that a trial component is associated with and the experiment
    # the trial is part of. A component might not be associated with a
    # trial. A component can be associated with multiple trials.
    #
    # @!attribute [rw] trial_name
    #   The name of the trial.
    #   @return [String]
    #
    # @!attribute [rw] experiment_name
    #   The name of the experiment.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/Parent AWS API Documentation
    #
    class Parent < Struct.new(
      :trial_name,
      :experiment_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # A previously completed or stopped hyperparameter tuning job to be used
    # as a starting point for a new hyperparameter tuning job.
    #
    # @!attribute [rw] hyper_parameter_tuning_job_name
    #   The name of the hyperparameter tuning job to be used as a starting
    #   point for a new hyperparameter tuning job.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ParentHyperParameterTuningJob AWS API Documentation
    #
    class ParentHyperParameterTuningJob < Struct.new(
      :hyper_parameter_tuning_job_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # Configuration settings for the SageMaker Partner AI App.
    #
    # @!attribute [rw] admin_users
    #   The list of users that are given admin access to the SageMaker
    #   Partner AI App.
    #   @return [Array<String>]
    #
    # @!attribute [rw] arguments
    #   This is a map of required inputs for a SageMaker Partner AI App.
    #   Based on the application type, the map is populated with a key and
    #   value pair that is specific to the user and application.
    #   @return [Hash<String,String>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/PartnerAppConfig AWS API Documentation
    #
    class PartnerAppConfig < Struct.new(
      :admin_users,
      :arguments)
      SENSITIVE = []
      include Aws::Structure
    end

    # Maintenance configuration settings for the SageMaker Partner AI App.
    #
    # @!attribute [rw] maintenance_window_start
    #   The day and time of the week in Coordinated Universal Time (UTC)
    #   24-hour standard time that weekly maintenance updates are scheduled.
    #   This value must take the following format:
    #   `3-letter-day:24-h-hour:minute`. For example: `TUE:03:30`.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/PartnerAppMaintenanceConfig AWS API Documentation
    #
    class PartnerAppMaintenanceConfig < Struct.new(
      :maintenance_window_start)
      SENSITIVE = []
      include Aws::Structure
    end

    # A subset of information related to a SageMaker Partner AI App. This
    # information is used as part of the `ListPartnerApps` API response.
    #
    # @!attribute [rw] arn
    #   The ARN of the SageMaker Partner AI App.
    #   @return [String]
    #
    # @!attribute [rw] name
    #   The name of the SageMaker Partner AI App.
    #   @return [String]
    #
    # @!attribute [rw] type
    #   The type of SageMaker Partner AI App to create. Must be one of the
    #   following: `lakera-guard`, `comet`, `deepchecks-llm-evaluation`, or
    #   `fiddler`.
    #   @return [String]
    #
    # @!attribute [rw] status
    #   The status of the SageMaker Partner AI App.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   The creation time of the SageMaker Partner AI App.
    #   @return [Time]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/PartnerAppSummary AWS API Documentation
    #
    class PartnerAppSummary < Struct.new(
      :arn,
      :name,
      :type,
      :status,
      :creation_time)
      SENSITIVE = []
      include Aws::Structure
    end

    # The summary of an in-progress deployment when an endpoint is creating
    # or updating with a new endpoint configuration.
    #
    # @!attribute [rw] endpoint_config_name
    #   The name of the endpoint configuration used in the deployment.
    #   @return [String]
    #
    # @!attribute [rw] production_variants
    #   An array of [PendingProductionVariantSummary][1] objects, one for
    #   each model hosted behind this endpoint for the in-progress
    #   deployment.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_PendingProductionVariantSummary.html
    #   @return [Array<Types::PendingProductionVariantSummary>]
    #
    # @!attribute [rw] start_time
    #   The start time of the deployment.
    #   @return [Time]
    #
    # @!attribute [rw] shadow_production_variants
    #   An array of [PendingProductionVariantSummary][1] objects, one for
    #   each model hosted behind this endpoint in shadow mode with
    #   production traffic replicated from the model specified on
    #   `ProductionVariants` for the in-progress deployment.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_PendingProductionVariantSummary.html
    #   @return [Array<Types::PendingProductionVariantSummary>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/PendingDeploymentSummary AWS API Documentation
    #
    class PendingDeploymentSummary < Struct.new(
      :endpoint_config_name,
      :production_variants,
      :start_time,
      :shadow_production_variants)
      SENSITIVE = []
      include Aws::Structure
    end

    # The production variant summary for a deployment when an endpoint is
    # creating or updating with the [CreateEndpoint][1] or
    # [UpdateEndpoint][2] operations. Describes the `VariantStatus `, weight
    # and capacity for a production variant associated with an endpoint.
    #
    #
    #
    # [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpoint.html
    # [2]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateEndpoint.html
    #
    # @!attribute [rw] variant_name
    #   The name of the variant.
    #   @return [String]
    #
    # @!attribute [rw] deployed_images
    #   An array of `DeployedImage` objects that specify the Amazon EC2
    #   Container Registry paths of the inference images deployed on
    #   instances of this `ProductionVariant`.
    #   @return [Array<Types::DeployedImage>]
    #
    # @!attribute [rw] current_weight
    #   The weight associated with the variant.
    #   @return [Float]
    #
    # @!attribute [rw] desired_weight
    #   The requested weight for the variant in this deployment, as
    #   specified in the endpoint configuration for the endpoint. The value
    #   is taken from the request to the [CreateEndpointConfig][1]
    #   operation.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpointConfig.html
    #   @return [Float]
    #
    # @!attribute [rw] current_instance_count
    #   The number of instances associated with the variant.
    #   @return [Integer]
    #
    # @!attribute [rw] desired_instance_count
    #   The number of instances requested in this deployment, as specified
    #   in the endpoint configuration for the endpoint. The value is taken
    #   from the request to the [CreateEndpointConfig][1] operation.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpointConfig.html
    #   @return [Integer]
    #
    # @!attribute [rw] instance_type
    #   The type of instances associated with the variant.
    #   @return [String]
    #
    # @!attribute [rw] accelerator_type
    #   This parameter is no longer supported. Elastic Inference (EI) is no
    #   longer available.
    #
    #   This parameter was used to specify the size of the EI instance to
    #   use for the production variant.
    #   @return [String]
    #
    # @!attribute [rw] variant_status
    #   The endpoint variant status which describes the current deployment
    #   stage status or operational status.
    #   @return [Array<Types::ProductionVariantStatus>]
    #
    # @!attribute [rw] current_serverless_config
    #   The serverless configuration for the endpoint.
    #   @return [Types::ProductionVariantServerlessConfig]
    #
    # @!attribute [rw] desired_serverless_config
    #   The serverless configuration requested for this deployment, as
    #   specified in the endpoint configuration for the endpoint.
    #   @return [Types::ProductionVariantServerlessConfig]
    #
    # @!attribute [rw] managed_instance_scaling
    #   Settings that control the range in the number of instances that the
    #   endpoint provisions as it scales up or down to accommodate traffic.
    #   @return [Types::ProductionVariantManagedInstanceScaling]
    #
    # @!attribute [rw] routing_config
    #   Settings that control how the endpoint routes incoming traffic to
    #   the instances that the endpoint hosts.
    #   @return [Types::ProductionVariantRoutingConfig]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/PendingProductionVariantSummary AWS API Documentation
    #
    class PendingProductionVariantSummary < Struct.new(
      :variant_name,
      :deployed_images,
      :current_weight,
      :desired_weight,
      :current_instance_count,
      :desired_instance_count,
      :instance_type,
      :accelerator_type,
      :variant_status,
      :current_serverless_config,
      :desired_serverless_config,
      :managed_instance_scaling,
      :routing_config)
      SENSITIVE = []
      include Aws::Structure
    end

    # Defines the traffic pattern.
    #
    # @!attribute [rw] initial_number_of_users
    #   Specifies how many concurrent users to start with. The value should
    #   be between 1 and 3.
    #   @return [Integer]
    #
    # @!attribute [rw] spawn_rate
    #   Specified how many new users to spawn in a minute.
    #   @return [Integer]
    #
    # @!attribute [rw] duration_in_seconds
    #   Specifies how long a traffic phase should be. For custom load tests,
    #   the value should be between 120 and 3600. This value should not
    #   exceed `JobDurationInSeconds`.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/Phase AWS API Documentation
    #
    class Phase < Struct.new(
      :initial_number_of_users,
      :spawn_rate,
      :duration_in_seconds)
      SENSITIVE = []
      include Aws::Structure
    end

    # A SageMaker Model Building Pipeline instance.
    #
    # @!attribute [rw] pipeline_arn
    #   The Amazon Resource Name (ARN) of the pipeline.
    #   @return [String]
    #
    # @!attribute [rw] pipeline_name
    #   The name of the pipeline.
    #   @return [String]
    #
    # @!attribute [rw] pipeline_display_name
    #   The display name of the pipeline.
    #   @return [String]
    #
    # @!attribute [rw] pipeline_description
    #   The description of the pipeline.
    #   @return [String]
    #
    # @!attribute [rw] role_arn
    #   The Amazon Resource Name (ARN) of the role that created the
    #   pipeline.
    #   @return [String]
    #
    # @!attribute [rw] pipeline_status
    #   The status of the pipeline.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   The creation time of the pipeline.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time
    #   The time that the pipeline was last modified.
    #   @return [Time]
    #
    # @!attribute [rw] last_run_time
    #   The time when the pipeline was last run.
    #   @return [Time]
    #
    # @!attribute [rw] created_by
    #   Information about the user who created or modified a SageMaker
    #   resource.
    #   @return [Types::UserContext]
    #
    # @!attribute [rw] last_modified_by
    #   Information about the user who created or modified a SageMaker
    #   resource.
    #   @return [Types::UserContext]
    #
    # @!attribute [rw] parallelism_configuration
    #   The parallelism configuration applied to the pipeline.
    #   @return [Types::ParallelismConfiguration]
    #
    # @!attribute [rw] tags
    #   A list of tags that apply to the pipeline.
    #   @return [Array<Types::Tag>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/Pipeline AWS API Documentation
    #
    class Pipeline < Struct.new(
      :pipeline_arn,
      :pipeline_name,
      :pipeline_display_name,
      :pipeline_description,
      :role_arn,
      :pipeline_status,
      :creation_time,
      :last_modified_time,
      :last_run_time,
      :created_by,
      :last_modified_by,
      :parallelism_configuration,
      :tags)
      SENSITIVE = []
      include Aws::Structure
    end

    # The location of the pipeline definition stored in Amazon S3.
    #
    # @!attribute [rw] bucket
    #   Name of the S3 bucket.
    #   @return [String]
    #
    # @!attribute [rw] object_key
    #   The object key (or key name) uniquely identifies the object in an S3
    #   bucket.
    #   @return [String]
    #
    # @!attribute [rw] version_id
    #   Version Id of the pipeline definition file. If not specified, Amazon
    #   SageMaker will retrieve the latest version.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/PipelineDefinitionS3Location AWS API Documentation
    #
    class PipelineDefinitionS3Location < Struct.new(
      :bucket,
      :object_key,
      :version_id)
      SENSITIVE = []
      include Aws::Structure
    end

    # An execution of a pipeline.
    #
    # @!attribute [rw] pipeline_arn
    #   The Amazon Resource Name (ARN) of the pipeline that was executed.
    #   @return [String]
    #
    # @!attribute [rw] pipeline_execution_arn
    #   The Amazon Resource Name (ARN) of the pipeline execution.
    #   @return [String]
    #
    # @!attribute [rw] pipeline_execution_display_name
    #   The display name of the pipeline execution.
    #   @return [String]
    #
    # @!attribute [rw] pipeline_execution_status
    #   The status of the pipeline status.
    #   @return [String]
    #
    # @!attribute [rw] pipeline_execution_description
    #   The description of the pipeline execution.
    #   @return [String]
    #
    # @!attribute [rw] pipeline_experiment_config
    #   Specifies the names of the experiment and trial created by a
    #   pipeline.
    #   @return [Types::PipelineExperimentConfig]
    #
    # @!attribute [rw] failure_reason
    #   If the execution failed, a message describing why.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   The creation time of the pipeline execution.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time
    #   The time that the pipeline execution was last modified.
    #   @return [Time]
    #
    # @!attribute [rw] created_by
    #   Information about the user who created or modified a SageMaker
    #   resource.
    #   @return [Types::UserContext]
    #
    # @!attribute [rw] last_modified_by
    #   Information about the user who created or modified a SageMaker
    #   resource.
    #   @return [Types::UserContext]
    #
    # @!attribute [rw] parallelism_configuration
    #   The parallelism configuration applied to the pipeline execution.
    #   @return [Types::ParallelismConfiguration]
    #
    # @!attribute [rw] selective_execution_config
    #   The selective execution configuration applied to the pipeline run.
    #   @return [Types::SelectiveExecutionConfig]
    #
    # @!attribute [rw] pipeline_parameters
    #   Contains a list of pipeline parameters. This list can be empty.
    #   @return [Array<Types::Parameter>]
    #
    # @!attribute [rw] pipeline_version_id
    #   The ID of the pipeline version that started this execution.
    #   @return [Integer]
    #
    # @!attribute [rw] pipeline_version_display_name
    #   The display name of the pipeline version that started this
    #   execution.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/PipelineExecution AWS API Documentation
    #
    class PipelineExecution < Struct.new(
      :pipeline_arn,
      :pipeline_execution_arn,
      :pipeline_execution_display_name,
      :pipeline_execution_status,
      :pipeline_execution_description,
      :pipeline_experiment_config,
      :failure_reason,
      :creation_time,
      :last_modified_time,
      :created_by,
      :last_modified_by,
      :parallelism_configuration,
      :selective_execution_config,
      :pipeline_parameters,
      :pipeline_version_id,
      :pipeline_version_display_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # An execution of a step in a pipeline.
    #
    # @!attribute [rw] step_name
    #   The name of the step that is executed.
    #   @return [String]
    #
    # @!attribute [rw] step_display_name
    #   The display name of the step.
    #   @return [String]
    #
    # @!attribute [rw] step_description
    #   The description of the step.
    #   @return [String]
    #
    # @!attribute [rw] start_time
    #   The time that the step started executing.
    #   @return [Time]
    #
    # @!attribute [rw] end_time
    #   The time that the step stopped executing.
    #   @return [Time]
    #
    # @!attribute [rw] step_status
    #   The status of the step execution.
    #   @return [String]
    #
    # @!attribute [rw] cache_hit_result
    #   If this pipeline execution step was cached, details on the cache
    #   hit.
    #   @return [Types::CacheHitResult]
    #
    # @!attribute [rw] failure_reason
    #   The reason why the step failed execution. This is only returned if
    #   the step failed its execution.
    #   @return [String]
    #
    # @!attribute [rw] metadata
    #   Metadata to run the pipeline step.
    #   @return [Types::PipelineExecutionStepMetadata]
    #
    # @!attribute [rw] attempt_count
    #   The current attempt of the execution step. For more information, see
    #   [Retry Policy for SageMaker Pipelines steps][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/pipelines-retry-policy.html
    #   @return [Integer]
    #
    # @!attribute [rw] selective_execution_result
    #   The ARN from an execution of the current pipeline from which results
    #   are reused for this step.
    #   @return [Types::SelectiveExecutionResult]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/PipelineExecutionStep AWS API Documentation
    #
    class PipelineExecutionStep < Struct.new(
      :step_name,
      :step_display_name,
      :step_description,
      :start_time,
      :end_time,
      :step_status,
      :cache_hit_result,
      :failure_reason,
      :metadata,
      :attempt_count,
      :selective_execution_result)
      SENSITIVE = []
      include Aws::Structure
    end

    # Metadata for a step execution.
    #
    # @!attribute [rw] training_job
    #   The Amazon Resource Name (ARN) of the training job that was run by
    #   this step execution.
    #   @return [Types::TrainingJobStepMetadata]
    #
    # @!attribute [rw] processing_job
    #   The Amazon Resource Name (ARN) of the processing job that was run by
    #   this step execution.
    #   @return [Types::ProcessingJobStepMetadata]
    #
    # @!attribute [rw] transform_job
    #   The Amazon Resource Name (ARN) of the transform job that was run by
    #   this step execution.
    #   @return [Types::TransformJobStepMetadata]
    #
    # @!attribute [rw] tuning_job
    #   The Amazon Resource Name (ARN) of the tuning job that was run by
    #   this step execution.
    #   @return [Types::TuningJobStepMetaData]
    #
    # @!attribute [rw] model
    #   The Amazon Resource Name (ARN) of the model that was created by this
    #   step execution.
    #   @return [Types::ModelStepMetadata]
    #
    # @!attribute [rw] register_model
    #   The Amazon Resource Name (ARN) of the model package that the model
    #   was registered to by this step execution.
    #   @return [Types::RegisterModelStepMetadata]
    #
    # @!attribute [rw] condition
    #   The outcome of the condition evaluation that was run by this step
    #   execution.
    #   @return [Types::ConditionStepMetadata]
    #
    # @!attribute [rw] callback
    #   The URL of the Amazon SQS queue used by this step execution, the
    #   pipeline generated token, and a list of output parameters.
    #   @return [Types::CallbackStepMetadata]
    #
    # @!attribute [rw] lambda
    #   The Amazon Resource Name (ARN) of the Lambda function that was run
    #   by this step execution and a list of output parameters.
    #   @return [Types::LambdaStepMetadata]
    #
    # @!attribute [rw] emr
    #   The configurations and outcomes of an Amazon EMR step execution.
    #   @return [Types::EMRStepMetadata]
    #
    # @!attribute [rw] quality_check
    #   The configurations and outcomes of the check step execution. This
    #   includes:
    #
    #   * The type of the check conducted.
    #
    #   * The Amazon S3 URIs of baseline constraints and statistics files to
    #     be used for the drift check.
    #
    #   * The Amazon S3 URIs of newly calculated baseline constraints and
    #     statistics.
    #
    #   * The model package group name provided.
    #
    #   * The Amazon S3 URI of the violation report if violations detected.
    #
    #   * The Amazon Resource Name (ARN) of check processing job initiated
    #     by the step execution.
    #
    #   * The Boolean flags indicating if the drift check is skipped.
    #
    #   * If step property `BaselineUsedForDriftCheck` is set the same as
    #     `CalculatedBaseline`.
    #   @return [Types::QualityCheckStepMetadata]
    #
    # @!attribute [rw] clarify_check
    #   Container for the metadata for a Clarify check step. The
    #   configurations and outcomes of the check step execution. This
    #   includes:
    #
    #   * The type of the check conducted,
    #
    #   * The Amazon S3 URIs of baseline constraints and statistics files to
    #     be used for the drift check.
    #
    #   * The Amazon S3 URIs of newly calculated baseline constraints and
    #     statistics.
    #
    #   * The model package group name provided.
    #
    #   * The Amazon S3 URI of the violation report if violations detected.
    #
    #   * The Amazon Resource Name (ARN) of check processing job initiated
    #     by the step execution.
    #
    #   * The boolean flags indicating if the drift check is skipped.
    #
    #   * If step property `BaselineUsedForDriftCheck` is set the same as
    #     `CalculatedBaseline`.
    #   @return [Types::ClarifyCheckStepMetadata]
    #
    # @!attribute [rw] fail
    #   The configurations and outcomes of a Fail step execution.
    #   @return [Types::FailStepMetadata]
    #
    # @!attribute [rw] auto_ml_job
    #   The Amazon Resource Name (ARN) of the AutoML job that was run by
    #   this step.
    #   @return [Types::AutoMLJobStepMetadata]
    #
    # @!attribute [rw] endpoint
    #   The endpoint that was invoked during this step execution.
    #   @return [Types::EndpointStepMetadata]
    #
    # @!attribute [rw] endpoint_config
    #   The endpoint configuration used to create an endpoint during this
    #   step execution.
    #   @return [Types::EndpointConfigStepMetadata]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/PipelineExecutionStepMetadata AWS API Documentation
    #
    class PipelineExecutionStepMetadata < Struct.new(
      :training_job,
      :processing_job,
      :transform_job,
      :tuning_job,
      :model,
      :register_model,
      :condition,
      :callback,
      :lambda,
      :emr,
      :quality_check,
      :clarify_check,
      :fail,
      :auto_ml_job,
      :endpoint,
      :endpoint_config)
      SENSITIVE = []
      include Aws::Structure
    end

    # A pipeline execution summary.
    #
    # @!attribute [rw] pipeline_execution_arn
    #   The Amazon Resource Name (ARN) of the pipeline execution.
    #   @return [String]
    #
    # @!attribute [rw] start_time
    #   The start time of the pipeline execution.
    #   @return [Time]
    #
    # @!attribute [rw] pipeline_execution_status
    #   The status of the pipeline execution.
    #   @return [String]
    #
    # @!attribute [rw] pipeline_execution_description
    #   The description of the pipeline execution.
    #   @return [String]
    #
    # @!attribute [rw] pipeline_execution_display_name
    #   The display name of the pipeline execution.
    #   @return [String]
    #
    # @!attribute [rw] pipeline_execution_failure_reason
    #   A message generated by SageMaker Pipelines describing why the
    #   pipeline execution failed.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/PipelineExecutionSummary AWS API Documentation
    #
    class PipelineExecutionSummary < Struct.new(
      :pipeline_execution_arn,
      :start_time,
      :pipeline_execution_status,
      :pipeline_execution_description,
      :pipeline_execution_display_name,
      :pipeline_execution_failure_reason)
      SENSITIVE = []
      include Aws::Structure
    end

    # Specifies the names of the experiment and trial created by a pipeline.
    #
    # @!attribute [rw] experiment_name
    #   The name of the experiment.
    #   @return [String]
    #
    # @!attribute [rw] trial_name
    #   The name of the trial.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/PipelineExperimentConfig AWS API Documentation
    #
    class PipelineExperimentConfig < Struct.new(
      :experiment_name,
      :trial_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # A summary of a pipeline.
    #
    # @!attribute [rw] pipeline_arn
    #   The Amazon Resource Name (ARN) of the pipeline.
    #   @return [String]
    #
    # @!attribute [rw] pipeline_name
    #   The name of the pipeline.
    #   @return [String]
    #
    # @!attribute [rw] pipeline_display_name
    #   The display name of the pipeline.
    #   @return [String]
    #
    # @!attribute [rw] pipeline_description
    #   The description of the pipeline.
    #   @return [String]
    #
    # @!attribute [rw] role_arn
    #   The Amazon Resource Name (ARN) that the pipeline used to execute.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   The creation time of the pipeline.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time
    #   The time that the pipeline was last modified.
    #   @return [Time]
    #
    # @!attribute [rw] last_execution_time
    #   The last time that a pipeline execution began.
    #   @return [Time]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/PipelineSummary AWS API Documentation
    #
    class PipelineSummary < Struct.new(
      :pipeline_arn,
      :pipeline_name,
      :pipeline_display_name,
      :pipeline_description,
      :role_arn,
      :creation_time,
      :last_modified_time,
      :last_execution_time)
      SENSITIVE = []
      include Aws::Structure
    end

    # The version of the pipeline.
    #
    # @!attribute [rw] pipeline_arn
    #   The Amazon Resource Name (ARN) of the pipeline.
    #   @return [String]
    #
    # @!attribute [rw] pipeline_version_id
    #   The ID of the pipeline version.
    #   @return [Integer]
    #
    # @!attribute [rw] pipeline_version_display_name
    #   The display name of the pipeline version.
    #   @return [String]
    #
    # @!attribute [rw] pipeline_version_description
    #   The description of the pipeline version.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   The creation time of the pipeline version.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time
    #   The time when the pipeline version was last modified.
    #   @return [Time]
    #
    # @!attribute [rw] created_by
    #   Information about the user who created or modified a SageMaker
    #   resource.
    #   @return [Types::UserContext]
    #
    # @!attribute [rw] last_modified_by
    #   Information about the user who created or modified a SageMaker
    #   resource.
    #   @return [Types::UserContext]
    #
    # @!attribute [rw] last_executed_pipeline_execution_arn
    #   The Amazon Resource Name (ARN) of the most recent pipeline execution
    #   created from this pipeline version.
    #   @return [String]
    #
    # @!attribute [rw] last_executed_pipeline_execution_display_name
    #   The display name of the most recent pipeline execution created from
    #   this pipeline version.
    #   @return [String]
    #
    # @!attribute [rw] last_executed_pipeline_execution_status
    #   The status of the most recent pipeline execution created from this
    #   pipeline version.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/PipelineVersion AWS API Documentation
    #
    class PipelineVersion < Struct.new(
      :pipeline_arn,
      :pipeline_version_id,
      :pipeline_version_display_name,
      :pipeline_version_description,
      :creation_time,
      :last_modified_time,
      :created_by,
      :last_modified_by,
      :last_executed_pipeline_execution_arn,
      :last_executed_pipeline_execution_display_name,
      :last_executed_pipeline_execution_status)
      SENSITIVE = []
      include Aws::Structure
    end

    # The summary of the pipeline version.
    #
    # @!attribute [rw] pipeline_arn
    #   The Amazon Resource Name (ARN) of the pipeline.
    #   @return [String]
    #
    # @!attribute [rw] pipeline_version_id
    #   The ID of the pipeline version.
    #   @return [Integer]
    #
    # @!attribute [rw] creation_time
    #   The creation time of the pipeline version.
    #   @return [Time]
    #
    # @!attribute [rw] pipeline_version_description
    #   The description of the pipeline version.
    #   @return [String]
    #
    # @!attribute [rw] pipeline_version_display_name
    #   The display name of the pipeline version.
    #   @return [String]
    #
    # @!attribute [rw] last_execution_pipeline_execution_arn
    #   The Amazon Resource Name (ARN) of the most recent pipeline execution
    #   created from this pipeline version.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/PipelineVersionSummary AWS API Documentation
    #
    class PipelineVersionSummary < Struct.new(
      :pipeline_arn,
      :pipeline_version_id,
      :creation_time,
      :pipeline_version_description,
      :pipeline_version_display_name,
      :last_execution_pipeline_execution_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # Specifies how instances should be placed on a specific UltraServer.
    #
    # @!attribute [rw] ultra_server_id
    #   The unique identifier of the UltraServer where instances should be
    #   placed.
    #   @return [String]
    #
    # @!attribute [rw] instance_count
    #   The number of ML compute instances required to be placed together on
    #   the same UltraServer. Minimum value of 1.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/PlacementSpecification AWS API Documentation
    #
    class PlacementSpecification < Struct.new(
      :ultra_server_id,
      :instance_count)
      SENSITIVE = []
      include Aws::Structure
    end

    # A specification for a predefined metric.
    #
    # @!attribute [rw] predefined_metric_type
    #   The metric type. You can only apply SageMaker metric types to
    #   SageMaker endpoints.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/PredefinedMetricSpecification AWS API Documentation
    #
    class PredefinedMetricSpecification < Struct.new(
      :predefined_metric_type)
      SENSITIVE = []
      include Aws::Structure
    end

    # Configuration for accessing hub content through presigned URLs,
    # including license agreement acceptance and URL validation settings.
    #
    # @!attribute [rw] accept_eula
    #   Indicates acceptance of the End User License Agreement (EULA) for
    #   gated models. Set to true to acknowledge acceptance of the license
    #   terms required for accessing gated content.
    #   @return [Boolean]
    #
    # @!attribute [rw] expected_s3_url
    #   The expected S3 URL prefix for validation purposes. This parameter
    #   helps ensure consistency between the resolved S3 URIs and the
    #   deployment configuration, reducing potential compatibility issues.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/PresignedUrlAccessConfig AWS API Documentation
    #
    class PresignedUrlAccessConfig < Struct.new(
      :accept_eula,
      :expected_s3_url)
      SENSITIVE = []
      include Aws::Structure
    end

    # Priority class configuration. When included in `PriorityClasses`,
    # these class configurations define how tasks are queued.
    #
    # @!attribute [rw] name
    #   Name of the priority class.
    #   @return [String]
    #
    # @!attribute [rw] weight
    #   Weight of the priority class. The value is within a range from 0 to
    #   100, where 0 is the default.
    #
    #   A weight of 0 is the lowest priority and 100 is the highest. Weight
    #   0 is the default.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/PriorityClass AWS API Documentation
    #
    class PriorityClass < Struct.new(
      :name,
      :weight)
      SENSITIVE = []
      include Aws::Structure
    end

    # Configuration for the cluster used to run a processing job.
    #
    # @!attribute [rw] instance_count
    #   The number of ML compute instances to use in the processing job. For
    #   distributed processing jobs, specify a value greater than 1. The
    #   default value is 1.
    #   @return [Integer]
    #
    # @!attribute [rw] instance_type
    #   The ML compute instance type for the processing job.
    #   @return [String]
    #
    # @!attribute [rw] volume_size_in_gb
    #   The size of the ML storage volume in gigabytes that you want to
    #   provision. You must specify sufficient ML storage for your scenario.
    #
    #   <note markdown="1"> Certain Nitro-based instances include local storage with a fixed
    #   total size, dependent on the instance type. When using these
    #   instances for processing, Amazon SageMaker mounts the local instance
    #   storage instead of Amazon EBS gp2 storage. You can't request a
    #   `VolumeSizeInGB` greater than the total size of the local instance
    #   storage.
    #
    #    For a list of instance types that support local instance storage,
    #   including the total size per instance type, see [Instance Store
    #   Volumes][1].
    #
    #    </note>
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#instance-store-volumes
    #   @return [Integer]
    #
    # @!attribute [rw] volume_kms_key_id
    #   The Amazon Web Services Key Management Service (Amazon Web Services
    #   KMS) key that Amazon SageMaker uses to encrypt data on the storage
    #   volume attached to the ML compute instance(s) that run the
    #   processing job.
    #
    #   <note markdown="1"> Certain Nitro-based instances include local storage, dependent on
    #   the instance type. Local storage volumes are encrypted using a
    #   hardware module on the instance. You can't request a
    #   `VolumeKmsKeyId` when using an instance type with local storage.
    #
    #    For a list of instance types that support local instance storage,
    #   see [Instance Store Volumes][1].
    #
    #    For more information about local instance storage encryption, see
    #   [SSD Instance Store Volumes][2].
    #
    #    </note>
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#instance-store-volumes
    #   [2]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ssd-instance-store.html
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ProcessingClusterConfig AWS API Documentation
    #
    class ProcessingClusterConfig < Struct.new(
      :instance_count,
      :instance_type,
      :volume_size_in_gb,
      :volume_kms_key_id)
      SENSITIVE = []
      include Aws::Structure
    end

    # Configuration for processing job outputs in Amazon SageMaker Feature
    # Store.
    #
    # @!attribute [rw] feature_group_name
    #   The name of the Amazon SageMaker FeatureGroup to use as the
    #   destination for processing job output. Note that your processing
    #   script is responsible for putting records into your Feature Store.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ProcessingFeatureStoreOutput AWS API Documentation
    #
    class ProcessingFeatureStoreOutput < Struct.new(
      :feature_group_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # The inputs for a processing job. The processing input must specify
    # exactly one of either `S3Input` or `DatasetDefinition` types.
    #
    # @!attribute [rw] input_name
    #   The name for the processing job input.
    #   @return [String]
    #
    # @!attribute [rw] app_managed
    #   When `True`, input operations such as data download are managed
    #   natively by the processing job application. When `False` (default),
    #   input operations are managed by Amazon SageMaker.
    #   @return [Boolean]
    #
    # @!attribute [rw] s3_input
    #   Configuration for downloading input data from Amazon S3 into the
    #   processing container.
    #   @return [Types::ProcessingS3Input]
    #
    # @!attribute [rw] dataset_definition
    #   Configuration for a Dataset Definition input.
    #   @return [Types::DatasetDefinition]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ProcessingInput AWS API Documentation
    #
    class ProcessingInput < Struct.new(
      :input_name,
      :app_managed,
      :s3_input,
      :dataset_definition)
      SENSITIVE = []
      include Aws::Structure
    end

    # An Amazon SageMaker processing job that is used to analyze data and
    # evaluate models. For more information, see [Process Data and Evaluate
    # Models][1].
    #
    #
    #
    # [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/processing-job.html
    #
    # @!attribute [rw] processing_inputs
    #   List of input configurations for the processing job.
    #   @return [Array<Types::ProcessingInput>]
    #
    # @!attribute [rw] processing_output_config
    #   Configuration for uploading output from the processing container.
    #   @return [Types::ProcessingOutputConfig]
    #
    # @!attribute [rw] processing_job_name
    #   The name of the processing job.
    #   @return [String]
    #
    # @!attribute [rw] processing_resources
    #   Identifies the resources, ML compute instances, and ML storage
    #   volumes to deploy for a processing job. In distributed training, you
    #   specify more than one instance.
    #   @return [Types::ProcessingResources]
    #
    # @!attribute [rw] stopping_condition
    #   Configures conditions under which the processing job should be
    #   stopped, such as how long the processing job has been running. After
    #   the condition is met, the processing job is stopped.
    #   @return [Types::ProcessingStoppingCondition]
    #
    # @!attribute [rw] app_specification
    #   Configuration to run a processing job in a specified container
    #   image.
    #   @return [Types::AppSpecification]
    #
    # @!attribute [rw] environment
    #   Sets the environment variables in the Docker container.
    #   @return [Hash<String,String>]
    #
    # @!attribute [rw] network_config
    #   Networking options for a job, such as network traffic encryption
    #   between containers, whether to allow inbound and outbound network
    #   calls to and from containers, and the VPC subnets and security
    #   groups to use for VPC-enabled jobs.
    #   @return [Types::NetworkConfig]
    #
    # @!attribute [rw] role_arn
    #   The ARN of the role used to create the processing job.
    #   @return [String]
    #
    # @!attribute [rw] experiment_config
    #   Associates a SageMaker job as a trial component with an experiment
    #   and trial. Specified when you call the following APIs:
    #
    #   * [CreateProcessingJob][1]
    #
    #   * [CreateTrainingJob][2]
    #
    #   * [CreateTransformJob][3]
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateProcessingJob.html
    #   [2]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html
    #   [3]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html
    #   @return [Types::ExperimentConfig]
    #
    # @!attribute [rw] processing_job_arn
    #   The ARN of the processing job.
    #   @return [String]
    #
    # @!attribute [rw] processing_job_status
    #   The status of the processing job.
    #   @return [String]
    #
    # @!attribute [rw] exit_message
    #   A string, up to one KB in size, that contains metadata from the
    #   processing container when the processing job exits.
    #   @return [String]
    #
    # @!attribute [rw] failure_reason
    #   A string, up to one KB in size, that contains the reason a
    #   processing job failed, if it failed.
    #   @return [String]
    #
    # @!attribute [rw] processing_end_time
    #   The time that the processing job ended.
    #   @return [Time]
    #
    # @!attribute [rw] processing_start_time
    #   The time that the processing job started.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time
    #   The time the processing job was last modified.
    #   @return [Time]
    #
    # @!attribute [rw] creation_time
    #   The time the processing job was created.
    #   @return [Time]
    #
    # @!attribute [rw] monitoring_schedule_arn
    #   The ARN of a monitoring schedule for an endpoint associated with
    #   this processing job.
    #   @return [String]
    #
    # @!attribute [rw] auto_ml_job_arn
    #   The Amazon Resource Name (ARN) of the AutoML job associated with
    #   this processing job.
    #   @return [String]
    #
    # @!attribute [rw] training_job_arn
    #   The ARN of the training job associated with this processing job.
    #   @return [String]
    #
    # @!attribute [rw] tags
    #   An array of key-value pairs. For more information, see [Using Cost
    #   Allocation Tags][1] in the *Amazon Web Services Billing and Cost
    #   Management User Guide*.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html#allocation-whatURL
    #   @return [Array<Types::Tag>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ProcessingJob AWS API Documentation
    #
    class ProcessingJob < Struct.new(
      :processing_inputs,
      :processing_output_config,
      :processing_job_name,
      :processing_resources,
      :stopping_condition,
      :app_specification,
      :environment,
      :network_config,
      :role_arn,
      :experiment_config,
      :processing_job_arn,
      :processing_job_status,
      :exit_message,
      :failure_reason,
      :processing_end_time,
      :processing_start_time,
      :last_modified_time,
      :creation_time,
      :monitoring_schedule_arn,
      :auto_ml_job_arn,
      :training_job_arn,
      :tags)
      SENSITIVE = []
      include Aws::Structure
    end

    # Metadata for a processing job step.
    #
    # @!attribute [rw] arn
    #   The Amazon Resource Name (ARN) of the processing job.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ProcessingJobStepMetadata AWS API Documentation
    #
    class ProcessingJobStepMetadata < Struct.new(
      :arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # Summary of information about a processing job.
    #
    # @!attribute [rw] processing_job_name
    #   The name of the processing job.
    #   @return [String]
    #
    # @!attribute [rw] processing_job_arn
    #   The Amazon Resource Name (ARN) of the processing job..
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   The time at which the processing job was created.
    #   @return [Time]
    #
    # @!attribute [rw] processing_end_time
    #   The time at which the processing job completed.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time
    #   A timestamp that indicates the last time the processing job was
    #   modified.
    #   @return [Time]
    #
    # @!attribute [rw] processing_job_status
    #   The status of the processing job.
    #   @return [String]
    #
    # @!attribute [rw] failure_reason
    #   A string, up to one KB in size, that contains the reason a
    #   processing job failed, if it failed.
    #   @return [String]
    #
    # @!attribute [rw] exit_message
    #   An optional string, up to one KB in size, that contains metadata
    #   from the processing container when the processing job exits.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ProcessingJobSummary AWS API Documentation
    #
    class ProcessingJobSummary < Struct.new(
      :processing_job_name,
      :processing_job_arn,
      :creation_time,
      :processing_end_time,
      :last_modified_time,
      :processing_job_status,
      :failure_reason,
      :exit_message)
      SENSITIVE = []
      include Aws::Structure
    end

    # Describes the results of a processing job. The processing output must
    # specify exactly one of either `S3Output` or `FeatureStoreOutput`
    # types.
    #
    # @!attribute [rw] output_name
    #   The name for the processing job output.
    #   @return [String]
    #
    # @!attribute [rw] s3_output
    #   Configuration for processing job outputs in Amazon S3.
    #   @return [Types::ProcessingS3Output]
    #
    # @!attribute [rw] feature_store_output
    #   Configuration for processing job outputs in Amazon SageMaker Feature
    #   Store. This processing output type is only supported when
    #   `AppManaged` is specified.
    #   @return [Types::ProcessingFeatureStoreOutput]
    #
    # @!attribute [rw] app_managed
    #   When `True`, output operations such as data upload are managed
    #   natively by the processing job application. When `False` (default),
    #   output operations are managed by Amazon SageMaker.
    #   @return [Boolean]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ProcessingOutput AWS API Documentation
    #
    class ProcessingOutput < Struct.new(
      :output_name,
      :s3_output,
      :feature_store_output,
      :app_managed)
      SENSITIVE = []
      include Aws::Structure
    end

    # Configuration for uploading output from the processing container.
    #
    # @!attribute [rw] outputs
    #   An array of outputs configuring the data to upload from the
    #   processing container.
    #   @return [Array<Types::ProcessingOutput>]
    #
    # @!attribute [rw] kms_key_id
    #   The Amazon Web Services Key Management Service (Amazon Web Services
    #   KMS) key that Amazon SageMaker uses to encrypt the processing job
    #   output. `KmsKeyId` can be an ID of a KMS key, ARN of a KMS key, or
    #   alias of a KMS key. The `KmsKeyId` is applied to all outputs.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ProcessingOutputConfig AWS API Documentation
    #
    class ProcessingOutputConfig < Struct.new(
      :outputs,
      :kms_key_id)
      SENSITIVE = []
      include Aws::Structure
    end

    # Identifies the resources, ML compute instances, and ML storage volumes
    # to deploy for a processing job. In distributed training, you specify
    # more than one instance.
    #
    # @!attribute [rw] cluster_config
    #   The configuration for the resources in a cluster used to run the
    #   processing job.
    #   @return [Types::ProcessingClusterConfig]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ProcessingResources AWS API Documentation
    #
    class ProcessingResources < Struct.new(
      :cluster_config)
      SENSITIVE = []
      include Aws::Structure
    end

    # Configuration for downloading input data from Amazon S3 into the
    # processing container.
    #
    # @!attribute [rw] s3_uri
    #   The URI of the Amazon S3 prefix Amazon SageMaker downloads data
    #   required to run a processing job.
    #   @return [String]
    #
    # @!attribute [rw] local_path
    #   The local path in your container where you want Amazon SageMaker to
    #   write input data to. `LocalPath` is an absolute path to the input
    #   data and must begin with `/opt/ml/processing/`. `LocalPath` is a
    #   required parameter when `AppManaged` is `False` (default).
    #   @return [String]
    #
    # @!attribute [rw] s3_data_type
    #   Whether you use an `S3Prefix` or a `ManifestFile` for the data type.
    #   If you choose `S3Prefix`, `S3Uri` identifies a key name prefix.
    #   Amazon SageMaker uses all objects with the specified key name prefix
    #   for the processing job. If you choose `ManifestFile`, `S3Uri`
    #   identifies an object that is a manifest file containing a list of
    #   object keys that you want Amazon SageMaker to use for the processing
    #   job.
    #   @return [String]
    #
    # @!attribute [rw] s3_input_mode
    #   Whether to use `File` or `Pipe` input mode. In File mode, Amazon
    #   SageMaker copies the data from the input source onto the local ML
    #   storage volume before starting your processing container. This is
    #   the most commonly used input mode. In `Pipe` mode, Amazon SageMaker
    #   streams input data from the source directly to your processing
    #   container into named pipes without using the ML storage volume.
    #   @return [String]
    #
    # @!attribute [rw] s3_data_distribution_type
    #   Whether to distribute the data from Amazon S3 to all processing
    #   instances with `FullyReplicated`, or whether the data from Amazon S3
    #   is shared by Amazon S3 key, downloading one shard of data to each
    #   processing instance.
    #   @return [String]
    #
    # @!attribute [rw] s3_compression_type
    #   Whether to GZIP-decompress the data in Amazon S3 as it is streamed
    #   into the processing container. `Gzip` can only be used when `Pipe`
    #   mode is specified as the `S3InputMode`. In `Pipe` mode, Amazon
    #   SageMaker streams input data from the source directly to your
    #   container without using the EBS volume.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ProcessingS3Input AWS API Documentation
    #
    class ProcessingS3Input < Struct.new(
      :s3_uri,
      :local_path,
      :s3_data_type,
      :s3_input_mode,
      :s3_data_distribution_type,
      :s3_compression_type)
      SENSITIVE = []
      include Aws::Structure
    end

    # Configuration for uploading output data to Amazon S3 from the
    # processing container.
    #
    # @!attribute [rw] s3_uri
    #   A URI that identifies the Amazon S3 bucket where you want Amazon
    #   SageMaker to save the results of a processing job.
    #   @return [String]
    #
    # @!attribute [rw] local_path
    #   The local path of a directory where you want Amazon SageMaker to
    #   upload its contents to Amazon S3. `LocalPath` is an absolute path to
    #   a directory containing output files. This directory will be created
    #   by the platform and exist when your container's entrypoint is
    #   invoked.
    #   @return [String]
    #
    # @!attribute [rw] s3_upload_mode
    #   Whether to upload the results of the processing job continuously or
    #   after the job completes.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ProcessingS3Output AWS API Documentation
    #
    class ProcessingS3Output < Struct.new(
      :s3_uri,
      :local_path,
      :s3_upload_mode)
      SENSITIVE = []
      include Aws::Structure
    end

    # Configures conditions under which the processing job should be
    # stopped, such as how long the processing job has been running. After
    # the condition is met, the processing job is stopped.
    #
    # @!attribute [rw] max_runtime_in_seconds
    #   Specifies the maximum runtime in seconds.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ProcessingStoppingCondition AWS API Documentation
    #
    class ProcessingStoppingCondition < Struct.new(
      :max_runtime_in_seconds)
      SENSITIVE = []
      include Aws::Structure
    end

    # Identifies a model that you want to host and the resources chosen to
    # deploy for hosting it. If you are deploying multiple models, tell
    # SageMaker how to distribute traffic among the models by specifying
    # variant weights. For more information on production variants, check [
    # Production variants][1].
    #
    #
    #
    # [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/model-ab-testing.html
    #
    # @!attribute [rw] variant_name
    #   The name of the production variant.
    #   @return [String]
    #
    # @!attribute [rw] model_name
    #   The name of the model that you want to host. This is the name that
    #   you specified when creating the model.
    #   @return [String]
    #
    # @!attribute [rw] initial_instance_count
    #   Number of instances to launch initially.
    #   @return [Integer]
    #
    # @!attribute [rw] instance_type
    #   The ML compute instance type.
    #   @return [String]
    #
    # @!attribute [rw] initial_variant_weight
    #   Determines initial traffic distribution among all of the models that
    #   you specify in the endpoint configuration. The traffic to a
    #   production variant is determined by the ratio of the `VariantWeight`
    #   to the sum of all `VariantWeight` values across all
    #   ProductionVariants. If unspecified, it defaults to 1.0.
    #   @return [Float]
    #
    # @!attribute [rw] accelerator_type
    #   This parameter is no longer supported. Elastic Inference (EI) is no
    #   longer available.
    #
    #   This parameter was used to specify the size of the EI instance to
    #   use for the production variant.
    #   @return [String]
    #
    # @!attribute [rw] core_dump_config
    #   Specifies configuration for a core dump from the model container
    #   when the process crashes.
    #   @return [Types::ProductionVariantCoreDumpConfig]
    #
    # @!attribute [rw] serverless_config
    #   The serverless configuration for an endpoint. Specifies a serverless
    #   endpoint configuration instead of an instance-based endpoint
    #   configuration.
    #   @return [Types::ProductionVariantServerlessConfig]
    #
    # @!attribute [rw] volume_size_in_gb
    #   The size, in GB, of the ML storage volume attached to individual
    #   inference instance associated with the production variant. Currently
    #   only Amazon EBS gp2 storage volumes are supported.
    #   @return [Integer]
    #
    # @!attribute [rw] model_data_download_timeout_in_seconds
    #   The timeout value, in seconds, to download and extract the model
    #   that you want to host from Amazon S3 to the individual inference
    #   instance associated with this production variant.
    #   @return [Integer]
    #
    # @!attribute [rw] container_startup_health_check_timeout_in_seconds
    #   The timeout value, in seconds, for your inference container to pass
    #   health check by SageMaker Hosting. For more information about health
    #   check, see [How Your Container Should Respond to Health Check (Ping)
    #   Requests][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms-inference-code.html#your-algorithms-inference-algo-ping-requests
    #   @return [Integer]
    #
    # @!attribute [rw] enable_ssm_access
    #   You can use this parameter to turn on native Amazon Web Services
    #   Systems Manager (SSM) access for a production variant behind an
    #   endpoint. By default, SSM access is disabled for all production
    #   variants behind an endpoint. You can turn on or turn off SSM access
    #   for a production variant behind an existing endpoint by creating a
    #   new endpoint configuration and calling `UpdateEndpoint`.
    #   @return [Boolean]
    #
    # @!attribute [rw] managed_instance_scaling
    #   Settings that control the range in the number of instances that the
    #   endpoint provisions as it scales up or down to accommodate traffic.
    #   @return [Types::ProductionVariantManagedInstanceScaling]
    #
    # @!attribute [rw] routing_config
    #   Settings that control how the endpoint routes incoming traffic to
    #   the instances that the endpoint hosts.
    #   @return [Types::ProductionVariantRoutingConfig]
    #
    # @!attribute [rw] inference_ami_version
    #   Specifies an option from a collection of preconfigured Amazon
    #   Machine Image (AMI) images. Each image is configured by Amazon Web
    #   Services with a set of software and driver versions. Amazon Web
    #   Services optimizes these configurations for different machine
    #   learning workloads.
    #
    #   By selecting an AMI version, you can ensure that your inference
    #   environment is compatible with specific software requirements, such
    #   as CUDA driver versions, Linux kernel versions, or Amazon Web
    #   Services Neuron driver versions.
    #
    #   The AMI version names, and their configurations, are the following:
    #
    #   al2-ami-sagemaker-inference-gpu-2
    #   : * Accelerator: GPU
    #
    #     * NVIDIA driver version: 535
    #
    #     * CUDA version: 12.2
    #
    #   al2-ami-sagemaker-inference-gpu-2-1
    #   : * Accelerator: GPU
    #
    #     * NVIDIA driver version: 535
    #
    #     * CUDA version: 12.2
    #
    #     * NVIDIA Container Toolkit with disabled CUDA-compat mounting
    #
    #   al2-ami-sagemaker-inference-gpu-3-1
    #   : * Accelerator: GPU
    #
    #     * NVIDIA driver version: 550
    #
    #     * CUDA version: 12.4
    #
    #     * NVIDIA Container Toolkit with disabled CUDA-compat mounting
    #
    #   al2-ami-sagemaker-inference-neuron-2
    #   : * Accelerator: Inferentia2 and Trainium
    #
    #     * Neuron driver version: 2.19
    #   @return [String]
    #
    # @!attribute [rw] capacity_reservation_config
    #   Settings for the capacity reservation for the compute instances that
    #   SageMaker AI reserves for an endpoint.
    #   @return [Types::ProductionVariantCapacityReservationConfig]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ProductionVariant AWS API Documentation
    #
    class ProductionVariant < Struct.new(
      :variant_name,
      :model_name,
      :initial_instance_count,
      :instance_type,
      :initial_variant_weight,
      :accelerator_type,
      :core_dump_config,
      :serverless_config,
      :volume_size_in_gb,
      :model_data_download_timeout_in_seconds,
      :container_startup_health_check_timeout_in_seconds,
      :enable_ssm_access,
      :managed_instance_scaling,
      :routing_config,
      :inference_ami_version,
      :capacity_reservation_config)
      SENSITIVE = []
      include Aws::Structure
    end

    # Settings for the capacity reservation for the compute instances that
    # SageMaker AI reserves for an endpoint.
    #
    # @!attribute [rw] capacity_reservation_preference
    #   Options that you can choose for the capacity reservation. SageMaker
    #   AI supports the following options:
    #
    #   capacity-reservations-only
    #
    #   : SageMaker AI launches instances only into an ML capacity
    #     reservation. If no capacity is available, the instances fail to
    #     launch.
    #   @return [String]
    #
    # @!attribute [rw] ml_reservation_arn
    #   The Amazon Resource Name (ARN) that uniquely identifies the ML
    #   capacity reservation that SageMaker AI applies when it deploys the
    #   endpoint.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ProductionVariantCapacityReservationConfig AWS API Documentation
    #
    class ProductionVariantCapacityReservationConfig < Struct.new(
      :capacity_reservation_preference,
      :ml_reservation_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # Details about an ML capacity reservation.
    #
    # @!attribute [rw] ml_reservation_arn
    #   The Amazon Resource Name (ARN) that uniquely identifies the ML
    #   capacity reservation that SageMaker AI applies when it deploys the
    #   endpoint.
    #   @return [String]
    #
    # @!attribute [rw] capacity_reservation_preference
    #   The option that you chose for the capacity reservation. SageMaker AI
    #   supports the following options:
    #
    #   capacity-reservations-only
    #
    #   : SageMaker AI launches instances only into an ML capacity
    #     reservation. If no capacity is available, the instances fail to
    #     launch.
    #   @return [String]
    #
    # @!attribute [rw] total_instance_count
    #   The number of instances that you allocated to the ML capacity
    #   reservation.
    #   @return [Integer]
    #
    # @!attribute [rw] available_instance_count
    #   The number of instances that are currently available in the ML
    #   capacity reservation.
    #   @return [Integer]
    #
    # @!attribute [rw] used_by_current_endpoint
    #   The number of instances from the ML capacity reservation that are
    #   being used by the endpoint.
    #   @return [Integer]
    #
    # @!attribute [rw] ec2_capacity_reservations
    #   The EC2 capacity reservations that are shared to this ML capacity
    #   reservation, if any.
    #   @return [Array<Types::Ec2CapacityReservation>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ProductionVariantCapacityReservationSummary AWS API Documentation
    #
    class ProductionVariantCapacityReservationSummary < Struct.new(
      :ml_reservation_arn,
      :capacity_reservation_preference,
      :total_instance_count,
      :available_instance_count,
      :used_by_current_endpoint,
      :ec2_capacity_reservations)
      SENSITIVE = []
      include Aws::Structure
    end

    # Specifies configuration for a core dump from the model container when
    # the process crashes.
    #
    # @!attribute [rw] destination_s3_uri
    #   The Amazon S3 bucket to send the core dump to.
    #   @return [String]
    #
    # @!attribute [rw] kms_key_id
    #   The Amazon Web Services Key Management Service (Amazon Web Services
    #   KMS) key that SageMaker uses to encrypt the core dump data at rest
    #   using Amazon S3 server-side encryption. The `KmsKeyId` can be any of
    #   the following formats:
    #
    #   * // KMS Key ID
    #
    #     `"1234abcd-12ab-34cd-56ef-1234567890ab"`
    #
    #   * // Amazon Resource Name (ARN) of a KMS Key
    #
    #     `"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"`
    #
    #   * // KMS Key Alias
    #
    #     `"alias/ExampleAlias"`
    #
    #   * // Amazon Resource Name (ARN) of a KMS Key Alias
    #
    #     `"arn:aws:kms:us-west-2:111122223333:alias/ExampleAlias"`
    #
    #   If you use a KMS key ID or an alias of your KMS key, the SageMaker
    #   execution role must include permissions to call `kms:Encrypt`. If
    #   you don't provide a KMS key ID, SageMaker uses the default KMS key
    #   for Amazon S3 for your role's account. SageMaker uses server-side
    #   encryption with KMS-managed keys for `OutputDataConfig`. If you use
    #   a bucket policy with an `s3:PutObject` permission that only allows
    #   objects with server-side encryption, set the condition key of
    #   `s3:x-amz-server-side-encryption` to `"aws:kms"`. For more
    #   information, see [KMS-Managed Encryption Keys][1] in the *Amazon
    #   Simple Storage Service Developer Guide.*
    #
    #   The KMS key policy must grant permission to the IAM role that you
    #   specify in your `CreateEndpoint` and `UpdateEndpoint` requests. For
    #   more information, see [Using Key Policies in Amazon Web Services
    #   KMS][2] in the *Amazon Web Services Key Management Service Developer
    #   Guide*.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html
    #   [2]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ProductionVariantCoreDumpConfig AWS API Documentation
    #
    class ProductionVariantCoreDumpConfig < Struct.new(
      :destination_s3_uri,
      :kms_key_id)
      SENSITIVE = []
      include Aws::Structure
    end

    # Settings that control the range in the number of instances that the
    # endpoint provisions as it scales up or down to accommodate traffic.
    #
    # @!attribute [rw] status
    #   Indicates whether managed instance scaling is enabled.
    #   @return [String]
    #
    # @!attribute [rw] min_instance_count
    #   The minimum number of instances that the endpoint must retain when
    #   it scales down to accommodate a decrease in traffic.
    #   @return [Integer]
    #
    # @!attribute [rw] max_instance_count
    #   The maximum number of instances that the endpoint can provision when
    #   it scales up to accommodate an increase in traffic.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ProductionVariantManagedInstanceScaling AWS API Documentation
    #
    class ProductionVariantManagedInstanceScaling < Struct.new(
      :status,
      :min_instance_count,
      :max_instance_count)
      SENSITIVE = []
      include Aws::Structure
    end

    # Settings that control how the endpoint routes incoming traffic to the
    # instances that the endpoint hosts.
    #
    # @!attribute [rw] routing_strategy
    #   Sets how the endpoint routes incoming traffic:
    #
    #   * `LEAST_OUTSTANDING_REQUESTS`: The endpoint routes requests to the
    #     specific instances that have more capacity to process them.
    #
    #   * `RANDOM`: The endpoint routes each request to a randomly chosen
    #     instance.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ProductionVariantRoutingConfig AWS API Documentation
    #
    class ProductionVariantRoutingConfig < Struct.new(
      :routing_strategy)
      SENSITIVE = []
      include Aws::Structure
    end

    # Specifies the serverless configuration for an endpoint variant.
    #
    # @!attribute [rw] memory_size_in_mb
    #   The memory size of your serverless endpoint. Valid values are in 1
    #   GB increments: 1024 MB, 2048 MB, 3072 MB, 4096 MB, 5120 MB, or 6144
    #   MB.
    #   @return [Integer]
    #
    # @!attribute [rw] max_concurrency
    #   The maximum number of concurrent invocations your serverless
    #   endpoint can process.
    #   @return [Integer]
    #
    # @!attribute [rw] provisioned_concurrency
    #   The amount of provisioned concurrency to allocate for the serverless
    #   endpoint. Should be less than or equal to `MaxConcurrency`.
    #
    #   <note markdown="1"> This field is not supported for serverless endpoint recommendations
    #   for Inference Recommender jobs. For more information about creating
    #   an Inference Recommender job, see
    #   [CreateInferenceRecommendationsJobs][1].
    #
    #    </note>
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateInferenceRecommendationsJob.html
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ProductionVariantServerlessConfig AWS API Documentation
    #
    class ProductionVariantServerlessConfig < Struct.new(
      :memory_size_in_mb,
      :max_concurrency,
      :provisioned_concurrency)
      SENSITIVE = []
      include Aws::Structure
    end

    # Specifies the serverless update concurrency configuration for an
    # endpoint variant.
    #
    # @!attribute [rw] max_concurrency
    #   The updated maximum number of concurrent invocations your serverless
    #   endpoint can process.
    #   @return [Integer]
    #
    # @!attribute [rw] provisioned_concurrency
    #   The updated amount of provisioned concurrency to allocate for the
    #   serverless endpoint. Should be less than or equal to
    #   `MaxConcurrency`.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ProductionVariantServerlessUpdateConfig AWS API Documentation
    #
    class ProductionVariantServerlessUpdateConfig < Struct.new(
      :max_concurrency,
      :provisioned_concurrency)
      SENSITIVE = []
      include Aws::Structure
    end

    # Describes the status of the production variant.
    #
    # @!attribute [rw] status
    #   The endpoint variant status which describes the current deployment
    #   stage status or operational status.
    #
    #   * `Creating`: Creating inference resources for the production
    #     variant.
    #
    #   * `Deleting`: Terminating inference resources for the production
    #     variant.
    #
    #   * `Updating`: Updating capacity for the production variant.
    #
    #   * `ActivatingTraffic`: Turning on traffic for the production
    #     variant.
    #
    #   * `Baking`: Waiting period to monitor the CloudWatch alarms in the
    #     automatic rollback configuration.
    #   @return [String]
    #
    # @!attribute [rw] status_message
    #   A message that describes the status of the production variant.
    #   @return [String]
    #
    # @!attribute [rw] start_time
    #   The start time of the current status change.
    #   @return [Time]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ProductionVariantStatus AWS API Documentation
    #
    class ProductionVariantStatus < Struct.new(
      :status,
      :status_message,
      :start_time)
      SENSITIVE = []
      include Aws::Structure
    end

    # Describes weight and capacities for a production variant associated
    # with an endpoint. If you sent a request to the
    # `UpdateEndpointWeightsAndCapacities` API and the endpoint status is
    # `Updating`, you get different desired and current values.
    #
    # @!attribute [rw] variant_name
    #   The name of the variant.
    #   @return [String]
    #
    # @!attribute [rw] deployed_images
    #   An array of `DeployedImage` objects that specify the Amazon EC2
    #   Container Registry paths of the inference images deployed on
    #   instances of this `ProductionVariant`.
    #   @return [Array<Types::DeployedImage>]
    #
    # @!attribute [rw] current_weight
    #   The weight associated with the variant.
    #   @return [Float]
    #
    # @!attribute [rw] desired_weight
    #   The requested weight, as specified in the
    #   `UpdateEndpointWeightsAndCapacities` request.
    #   @return [Float]
    #
    # @!attribute [rw] current_instance_count
    #   The number of instances associated with the variant.
    #   @return [Integer]
    #
    # @!attribute [rw] desired_instance_count
    #   The number of instances requested in the
    #   `UpdateEndpointWeightsAndCapacities` request.
    #   @return [Integer]
    #
    # @!attribute [rw] variant_status
    #   The endpoint variant status which describes the current deployment
    #   stage status or operational status.
    #   @return [Array<Types::ProductionVariantStatus>]
    #
    # @!attribute [rw] current_serverless_config
    #   The serverless configuration for the endpoint.
    #   @return [Types::ProductionVariantServerlessConfig]
    #
    # @!attribute [rw] desired_serverless_config
    #   The serverless configuration requested for the endpoint update.
    #   @return [Types::ProductionVariantServerlessConfig]
    #
    # @!attribute [rw] managed_instance_scaling
    #   Settings that control the range in the number of instances that the
    #   endpoint provisions as it scales up or down to accommodate traffic.
    #   @return [Types::ProductionVariantManagedInstanceScaling]
    #
    # @!attribute [rw] routing_config
    #   Settings that control how the endpoint routes incoming traffic to
    #   the instances that the endpoint hosts.
    #   @return [Types::ProductionVariantRoutingConfig]
    #
    # @!attribute [rw] capacity_reservation_config
    #   Settings for the capacity reservation for the compute instances that
    #   SageMaker AI reserves for an endpoint.
    #   @return [Types::ProductionVariantCapacityReservationSummary]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ProductionVariantSummary AWS API Documentation
    #
    class ProductionVariantSummary < Struct.new(
      :variant_name,
      :deployed_images,
      :current_weight,
      :desired_weight,
      :current_instance_count,
      :desired_instance_count,
      :variant_status,
      :current_serverless_config,
      :desired_serverless_config,
      :managed_instance_scaling,
      :routing_config,
      :capacity_reservation_config)
      SENSITIVE = []
      include Aws::Structure
    end

    # Configuration information for Amazon SageMaker Debugger system
    # monitoring, framework profiling, and storage paths.
    #
    # @!attribute [rw] s3_output_path
    #   Path to Amazon S3 storage location for system and framework metrics.
    #   @return [String]
    #
    # @!attribute [rw] profiling_interval_in_milliseconds
    #   A time interval for capturing system metrics in milliseconds.
    #   Available values are 100, 200, 500, 1000 (1 second), 5000 (5
    #   seconds), and 60000 (1 minute) milliseconds. The default value is
    #   500 milliseconds.
    #   @return [Integer]
    #
    # @!attribute [rw] profiling_parameters
    #   Configuration information for capturing framework metrics. Available
    #   key strings for different profiling options are
    #   `DetailedProfilingConfig`, `PythonProfilingConfig`, and
    #   `DataLoaderProfilingConfig`. The following codes are configuration
    #   structures for the `ProfilingParameters` parameter. To learn more
    #   about how to configure the `ProfilingParameters` parameter, see [Use
    #   the SageMaker and Debugger Configuration API Operations to Create,
    #   Update, and Debug Your Training Job][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/debugger-createtrainingjob-api.html
    #   @return [Hash<String,String>]
    #
    # @!attribute [rw] disable_profiler
    #   Configuration to turn off Amazon SageMaker Debugger's system
    #   monitoring and profiling functionality. To turn it off, set to
    #   `True`.
    #   @return [Boolean]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ProfilerConfig AWS API Documentation
    #
    class ProfilerConfig < Struct.new(
      :s3_output_path,
      :profiling_interval_in_milliseconds,
      :profiling_parameters,
      :disable_profiler)
      SENSITIVE = []
      include Aws::Structure
    end

    # Configuration information for updating the Amazon SageMaker Debugger
    # profile parameters, system and framework metrics configurations, and
    # storage paths.
    #
    # @!attribute [rw] s3_output_path
    #   Path to Amazon S3 storage location for system and framework metrics.
    #   @return [String]
    #
    # @!attribute [rw] profiling_interval_in_milliseconds
    #   A time interval for capturing system metrics in milliseconds.
    #   Available values are 100, 200, 500, 1000 (1 second), 5000 (5
    #   seconds), and 60000 (1 minute) milliseconds. The default value is
    #   500 milliseconds.
    #   @return [Integer]
    #
    # @!attribute [rw] profiling_parameters
    #   Configuration information for capturing framework metrics. Available
    #   key strings for different profiling options are
    #   `DetailedProfilingConfig`, `PythonProfilingConfig`, and
    #   `DataLoaderProfilingConfig`. The following codes are configuration
    #   structures for the `ProfilingParameters` parameter. To learn more
    #   about how to configure the `ProfilingParameters` parameter, see [Use
    #   the SageMaker and Debugger Configuration API Operations to Create,
    #   Update, and Debug Your Training Job][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/debugger-createtrainingjob-api.html
    #   @return [Hash<String,String>]
    #
    # @!attribute [rw] disable_profiler
    #   To turn off Amazon SageMaker Debugger monitoring and profiling while
    #   a training job is in progress, set to `True`.
    #   @return [Boolean]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ProfilerConfigForUpdate AWS API Documentation
    #
    class ProfilerConfigForUpdate < Struct.new(
      :s3_output_path,
      :profiling_interval_in_milliseconds,
      :profiling_parameters,
      :disable_profiler)
      SENSITIVE = []
      include Aws::Structure
    end

    # Configuration information for profiling rules.
    #
    # @!attribute [rw] rule_configuration_name
    #   The name of the rule configuration. It must be unique relative to
    #   other rule configuration names.
    #   @return [String]
    #
    # @!attribute [rw] local_path
    #   Path to local storage location for output of rules. Defaults to
    #   `/opt/ml/processing/output/rule/`.
    #   @return [String]
    #
    # @!attribute [rw] s3_output_path
    #   Path to Amazon S3 storage location for rules.
    #   @return [String]
    #
    # @!attribute [rw] rule_evaluator_image
    #   The Amazon Elastic Container Registry Image for the managed rule
    #   evaluation.
    #   @return [String]
    #
    # @!attribute [rw] instance_type
    #   The instance type to deploy a custom rule for profiling a training
    #   job.
    #   @return [String]
    #
    # @!attribute [rw] volume_size_in_gb
    #   The size, in GB, of the ML storage volume attached to the processing
    #   instance.
    #   @return [Integer]
    #
    # @!attribute [rw] rule_parameters
    #   Runtime configuration for rule container.
    #   @return [Hash<String,String>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ProfilerRuleConfiguration AWS API Documentation
    #
    class ProfilerRuleConfiguration < Struct.new(
      :rule_configuration_name,
      :local_path,
      :s3_output_path,
      :rule_evaluator_image,
      :instance_type,
      :volume_size_in_gb,
      :rule_parameters)
      SENSITIVE = []
      include Aws::Structure
    end

    # Information about the status of the rule evaluation.
    #
    # @!attribute [rw] rule_configuration_name
    #   The name of the rule configuration.
    #   @return [String]
    #
    # @!attribute [rw] rule_evaluation_job_arn
    #   The Amazon Resource Name (ARN) of the rule evaluation job.
    #   @return [String]
    #
    # @!attribute [rw] rule_evaluation_status
    #   Status of the rule evaluation.
    #   @return [String]
    #
    # @!attribute [rw] status_details
    #   Details from the rule evaluation.
    #   @return [String]
    #
    # @!attribute [rw] last_modified_time
    #   Timestamp when the rule evaluation status was last modified.
    #   @return [Time]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ProfilerRuleEvaluationStatus AWS API Documentation
    #
    class ProfilerRuleEvaluationStatus < Struct.new(
      :rule_configuration_name,
      :rule_evaluation_job_arn,
      :rule_evaluation_status,
      :status_details,
      :last_modified_time)
      SENSITIVE = []
      include Aws::Structure
    end

    # The properties of a project as returned by the Search API.
    #
    # @!attribute [rw] project_arn
    #   The Amazon Resource Name (ARN) of the project.
    #   @return [String]
    #
    # @!attribute [rw] project_name
    #   The name of the project.
    #   @return [String]
    #
    # @!attribute [rw] project_id
    #   The ID of the project.
    #   @return [String]
    #
    # @!attribute [rw] project_description
    #   The description of the project.
    #   @return [String]
    #
    # @!attribute [rw] service_catalog_provisioning_details
    #   Details that you specify to provision a service catalog product. For
    #   information about service catalog, see [What is Amazon Web Services
    #   Service Catalog][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/servicecatalog/latest/adminguide/introduction.html
    #   @return [Types::ServiceCatalogProvisioningDetails]
    #
    # @!attribute [rw] service_catalog_provisioned_product_details
    #   Details of a provisioned service catalog product. For information
    #   about service catalog, see [What is Amazon Web Services Service
    #   Catalog][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/servicecatalog/latest/adminguide/introduction.html
    #   @return [Types::ServiceCatalogProvisionedProductDetails]
    #
    # @!attribute [rw] project_status
    #   The status of the project.
    #   @return [String]
    #
    # @!attribute [rw] created_by
    #   Who created the project.
    #   @return [Types::UserContext]
    #
    # @!attribute [rw] creation_time
    #   A timestamp specifying when the project was created.
    #   @return [Time]
    #
    # @!attribute [rw] template_provider_details
    #   An array of template providers associated with the project.
    #   @return [Array<Types::TemplateProviderDetail>]
    #
    # @!attribute [rw] tags
    #   An array of key-value pairs. You can use tags to categorize your
    #   Amazon Web Services resources in different ways, for example, by
    #   purpose, owner, or environment. For more information, see [Tagging
    #   Amazon Web Services Resources][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html
    #   @return [Array<Types::Tag>]
    #
    # @!attribute [rw] last_modified_time
    #   A timestamp container for when the project was last modified.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_by
    #   Information about the user who created or modified a SageMaker
    #   resource.
    #   @return [Types::UserContext]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/Project AWS API Documentation
    #
    class Project < Struct.new(
      :project_arn,
      :project_name,
      :project_id,
      :project_description,
      :service_catalog_provisioning_details,
      :service_catalog_provisioned_product_details,
      :project_status,
      :created_by,
      :creation_time,
      :template_provider_details,
      :tags,
      :last_modified_time,
      :last_modified_by)
      SENSITIVE = []
      include Aws::Structure
    end

    # Information about a project.
    #
    # @!attribute [rw] project_name
    #   The name of the project.
    #   @return [String]
    #
    # @!attribute [rw] project_description
    #   The description of the project.
    #   @return [String]
    #
    # @!attribute [rw] project_arn
    #   The Amazon Resource Name (ARN) of the project.
    #   @return [String]
    #
    # @!attribute [rw] project_id
    #   The ID of the project.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   The time that the project was created.
    #   @return [Time]
    #
    # @!attribute [rw] project_status
    #   The status of the project.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ProjectSummary AWS API Documentation
    #
    class ProjectSummary < Struct.new(
      :project_name,
      :project_description,
      :project_arn,
      :project_id,
      :creation_time,
      :project_status)
      SENSITIVE = []
      include Aws::Structure
    end

    # Part of the `SuggestionQuery` type. Specifies a hint for retrieving
    # property names that begin with the specified text.
    #
    # @!attribute [rw] property_name_hint
    #   Text that begins a property's name.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/PropertyNameQuery AWS API Documentation
    #
    class PropertyNameQuery < Struct.new(
      :property_name_hint)
      SENSITIVE = []
      include Aws::Structure
    end

    # A property name returned from a `GetSearchSuggestions` call that
    # specifies a value in the `PropertyNameQuery` field.
    #
    # @!attribute [rw] property_name
    #   A suggested property name based on what you entered in the search
    #   textbox in the SageMaker console.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/PropertyNameSuggestion AWS API Documentation
    #
    class PropertyNameSuggestion < Struct.new(
      :property_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # A key value pair used when you provision a project as a service
    # catalog product. For information, see [What is Amazon Web Services
    # Service Catalog][1].
    #
    #
    #
    # [1]: https://docs.aws.amazon.com/servicecatalog/latest/adminguide/introduction.html
    #
    # @!attribute [rw] key
    #   The key that identifies a provisioning parameter.
    #   @return [String]
    #
    # @!attribute [rw] value
    #   The value of the provisioning parameter.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ProvisioningParameter AWS API Documentation
    #
    class ProvisioningParameter < Struct.new(
      :key,
      :value)
      SENSITIVE = []
      include Aws::Structure
    end

    # Defines the amount of money paid to an Amazon Mechanical Turk worker
    # for each task performed.
    #
    # Use one of the following prices for bounding box tasks. Prices are in
    # US dollars and should be based on the complexity of the task; the
    # longer it takes in your initial testing, the more you should offer.
    #
    # * 0.036
    #
    # * 0.048
    #
    # * 0.060
    #
    # * 0.072
    #
    # * 0.120
    #
    # * 0.240
    #
    # * 0.360
    #
    # * 0.480
    #
    # * 0.600
    #
    # * 0.720
    #
    # * 0.840
    #
    # * 0.960
    #
    # * 1.080
    #
    # * 1.200
    #
    # Use one of the following prices for image classification, text
    # classification, and custom tasks. Prices are in US dollars.
    #
    # * 0.012
    #
    # * 0.024
    #
    # * 0.036
    #
    # * 0.048
    #
    # * 0.060
    #
    # * 0.072
    #
    # * 0.120
    #
    # * 0.240
    #
    # * 0.360
    #
    # * 0.480
    #
    # * 0.600
    #
    # * 0.720
    #
    # * 0.840
    #
    # * 0.960
    #
    # * 1.080
    #
    # * 1.200
    #
    # Use one of the following prices for semantic segmentation tasks.
    # Prices are in US dollars.
    #
    # * 0.840
    #
    # * 0.960
    #
    # * 1.080
    #
    # * 1.200
    #
    # Use one of the following prices for Textract AnalyzeDocument Important
    # Form Key Amazon Augmented AI review tasks. Prices are in US dollars.
    #
    # * 2.400
    #
    # * 2.280
    #
    # * 2.160
    #
    # * 2.040
    #
    # * 1.920
    #
    # * 1.800
    #
    # * 1.680
    #
    # * 1.560
    #
    # * 1.440
    #
    # * 1.320
    #
    # * 1.200
    #
    # * 1.080
    #
    # * 0.960
    #
    # * 0.840
    #
    # * 0.720
    #
    # * 0.600
    #
    # * 0.480
    #
    # * 0.360
    #
    # * 0.240
    #
    # * 0.120
    #
    # * 0.072
    #
    # * 0.060
    #
    # * 0.048
    #
    # * 0.036
    #
    # * 0.024
    #
    # * 0.012
    #
    # Use one of the following prices for Rekognition DetectModerationLabels
    # Amazon Augmented AI review tasks. Prices are in US dollars.
    #
    # * 1.200
    #
    # * 1.080
    #
    # * 0.960
    #
    # * 0.840
    #
    # * 0.720
    #
    # * 0.600
    #
    # * 0.480
    #
    # * 0.360
    #
    # * 0.240
    #
    # * 0.120
    #
    # * 0.072
    #
    # * 0.060
    #
    # * 0.048
    #
    # * 0.036
    #
    # * 0.024
    #
    # * 0.012
    #
    # Use one of the following prices for Amazon Augmented AI custom human
    # review tasks. Prices are in US dollars.
    #
    # * 1.200
    #
    # * 1.080
    #
    # * 0.960
    #
    # * 0.840
    #
    # * 0.720
    #
    # * 0.600
    #
    # * 0.480
    #
    # * 0.360
    #
    # * 0.240
    #
    # * 0.120
    #
    # * 0.072
    #
    # * 0.060
    #
    # * 0.048
    #
    # * 0.036
    #
    # * 0.024
    #
    # * 0.012
    #
    # @!attribute [rw] amount_in_usd
    #   Defines the amount of money paid to an Amazon Mechanical Turk worker
    #   in United States dollars.
    #   @return [Types::USD]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/PublicWorkforceTaskPrice AWS API Documentation
    #
    class PublicWorkforceTaskPrice < Struct.new(
      :amount_in_usd)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] model_package_group_name
    #   The name of the model group to add a resource policy to.
    #   @return [String]
    #
    # @!attribute [rw] resource_policy
    #   The resource policy for the model group.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/PutModelPackageGroupPolicyInput AWS API Documentation
    #
    class PutModelPackageGroupPolicyInput < Struct.new(
      :model_package_group_name,
      :resource_policy)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] model_package_group_arn
    #   The Amazon Resource Name (ARN) of the model package group.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/PutModelPackageGroupPolicyOutput AWS API Documentation
    #
    class PutModelPackageGroupPolicyOutput < Struct.new(
      :model_package_group_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # Container for the metadata for a Quality check step. For more
    # information, see the topic on [QualityCheck step][1] in the *Amazon
    # SageMaker Developer Guide*.
    #
    #
    #
    # [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/build-and-manage-steps.html#step-type-quality-check
    #
    # @!attribute [rw] check_type
    #   The type of the Quality check step.
    #   @return [String]
    #
    # @!attribute [rw] baseline_used_for_drift_check_statistics
    #   The Amazon S3 URI of the baseline statistics file used for the drift
    #   check.
    #   @return [String]
    #
    # @!attribute [rw] baseline_used_for_drift_check_constraints
    #   The Amazon S3 URI of the baseline constraints file used for the
    #   drift check.
    #   @return [String]
    #
    # @!attribute [rw] calculated_baseline_statistics
    #   The Amazon S3 URI of the newly calculated baseline statistics file.
    #   @return [String]
    #
    # @!attribute [rw] calculated_baseline_constraints
    #   The Amazon S3 URI of the newly calculated baseline constraints file.
    #   @return [String]
    #
    # @!attribute [rw] model_package_group_name
    #   The model package group name.
    #   @return [String]
    #
    # @!attribute [rw] violation_report
    #   The Amazon S3 URI of violation report if violations are detected.
    #   @return [String]
    #
    # @!attribute [rw] check_job_arn
    #   The Amazon Resource Name (ARN) of the Quality check processing job
    #   that was run by this step execution.
    #   @return [String]
    #
    # @!attribute [rw] skip_check
    #   This flag indicates if the drift check against the previous baseline
    #   will be skipped or not. If it is set to `False`, the previous
    #   baseline of the configured check type must be available.
    #   @return [Boolean]
    #
    # @!attribute [rw] register_new_baseline
    #   This flag indicates if a newly calculated baseline can be accessed
    #   through step properties `BaselineUsedForDriftCheckConstraints` and
    #   `BaselineUsedForDriftCheckStatistics`. If it is set to `False`, the
    #   previous baseline of the configured check type must also be
    #   available. These can be accessed through the
    #   `BaselineUsedForDriftCheckConstraints` and `
    #   BaselineUsedForDriftCheckStatistics` properties.
    #   @return [Boolean]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/QualityCheckStepMetadata AWS API Documentation
    #
    class QualityCheckStepMetadata < Struct.new(
      :check_type,
      :baseline_used_for_drift_check_statistics,
      :baseline_used_for_drift_check_constraints,
      :calculated_baseline_statistics,
      :calculated_baseline_constraints,
      :model_package_group_name,
      :violation_report,
      :check_job_arn,
      :skip_check,
      :register_new_baseline)
      SENSITIVE = []
      include Aws::Structure
    end

    # A set of filters to narrow the set of lineage entities connected to
    # the `StartArn`(s) returned by the `QueryLineage` API action.
    #
    # @!attribute [rw] types
    #   Filter the lineage entities connected to the `StartArn` by type. For
    #   example: `DataSet`, `Model`, `Endpoint`, or `ModelDeployment`.
    #   @return [Array<String>]
    #
    # @!attribute [rw] lineage_types
    #   Filter the lineage entities connected to the `StartArn`(s) by the
    #   type of the lineage entity.
    #   @return [Array<String>]
    #
    # @!attribute [rw] created_before
    #   Filter the lineage entities connected to the `StartArn`(s) by
    #   created date.
    #   @return [Time]
    #
    # @!attribute [rw] created_after
    #   Filter the lineage entities connected to the `StartArn`(s) after the
    #   create date.
    #   @return [Time]
    #
    # @!attribute [rw] modified_before
    #   Filter the lineage entities connected to the `StartArn`(s) before
    #   the last modified date.
    #   @return [Time]
    #
    # @!attribute [rw] modified_after
    #   Filter the lineage entities connected to the `StartArn`(s) after the
    #   last modified date.
    #   @return [Time]
    #
    # @!attribute [rw] properties
    #   Filter the lineage entities connected to the `StartArn`(s) by a set
    #   if property key value pairs. If multiple pairs are provided, an
    #   entity is included in the results if it matches any of the provided
    #   pairs.
    #   @return [Hash<String,String>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/QueryFilters AWS API Documentation
    #
    class QueryFilters < Struct.new(
      :types,
      :lineage_types,
      :created_before,
      :created_after,
      :modified_before,
      :modified_after,
      :properties)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] start_arns
    #   A list of resource Amazon Resource Name (ARN) that represent the
    #   starting point for your lineage query.
    #   @return [Array<String>]
    #
    # @!attribute [rw] direction
    #   Associations between lineage entities have a direction. This
    #   parameter determines the direction from the StartArn(s) that the
    #   query traverses.
    #   @return [String]
    #
    # @!attribute [rw] include_edges
    #   Setting this value to `True` retrieves not only the entities of
    #   interest but also the [Associations][1] and lineage entities on the
    #   path. Set to `False` to only return lineage entities that match your
    #   query.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/lineage-tracking-entities.html
    #   @return [Boolean]
    #
    # @!attribute [rw] filters
    #   A set of filtering parameters that allow you to specify which
    #   entities should be returned.
    #
    #   * Properties - Key-value pairs to match on the lineage entities'
    #     properties.
    #
    #   * LineageTypes - A set of lineage entity types to match on. For
    #     example: `TrialComponent`, `Artifact`, or `Context`.
    #
    #   * CreatedBefore - Filter entities created before this date.
    #
    #   * ModifiedBefore - Filter entities modified before this date.
    #
    #   * ModifiedAfter - Filter entities modified after this date.
    #   @return [Types::QueryFilters]
    #
    # @!attribute [rw] max_depth
    #   The maximum depth in lineage relationships from the `StartArns` that
    #   are traversed. Depth is a measure of the number of `Associations`
    #   from the `StartArn` entity to the matched results.
    #   @return [Integer]
    #
    # @!attribute [rw] max_results
    #   Limits the number of vertices in the results. Use the `NextToken` in
    #   a response to to retrieve the next page of results.
    #   @return [Integer]
    #
    # @!attribute [rw] next_token
    #   Limits the number of vertices in the request. Use the `NextToken` in
    #   a response to to retrieve the next page of results.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/QueryLineageRequest AWS API Documentation
    #
    class QueryLineageRequest < Struct.new(
      :start_arns,
      :direction,
      :include_edges,
      :filters,
      :max_depth,
      :max_results,
      :next_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] vertices
    #   A list of vertices connected to the start entity(ies) in the lineage
    #   graph.
    #   @return [Array<Types::Vertex>]
    #
    # @!attribute [rw] edges
    #   A list of edges that connect vertices in the response.
    #   @return [Array<Types::Edge>]
    #
    # @!attribute [rw] next_token
    #   Limits the number of vertices in the response. Use the `NextToken`
    #   in a response to to retrieve the next page of results.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/QueryLineageResponse AWS API Documentation
    #
    class QueryLineageResponse < Struct.new(
      :vertices,
      :edges,
      :next_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # A collection of settings that apply to an `RSessionGateway` app.
    #
    # @!attribute [rw] default_resource_spec
    #   Specifies the ARN's of a SageMaker AI image and SageMaker AI image
    #   version, and the instance type that the version runs on.
    #
    #   <note markdown="1"> When both `SageMakerImageVersionArn` and `SageMakerImageArn` are
    #   passed, `SageMakerImageVersionArn` is used. Any updates to
    #   `SageMakerImageArn` will not take effect if
    #   `SageMakerImageVersionArn` already exists in the `ResourceSpec`
    #   because `SageMakerImageVersionArn` always takes precedence. To clear
    #   the value set for `SageMakerImageVersionArn`, pass `None` as the
    #   value.
    #
    #    </note>
    #   @return [Types::ResourceSpec]
    #
    # @!attribute [rw] custom_images
    #   A list of custom SageMaker AI images that are configured to run as a
    #   RSession app.
    #   @return [Array<Types::CustomImage>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/RSessionAppSettings AWS API Documentation
    #
    class RSessionAppSettings < Struct.new(
      :default_resource_spec,
      :custom_images)
      SENSITIVE = []
      include Aws::Structure
    end

    # A collection of settings that configure user interaction with the
    # `RStudioServerPro` app.
    #
    # @!attribute [rw] access_status
    #   Indicates whether the current user has access to the
    #   `RStudioServerPro` app.
    #   @return [String]
    #
    # @!attribute [rw] user_group
    #   The level of permissions that the user has within the
    #   `RStudioServerPro` app. This value defaults to `User`. The
    #   `Admin` value allows the user access to the RStudio Administrative
    #   Dashboard.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/RStudioServerProAppSettings AWS API Documentation
    #
    class RStudioServerProAppSettings < Struct.new(
      :access_status,
      :user_group)
      SENSITIVE = []
      include Aws::Structure
    end

    # A collection of settings that configure the `RStudioServerPro`
    # Domain-level app.
    #
    # @!attribute [rw] domain_execution_role_arn
    #   The ARN of the execution role for the `RStudioServerPro`
    #   Domain-level app.
    #   @return [String]
    #
    # @!attribute [rw] r_studio_connect_url
    #   A URL pointing to an RStudio Connect server.
    #   @return [String]
    #
    # @!attribute [rw] r_studio_package_manager_url
    #   A URL pointing to an RStudio Package Manager server.
    #   @return [String]
    #
    # @!attribute [rw] default_resource_spec
    #   Specifies the ARN's of a SageMaker AI image and SageMaker AI image
    #   version, and the instance type that the version runs on.
    #
    #   <note markdown="1"> When both `SageMakerImageVersionArn` and `SageMakerImageArn` are
    #   passed, `SageMakerImageVersionArn` is used. Any updates to
    #   `SageMakerImageArn` will not take effect if
    #   `SageMakerImageVersionArn` already exists in the `ResourceSpec`
    #   because `SageMakerImageVersionArn` always takes precedence. To clear
    #   the value set for `SageMakerImageVersionArn`, pass `None` as the
    #   value.
    #
    #    </note>
    #   @return [Types::ResourceSpec]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/RStudioServerProDomainSettings AWS API Documentation
    #
    class RStudioServerProDomainSettings < Struct.new(
      :domain_execution_role_arn,
      :r_studio_connect_url,
      :r_studio_package_manager_url,
      :default_resource_spec)
      SENSITIVE = []
      include Aws::Structure
    end

    # A collection of settings that update the current configuration for the
    # `RStudioServerPro` Domain-level app.
    #
    # @!attribute [rw] domain_execution_role_arn
    #   The execution role for the `RStudioServerPro` Domain-level app.
    #   @return [String]
    #
    # @!attribute [rw] default_resource_spec
    #   Specifies the ARN's of a SageMaker AI image and SageMaker AI image
    #   version, and the instance type that the version runs on.
    #
    #   <note markdown="1"> When both `SageMakerImageVersionArn` and `SageMakerImageArn` are
    #   passed, `SageMakerImageVersionArn` is used. Any updates to
    #   `SageMakerImageArn` will not take effect if
    #   `SageMakerImageVersionArn` already exists in the `ResourceSpec`
    #   because `SageMakerImageVersionArn` always takes precedence. To clear
    #   the value set for `SageMakerImageVersionArn`, pass `None` as the
    #   value.
    #
    #    </note>
    #   @return [Types::ResourceSpec]
    #
    # @!attribute [rw] r_studio_connect_url
    #   A URL pointing to an RStudio Connect server.
    #   @return [String]
    #
    # @!attribute [rw] r_studio_package_manager_url
    #   A URL pointing to an RStudio Package Manager server.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/RStudioServerProDomainSettingsForUpdate AWS API Documentation
    #
    class RStudioServerProDomainSettingsForUpdate < Struct.new(
      :domain_execution_role_arn,
      :default_resource_spec,
      :r_studio_connect_url,
      :r_studio_package_manager_url)
      SENSITIVE = []
      include Aws::Structure
    end

    # The infrastructure configuration for deploying the model to a
    # real-time inference endpoint.
    #
    # @!attribute [rw] instance_type
    #   The instance type the model is deployed to.
    #   @return [String]
    #
    # @!attribute [rw] instance_count
    #   The number of instances of the type specified by `InstanceType`.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/RealTimeInferenceConfig AWS API Documentation
    #
    class RealTimeInferenceConfig < Struct.new(
      :instance_type,
      :instance_count)
      SENSITIVE = []
      include Aws::Structure
    end

    # The recommended configuration to use for Real-Time Inference.
    #
    # @!attribute [rw] recommendation_id
    #   The recommendation ID which uniquely identifies each recommendation.
    #   @return [String]
    #
    # @!attribute [rw] instance_type
    #   The recommended instance type for Real-Time Inference.
    #   @return [String]
    #
    # @!attribute [rw] environment
    #   The recommended environment variables to set in the model container
    #   for Real-Time Inference.
    #   @return [Hash<String,String>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/RealTimeInferenceRecommendation AWS API Documentation
    #
    class RealTimeInferenceRecommendation < Struct.new(
      :recommendation_id,
      :instance_type,
      :environment)
      SENSITIVE = []
      include Aws::Structure
    end

    # Provides information about the output configuration for the compiled
    # model.
    #
    # @!attribute [rw] s3_output_uri
    #   Identifies the Amazon S3 bucket where you want SageMaker to store
    #   the compiled model artifacts.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/RecommendationJobCompiledOutputConfig AWS API Documentation
    #
    class RecommendationJobCompiledOutputConfig < Struct.new(
      :s3_output_uri)
      SENSITIVE = []
      include Aws::Structure
    end

    # Specifies mandatory fields for running an Inference Recommender job
    # directly in the [CreateInferenceRecommendationsJob][1] API. The fields
    # specified in `ContainerConfig` override the corresponding fields in
    # the model package. Use `ContainerConfig` if you want to specify these
    # fields for the recommendation job but don't want to edit them in your
    # model package.
    #
    #
    #
    # [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateInferenceRecommendationsJob.html
    #
    # @!attribute [rw] domain
    #   The machine learning domain of the model and its components.
    #
    #   Valid Values: `COMPUTER_VISION | NATURAL_LANGUAGE_PROCESSING |
    #   MACHINE_LEARNING`
    #   @return [String]
    #
    # @!attribute [rw] task
    #   The machine learning task that the model accomplishes.
    #
    #   Valid Values: `IMAGE_CLASSIFICATION | OBJECT_DETECTION |
    #   TEXT_GENERATION | IMAGE_SEGMENTATION | FILL_MASK | CLASSIFICATION |
    #   REGRESSION | OTHER`
    #   @return [String]
    #
    # @!attribute [rw] framework
    #   The machine learning framework of the container image.
    #
    #   Valid Values: `TENSORFLOW | PYTORCH | XGBOOST |
    #   SAGEMAKER-SCIKIT-LEARN`
    #   @return [String]
    #
    # @!attribute [rw] framework_version
    #   The framework version of the container image.
    #   @return [String]
    #
    # @!attribute [rw] payload_config
    #   Specifies the `SamplePayloadUrl` and all other sample
    #   payload-related fields.
    #   @return [Types::RecommendationJobPayloadConfig]
    #
    # @!attribute [rw] nearest_model_name
    #   The name of a pre-trained machine learning model benchmarked by
    #   Amazon SageMaker Inference Recommender that matches your model.
    #
    #   Valid Values: `efficientnetb7 | unet | xgboost |
    #   faster-rcnn-resnet101 | nasnetlarge | vgg16 | inception-v3 |
    #   mask-rcnn | sagemaker-scikit-learn | densenet201-gluon |
    #   resnet18v2-gluon | xception | densenet201 | yolov4 | resnet152 |
    #   bert-base-cased | xceptionV1-keras | resnet50 | retinanet`
    #   @return [String]
    #
    # @!attribute [rw] supported_instance_types
    #   A list of the instance types that are used to generate inferences in
    #   real-time.
    #   @return [Array<String>]
    #
    # @!attribute [rw] supported_endpoint_type
    #   The endpoint type to receive recommendations for. By default this is
    #   null, and the results of the inference recommendation job return a
    #   combined list of both real-time and serverless benchmarks. By
    #   specifying a value for this field, you can receive a longer list of
    #   benchmarks for the desired endpoint type.
    #   @return [String]
    #
    # @!attribute [rw] data_input_config
    #   Specifies the name and shape of the expected data inputs for your
    #   trained model with a JSON dictionary form. This field is used for
    #   optimizing your model using SageMaker Neo. For more information, see
    #   [DataInputConfig][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_InputConfig.html#sagemaker-Type-InputConfig-DataInputConfig
    #   @return [String]
    #
    # @!attribute [rw] supported_response_mime_types
    #   The supported MIME types for the output data.
    #   @return [Array<String>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/RecommendationJobContainerConfig AWS API Documentation
    #
    class RecommendationJobContainerConfig < Struct.new(
      :domain,
      :task,
      :framework,
      :framework_version,
      :payload_config,
      :nearest_model_name,
      :supported_instance_types,
      :supported_endpoint_type,
      :data_input_config,
      :supported_response_mime_types)
      SENSITIVE = []
      include Aws::Structure
    end

    # The details for a specific benchmark from an Inference Recommender
    # job.
    #
    # @!attribute [rw] metrics
    #   The metrics of recommendations.
    #   @return [Types::RecommendationMetrics]
    #
    # @!attribute [rw] endpoint_metrics
    #   The metrics for an existing endpoint compared in an Inference
    #   Recommender job.
    #   @return [Types::InferenceMetrics]
    #
    # @!attribute [rw] endpoint_configuration
    #   The endpoint configuration made by Inference Recommender during a
    #   recommendation job.
    #   @return [Types::EndpointOutputConfiguration]
    #
    # @!attribute [rw] model_configuration
    #   Defines the model configuration. Includes the specification name and
    #   environment parameters.
    #   @return [Types::ModelConfiguration]
    #
    # @!attribute [rw] failure_reason
    #   The reason why a benchmark failed.
    #   @return [String]
    #
    # @!attribute [rw] invocation_end_time
    #   A timestamp that shows when the benchmark completed.
    #   @return [Time]
    #
    # @!attribute [rw] invocation_start_time
    #   A timestamp that shows when the benchmark started.
    #   @return [Time]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/RecommendationJobInferenceBenchmark AWS API Documentation
    #
    class RecommendationJobInferenceBenchmark < Struct.new(
      :metrics,
      :endpoint_metrics,
      :endpoint_configuration,
      :model_configuration,
      :failure_reason,
      :invocation_end_time,
      :invocation_start_time)
      SENSITIVE = []
      include Aws::Structure
    end

    # The input configuration of the recommendation job.
    #
    # @!attribute [rw] model_package_version_arn
    #   The Amazon Resource Name (ARN) of a versioned model package.
    #   @return [String]
    #
    # @!attribute [rw] model_name
    #   The name of the created model.
    #   @return [String]
    #
    # @!attribute [rw] job_duration_in_seconds
    #   Specifies the maximum duration of the job, in seconds. The maximum
    #   value is 18,000 seconds.
    #   @return [Integer]
    #
    # @!attribute [rw] traffic_pattern
    #   Specifies the traffic pattern of the job.
    #   @return [Types::TrafficPattern]
    #
    # @!attribute [rw] resource_limit
    #   Defines the resource limit of the job.
    #   @return [Types::RecommendationJobResourceLimit]
    #
    # @!attribute [rw] endpoint_configurations
    #   Specifies the endpoint configuration to use for a job.
    #   @return [Array<Types::EndpointInputConfiguration>]
    #
    # @!attribute [rw] volume_kms_key_id
    #   The Amazon Resource Name (ARN) of a Amazon Web Services Key
    #   Management Service (Amazon Web Services KMS) key that Amazon
    #   SageMaker uses to encrypt data on the storage volume attached to the
    #   ML compute instance that hosts the endpoint. This key will be passed
    #   to SageMaker Hosting for endpoint creation.
    #
    #   The SageMaker execution role must have `kms:CreateGrant` permission
    #   in order to encrypt data on the storage volume of the endpoints
    #   created for inference recommendation. The inference recommendation
    #   job will fail asynchronously during endpoint configuration creation
    #   if the role passed does not have `kms:CreateGrant` permission.
    #
    #   The `KmsKeyId` can be any of the following formats:
    #
    #   * // KMS Key ID
    #
    #     `"1234abcd-12ab-34cd-56ef-1234567890ab"`
    #
    #   * // Amazon Resource Name (ARN) of a KMS Key
    #
    #     `"arn:aws:kms:<region>:<account>:key/<key-id-12ab-34cd-56ef-1234567890ab>"`
    #
    #   * // KMS Key Alias
    #
    #     `"alias/ExampleAlias"`
    #
    #   * // Amazon Resource Name (ARN) of a KMS Key Alias
    #
    #     `"arn:aws:kms:<region>:<account>:alias/<ExampleAlias>"`
    #
    #   For more information about key identifiers, see [Key identifiers
    #   (KeyID)][1] in the Amazon Web Services Key Management Service
    #   (Amazon Web Services KMS) documentation.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-id
    #   @return [String]
    #
    # @!attribute [rw] container_config
    #   Specifies mandatory fields for running an Inference Recommender job.
    #   The fields specified in `ContainerConfig` override the corresponding
    #   fields in the model package.
    #   @return [Types::RecommendationJobContainerConfig]
    #
    # @!attribute [rw] endpoints
    #   Existing customer endpoints on which to run an Inference Recommender
    #   job.
    #   @return [Array<Types::EndpointInfo>]
    #
    # @!attribute [rw] vpc_config
    #   Inference Recommender provisions SageMaker endpoints with access to
    #   VPC in the inference recommendation job.
    #   @return [Types::RecommendationJobVpcConfig]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/RecommendationJobInputConfig AWS API Documentation
    #
    class RecommendationJobInputConfig < Struct.new(
      :model_package_version_arn,
      :model_name,
      :job_duration_in_seconds,
      :traffic_pattern,
      :resource_limit,
      :endpoint_configurations,
      :volume_kms_key_id,
      :container_config,
      :endpoints,
      :vpc_config)
      SENSITIVE = []
      include Aws::Structure
    end

    # Provides information about the output configuration for the compiled
    # model.
    #
    # @!attribute [rw] kms_key_id
    #   The Amazon Resource Name (ARN) of a Amazon Web Services Key
    #   Management Service (Amazon Web Services KMS) key that Amazon
    #   SageMaker uses to encrypt your output artifacts with Amazon S3
    #   server-side encryption. The SageMaker execution role must have
    #   `kms:GenerateDataKey` permission.
    #
    #   The `KmsKeyId` can be any of the following formats:
    #
    #   * // KMS Key ID
    #
    #     `"1234abcd-12ab-34cd-56ef-1234567890ab"`
    #
    #   * // Amazon Resource Name (ARN) of a KMS Key
    #
    #     `"arn:aws:kms:<region>:<account>:key/<key-id-12ab-34cd-56ef-1234567890ab>"`
    #
    #   * // KMS Key Alias
    #
    #     `"alias/ExampleAlias"`
    #
    #   * // Amazon Resource Name (ARN) of a KMS Key Alias
    #
    #     `"arn:aws:kms:<region>:<account>:alias/<ExampleAlias>"`
    #
    #   For more information about key identifiers, see [Key identifiers
    #   (KeyID)][1] in the Amazon Web Services Key Management Service
    #   (Amazon Web Services KMS) documentation.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-id
    #   @return [String]
    #
    # @!attribute [rw] compiled_output_config
    #   Provides information about the output configuration for the compiled
    #   model.
    #   @return [Types::RecommendationJobCompiledOutputConfig]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/RecommendationJobOutputConfig AWS API Documentation
    #
    class RecommendationJobOutputConfig < Struct.new(
      :kms_key_id,
      :compiled_output_config)
      SENSITIVE = []
      include Aws::Structure
    end

    # The configuration for the payload for a recommendation job.
    #
    # @!attribute [rw] sample_payload_url
    #   The Amazon Simple Storage Service (Amazon S3) path where the sample
    #   payload is stored. This path must point to a single gzip compressed
    #   tar archive (.tar.gz suffix).
    #   @return [String]
    #
    # @!attribute [rw] supported_content_types
    #   The supported MIME types for the input data.
    #   @return [Array<String>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/RecommendationJobPayloadConfig AWS API Documentation
    #
    class RecommendationJobPayloadConfig < Struct.new(
      :sample_payload_url,
      :supported_content_types)
      SENSITIVE = []
      include Aws::Structure
    end

    # Specifies the maximum number of jobs that can run in parallel and the
    # maximum number of jobs that can run.
    #
    # @!attribute [rw] max_number_of_tests
    #   Defines the maximum number of load tests.
    #   @return [Integer]
    #
    # @!attribute [rw] max_parallel_of_tests
    #   Defines the maximum number of parallel load tests.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/RecommendationJobResourceLimit AWS API Documentation
    #
    class RecommendationJobResourceLimit < Struct.new(
      :max_number_of_tests,
      :max_parallel_of_tests)
      SENSITIVE = []
      include Aws::Structure
    end

    # Specifies conditions for stopping a job. When a job reaches a stopping
    # condition limit, SageMaker ends the job.
    #
    # @!attribute [rw] max_invocations
    #   The maximum number of requests per minute expected for the endpoint.
    #   @return [Integer]
    #
    # @!attribute [rw] model_latency_thresholds
    #   The interval of time taken by a model to respond as viewed from
    #   SageMaker. The interval includes the local communication time taken
    #   to send the request and to fetch the response from the container of
    #   a model and the time taken to complete the inference in the
    #   container.
    #   @return [Array<Types::ModelLatencyThreshold>]
    #
    # @!attribute [rw] flat_invocations
    #   Stops a load test when the number of invocations (TPS) peaks and
    #   flattens, which means that the instance has reached capacity. The
    #   default value is `Stop`. If you want the load test to continue after
    #   invocations have flattened, set the value to `Continue`.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/RecommendationJobStoppingConditions AWS API Documentation
    #
    class RecommendationJobStoppingConditions < Struct.new(
      :max_invocations,
      :model_latency_thresholds,
      :flat_invocations)
      SENSITIVE = []
      include Aws::Structure
    end

    # Inference Recommender provisions SageMaker endpoints with access to
    # VPC in the inference recommendation job.
    #
    # @!attribute [rw] security_group_ids
    #   The VPC security group IDs. IDs have the form of `sg-xxxxxxxx`.
    #   Specify the security groups for the VPC that is specified in the
    #   `Subnets` field.
    #   @return [Array<String>]
    #
    # @!attribute [rw] subnets
    #   The ID of the subnets in the VPC to which you want to connect your
    #   model.
    #   @return [Array<String>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/RecommendationJobVpcConfig AWS API Documentation
    #
    class RecommendationJobVpcConfig < Struct.new(
      :security_group_ids,
      :subnets)
      SENSITIVE = []
      include Aws::Structure
    end

    # The metrics of recommendations.
    #
    # @!attribute [rw] cost_per_hour
    #   Defines the cost per hour for the instance.
    #   @return [Float]
    #
    # @!attribute [rw] cost_per_inference
    #   Defines the cost per inference for the instance .
    #   @return [Float]
    #
    # @!attribute [rw] max_invocations
    #   The expected maximum number of requests per minute for the instance.
    #   @return [Integer]
    #
    # @!attribute [rw] model_latency
    #   The expected model latency at maximum invocation per minute for the
    #   instance.
    #   @return [Integer]
    #
    # @!attribute [rw] cpu_utilization
    #   The expected CPU utilization at maximum invocations per minute for
    #   the instance.
    #
    #   `NaN` indicates that the value is not available.
    #   @return [Float]
    #
    # @!attribute [rw] memory_utilization
    #   The expected memory utilization at maximum invocations per minute
    #   for the instance.
    #
    #   `NaN` indicates that the value is not available.
    #   @return [Float]
    #
    # @!attribute [rw] model_setup_time
    #   The time it takes to launch new compute resources for a serverless
    #   endpoint. The time can vary depending on the model size, how long it
    #   takes to download the model, and the start-up time of the container.
    #
    #   `NaN` indicates that the value is not available.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/RecommendationMetrics AWS API Documentation
    #
    class RecommendationMetrics < Struct.new(
      :cost_per_hour,
      :cost_per_inference,
      :max_invocations,
      :model_latency,
      :cpu_utilization,
      :memory_utilization,
      :model_setup_time)
      SENSITIVE = []
      include Aws::Structure
    end

    # Configuration for Redshift Dataset Definition input.
    #
    # @!attribute [rw] cluster_id
    #   The Redshift cluster Identifier.
    #   @return [String]
    #
    # @!attribute [rw] database
    #   The name of the Redshift database used in Redshift query execution.
    #   @return [String]
    #
    # @!attribute [rw] db_user
    #   The database user name used in Redshift query execution.
    #   @return [String]
    #
    # @!attribute [rw] query_string
    #   The SQL query statements to be executed.
    #   @return [String]
    #
    # @!attribute [rw] cluster_role_arn
    #   The IAM role attached to your Redshift cluster that Amazon SageMaker
    #   uses to generate datasets.
    #   @return [String]
    #
    # @!attribute [rw] output_s3_uri
    #   The location in Amazon S3 where the Redshift query results are
    #   stored.
    #   @return [String]
    #
    # @!attribute [rw] kms_key_id
    #   The Amazon Web Services Key Management Service (Amazon Web Services
    #   KMS) key that Amazon SageMaker uses to encrypt data from a Redshift
    #   execution.
    #   @return [String]
    #
    # @!attribute [rw] output_format
    #   The data storage format for Redshift query results.
    #   @return [String]
    #
    # @!attribute [rw] output_compression
    #   The compression used for Redshift query results.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/RedshiftDatasetDefinition AWS API Documentation
    #
    class RedshiftDatasetDefinition < Struct.new(
      :cluster_id,
      :database,
      :db_user,
      :query_string,
      :cluster_role_arn,
      :output_s3_uri,
      :kms_key_id,
      :output_format,
      :output_compression)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] device_fleet_name
    #   The name of the fleet.
    #   @return [String]
    #
    # @!attribute [rw] devices
    #   A list of devices to register with SageMaker Edge Manager.
    #   @return [Array<Types::Device>]
    #
    # @!attribute [rw] tags
    #   The tags associated with devices.
    #   @return [Array<Types::Tag>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/RegisterDevicesRequest AWS API Documentation
    #
    class RegisterDevicesRequest < Struct.new(
      :device_fleet_name,
      :devices,
      :tags)
      SENSITIVE = []
      include Aws::Structure
    end

    # Metadata for a register model job step.
    #
    # @!attribute [rw] arn
    #   The Amazon Resource Name (ARN) of the model package.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/RegisterModelStepMetadata AWS API Documentation
    #
    class RegisterModelStepMetadata < Struct.new(
      :arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # Configuration for remote debugging for the [CreateTrainingJob][1] API.
    # To learn more about the remote debugging functionality of SageMaker,
    # see [Access a training container through Amazon Web Services Systems
    # Manager (SSM) for remote debugging][2].
    #
    #
    #
    # [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html
    # [2]: https://docs.aws.amazon.com/sagemaker/latest/dg/train-remote-debugging.html
    #
    # @!attribute [rw] enable_remote_debug
    #   If set to True, enables remote debugging.
    #   @return [Boolean]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/RemoteDebugConfig AWS API Documentation
    #
    class RemoteDebugConfig < Struct.new(
      :enable_remote_debug)
      SENSITIVE = []
      include Aws::Structure
    end

    # Configuration for remote debugging for the [UpdateTrainingJob][1] API.
    # To learn more about the remote debugging functionality of SageMaker,
    # see [Access a training container through Amazon Web Services Systems
    # Manager (SSM) for remote debugging][2].
    #
    #
    #
    # [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateTrainingJob.html
    # [2]: https://docs.aws.amazon.com/sagemaker/latest/dg/train-remote-debugging.html
    #
    # @!attribute [rw] enable_remote_debug
    #   If set to True, enables remote debugging.
    #   @return [Boolean]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/RemoteDebugConfigForUpdate AWS API Documentation
    #
    class RemoteDebugConfigForUpdate < Struct.new(
      :enable_remote_debug)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] ui_template
    #   A `Template` object containing the worker UI template to render.
    #   @return [Types::UiTemplate]
    #
    # @!attribute [rw] task
    #   A `RenderableTask` object containing a representative task to
    #   render.
    #   @return [Types::RenderableTask]
    #
    # @!attribute [rw] role_arn
    #   The Amazon Resource Name (ARN) that has access to the S3 objects
    #   that are used by the template.
    #   @return [String]
    #
    # @!attribute [rw] human_task_ui_arn
    #   The `HumanTaskUiArn` of the worker UI that you want to render. Do
    #   not provide a `HumanTaskUiArn` if you use the `UiTemplate`
    #   parameter.
    #
    #   See a list of available Human Ui Amazon Resource Names (ARNs) in
    #   [UiConfig][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UiConfig.html
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/RenderUiTemplateRequest AWS API Documentation
    #
    class RenderUiTemplateRequest < Struct.new(
      :ui_template,
      :task,
      :role_arn,
      :human_task_ui_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] rendered_content
    #   A Liquid template that renders the HTML for the worker UI.
    #   @return [String]
    #
    # @!attribute [rw] errors
    #   A list of one or more `RenderingError` objects if any were
    #   encountered while rendering the template. If there were no errors,
    #   the list is empty.
    #   @return [Array<Types::RenderingError>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/RenderUiTemplateResponse AWS API Documentation
    #
    class RenderUiTemplateResponse < Struct.new(
      :rendered_content,
      :errors)
      SENSITIVE = []
      include Aws::Structure
    end

    # Contains input values for a task.
    #
    # @!attribute [rw] input
    #   A JSON object that contains values for the variables defined in the
    #   template. It is made available to the template under the
    #   substitution variable `task.input`. For example, if you define a
    #   variable `task.input.text` in your template, you can supply the
    #   variable in the JSON object as `"text": "sample text"`.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/RenderableTask AWS API Documentation
    #
    class RenderableTask < Struct.new(
      :input)
      SENSITIVE = []
      include Aws::Structure
    end

    # A description of an error that occurred while rendering the template.
    #
    # @!attribute [rw] code
    #   A unique identifier for a specific class of errors.
    #   @return [String]
    #
    # @!attribute [rw] message
    #   A human-readable message describing the error.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/RenderingError AWS API Documentation
    #
    class RenderingError < Struct.new(
      :code,
      :message)
      SENSITIVE = []
      include Aws::Structure
    end

    # Specifies an authentication configuration for the private docker
    # registry where your model image is hosted. Specify a value for this
    # property only if you specified `Vpc` as the value for the
    # `RepositoryAccessMode` field of the `ImageConfig` object that you
    # passed to a call to `CreateModel` and the private Docker registry
    # where the model image is hosted requires authentication.
    #
    # @!attribute [rw] repository_credentials_provider_arn
    #   The Amazon Resource Name (ARN) of an Amazon Web Services Lambda
    #   function that provides credentials to authenticate to the private
    #   Docker registry where your model image is hosted. For information
    #   about how to create an Amazon Web Services Lambda function, see
    #   [Create a Lambda function with the console][1] in the *Amazon Web
    #   Services Lambda Developer Guide*.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/lambda/latest/dg/getting-started-create-function.html
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/RepositoryAuthConfig AWS API Documentation
    #
    class RepositoryAuthConfig < Struct.new(
      :repository_credentials_provider_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # Details about a reserved capacity offering for a training plan
    # offering.
    #
    # For more information about how to reserve GPU capacity for your
    # SageMaker HyperPod clusters using Amazon SageMaker Training Plan, see
    # ` CreateTrainingPlan `.
    #
    # @!attribute [rw] reserved_capacity_type
    #   The type of reserved capacity offering.
    #   @return [String]
    #
    # @!attribute [rw] ultra_server_type
    #   The type of UltraServer included in this reserved capacity offering,
    #   such as ml.u-p6e-gb200x72.
    #   @return [String]
    #
    # @!attribute [rw] ultra_server_count
    #   The number of UltraServers included in this reserved capacity
    #   offering.
    #   @return [Integer]
    #
    # @!attribute [rw] instance_type
    #   The instance type for the reserved capacity offering.
    #   @return [String]
    #
    # @!attribute [rw] instance_count
    #   The number of instances in the reserved capacity offering.
    #   @return [Integer]
    #
    # @!attribute [rw] availability_zone
    #   The availability zone for the reserved capacity offering.
    #   @return [String]
    #
    # @!attribute [rw] duration_hours
    #   The number of whole hours in the total duration for this reserved
    #   capacity offering.
    #   @return [Integer]
    #
    # @!attribute [rw] duration_minutes
    #   The additional minutes beyond whole hours in the total duration for
    #   this reserved capacity offering.
    #   @return [Integer]
    #
    # @!attribute [rw] start_time
    #   The start time of the reserved capacity offering.
    #   @return [Time]
    #
    # @!attribute [rw] end_time
    #   The end time of the reserved capacity offering.
    #   @return [Time]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ReservedCapacityOffering AWS API Documentation
    #
    class ReservedCapacityOffering < Struct.new(
      :reserved_capacity_type,
      :ultra_server_type,
      :ultra_server_count,
      :instance_type,
      :instance_count,
      :availability_zone,
      :duration_hours,
      :duration_minutes,
      :start_time,
      :end_time)
      SENSITIVE = []
      include Aws::Structure
    end

    # Details of a reserved capacity for the training plan.
    #
    # For more information about how to reserve GPU capacity for your
    # SageMaker HyperPod clusters using Amazon SageMaker Training Plan, see
    # ` CreateTrainingPlan `.
    #
    # @!attribute [rw] reserved_capacity_arn
    #   The Amazon Resource Name (ARN); of the reserved capacity.
    #   @return [String]
    #
    # @!attribute [rw] reserved_capacity_type
    #   The type of reserved capacity.
    #   @return [String]
    #
    # @!attribute [rw] ultra_server_type
    #   The type of UltraServer included in this reserved capacity, such as
    #   ml.u-p6e-gb200x72.
    #   @return [String]
    #
    # @!attribute [rw] ultra_server_count
    #   The number of UltraServers included in this reserved capacity.
    #   @return [Integer]
    #
    # @!attribute [rw] instance_type
    #   The instance type for the reserved capacity.
    #   @return [String]
    #
    # @!attribute [rw] total_instance_count
    #   The total number of instances in the reserved capacity.
    #   @return [Integer]
    #
    # @!attribute [rw] status
    #   The current status of the reserved capacity.
    #   @return [String]
    #
    # @!attribute [rw] availability_zone
    #   The availability zone for the reserved capacity.
    #   @return [String]
    #
    # @!attribute [rw] duration_hours
    #   The number of whole hours in the total duration for this reserved
    #   capacity.
    #   @return [Integer]
    #
    # @!attribute [rw] duration_minutes
    #   The additional minutes beyond whole hours in the total duration for
    #   this reserved capacity.
    #   @return [Integer]
    #
    # @!attribute [rw] start_time
    #   The start time of the reserved capacity.
    #   @return [Time]
    #
    # @!attribute [rw] end_time
    #   The end time of the reserved capacity.
    #   @return [Time]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ReservedCapacitySummary AWS API Documentation
    #
    class ReservedCapacitySummary < Struct.new(
      :reserved_capacity_arn,
      :reserved_capacity_type,
      :ultra_server_type,
      :ultra_server_count,
      :instance_type,
      :total_instance_count,
      :status,
      :availability_zone,
      :duration_hours,
      :duration_minutes,
      :start_time,
      :end_time)
      SENSITIVE = []
      include Aws::Structure
    end

    # The resolved attributes.
    #
    # @!attribute [rw] auto_ml_job_objective
    #   Specifies a metric to minimize or maximize as the objective of an
    #   AutoML job.
    #   @return [Types::AutoMLJobObjective]
    #
    # @!attribute [rw] problem_type
    #   The problem type.
    #   @return [String]
    #
    # @!attribute [rw] completion_criteria
    #   How long a job is allowed to run, or how many candidates a job is
    #   allowed to generate.
    #   @return [Types::AutoMLJobCompletionCriteria]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ResolvedAttributes AWS API Documentation
    #
    class ResolvedAttributes < Struct.new(
      :auto_ml_job_objective,
      :problem_type,
      :completion_criteria)
      SENSITIVE = []
      include Aws::Structure
    end

    # A resource catalog containing all of the resources of a specific
    # resource type within a resource owner account. For an example on
    # sharing the Amazon SageMaker Feature Store
    # `DefaultFeatureGroupCatalog`, see [Share Amazon SageMaker Catalog
    # resource type][1] in the Amazon SageMaker Developer Guide.
    #
    #
    #
    # [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/feature-store-cross-account-discoverability-share-sagemaker-catalog.html
    #
    # @!attribute [rw] resource_catalog_arn
    #   The Amazon Resource Name (ARN) of the `ResourceCatalog`.
    #   @return [String]
    #
    # @!attribute [rw] resource_catalog_name
    #   The name of the `ResourceCatalog`.
    #   @return [String]
    #
    # @!attribute [rw] description
    #   A free form description of the `ResourceCatalog`.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   The time the `ResourceCatalog` was created.
    #   @return [Time]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ResourceCatalog AWS API Documentation
    #
    class ResourceCatalog < Struct.new(
      :resource_catalog_arn,
      :resource_catalog_name,
      :description,
      :creation_time)
      SENSITIVE = []
      include Aws::Structure
    end

    # Describes the resources, including machine learning (ML) compute
    # instances and ML storage volumes, to use for model training.
    #
    # @!attribute [rw] instance_type
    #   The ML compute instance type.
    #   @return [String]
    #
    # @!attribute [rw] instance_count
    #   The number of ML compute instances to use. For distributed training,
    #   provide a value greater than 1.
    #   @return [Integer]
    #
    # @!attribute [rw] volume_size_in_gb
    #   The size of the ML storage volume that you want to provision.
    #
    #   ML storage volumes store model artifacts and incremental states.
    #   Training algorithms might also use the ML storage volume for scratch
    #   space. If you want to store the training data in the ML storage
    #   volume, choose `File` as the `TrainingInputMode` in the algorithm
    #   specification.
    #
    #   When using an ML instance with [NVMe SSD volumes][1], SageMaker
    #   doesn't provision Amazon EBS General Purpose SSD (gp2) storage.
    #   Available storage is fixed to the NVMe-type instance's storage
    #   capacity. SageMaker configures storage paths for training datasets,
    #   checkpoints, model artifacts, and outputs to use the entire capacity
    #   of the instance storage. For example, ML instance families with the
    #   NVMe-type instance storage include `ml.p4d`, `ml.g4dn`, and `ml.g5`.
    #
    #   When using an ML instance with the EBS-only storage option and
    #   without instance storage, you must define the size of EBS volume
    #   through `VolumeSizeInGB` in the `ResourceConfig` API. For example,
    #   ML instance families that use EBS volumes include `ml.c5` and
    #   `ml.p2`.
    #
    #   To look up instance types and their instance storage types and
    #   volumes, see [Amazon EC2 Instance Types][2].
    #
    #   To find the default local paths defined by the SageMaker training
    #   platform, see [Amazon SageMaker Training Storage Folders for
    #   Training Datasets, Checkpoints, Model Artifacts, and Outputs][3].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ssd-instance-store.html#nvme-ssd-volumes
    #   [2]: http://aws.amazon.com/ec2/instance-types/
    #   [3]: https://docs.aws.amazon.com/sagemaker/latest/dg/model-train-storage.html
    #   @return [Integer]
    #
    # @!attribute [rw] volume_kms_key_id
    #   The Amazon Web Services KMS key that SageMaker uses to encrypt data
    #   on the storage volume attached to the ML compute instance(s) that
    #   run the training job.
    #
    #   <note markdown="1"> Certain Nitro-based instances include local storage, dependent on
    #   the instance type. Local storage volumes are encrypted using a
    #   hardware module on the instance. You can't request a
    #   `VolumeKmsKeyId` when using an instance type with local storage.
    #
    #    For a list of instance types that support local instance storage,
    #   see [Instance Store Volumes][1].
    #
    #    For more information about local instance storage encryption, see
    #   [SSD Instance Store Volumes][2].
    #
    #    </note>
    #
    #   The `VolumeKmsKeyId` can be in any of the following formats:
    #
    #   * // KMS Key ID
    #
    #     `"1234abcd-12ab-34cd-56ef-1234567890ab"`
    #
    #   * // Amazon Resource Name (ARN) of a KMS Key
    #
    #     `"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"`
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#instance-store-volumes
    #   [2]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ssd-instance-store.html
    #   @return [String]
    #
    # @!attribute [rw] keep_alive_period_in_seconds
    #   The duration of time in seconds to retain configured resources in a
    #   warm pool for subsequent training jobs.
    #   @return [Integer]
    #
    # @!attribute [rw] instance_groups
    #   The configuration of a heterogeneous cluster in JSON format.
    #   @return [Array<Types::InstanceGroup>]
    #
    # @!attribute [rw] training_plan_arn
    #   The Amazon Resource Name (ARN); of the training plan to use for this
    #   resource configuration.
    #   @return [String]
    #
    # @!attribute [rw] instance_placement_config
    #   Configuration for how training job instances are placed and
    #   allocated within UltraServers. Only applicable for UltraServer
    #   capacity.
    #   @return [Types::InstancePlacementConfig]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ResourceConfig AWS API Documentation
    #
    class ResourceConfig < Struct.new(
      :instance_type,
      :instance_count,
      :volume_size_in_gb,
      :volume_kms_key_id,
      :keep_alive_period_in_seconds,
      :instance_groups,
      :training_plan_arn,
      :instance_placement_config)
      SENSITIVE = []
      include Aws::Structure
    end

    # The `ResourceConfig` to update `KeepAlivePeriodInSeconds`. Other
    # fields in the `ResourceConfig` cannot be updated.
    #
    # @!attribute [rw] keep_alive_period_in_seconds
    #   The `KeepAlivePeriodInSeconds` value specified in the
    #   `ResourceConfig` to update.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ResourceConfigForUpdate AWS API Documentation
    #
    class ResourceConfigForUpdate < Struct.new(
      :keep_alive_period_in_seconds)
      SENSITIVE = []
      include Aws::Structure
    end

    # Resource being accessed is in use.
    #
    # @!attribute [rw] message
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ResourceInUse AWS API Documentation
    #
    class ResourceInUse < Struct.new(
      :message)
      SENSITIVE = []
      include Aws::Structure
    end

    # You have exceeded an SageMaker resource limit. For example, you might
    # have too many training jobs created.
    #
    # @!attribute [rw] message
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ResourceLimitExceeded AWS API Documentation
    #
    class ResourceLimitExceeded < Struct.new(
      :message)
      SENSITIVE = []
      include Aws::Structure
    end

    # Specifies the maximum number of training jobs and parallel training
    # jobs that a hyperparameter tuning job can launch.
    #
    # @!attribute [rw] max_number_of_training_jobs
    #   The maximum number of training jobs that a hyperparameter tuning job
    #   can launch.
    #   @return [Integer]
    #
    # @!attribute [rw] max_parallel_training_jobs
    #   The maximum number of concurrent training jobs that a hyperparameter
    #   tuning job can launch.
    #   @return [Integer]
    #
    # @!attribute [rw] max_runtime_in_seconds
    #   The maximum time in seconds that a hyperparameter tuning job can
    #   run.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ResourceLimits AWS API Documentation
    #
    class ResourceLimits < Struct.new(
      :max_number_of_training_jobs,
      :max_parallel_training_jobs,
      :max_runtime_in_seconds)
      SENSITIVE = []
      include Aws::Structure
    end

    # Resource being access is not found.
    #
    # @!attribute [rw] message
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ResourceNotFound AWS API Documentation
    #
    class ResourceNotFound < Struct.new(
      :message)
      SENSITIVE = []
      include Aws::Structure
    end

    # Resource sharing configuration.
    #
    # @!attribute [rw] strategy
    #   The strategy of how idle compute is shared within the cluster. The
    #   following are the options of strategies.
    #
    #   * `DontLend`: entities do not lend idle compute.
    #
    #   * `Lend`: entities can lend idle compute to entities that can
    #     borrow.
    #
    #   * `LendandBorrow`: entities can lend idle compute and borrow idle
    #     compute from other entities.
    #
    #   Default is `LendandBorrow`.
    #   @return [String]
    #
    # @!attribute [rw] borrow_limit
    #   The limit on how much idle compute can be borrowed.The values can be
    #   1 - 500 percent of idle compute that the team is allowed to borrow.
    #
    #   Default is `50`.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ResourceSharingConfig AWS API Documentation
    #
    class ResourceSharingConfig < Struct.new(
      :strategy,
      :borrow_limit)
      SENSITIVE = []
      include Aws::Structure
    end

    # Specifies the ARN's of a SageMaker AI image and SageMaker AI image
    # version, and the instance type that the version runs on.
    #
    # <note markdown="1"> When both `SageMakerImageVersionArn` and `SageMakerImageArn` are
    # passed, `SageMakerImageVersionArn` is used. Any updates to
    # `SageMakerImageArn` will not take effect if `SageMakerImageVersionArn`
    # already exists in the `ResourceSpec` because
    # `SageMakerImageVersionArn` always takes precedence. To clear the value
    # set for `SageMakerImageVersionArn`, pass `None` as the value.
    #
    #  </note>
    #
    # @!attribute [rw] sage_maker_image_arn
    #   The ARN of the SageMaker AI image that the image version belongs to.
    #   @return [String]
    #
    # @!attribute [rw] sage_maker_image_version_arn
    #   The ARN of the image version created on the instance. To clear the
    #   value set for `SageMakerImageVersionArn`, pass `None` as the value.
    #   @return [String]
    #
    # @!attribute [rw] sage_maker_image_version_alias
    #   The SageMakerImageVersionAlias of the image to launch with. This
    #   value is in SemVer 2.0.0 versioning format.
    #   @return [String]
    #
    # @!attribute [rw] instance_type
    #   The instance type that the image version runs on.
    #
    #   <note markdown="1"> **JupyterServer apps** only support the `system` value.
    #
    #    For **KernelGateway apps**, the `system` value is translated to
    #   `ml.t3.medium`. KernelGateway apps also support all other values for
    #   available instance types.
    #
    #    </note>
    #   @return [String]
    #
    # @!attribute [rw] lifecycle_config_arn
    #   The Amazon Resource Name (ARN) of the Lifecycle Configuration
    #   attached to the Resource.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ResourceSpec AWS API Documentation
    #
    class ResourceSpec < Struct.new(
      :sage_maker_image_arn,
      :sage_maker_image_version_arn,
      :sage_maker_image_version_alias,
      :instance_type,
      :lifecycle_config_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # The retention policy for data stored on an Amazon Elastic File System
    # volume.
    #
    # @!attribute [rw] home_efs_file_system
    #   The default is `Retain`, which specifies to keep the data stored on
    #   the Amazon EFS volume.
    #
    #   Specify `Delete` to delete the data stored on the Amazon EFS volume.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/RetentionPolicy AWS API Documentation
    #
    class RetentionPolicy < Struct.new(
      :home_efs_file_system)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] pipeline_execution_arn
    #   The Amazon Resource Name (ARN) of the pipeline execution.
    #   @return [String]
    #
    # @!attribute [rw] client_request_token
    #   A unique, case-sensitive identifier that you provide to ensure the
    #   idempotency of the operation. An idempotent operation completes no
    #   more than once.
    #
    #   **A suitable default value is auto-generated.** You should normally
    #   not need to pass this option.
    #   @return [String]
    #
    # @!attribute [rw] parallelism_configuration
    #   This configuration, if specified, overrides the parallelism
    #   configuration of the parent pipeline.
    #   @return [Types::ParallelismConfiguration]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/RetryPipelineExecutionRequest AWS API Documentation
    #
    class RetryPipelineExecutionRequest < Struct.new(
      :pipeline_execution_arn,
      :client_request_token,
      :parallelism_configuration)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] pipeline_execution_arn
    #   The Amazon Resource Name (ARN) of the pipeline execution.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/RetryPipelineExecutionResponse AWS API Documentation
    #
    class RetryPipelineExecutionResponse < Struct.new(
      :pipeline_execution_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # The retry strategy to use when a training job fails due to an
    # `InternalServerError`. `RetryStrategy` is specified as part of the
    # `CreateTrainingJob` and `CreateHyperParameterTuningJob` requests. You
    # can add the `StoppingCondition` parameter to the request to limit the
    # training time for the complete job.
    #
    # @!attribute [rw] maximum_retry_attempts
    #   The number of times to retry the job. When the job is retried, it's
    #   `SecondaryStatus` is changed to `STARTING`.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/RetryStrategy AWS API Documentation
    #
    class RetryStrategy < Struct.new(
      :maximum_retry_attempts)
      SENSITIVE = []
      include Aws::Structure
    end

    # The configurations that SageMaker uses when updating the AMI versions.
    #
    # @!attribute [rw] maximum_batch_size
    #   The maximum amount of instances in the cluster that SageMaker can
    #   update at a time.
    #   @return [Types::CapacitySizeConfig]
    #
    # @!attribute [rw] rollback_maximum_batch_size
    #   The maximum amount of instances in the cluster that SageMaker can
    #   roll back at a time.
    #   @return [Types::CapacitySizeConfig]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/RollingDeploymentPolicy AWS API Documentation
    #
    class RollingDeploymentPolicy < Struct.new(
      :maximum_batch_size,
      :rollback_maximum_batch_size)
      SENSITIVE = []
      include Aws::Structure
    end

    # Specifies a rolling deployment strategy for updating a SageMaker
    # endpoint.
    #
    # @!attribute [rw] maximum_batch_size
    #   Batch size for each rolling step to provision capacity and turn on
    #   traffic on the new endpoint fleet, and terminate capacity on the old
    #   endpoint fleet. Value must be between 5% to 50% of the variant's
    #   total instance count.
    #   @return [Types::CapacitySize]
    #
    # @!attribute [rw] wait_interval_in_seconds
    #   The length of the baking period, during which SageMaker monitors
    #   alarms for each batch on the new fleet.
    #   @return [Integer]
    #
    # @!attribute [rw] maximum_execution_timeout_in_seconds
    #   The time limit for the total deployment. Exceeding this limit causes
    #   a timeout.
    #   @return [Integer]
    #
    # @!attribute [rw] rollback_maximum_batch_size
    #   Batch size for rollback to the old endpoint fleet. Each rolling step
    #   to provision capacity and turn on traffic on the old endpoint fleet,
    #   and terminate capacity on the new endpoint fleet. If this field is
    #   absent, the default value will be set to 100% of total capacity
    #   which means to bring up the whole capacity of the old fleet at once
    #   during rollback.
    #   @return [Types::CapacitySize]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/RollingUpdatePolicy AWS API Documentation
    #
    class RollingUpdatePolicy < Struct.new(
      :maximum_batch_size,
      :wait_interval_in_seconds,
      :maximum_execution_timeout_in_seconds,
      :rollback_maximum_batch_size)
      SENSITIVE = []
      include Aws::Structure
    end

    # Describes the S3 data source.
    #
    # Your input bucket must be in the same Amazon Web Services region as
    # your training job.
    #
    # @!attribute [rw] s3_data_type
    #   If you choose `S3Prefix`, `S3Uri` identifies a key name prefix.
    #   SageMaker uses all objects that match the specified key name prefix
    #   for model training.
    #
    #   If you choose `ManifestFile`, `S3Uri` identifies an object that is a
    #   manifest file containing a list of object keys that you want
    #   SageMaker to use for model training.
    #
    #   If you choose `AugmentedManifestFile`, `S3Uri` identifies an object
    #   that is an augmented manifest file in JSON lines format. This file
    #   contains the data you want to use for model training.
    #   `AugmentedManifestFile` can only be used if the Channel's input
    #   mode is `Pipe`.
    #
    #   If you choose `Converse`, `S3Uri` identifies an Amazon S3 location
    #   that contains data formatted according to Converse format. This
    #   format structures conversational messages with specific roles and
    #   content types used for training and fine-tuning foundational models.
    #   @return [String]
    #
    # @!attribute [rw] s3_uri
    #   Depending on the value specified for the `S3DataType`, identifies
    #   either a key name prefix or a manifest. For example:
    #
    #   * A key name prefix might look like this:
    #     `s3://bucketname/exampleprefix/`
    #
    #   * A manifest might look like this:
    #     `s3://bucketname/example.manifest`
    #
    #     A manifest is an S3 object which is a JSON file consisting of an
    #     array of elements. The first element is a prefix which is followed
    #     by one or more suffixes. SageMaker appends the suffix elements to
    #     the prefix to get a full set of `S3Uri`. Note that the prefix must
    #     be a valid non-empty `S3Uri` that precludes users from specifying
    #     a manifest whose individual `S3Uri` is sourced from different S3
    #     buckets.
    #
    #     The following code example shows a valid manifest format:
    #
    #     `[ {"prefix": "s3://customer_bucket/some/prefix/"},`
    #
    #     ` "relative/path/to/custdata-1",`
    #
    #     ` "relative/path/custdata-2",`
    #
    #     ` ...`
    #
    #     ` "relative/path/custdata-N"`
    #
    #     `]`
    #
    #     This JSON is equivalent to the following `S3Uri` list:
    #
    #     `s3://customer_bucket/some/prefix/relative/path/to/custdata-1`
    #
    #     `s3://customer_bucket/some/prefix/relative/path/custdata-2`
    #
    #     `...`
    #
    #     `s3://customer_bucket/some/prefix/relative/path/custdata-N`
    #
    #     The complete set of `S3Uri` in this manifest is the input data for
    #     the channel for this data source. The object that each `S3Uri`
    #     points to must be readable by the IAM role that SageMaker uses to
    #     perform tasks on your behalf.
    #
    #   Your input bucket must be located in same Amazon Web Services region
    #   as your training job.
    #   @return [String]
    #
    # @!attribute [rw] s3_data_distribution_type
    #   If you want SageMaker to replicate the entire dataset on each ML
    #   compute instance that is launched for model training, specify
    #   `FullyReplicated`.
    #
    #   If you want SageMaker to replicate a subset of data on each ML
    #   compute instance that is launched for model training, specify
    #   `ShardedByS3Key`. If there are *n* ML compute instances launched for
    #   a training job, each instance gets approximately 1/*n* of the number
    #   of S3 objects. In this case, model training on each machine uses
    #   only the subset of training data.
    #
    #   Don't choose more ML compute instances for training than available
    #   S3 objects. If you do, some nodes won't get any data and you will
    #   pay for nodes that aren't getting any training data. This applies
    #   in both File and Pipe modes. Keep this in mind when developing
    #   algorithms.
    #
    #   In distributed training, where you use multiple ML compute EC2
    #   instances, you might choose `ShardedByS3Key`. If the algorithm
    #   requires copying training data to the ML storage volume (when
    #   `TrainingInputMode` is set to `File`), this copies 1/*n* of the
    #   number of objects.
    #   @return [String]
    #
    # @!attribute [rw] attribute_names
    #   A list of one or more attribute names to use that are found in a
    #   specified augmented manifest file.
    #   @return [Array<String>]
    #
    # @!attribute [rw] instance_group_names
    #   A list of names of instance groups that get data from the S3 data
    #   source.
    #   @return [Array<String>]
    #
    # @!attribute [rw] model_access_config
    #   The access configuration file to control access to the ML model. You
    #   can explicitly accept the model end-user license agreement (EULA)
    #   within the `ModelAccessConfig`.
    #
    #   * If you are a Jumpstart user, see the [End-user license
    #     agreements][1] section for more details on accepting the EULA.
    #
    #   * If you are an AutoML user, see the *Optional Parameters* section
    #     of *Create an AutoML job to fine-tune text generation models using
    #     the API* for details on [How to set the EULA acceptance when
    #     fine-tuning a model using the AutoML API][2].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/jumpstart-foundation-models-choose.html#jumpstart-foundation-models-choose-eula
    #   [2]: https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-create-experiment-finetune-llms.html#autopilot-llms-finetuning-api-optional-params
    #   @return [Types::ModelAccessConfig]
    #
    # @!attribute [rw] hub_access_config
    #   The configuration for a private hub model reference that points to a
    #   SageMaker JumpStart public hub model.
    #   @return [Types::HubAccessConfig]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/S3DataSource AWS API Documentation
    #
    class S3DataSource < Struct.new(
      :s3_data_type,
      :s3_uri,
      :s3_data_distribution_type,
      :attribute_names,
      :instance_group_names,
      :model_access_config,
      :hub_access_config)
      SENSITIVE = []
      include Aws::Structure
    end

    # A custom file system in Amazon S3. This is only supported in Amazon
    # SageMaker Unified Studio.
    #
    # @!attribute [rw] s3_uri
    #   The Amazon S3 URI that specifies the location in S3 where files are
    #   stored, which is mounted within the Studio environment. For example:
    #   `s3://<bucket-name>/<prefix>/`.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/S3FileSystem AWS API Documentation
    #
    class S3FileSystem < Struct.new(
      :s3_uri)
      SENSITIVE = []
      include Aws::Structure
    end

    # Configuration for the custom Amazon S3 file system.
    #
    # @!attribute [rw] mount_path
    #   The file system path where the Amazon S3 storage location will be
    #   mounted within the Amazon SageMaker Studio environment.
    #   @return [String]
    #
    # @!attribute [rw] s3_uri
    #   The Amazon S3 URI of the S3 file system configuration.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/S3FileSystemConfig AWS API Documentation
    #
    class S3FileSystemConfig < Struct.new(
      :mount_path,
      :s3_uri)
      SENSITIVE = []
      include Aws::Structure
    end

    # Specifies the S3 location of ML model data to deploy.
    #
    # @!attribute [rw] s3_uri
    #   Specifies the S3 path of ML model data to deploy.
    #   @return [String]
    #
    # @!attribute [rw] s3_data_type
    #   Specifies the type of ML model data to deploy.
    #
    #   If you choose `S3Prefix`, `S3Uri` identifies a key name prefix.
    #   SageMaker uses all objects that match the specified key name prefix
    #   as part of the ML model data to deploy. A valid key name prefix
    #   identified by `S3Uri` always ends with a forward slash (/).
    #
    #   If you choose `S3Object`, `S3Uri` identifies an object that is the
    #   ML model data to deploy.
    #   @return [String]
    #
    # @!attribute [rw] compression_type
    #   Specifies how the ML model data is prepared.
    #
    #   If you choose `Gzip` and choose `S3Object` as the value of
    #   `S3DataType`, `S3Uri` identifies an object that is a gzip-compressed
    #   TAR archive. SageMaker will attempt to decompress and untar the
    #   object during model deployment.
    #
    #   If you choose `None` and chooose `S3Object` as the value of
    #   `S3DataType`, `S3Uri` identifies an object that represents an
    #   uncompressed ML model to deploy.
    #
    #   If you choose None and choose `S3Prefix` as the value of
    #   `S3DataType`, `S3Uri` identifies a key name prefix, under which all
    #   objects represents the uncompressed ML model to deploy.
    #
    #   If you choose None, then SageMaker will follow rules below when
    #   creating model data files under /opt/ml/model directory for use by
    #   your inference code:
    #
    #   * If you choose `S3Object` as the value of `S3DataType`, then
    #     SageMaker will split the key of the S3 object referenced by
    #     `S3Uri` by slash (/), and use the last part as the filename of the
    #     file holding the content of the S3 object.
    #
    #   * If you choose `S3Prefix` as the value of `S3DataType`, then for
    #     each S3 object under the key name pefix referenced by `S3Uri`,
    #     SageMaker will trim its key by the prefix, and use the remainder
    #     as the path (relative to `/opt/ml/model`) of the file holding the
    #     content of the S3 object. SageMaker will split the remainder by
    #     slash (/), using intermediate parts as directory names and the
    #     last part as filename of the file holding the content of the S3
    #     object.
    #
    #   * Do not use any of the following as file names or directory names:
    #
    #     * An empty or blank string
    #
    #     * A string which contains null bytes
    #
    #     * A string longer than 255 bytes
    #
    #     * A single dot (`.`)
    #
    #     * A double dot (`..`)
    #   * Ambiguous file names will result in model deployment failure. For
    #     example, if your uncompressed ML model consists of two S3 objects
    #     `s3://mybucket/model/weights` and
    #     `s3://mybucket/model/weights/part1` and you specify
    #     `s3://mybucket/model/` as the value of `S3Uri` and `S3Prefix` as
    #     the value of `S3DataType`, then it will result in name clash
    #     between `/opt/ml/model/weights` (a regular file) and
    #     `/opt/ml/model/weights/` (a directory).
    #
    #   * Do not organize the model artifacts in [S3 console using
    #     folders][1]. When you create a folder in S3 console, S3 creates a
    #     0-byte object with a key set to the folder name you provide. They
    #     key of the 0-byte object ends with a slash (/) which violates
    #     SageMaker restrictions on model artifact file names, leading to
    #     model deployment failure.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-folders.html
    #   @return [String]
    #
    # @!attribute [rw] model_access_config
    #   Specifies the access configuration file for the ML model. You can
    #   explicitly accept the model end-user license agreement (EULA) within
    #   the `ModelAccessConfig`. You are responsible for reviewing and
    #   complying with any applicable license terms and making sure they are
    #   acceptable for your use case before downloading or using a model.
    #   @return [Types::ModelAccessConfig]
    #
    # @!attribute [rw] hub_access_config
    #   Configuration information for hub access.
    #   @return [Types::InferenceHubAccessConfig]
    #
    # @!attribute [rw] manifest_s3_uri
    #   The Amazon S3 URI of the manifest file. The manifest file is a CSV
    #   file that stores the artifact locations.
    #   @return [String]
    #
    # @!attribute [rw] etag
    #   The ETag associated with S3 URI.
    #   @return [String]
    #
    # @!attribute [rw] manifest_etag
    #   The ETag associated with Manifest S3 URI.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/S3ModelDataSource AWS API Documentation
    #
    class S3ModelDataSource < Struct.new(
      :s3_uri,
      :s3_data_type,
      :compression_type,
      :model_access_config,
      :hub_access_config,
      :manifest_s3_uri,
      :etag,
      :manifest_etag)
      SENSITIVE = []
      include Aws::Structure
    end

    # This object defines the access restrictions to Amazon S3 resources
    # that are included in custom worker task templates using the Liquid
    # filter, `grant_read_access`.
    #
    # To learn more about how custom templates are created, see [Create
    # custom worker task templates][1].
    #
    #
    #
    # [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/a2i-custom-templates.html
    #
    # @!attribute [rw] iam_policy_constraints
    #   Use this parameter to specify the allowed request source. Possible
    #   sources are either `SourceIp` or `VpcSourceIp`.
    #   @return [Types::IamPolicyConstraints]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/S3Presign AWS API Documentation
    #
    class S3Presign < Struct.new(
      :iam_policy_constraints)
      SENSITIVE = []
      include Aws::Structure
    end

    # The Amazon Simple Storage (Amazon S3) location and security
    # configuration for `OfflineStore`.
    #
    # @!attribute [rw] s3_uri
    #   The S3 URI, or location in Amazon S3, of `OfflineStore`.
    #
    #   S3 URIs have a format similar to the following:
    #   `s3://example-bucket/prefix/`.
    #   @return [String]
    #
    # @!attribute [rw] kms_key_id
    #   The Amazon Web Services Key Management Service (KMS) key ARN of the
    #   key used to encrypt any objects written into the `OfflineStore` S3
    #   location.
    #
    #   The IAM `roleARN` that is passed as a parameter to
    #   `CreateFeatureGroup` must have below permissions to the `KmsKeyId`:
    #
    #   * `"kms:GenerateDataKey"`
    #
    #   ^
    #   @return [String]
    #
    # @!attribute [rw] resolved_output_s3_uri
    #   The S3 path where offline records are written.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/S3StorageConfig AWS API Documentation
    #
    class S3StorageConfig < Struct.new(
      :s3_uri,
      :kms_key_id,
      :resolved_output_s3_uri)
      SENSITIVE = []
      include Aws::Structure
    end

    # An object containing a recommended scaling policy.
    #
    # @note ScalingPolicy is a union - when returned from an API call exactly one value will be set and the returned type will be a subclass of ScalingPolicy corresponding to the set member.
    #
    # @!attribute [rw] target_tracking
    #   A target tracking scaling policy. Includes support for predefined or
    #   customized metrics.
    #   @return [Types::TargetTrackingScalingPolicyConfiguration]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ScalingPolicy AWS API Documentation
    #
    class ScalingPolicy < Struct.new(
      :target_tracking,
      :unknown)
      SENSITIVE = []
      include Aws::Structure
      include Aws::Structure::Union

      class TargetTracking < ScalingPolicy; end
      class Unknown < ScalingPolicy; end
    end

    # The metric for a scaling policy.
    #
    # @!attribute [rw] invocations_per_instance
    #   The number of invocations sent to a model, normalized by
    #   `InstanceCount` in each ProductionVariant. `1/numberOfInstances` is
    #   sent as the value on each request, where `numberOfInstances` is the
    #   number of active instances for the ProductionVariant behind the
    #   endpoint at the time of the request.
    #   @return [Integer]
    #
    # @!attribute [rw] model_latency
    #   The interval of time taken by a model to respond as viewed from
    #   SageMaker. This interval includes the local communication times
    #   taken to send the request and to fetch the response from the
    #   container of a model and the time taken to complete the inference in
    #   the container.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ScalingPolicyMetric AWS API Documentation
    #
    class ScalingPolicyMetric < Struct.new(
      :invocations_per_instance,
      :model_latency)
      SENSITIVE = []
      include Aws::Structure
    end

    # An object where you specify the anticipated traffic pattern for an
    # endpoint.
    #
    # @!attribute [rw] min_invocations_per_minute
    #   The minimum number of expected requests to your endpoint per minute.
    #   @return [Integer]
    #
    # @!attribute [rw] max_invocations_per_minute
    #   The maximum number of expected requests to your endpoint per minute.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ScalingPolicyObjective AWS API Documentation
    #
    class ScalingPolicyObjective < Struct.new(
      :min_invocations_per_minute,
      :max_invocations_per_minute)
      SENSITIVE = []
      include Aws::Structure
    end

    # Configuration details about the monitoring schedule.
    #
    # @!attribute [rw] schedule_expression
    #   A cron expression that describes details about the monitoring
    #   schedule.
    #
    #   The supported cron expressions are:
    #
    #   * If you want to set the job to start every hour, use the following:
    #
    #     `Hourly: cron(0 * ? * * *)`
    #
    #   * If you want to start the job daily:
    #
    #     `cron(0 [00-23] ? * * *)`
    #
    #   * If you want to run the job one time, immediately, use the
    #     following keyword:
    #
    #     `NOW`
    #
    #   For example, the following are valid cron expressions:
    #
    #   * Daily at noon UTC: `cron(0 12 ? * * *)`
    #
    #   * Daily at midnight UTC: `cron(0 0 ? * * *)`
    #
    #   To support running every 6, 12 hours, the following are also
    #   supported:
    #
    #   `cron(0 [00-23]/[01-24] ? * * *)`
    #
    #   For example, the following are valid cron expressions:
    #
    #   * Every 12 hours, starting at 5pm UTC: `cron(0 17/12 ? * * *)`
    #
    #   * Every two hours starting at midnight: `cron(0 0/2 ? * * *)`
    #
    #   <note markdown="1"> * Even though the cron expression is set to start at 5PM UTC, note
    #     that there could be a delay of 0-20 minutes from the actual
    #     requested time to run the execution.
    #
    #   * We recommend that if you would like a daily schedule, you do not
    #     provide this parameter. Amazon SageMaker AI will pick a time for
    #     running every day.
    #
    #    </note>
    #
    #   You can also specify the keyword `NOW` to run the monitoring job
    #   immediately, one time, without recurring.
    #   @return [String]
    #
    # @!attribute [rw] data_analysis_start_time
    #   Sets the start time for a monitoring job window. Express this time
    #   as an offset to the times that you schedule your monitoring jobs to
    #   run. You schedule monitoring jobs with the `ScheduleExpression`
    #   parameter. Specify this offset in ISO 8601 duration format. For
    #   example, if you want to monitor the five hours of data in your
    #   dataset that precede the start of each monitoring job, you would
    #   specify: `"-PT5H"`.
    #
    #   The start time that you specify must not precede the end time that
    #   you specify by more than 24 hours. You specify the end time with the
    #   `DataAnalysisEndTime` parameter.
    #
    #   If you set `ScheduleExpression` to `NOW`, this parameter is
    #   required.
    #   @return [String]
    #
    # @!attribute [rw] data_analysis_end_time
    #   Sets the end time for a monitoring job window. Express this time as
    #   an offset to the times that you schedule your monitoring jobs to
    #   run. You schedule monitoring jobs with the `ScheduleExpression`
    #   parameter. Specify this offset in ISO 8601 duration format. For
    #   example, if you want to end the window one hour before the start of
    #   each monitoring job, you would specify: `"-PT1H"`.
    #
    #   The end time that you specify must not follow the start time that
    #   you specify by more than 24 hours. You specify the start time with
    #   the `DataAnalysisStartTime` parameter.
    #
    #   If you set `ScheduleExpression` to `NOW`, this parameter is
    #   required.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ScheduleConfig AWS API Documentation
    #
    class ScheduleConfig < Struct.new(
      :schedule_expression,
      :data_analysis_start_time,
      :data_analysis_end_time)
      SENSITIVE = []
      include Aws::Structure
    end

    # The configuration object of the schedule that SageMaker follows when
    # updating the AMI.
    #
    # @!attribute [rw] schedule_expression
    #   A cron expression that specifies the schedule that SageMaker follows
    #   when updating the AMI.
    #   @return [String]
    #
    # @!attribute [rw] deployment_config
    #   The configuration to use when updating the AMI versions.
    #   @return [Types::DeploymentConfiguration]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ScheduledUpdateConfig AWS API Documentation
    #
    class ScheduledUpdateConfig < Struct.new(
      :schedule_expression,
      :deployment_config)
      SENSITIVE = []
      include Aws::Structure
    end

    # Cluster policy configuration. This policy is used for task
    # prioritization and fair-share allocation. This helps prioritize
    # critical workloads and distributes idle compute across entities.
    #
    # @!attribute [rw] priority_classes
    #   List of the priority classes, `PriorityClass`, of the cluster
    #   policy. When specified, these class configurations define how tasks
    #   are queued.
    #   @return [Array<Types::PriorityClass>]
    #
    # @!attribute [rw] fair_share
    #   When enabled, entities borrow idle compute based on their assigned
    #   `FairShareWeight`.
    #
    #   When disabled, entities borrow idle compute based on a first-come
    #   first-serve basis.
    #
    #   Default is `Enabled`.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/SchedulerConfig AWS API Documentation
    #
    class SchedulerConfig < Struct.new(
      :priority_classes,
      :fair_share)
      SENSITIVE = []
      include Aws::Structure
    end

    # A multi-expression that searches for the specified resource or
    # resources in a search. All resource objects that satisfy the
    # expression's condition are included in the search results. You must
    # specify at least one subexpression, filter, or nested filter. A
    # `SearchExpression` can contain up to twenty elements.
    #
    # A `SearchExpression` contains the following components:
    #
    # * A list of `Filter` objects. Each filter defines a simple Boolean
    #   expression comprised of a resource property name, Boolean operator,
    #   and value.
    #
    # * A list of `NestedFilter` objects. Each nested filter defines a list
    #   of Boolean expressions using a list of resource properties. A nested
    #   filter is satisfied if a single object in the list satisfies all
    #   Boolean expressions.
    #
    # * A list of `SearchExpression` objects. A search expression object can
    #   be nested in a list of search expression objects.
    #
    # * A Boolean operator: `And` or `Or`.
    #
    # @!attribute [rw] filters
    #   A list of filter objects.
    #   @return [Array<Types::Filter>]
    #
    # @!attribute [rw] nested_filters
    #   A list of nested filter objects.
    #   @return [Array<Types::NestedFilters>]
    #
    # @!attribute [rw] sub_expressions
    #   A list of search expression objects.
    #   @return [Array<Types::SearchExpression>]
    #
    # @!attribute [rw] operator
    #   A Boolean operator used to evaluate the search expression. If you
    #   want every conditional statement in all lists to be satisfied for
    #   the entire search expression to be true, specify `And`. If only a
    #   single conditional statement needs to be true for the entire search
    #   expression to be true, specify `Or`. The default value is `And`.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/SearchExpression AWS API Documentation
    #
    class SearchExpression < Struct.new(
      :filters,
      :nested_filters,
      :sub_expressions,
      :operator)
      SENSITIVE = []
      include Aws::Structure
    end

    # A single resource returned as part of the [Search][1] API response.
    #
    #
    #
    # [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_Search.html
    #
    # @!attribute [rw] training_job
    #   The properties of a training job.
    #   @return [Types::TrainingJob]
    #
    # @!attribute [rw] experiment
    #   The properties of an experiment.
    #   @return [Types::Experiment]
    #
    # @!attribute [rw] trial
    #   The properties of a trial.
    #   @return [Types::Trial]
    #
    # @!attribute [rw] trial_component
    #   The properties of a trial component.
    #   @return [Types::TrialComponent]
    #
    # @!attribute [rw] endpoint
    #   A hosted endpoint for real-time inference.
    #   @return [Types::Endpoint]
    #
    # @!attribute [rw] model_package
    #   A container for your trained model that can be deployed for
    #   SageMaker inference. This can include inference code, artifacts, and
    #   metadata. The model package type can be one of the following.
    #
    #   * Versioned model: A part of a model package group in Model
    #     Registry.
    #
    #   * Unversioned model: Not part of a model package group and used in
    #     Amazon Web Services Marketplace.
    #
    #   For more information, see [ `CreateModelPackage` ][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateModelPackage.html
    #   @return [Types::ModelPackage]
    #
    # @!attribute [rw] model_package_group
    #   A group of versioned models in the Model Registry.
    #   @return [Types::ModelPackageGroup]
    #
    # @!attribute [rw] pipeline
    #   A SageMaker Model Building Pipeline instance.
    #   @return [Types::Pipeline]
    #
    # @!attribute [rw] pipeline_execution
    #   An execution of a pipeline.
    #   @return [Types::PipelineExecution]
    #
    # @!attribute [rw] pipeline_version
    #   The version of the pipeline.
    #   @return [Types::PipelineVersion]
    #
    # @!attribute [rw] feature_group
    #   Amazon SageMaker Feature Store stores features in a collection
    #   called Feature Group. A Feature Group can be visualized as a table
    #   which has rows, with a unique identifier for each row where each
    #   column in the table is a feature. In principle, a Feature Group is
    #   composed of features and values per features.
    #   @return [Types::FeatureGroup]
    #
    # @!attribute [rw] feature_metadata
    #   The feature metadata used to search through the features.
    #   @return [Types::FeatureMetadata]
    #
    # @!attribute [rw] project
    #   The properties of a project.
    #   @return [Types::Project]
    #
    # @!attribute [rw] hyper_parameter_tuning_job
    #   The properties of a hyperparameter tuning job.
    #   @return [Types::HyperParameterTuningJobSearchEntity]
    #
    # @!attribute [rw] model_card
    #   An Amazon SageMaker Model Card that documents details about a
    #   machine learning model.
    #   @return [Types::ModelCard]
    #
    # @!attribute [rw] model
    #   A model displayed in the Amazon SageMaker Model Dashboard.
    #   @return [Types::ModelDashboardModel]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/SearchRecord AWS API Documentation
    #
    class SearchRecord < Struct.new(
      :training_job,
      :experiment,
      :trial,
      :trial_component,
      :endpoint,
      :model_package,
      :model_package_group,
      :pipeline,
      :pipeline_execution,
      :pipeline_version,
      :feature_group,
      :feature_metadata,
      :project,
      :hyper_parameter_tuning_job,
      :model_card,
      :model)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] resource
    #   The name of the SageMaker resource to search for.
    #   @return [String]
    #
    # @!attribute [rw] search_expression
    #   A Boolean conditional statement. Resources must satisfy this
    #   condition to be included in search results. You must provide at
    #   least one subexpression, filter, or nested filter. The maximum
    #   number of recursive `SubExpressions`, `NestedFilters`, and `Filters`
    #   that can be included in a `SearchExpression` object is 50.
    #   @return [Types::SearchExpression]
    #
    # @!attribute [rw] sort_by
    #   The name of the resource property used to sort the `SearchResults`.
    #   The default is `LastModifiedTime`.
    #   @return [String]
    #
    # @!attribute [rw] sort_order
    #   How `SearchResults` are ordered. Valid values are `Ascending` or
    #   `Descending`. The default is `Descending`.
    #   @return [String]
    #
    # @!attribute [rw] next_token
    #   If more than `MaxResults` resources match the specified
    #   `SearchExpression`, the response includes a `NextToken`. The
    #   `NextToken` can be passed to the next `SearchRequest` to continue
    #   retrieving results.
    #   @return [String]
    #
    # @!attribute [rw] max_results
    #   The maximum number of results to return.
    #   @return [Integer]
    #
    # @!attribute [rw] cross_account_filter_option
    #   A cross account filter option. When the value is `"CrossAccount"`
    #   the search results will only include resources made discoverable to
    #   you from other accounts. When the value is `"SameAccount"` or `null`
    #   the search results will only include resources from your account.
    #   Default is `null`. For more information on searching for resources
    #   made discoverable to your account, see [ Search discoverable
    #   resources][1] in the SageMaker Developer Guide. The maximum number
    #   of `ResourceCatalog`s viewable is 1000.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/feature-store-cross-account-discoverability-use.html
    #   @return [String]
    #
    # @!attribute [rw] visibility_conditions
    #   Limits the results of your search request to the resources that you
    #   can access.
    #   @return [Array<Types::VisibilityConditions>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/SearchRequest AWS API Documentation
    #
    class SearchRequest < Struct.new(
      :resource,
      :search_expression,
      :sort_by,
      :sort_order,
      :next_token,
      :max_results,
      :cross_account_filter_option,
      :visibility_conditions)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] results
    #   A list of `SearchRecord` objects.
    #   @return [Array<Types::SearchRecord>]
    #
    # @!attribute [rw] next_token
    #   If the result of the previous `Search` request was truncated, the
    #   response includes a NextToken. To retrieve the next set of results,
    #   use the token in the next request.
    #   @return [String]
    #
    # @!attribute [rw] total_hits
    #   The total number of matching results.
    #   @return [Types::TotalHits]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/SearchResponse AWS API Documentation
    #
    class SearchResponse < Struct.new(
      :results,
      :next_token,
      :total_hits)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] instance_type
    #   The type of instance you want to search for in the available
    #   training plan offerings. This field allows you to filter the search
    #   results based on the specific compute resources you require for your
    #   SageMaker training jobs or SageMaker HyperPod clusters. When
    #   searching for training plan offerings, specifying the instance type
    #   helps you find Reserved Instances that match your computational
    #   needs.
    #   @return [String]
    #
    # @!attribute [rw] instance_count
    #   The number of instances you want to reserve in the training plan
    #   offerings. This allows you to specify the quantity of compute
    #   resources needed for your SageMaker training jobs or SageMaker
    #   HyperPod clusters, helping you find reserved capacity offerings that
    #   match your requirements.
    #   @return [Integer]
    #
    # @!attribute [rw] ultra_server_type
    #   The type of UltraServer to search for, such as ml.u-p6e-gb200x72.
    #   @return [String]
    #
    # @!attribute [rw] ultra_server_count
    #   The number of UltraServers to search for.
    #   @return [Integer]
    #
    # @!attribute [rw] start_time_after
    #   A filter to search for training plan offerings with a start time
    #   after a specified date.
    #   @return [Time]
    #
    # @!attribute [rw] end_time_before
    #   A filter to search for reserved capacity offerings with an end time
    #   before a specified date.
    #   @return [Time]
    #
    # @!attribute [rw] duration_hours
    #   The desired duration in hours for the training plan offerings.
    #   @return [Integer]
    #
    # @!attribute [rw] target_resources
    #   The target resources (e.g., SageMaker Training Jobs, SageMaker
    #   HyperPod) to search for in the offerings.
    #
    #   Training plans are specific to their target resource.
    #
    #   * A training plan designed for SageMaker training jobs can only be
    #     used to schedule and run training jobs.
    #
    #   * A training plan for HyperPod clusters can be used exclusively to
    #     provide compute resources to a cluster's instance group.
    #   @return [Array<String>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/SearchTrainingPlanOfferingsRequest AWS API Documentation
    #
    class SearchTrainingPlanOfferingsRequest < Struct.new(
      :instance_type,
      :instance_count,
      :ultra_server_type,
      :ultra_server_count,
      :start_time_after,
      :end_time_before,
      :duration_hours,
      :target_resources)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] training_plan_offerings
    #   A list of training plan offerings that match the search criteria.
    #   @return [Array<Types::TrainingPlanOffering>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/SearchTrainingPlanOfferingsResponse AWS API Documentation
    #
    class SearchTrainingPlanOfferingsResponse < Struct.new(
      :training_plan_offerings)
      SENSITIVE = []
      include Aws::Structure
    end

    # An array element of `SecondaryStatusTransitions` for
    # [DescribeTrainingJob][1]. It provides additional details about a
    # status that the training job has transitioned through. A training job
    # can be in one of several states, for example, starting, downloading,
    # training, or uploading. Within each state, there are a number of
    # intermediate states. For example, within the starting state, SageMaker
    # could be starting the training job or launching the ML instances.
    # These transitional states are referred to as the job's secondary
    # status.
    #
    #
    #
    #
    #
    # [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeTrainingJob.html
    #
    # @!attribute [rw] status
    #   Contains a secondary status information from a training job.
    #
    #   Status might be one of the following secondary statuses:
    #
    #   InProgress
    #   : * `Starting` - Starting the training job.
    #
    #     * `Downloading` - An optional stage for algorithms that support
    #       `File` training input mode. It indicates that data is being
    #       downloaded to the ML storage volumes.
    #
    #     * `Training` - Training is in progress.
    #
    #     * `Uploading` - Training is complete and the model artifacts are
    #       being uploaded to the S3 location.
    #
    #   Completed
    #   : * `Completed` - The training job has completed.
    #
    #     ^
    #
    #   Failed
    #   : * `Failed` - The training job has failed. The reason for the
    #       failure is returned in the `FailureReason` field of
    #       `DescribeTrainingJobResponse`.
    #
    #     ^
    #
    #   Stopped
    #   : * `MaxRuntimeExceeded` - The job stopped because it exceeded the
    #       maximum allowed runtime.
    #
    #     * `Stopped` - The training job has stopped.
    #
    #   Stopping
    #   : * `Stopping` - Stopping the training job.
    #
    #     ^
    #
    #   We no longer support the following secondary statuses:
    #
    #   * `LaunchingMLInstances`
    #
    #   * `PreparingTrainingStack`
    #
    #   * `DownloadingTrainingImage`
    #   @return [String]
    #
    # @!attribute [rw] start_time
    #   A timestamp that shows when the training job transitioned to the
    #   current secondary status state.
    #   @return [Time]
    #
    # @!attribute [rw] end_time
    #   A timestamp that shows when the training job transitioned out of
    #   this secondary status state into another secondary status state or
    #   when the training job has ended.
    #   @return [Time]
    #
    # @!attribute [rw] status_message
    #   A detailed description of the progress within a secondary status.
    #
    #   SageMaker provides secondary statuses and status messages that apply
    #   to each of them:
    #
    #   Starting
    #   : * Starting the training job.
    #
    #     * Launching requested ML instances.
    #
    #     * Insufficient capacity error from EC2 while launching instances,
    #       retrying!
    #
    #     * Launched instance was unhealthy, replacing it!
    #
    #     * Preparing the instances for training.
    #
    #   Training
    #   : * Training image download completed. Training in progress.
    #
    #     ^
    #
    #   Status messages are subject to change. Therefore, we recommend not
    #   including them in code that programmatically initiates actions. For
    #   examples, don't use status messages in if statements.
    #
    #   To have an overview of your training job's progress, view
    #   `TrainingJobStatus` and `SecondaryStatus` in
    #   [DescribeTrainingJob][1], and `StatusMessage` together. For example,
    #   at the start of a training job, you might see the following:
    #
    #   * `TrainingJobStatus` - InProgress
    #
    #   * `SecondaryStatus` - Training
    #
    #   * `StatusMessage` - Downloading the training image
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeTrainingJob.html
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/SecondaryStatusTransition AWS API Documentation
    #
    class SecondaryStatusTransition < Struct.new(
      :status,
      :start_time,
      :end_time,
      :status_message)
      SENSITIVE = []
      include Aws::Structure
    end

    # A step selected to run in selective execution mode.
    #
    # @!attribute [rw] step_name
    #   The name of the pipeline step.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/SelectedStep AWS API Documentation
    #
    class SelectedStep < Struct.new(
      :step_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # The selective execution configuration applied to the pipeline run.
    #
    # @!attribute [rw] source_pipeline_execution_arn
    #   The ARN from a reference execution of the current pipeline. Used to
    #   copy input collaterals needed for the selected steps to run. The
    #   execution status of the pipeline can be either `Failed` or
    #   `Success`.
    #
    #   This field is required if the steps you specify for `SelectedSteps`
    #   depend on output collaterals from any non-specified pipeline steps.
    #   For more information, see [Selective Execution for Pipeline
    #   Steps][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/pipelines-selective-ex.html
    #   @return [String]
    #
    # @!attribute [rw] selected_steps
    #   A list of pipeline steps to run. All step(s) in all path(s) between
    #   two selected steps should be included.
    #   @return [Array<Types::SelectedStep>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/SelectiveExecutionConfig AWS API Documentation
    #
    class SelectiveExecutionConfig < Struct.new(
      :source_pipeline_execution_arn,
      :selected_steps)
      SENSITIVE = []
      include Aws::Structure
    end

    # The ARN from an execution of the current pipeline.
    #
    # @!attribute [rw] source_pipeline_execution_arn
    #   The ARN from an execution of the current pipeline.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/SelectiveExecutionResult AWS API Documentation
    #
    class SelectiveExecutionResult < Struct.new(
      :source_pipeline_execution_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] callback_token
    #   The pipeline generated token from the Amazon SQS queue.
    #   @return [String]
    #
    # @!attribute [rw] failure_reason
    #   A message describing why the step failed.
    #   @return [String]
    #
    # @!attribute [rw] client_request_token
    #   A unique, case-sensitive identifier that you provide to ensure the
    #   idempotency of the operation. An idempotent operation completes no
    #   more than one time.
    #
    #   **A suitable default value is auto-generated.** You should normally
    #   not need to pass this option.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/SendPipelineExecutionStepFailureRequest AWS API Documentation
    #
    class SendPipelineExecutionStepFailureRequest < Struct.new(
      :callback_token,
      :failure_reason,
      :client_request_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] pipeline_execution_arn
    #   The Amazon Resource Name (ARN) of the pipeline execution.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/SendPipelineExecutionStepFailureResponse AWS API Documentation
    #
    class SendPipelineExecutionStepFailureResponse < Struct.new(
      :pipeline_execution_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] callback_token
    #   The pipeline generated token from the Amazon SQS queue.
    #   @return [String]
    #
    # @!attribute [rw] output_parameters
    #   A list of the output parameters of the callback step.
    #   @return [Array<Types::OutputParameter>]
    #
    # @!attribute [rw] client_request_token
    #   A unique, case-sensitive identifier that you provide to ensure the
    #   idempotency of the operation. An idempotent operation completes no
    #   more than one time.
    #
    #   **A suitable default value is auto-generated.** You should normally
    #   not need to pass this option.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/SendPipelineExecutionStepSuccessRequest AWS API Documentation
    #
    class SendPipelineExecutionStepSuccessRequest < Struct.new(
      :callback_token,
      :output_parameters,
      :client_request_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] pipeline_execution_arn
    #   The Amazon Resource Name (ARN) of the pipeline execution.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/SendPipelineExecutionStepSuccessResponse AWS API Documentation
    #
    class SendPipelineExecutionStepSuccessResponse < Struct.new(
      :pipeline_execution_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # Details of a provisioned service catalog product. For information
    # about service catalog, see [What is Amazon Web Services Service
    # Catalog][1].
    #
    #
    #
    # [1]: https://docs.aws.amazon.com/servicecatalog/latest/adminguide/introduction.html
    #
    # @!attribute [rw] provisioned_product_id
    #   The ID of the provisioned product.
    #   @return [String]
    #
    # @!attribute [rw] provisioned_product_status_message
    #   The current status of the product.
    #
    #   * `AVAILABLE` - Stable state, ready to perform any operation. The
    #     most recent operation succeeded and completed.
    #
    #   * `UNDER_CHANGE` - Transitive state. Operations performed might not
    #     have valid results. Wait for an AVAILABLE status before performing
    #     operations.
    #
    #   * `TAINTED` - Stable state, ready to perform any operation. The
    #     stack has completed the requested operation but is not exactly
    #     what was requested. For example, a request to update to a new
    #     version failed and the stack rolled back to the current version.
    #
    #   * `ERROR` - An unexpected error occurred. The provisioned product
    #     exists but the stack is not running. For example, CloudFormation
    #     received a parameter value that was not valid and could not launch
    #     the stack.
    #
    #   * `PLAN_IN_PROGRESS` - Transitive state. The plan operations were
    #     performed to provision a new product, but resources have not yet
    #     been created. After reviewing the list of resources to be created,
    #     execute the plan. Wait for an AVAILABLE status before performing
    #     operations.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ServiceCatalogProvisionedProductDetails AWS API Documentation
    #
    class ServiceCatalogProvisionedProductDetails < Struct.new(
      :provisioned_product_id,
      :provisioned_product_status_message)
      SENSITIVE = []
      include Aws::Structure
    end

    # Details that you specify to provision a service catalog product. For
    # information about service catalog, see [What is Amazon Web Services
    # Service Catalog][1].
    #
    #
    #
    # [1]: https://docs.aws.amazon.com/servicecatalog/latest/adminguide/introduction.html
    #
    # @!attribute [rw] product_id
    #   The ID of the product to provision.
    #   @return [String]
    #
    # @!attribute [rw] provisioning_artifact_id
    #   The ID of the provisioning artifact.
    #   @return [String]
    #
    # @!attribute [rw] path_id
    #   The path identifier of the product. This value is optional if the
    #   product has a default path, and required if the product has more
    #   than one path.
    #   @return [String]
    #
    # @!attribute [rw] provisioning_parameters
    #   A list of key value pairs that you specify when you provision a
    #   product.
    #   @return [Array<Types::ProvisioningParameter>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ServiceCatalogProvisioningDetails AWS API Documentation
    #
    class ServiceCatalogProvisioningDetails < Struct.new(
      :product_id,
      :provisioning_artifact_id,
      :path_id,
      :provisioning_parameters)
      SENSITIVE = []
      include Aws::Structure
    end

    # Details that you specify to provision a service catalog product. For
    # information about service catalog, see [What is Amazon Web Services
    # Service Catalog][1].
    #
    #
    #
    # [1]: https://docs.aws.amazon.com/servicecatalog/latest/adminguide/introduction.html
    #
    # @!attribute [rw] provisioning_artifact_id
    #   The ID of the provisioning artifact.
    #   @return [String]
    #
    # @!attribute [rw] provisioning_parameters
    #   A list of key value pairs that you specify when you provision a
    #   product.
    #   @return [Array<Types::ProvisioningParameter>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ServiceCatalogProvisioningUpdateDetails AWS API Documentation
    #
    class ServiceCatalogProvisioningUpdateDetails < Struct.new(
      :provisioning_artifact_id,
      :provisioning_parameters)
      SENSITIVE = []
      include Aws::Structure
    end

    # Contains information about attribute-based access control (ABAC) for a
    # training job. The session chaining configuration uses Amazon Security
    # Token Service (STS) for your training job to request temporary,
    # limited-privilege credentials to tenants. For more information, see
    # [Attribute-based access control (ABAC) for multi-tenancy training][1].
    #
    #
    #
    # [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/model-access-training-data.html#model-access-training-data-abac
    #
    # @!attribute [rw] enable_session_tag_chaining
    #   Set to `True` to allow SageMaker to extract session tags from a
    #   training job creation role and reuse these tags when assuming the
    #   training job execution role.
    #   @return [Boolean]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/SessionChainingConfig AWS API Documentation
    #
    class SessionChainingConfig < Struct.new(
      :enable_session_tag_chaining)
      SENSITIVE = []
      include Aws::Structure
    end

    # The configuration of `ShadowMode` inference experiment type, which
    # specifies a production variant to take all the inference requests, and
    # a shadow variant to which Amazon SageMaker replicates a percentage of
    # the inference requests. For the shadow variant it also specifies the
    # percentage of requests that Amazon SageMaker replicates.
    #
    # @!attribute [rw] source_model_variant_name
    #   The name of the production variant, which takes all the inference
    #   requests.
    #   @return [String]
    #
    # @!attribute [rw] shadow_model_variants
    #   List of shadow variant configurations.
    #   @return [Array<Types::ShadowModelVariantConfig>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ShadowModeConfig AWS API Documentation
    #
    class ShadowModeConfig < Struct.new(
      :source_model_variant_name,
      :shadow_model_variants)
      SENSITIVE = []
      include Aws::Structure
    end

    # The name and sampling percentage of a shadow variant.
    #
    # @!attribute [rw] shadow_model_variant_name
    #   The name of the shadow variant.
    #   @return [String]
    #
    # @!attribute [rw] sampling_percentage
    #   The percentage of inference requests that Amazon SageMaker
    #   replicates from the production variant to the shadow variant.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ShadowModelVariantConfig AWS API Documentation
    #
    class ShadowModelVariantConfig < Struct.new(
      :shadow_model_variant_name,
      :sampling_percentage)
      SENSITIVE = []
      include Aws::Structure
    end

    # Specifies options for sharing Amazon SageMaker AI Studio notebooks.
    # These settings are specified as part of `DefaultUserSettings` when the
    # `CreateDomain` API is called, and as part of `UserSettings` when the
    # `CreateUserProfile` API is called. When `SharingSettings` is not
    # specified, notebook sharing isn't allowed.
    #
    # @!attribute [rw] notebook_output_option
    #   Whether to include the notebook cell output when sharing the
    #   notebook. The default is `Disabled`.
    #   @return [String]
    #
    # @!attribute [rw] s3_output_path
    #   When `NotebookOutputOption` is `Allowed`, the Amazon S3 bucket used
    #   to store the shared notebook snapshots.
    #   @return [String]
    #
    # @!attribute [rw] s3_kms_key_id
    #   When `NotebookOutputOption` is `Allowed`, the Amazon Web Services
    #   Key Management Service (KMS) encryption key ID used to encrypt the
    #   notebook cell output in the Amazon S3 bucket.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/SharingSettings AWS API Documentation
    #
    class SharingSettings < Struct.new(
      :notebook_output_option,
      :s3_output_path,
      :s3_kms_key_id)
      SENSITIVE = []
      include Aws::Structure
    end

    # A configuration for a shuffle option for input data in a channel. If
    # you use `S3Prefix` for `S3DataType`, the results of the S3 key prefix
    # matches are shuffled. If you use `ManifestFile`, the order of the S3
    # object references in the `ManifestFile` is shuffled. If you use
    # `AugmentedManifestFile`, the order of the JSON lines in the
    # `AugmentedManifestFile` is shuffled. The shuffling order is determined
    # using the `Seed` value.
    #
    # For Pipe input mode, when `ShuffleConfig` is specified shuffling is
    # done at the start of every epoch. With large datasets, this ensures
    # that the order of the training data is different for each epoch, and
    # it helps reduce bias and possible overfitting. In a multi-node
    # training job when `ShuffleConfig` is combined with
    # `S3DataDistributionType` of `ShardedByS3Key`, the data is shuffled
    # across nodes so that the content sent to a particular node on the
    # first epoch might be sent to a different node on the second epoch.
    #
    # @!attribute [rw] seed
    #   Determines the shuffling order in `ShuffleConfig` value.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ShuffleConfig AWS API Documentation
    #
    class ShuffleConfig < Struct.new(
      :seed)
      SENSITIVE = []
      include Aws::Structure
    end

    # Specifies an algorithm that was used to create the model package. The
    # algorithm must be either an algorithm resource in your SageMaker
    # account or an algorithm in Amazon Web Services Marketplace that you
    # are subscribed to.
    #
    # @!attribute [rw] model_data_url
    #   The Amazon S3 path where the model artifacts, which result from
    #   model training, are stored. This path must point to a single `gzip`
    #   compressed tar archive (`.tar.gz` suffix).
    #
    #   <note markdown="1"> The model artifacts must be in an S3 bucket that is in the same
    #   Amazon Web Services region as the algorithm.
    #
    #    </note>
    #   @return [String]
    #
    # @!attribute [rw] model_data_source
    #   Specifies the location of ML model data to deploy during endpoint
    #   creation.
    #   @return [Types::ModelDataSource]
    #
    # @!attribute [rw] model_data_etag
    #   The ETag associated with Model Data URL.
    #   @return [String]
    #
    # @!attribute [rw] algorithm_name
    #   The name of an algorithm that was used to create the model package.
    #   The algorithm must be either an algorithm resource in your SageMaker
    #   account or an algorithm in Amazon Web Services Marketplace that you
    #   are subscribed to.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/SourceAlgorithm AWS API Documentation
    #
    class SourceAlgorithm < Struct.new(
      :model_data_url,
      :model_data_source,
      :model_data_etag,
      :algorithm_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # A list of algorithms that were used to create a model package.
    #
    # @!attribute [rw] source_algorithms
    #   A list of the algorithms that were used to create a model package.
    #   @return [Array<Types::SourceAlgorithm>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/SourceAlgorithmSpecification AWS API Documentation
    #
    class SourceAlgorithmSpecification < Struct.new(
      :source_algorithms)
      SENSITIVE = []
      include Aws::Structure
    end

    # A list of IP address ranges ([CIDRs][1]). Used to create an allow list
    # of IP addresses for a private workforce. Workers will only be able to
    # log in to their worker portal from an IP address within this range. By
    # default, a workforce isn't restricted to specific IP addresses.
    #
    #
    #
    # [1]: https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html
    #
    # @!attribute [rw] cidrs
    #   A list of one to ten [Classless Inter-Domain Routing][1] (CIDR)
    #   values.
    #
    #   Maximum: Ten CIDR values
    #
    #   <note markdown="1"> The following Length Constraints apply to individual CIDR values in
    #   the CIDR value list.
    #
    #    </note>
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html
    #   @return [Array<String>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/SourceIpConfig AWS API Documentation
    #
    class SourceIpConfig < Struct.new(
      :cidrs)
      SENSITIVE = []
      include Aws::Structure
    end

    # Settings that are used to configure and manage the lifecycle of Amazon
    # SageMaker Studio applications in a space.
    #
    # @!attribute [rw] idle_settings
    #   Settings related to idle shutdown of Studio applications.
    #   @return [Types::SpaceIdleSettings]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/SpaceAppLifecycleManagement AWS API Documentation
    #
    class SpaceAppLifecycleManagement < Struct.new(
      :idle_settings)
      SENSITIVE = []
      include Aws::Structure
    end

    # The application settings for a Code Editor space.
    #
    # @!attribute [rw] default_resource_spec
    #   Specifies the ARN's of a SageMaker AI image and SageMaker AI image
    #   version, and the instance type that the version runs on.
    #
    #   <note markdown="1"> When both `SageMakerImageVersionArn` and `SageMakerImageArn` are
    #   passed, `SageMakerImageVersionArn` is used. Any updates to
    #   `SageMakerImageArn` will not take effect if
    #   `SageMakerImageVersionArn` already exists in the `ResourceSpec`
    #   because `SageMakerImageVersionArn` always takes precedence. To clear
    #   the value set for `SageMakerImageVersionArn`, pass `None` as the
    #   value.
    #
    #    </note>
    #   @return [Types::ResourceSpec]
    #
    # @!attribute [rw] app_lifecycle_management
    #   Settings that are used to configure and manage the lifecycle of
    #   CodeEditor applications in a space.
    #   @return [Types::SpaceAppLifecycleManagement]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/SpaceCodeEditorAppSettings AWS API Documentation
    #
    class SpaceCodeEditorAppSettings < Struct.new(
      :default_resource_spec,
      :app_lifecycle_management)
      SENSITIVE = []
      include Aws::Structure
    end

    # The space's details.
    #
    # @!attribute [rw] domain_id
    #   The ID of the associated domain.
    #   @return [String]
    #
    # @!attribute [rw] space_name
    #   The name of the space.
    #   @return [String]
    #
    # @!attribute [rw] status
    #   The status.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   The creation time.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time
    #   The last modified time.
    #   @return [Time]
    #
    # @!attribute [rw] space_settings_summary
    #   Specifies summary information about the space settings.
    #   @return [Types::SpaceSettingsSummary]
    #
    # @!attribute [rw] space_sharing_settings_summary
    #   Specifies summary information about the space sharing settings.
    #   @return [Types::SpaceSharingSettingsSummary]
    #
    # @!attribute [rw] ownership_settings_summary
    #   Specifies summary information about the ownership settings.
    #   @return [Types::OwnershipSettingsSummary]
    #
    # @!attribute [rw] space_display_name
    #   The name of the space that appears in the Studio UI.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/SpaceDetails AWS API Documentation
    #
    class SpaceDetails < Struct.new(
      :domain_id,
      :space_name,
      :status,
      :creation_time,
      :last_modified_time,
      :space_settings_summary,
      :space_sharing_settings_summary,
      :ownership_settings_summary,
      :space_display_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # Settings related to idle shutdown of Studio applications in a space.
    #
    # @!attribute [rw] idle_timeout_in_minutes
    #   The time that SageMaker waits after the application becomes idle
    #   before shutting it down.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/SpaceIdleSettings AWS API Documentation
    #
    class SpaceIdleSettings < Struct.new(
      :idle_timeout_in_minutes)
      SENSITIVE = []
      include Aws::Structure
    end

    # The settings for the JupyterLab application within a space.
    #
    # @!attribute [rw] default_resource_spec
    #   Specifies the ARN's of a SageMaker AI image and SageMaker AI image
    #   version, and the instance type that the version runs on.
    #
    #   <note markdown="1"> When both `SageMakerImageVersionArn` and `SageMakerImageArn` are
    #   passed, `SageMakerImageVersionArn` is used. Any updates to
    #   `SageMakerImageArn` will not take effect if
    #   `SageMakerImageVersionArn` already exists in the `ResourceSpec`
    #   because `SageMakerImageVersionArn` always takes precedence. To clear
    #   the value set for `SageMakerImageVersionArn`, pass `None` as the
    #   value.
    #
    #    </note>
    #   @return [Types::ResourceSpec]
    #
    # @!attribute [rw] code_repositories
    #   A list of Git repositories that SageMaker automatically displays to
    #   users for cloning in the JupyterLab application.
    #   @return [Array<Types::CodeRepository>]
    #
    # @!attribute [rw] app_lifecycle_management
    #   Settings that are used to configure and manage the lifecycle of
    #   JupyterLab applications in a space.
    #   @return [Types::SpaceAppLifecycleManagement]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/SpaceJupyterLabAppSettings AWS API Documentation
    #
    class SpaceJupyterLabAppSettings < Struct.new(
      :default_resource_spec,
      :code_repositories,
      :app_lifecycle_management)
      SENSITIVE = []
      include Aws::Structure
    end

    # A collection of space settings.
    #
    # @!attribute [rw] jupyter_server_app_settings
    #   The JupyterServer app settings.
    #   @return [Types::JupyterServerAppSettings]
    #
    # @!attribute [rw] kernel_gateway_app_settings
    #   The KernelGateway app settings.
    #   @return [Types::KernelGatewayAppSettings]
    #
    # @!attribute [rw] code_editor_app_settings
    #   The Code Editor application settings.
    #   @return [Types::SpaceCodeEditorAppSettings]
    #
    # @!attribute [rw] jupyter_lab_app_settings
    #   The settings for the JupyterLab application.
    #   @return [Types::SpaceJupyterLabAppSettings]
    #
    # @!attribute [rw] app_type
    #   The type of app created within the space.
    #
    #   If using the [ UpdateSpace][1] API, you can't change the app type
    #   of your space by specifying a different value for this field.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateSpace.html
    #   @return [String]
    #
    # @!attribute [rw] space_storage_settings
    #   The storage settings for a space.
    #   @return [Types::SpaceStorageSettings]
    #
    # @!attribute [rw] space_managed_resources
    #   If you enable this option, SageMaker AI creates the following
    #   resources on your behalf when you create the space:
    #
    #   * The user profile that possesses the space.
    #
    #   * The app that the space contains.
    #   @return [String]
    #
    # @!attribute [rw] custom_file_systems
    #   A file system, created by you, that you assign to a space for an
    #   Amazon SageMaker AI Domain. Permitted users can access this file
    #   system in Amazon SageMaker AI Studio.
    #   @return [Array<Types::CustomFileSystem>]
    #
    # @!attribute [rw] remote_access
    #   A setting that enables or disables remote access for a SageMaker
    #   space. When enabled, this allows you to connect to the remote space
    #   from your local IDE.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/SpaceSettings AWS API Documentation
    #
    class SpaceSettings < Struct.new(
      :jupyter_server_app_settings,
      :kernel_gateway_app_settings,
      :code_editor_app_settings,
      :jupyter_lab_app_settings,
      :app_type,
      :space_storage_settings,
      :space_managed_resources,
      :custom_file_systems,
      :remote_access)
      SENSITIVE = []
      include Aws::Structure
    end

    # Specifies summary information about the space settings.
    #
    # @!attribute [rw] app_type
    #   The type of app created within the space.
    #   @return [String]
    #
    # @!attribute [rw] remote_access
    #   A setting that enables or disables remote access for a SageMaker
    #   space. When enabled, this allows you to connect to the remote space
    #   from your local IDE.
    #   @return [String]
    #
    # @!attribute [rw] space_storage_settings
    #   The storage settings for a space.
    #   @return [Types::SpaceStorageSettings]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/SpaceSettingsSummary AWS API Documentation
    #
    class SpaceSettingsSummary < Struct.new(
      :app_type,
      :remote_access,
      :space_storage_settings)
      SENSITIVE = []
      include Aws::Structure
    end

    # A collection of space sharing settings.
    #
    # @!attribute [rw] sharing_type
    #   Specifies the sharing type of the space.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/SpaceSharingSettings AWS API Documentation
    #
    class SpaceSharingSettings < Struct.new(
      :sharing_type)
      SENSITIVE = []
      include Aws::Structure
    end

    # Specifies summary information about the space sharing settings.
    #
    # @!attribute [rw] sharing_type
    #   Specifies the sharing type of the space.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/SpaceSharingSettingsSummary AWS API Documentation
    #
    class SpaceSharingSettingsSummary < Struct.new(
      :sharing_type)
      SENSITIVE = []
      include Aws::Structure
    end

    # The storage settings for a space.
    #
    # @!attribute [rw] ebs_storage_settings
    #   A collection of EBS storage settings for a space.
    #   @return [Types::EbsStorageSettings]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/SpaceStorageSettings AWS API Documentation
    #
    class SpaceStorageSettings < Struct.new(
      :ebs_storage_settings)
      SENSITIVE = []
      include Aws::Structure
    end

    # Defines the stairs traffic pattern for an Inference Recommender load
    # test. This pattern type consists of multiple steps where the number of
    # users increases at each step.
    #
    # Specify either the stairs or phases traffic pattern.
    #
    # @!attribute [rw] duration_in_seconds
    #   Defines how long each traffic step should be.
    #   @return [Integer]
    #
    # @!attribute [rw] number_of_steps
    #   Specifies how many steps to perform during traffic.
    #   @return [Integer]
    #
    # @!attribute [rw] users_per_step
    #   Specifies how many new users to spawn in each step.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/Stairs AWS API Documentation
    #
    class Stairs < Struct.new(
      :duration_in_seconds,
      :number_of_steps,
      :users_per_step)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] edge_deployment_plan_name
    #   The name of the edge deployment plan to start.
    #   @return [String]
    #
    # @!attribute [rw] stage_name
    #   The name of the stage to start.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/StartEdgeDeploymentStageRequest AWS API Documentation
    #
    class StartEdgeDeploymentStageRequest < Struct.new(
      :edge_deployment_plan_name,
      :stage_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] name
    #   The name of the inference experiment to start.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/StartInferenceExperimentRequest AWS API Documentation
    #
    class StartInferenceExperimentRequest < Struct.new(
      :name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] inference_experiment_arn
    #   The ARN of the started inference experiment to start.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/StartInferenceExperimentResponse AWS API Documentation
    #
    class StartInferenceExperimentResponse < Struct.new(
      :inference_experiment_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] tracking_server_name
    #   The name of the tracking server to start.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/StartMlflowTrackingServerRequest AWS API Documentation
    #
    class StartMlflowTrackingServerRequest < Struct.new(
      :tracking_server_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] tracking_server_arn
    #   The ARN of the started tracking server.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/StartMlflowTrackingServerResponse AWS API Documentation
    #
    class StartMlflowTrackingServerResponse < Struct.new(
      :tracking_server_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] monitoring_schedule_name
    #   The name of the schedule to start.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/StartMonitoringScheduleRequest AWS API Documentation
    #
    class StartMonitoringScheduleRequest < Struct.new(
      :monitoring_schedule_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] notebook_instance_name
    #   The name of the notebook instance to start.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/StartNotebookInstanceInput AWS API Documentation
    #
    class StartNotebookInstanceInput < Struct.new(
      :notebook_instance_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] pipeline_name
    #   The name or Amazon Resource Name (ARN) of the pipeline.
    #   @return [String]
    #
    # @!attribute [rw] pipeline_execution_display_name
    #   The display name of the pipeline execution.
    #   @return [String]
    #
    # @!attribute [rw] pipeline_parameters
    #   Contains a list of pipeline parameters. This list can be empty.
    #   @return [Array<Types::Parameter>]
    #
    # @!attribute [rw] pipeline_execution_description
    #   The description of the pipeline execution.
    #   @return [String]
    #
    # @!attribute [rw] client_request_token
    #   A unique, case-sensitive identifier that you provide to ensure the
    #   idempotency of the operation. An idempotent operation completes no
    #   more than once.
    #
    #   **A suitable default value is auto-generated.** You should normally
    #   not need to pass this option.
    #   @return [String]
    #
    # @!attribute [rw] parallelism_configuration
    #   This configuration, if specified, overrides the parallelism
    #   configuration of the parent pipeline for this specific run.
    #   @return [Types::ParallelismConfiguration]
    #
    # @!attribute [rw] selective_execution_config
    #   The selective execution configuration applied to the pipeline run.
    #   @return [Types::SelectiveExecutionConfig]
    #
    # @!attribute [rw] pipeline_version_id
    #   The ID of the pipeline version to start execution from.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/StartPipelineExecutionRequest AWS API Documentation
    #
    class StartPipelineExecutionRequest < Struct.new(
      :pipeline_name,
      :pipeline_execution_display_name,
      :pipeline_parameters,
      :pipeline_execution_description,
      :client_request_token,
      :parallelism_configuration,
      :selective_execution_config,
      :pipeline_version_id)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] pipeline_execution_arn
    #   The Amazon Resource Name (ARN) of the pipeline execution.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/StartPipelineExecutionResponse AWS API Documentation
    #
    class StartPipelineExecutionResponse < Struct.new(
      :pipeline_execution_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] resource_identifier
    #   The Amazon Resource Name (ARN) of the resource to which the remote
    #   connection will be established. For example, this identifies the
    #   specific ARN space application you want to connect to from your
    #   local IDE.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/StartSessionRequest AWS API Documentation
    #
    class StartSessionRequest < Struct.new(
      :resource_identifier)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] session_id
    #   A unique identifier for the established remote connection session.
    #   @return [String]
    #
    # @!attribute [rw] stream_url
    #   A WebSocket URL used to establish a SSH connection between the local
    #   IDE and remote SageMaker space.
    #   @return [String]
    #
    # @!attribute [rw] token_value
    #   An encrypted token value containing session and caller information.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/StartSessionResponse AWS API Documentation
    #
    class StartSessionResponse < Struct.new(
      :session_id,
      :stream_url,
      :token_value)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] auto_ml_job_name
    #   The name of the object you are requesting.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/StopAutoMLJobRequest AWS API Documentation
    #
    class StopAutoMLJobRequest < Struct.new(
      :auto_ml_job_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] compilation_job_name
    #   The name of the model compilation job to stop.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/StopCompilationJobRequest AWS API Documentation
    #
    class StopCompilationJobRequest < Struct.new(
      :compilation_job_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] edge_deployment_plan_name
    #   The name of the edge deployment plan to stop.
    #   @return [String]
    #
    # @!attribute [rw] stage_name
    #   The name of the stage to stop.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/StopEdgeDeploymentStageRequest AWS API Documentation
    #
    class StopEdgeDeploymentStageRequest < Struct.new(
      :edge_deployment_plan_name,
      :stage_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] edge_packaging_job_name
    #   The name of the edge packaging job.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/StopEdgePackagingJobRequest AWS API Documentation
    #
    class StopEdgePackagingJobRequest < Struct.new(
      :edge_packaging_job_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] hyper_parameter_tuning_job_name
    #   The name of the tuning job to stop.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/StopHyperParameterTuningJobRequest AWS API Documentation
    #
    class StopHyperParameterTuningJobRequest < Struct.new(
      :hyper_parameter_tuning_job_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] name
    #   The name of the inference experiment to stop.
    #   @return [String]
    #
    # @!attribute [rw] model_variant_actions
    #   Array of key-value pairs, with names of variants mapped to actions.
    #   The possible actions are the following:
    #
    #   * `Promote` - Promote the shadow variant to a production variant
    #
    #   * `Remove` - Delete the variant
    #
    #   * `Retain` - Keep the variant as it is
    #   @return [Hash<String,String>]
    #
    # @!attribute [rw] desired_model_variants
    #   An array of `ModelVariantConfig` objects. There is one for each
    #   variant that you want to deploy after the inference experiment
    #   stops. Each `ModelVariantConfig` describes the infrastructure
    #   configuration for deploying the corresponding variant.
    #   @return [Array<Types::ModelVariantConfig>]
    #
    # @!attribute [rw] desired_state
    #   The desired state of the experiment after stopping. The possible
    #   states are the following:
    #
    #   * `Completed`: The experiment completed successfully
    #
    #   * `Cancelled`: The experiment was canceled
    #   @return [String]
    #
    # @!attribute [rw] reason
    #   The reason for stopping the experiment.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/StopInferenceExperimentRequest AWS API Documentation
    #
    class StopInferenceExperimentRequest < Struct.new(
      :name,
      :model_variant_actions,
      :desired_model_variants,
      :desired_state,
      :reason)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] inference_experiment_arn
    #   The ARN of the stopped inference experiment.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/StopInferenceExperimentResponse AWS API Documentation
    #
    class StopInferenceExperimentResponse < Struct.new(
      :inference_experiment_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] job_name
    #   The name of the job you want to stop.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/StopInferenceRecommendationsJobRequest AWS API Documentation
    #
    class StopInferenceRecommendationsJobRequest < Struct.new(
      :job_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] labeling_job_name
    #   The name of the labeling job to stop.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/StopLabelingJobRequest AWS API Documentation
    #
    class StopLabelingJobRequest < Struct.new(
      :labeling_job_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] tracking_server_name
    #   The name of the tracking server to stop.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/StopMlflowTrackingServerRequest AWS API Documentation
    #
    class StopMlflowTrackingServerRequest < Struct.new(
      :tracking_server_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] tracking_server_arn
    #   The ARN of the stopped tracking server.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/StopMlflowTrackingServerResponse AWS API Documentation
    #
    class StopMlflowTrackingServerResponse < Struct.new(
      :tracking_server_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] monitoring_schedule_name
    #   The name of the schedule to stop.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/StopMonitoringScheduleRequest AWS API Documentation
    #
    class StopMonitoringScheduleRequest < Struct.new(
      :monitoring_schedule_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] notebook_instance_name
    #   The name of the notebook instance to terminate.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/StopNotebookInstanceInput AWS API Documentation
    #
    class StopNotebookInstanceInput < Struct.new(
      :notebook_instance_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] optimization_job_name
    #   The name that you assigned to the optimization job.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/StopOptimizationJobRequest AWS API Documentation
    #
    class StopOptimizationJobRequest < Struct.new(
      :optimization_job_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] pipeline_execution_arn
    #   The Amazon Resource Name (ARN) of the pipeline execution.
    #   @return [String]
    #
    # @!attribute [rw] client_request_token
    #   A unique, case-sensitive identifier that you provide to ensure the
    #   idempotency of the operation. An idempotent operation completes no
    #   more than once.
    #
    #   **A suitable default value is auto-generated.** You should normally
    #   not need to pass this option.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/StopPipelineExecutionRequest AWS API Documentation
    #
    class StopPipelineExecutionRequest < Struct.new(
      :pipeline_execution_arn,
      :client_request_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] pipeline_execution_arn
    #   The Amazon Resource Name (ARN) of the pipeline execution.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/StopPipelineExecutionResponse AWS API Documentation
    #
    class StopPipelineExecutionResponse < Struct.new(
      :pipeline_execution_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] processing_job_name
    #   The name of the processing job to stop.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/StopProcessingJobRequest AWS API Documentation
    #
    class StopProcessingJobRequest < Struct.new(
      :processing_job_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] training_job_name
    #   The name of the training job to stop.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/StopTrainingJobRequest AWS API Documentation
    #
    class StopTrainingJobRequest < Struct.new(
      :training_job_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] transform_job_name
    #   The name of the batch transform job to stop.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/StopTransformJobRequest AWS API Documentation
    #
    class StopTransformJobRequest < Struct.new(
      :transform_job_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # Specifies a limit to how long a job can run. When the job reaches the
    # time limit, SageMaker ends the job. Use this API to cap costs.
    #
    # To stop a training job, SageMaker sends the algorithm the `SIGTERM`
    # signal, which delays job termination for 120 seconds. Algorithms can
    # use this 120-second window to save the model artifacts, so the results
    # of training are not lost.
    #
    # The training algorithms provided by SageMaker automatically save the
    # intermediate results of a model training job when possible. This
    # attempt to save artifacts is only a best effort case as model might
    # not be in a state from which it can be saved. For example, if training
    # has just started, the model might not be ready to save. When saved,
    # this intermediate data is a valid model artifact. You can use it to
    # create a model with `CreateModel`.
    #
    # <note markdown="1"> The Neural Topic Model (NTM) currently does not support saving
    # intermediate model artifacts. When training NTMs, make sure that the
    # maximum runtime is sufficient for the training job to complete.
    #
    #  </note>
    #
    # @!attribute [rw] max_runtime_in_seconds
    #   The maximum length of time, in seconds, that a training or
    #   compilation job can run before it is stopped.
    #
    #   For compilation jobs, if the job does not complete during this time,
    #   a `TimeOut` error is generated. We recommend starting with 900
    #   seconds and increasing as necessary based on your model.
    #
    #   For all other jobs, if the job does not complete during this time,
    #   SageMaker ends the job. When `RetryStrategy` is specified in the job
    #   request, `MaxRuntimeInSeconds` specifies the maximum time for all of
    #   the attempts in total, not each individual attempt. The default
    #   value is 1 day. The maximum value is 28 days.
    #
    #   The maximum time that a `TrainingJob` can run in total, including
    #   any time spent publishing metrics or archiving and uploading models
    #   after it has been stopped, is 30 days.
    #   @return [Integer]
    #
    # @!attribute [rw] max_wait_time_in_seconds
    #   The maximum length of time, in seconds, that a managed Spot training
    #   job has to complete. It is the amount of time spent waiting for Spot
    #   capacity plus the amount of time the job can run. It must be equal
    #   to or greater than `MaxRuntimeInSeconds`. If the job does not
    #   complete during this time, SageMaker ends the job.
    #
    #   When `RetryStrategy` is specified in the job request,
    #   `MaxWaitTimeInSeconds` specifies the maximum time for all of the
    #   attempts in total, not each individual attempt.
    #   @return [Integer]
    #
    # @!attribute [rw] max_pending_time_in_seconds
    #   The maximum length of time, in seconds, that a training or
    #   compilation job can be pending before it is stopped.
    #
    #   <note markdown="1"> When working with training jobs that use capacity from [training
    #   plans][1], not all `Pending` job states count against the
    #   `MaxPendingTimeInSeconds` limit. The following scenarios do not
    #   increment the `MaxPendingTimeInSeconds` counter:
    #
    #    * The plan is in a `Scheduled` state: Jobs queued (in `Pending`
    #     status) before a plan's start date (waiting for scheduled start
    #     time)
    #
    #   * Between capacity reservations: Jobs temporarily back to `Pending`
    #     status between two capacity reservation periods
    #
    #    `MaxPendingTimeInSeconds` only increments when jobs are actively
    #   waiting for capacity in an `Active` plan.
    #
    #    </note>
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/reserve-capacity-with-training-plans.html
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/StoppingCondition AWS API Documentation
    #
    class StoppingCondition < Struct.new(
      :max_runtime_in_seconds,
      :max_wait_time_in_seconds,
      :max_pending_time_in_seconds)
      SENSITIVE = []
      include Aws::Structure
    end

    # Details of the Amazon SageMaker AI Studio Lifecycle Configuration.
    #
    # @!attribute [rw] studio_lifecycle_config_arn
    #   The Amazon Resource Name (ARN) of the Lifecycle Configuration.
    #   @return [String]
    #
    # @!attribute [rw] studio_lifecycle_config_name
    #   The name of the Amazon SageMaker AI Studio Lifecycle Configuration.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   The creation time of the Amazon SageMaker AI Studio Lifecycle
    #   Configuration.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time
    #   This value is equivalent to CreationTime because Amazon SageMaker AI
    #   Studio Lifecycle Configurations are immutable.
    #   @return [Time]
    #
    # @!attribute [rw] studio_lifecycle_config_app_type
    #   The App type to which the Lifecycle Configuration is attached.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/StudioLifecycleConfigDetails AWS API Documentation
    #
    class StudioLifecycleConfigDetails < Struct.new(
      :studio_lifecycle_config_arn,
      :studio_lifecycle_config_name,
      :creation_time,
      :last_modified_time,
      :studio_lifecycle_config_app_type)
      SENSITIVE = []
      include Aws::Structure
    end

    # Studio settings. If these settings are applied on a user level, they
    # take priority over the settings applied on a domain level.
    #
    # @!attribute [rw] hidden_ml_tools
    #   The machine learning tools that are hidden from the Studio left
    #   navigation pane.
    #   @return [Array<String>]
    #
    # @!attribute [rw] hidden_app_types
    #   The [Applications supported in Studio][1] that are hidden from the
    #   Studio left navigation pane.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-apps.html
    #   @return [Array<String>]
    #
    # @!attribute [rw] hidden_instance_types
    #   The instance types you are hiding from the Studio user interface.
    #   @return [Array<String>]
    #
    # @!attribute [rw] hidden_sage_maker_image_version_aliases
    #   The version aliases you are hiding from the Studio user interface.
    #   @return [Array<Types::HiddenSageMakerImage>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/StudioWebPortalSettings AWS API Documentation
    #
    class StudioWebPortalSettings < Struct.new(
      :hidden_ml_tools,
      :hidden_app_types,
      :hidden_instance_types,
      :hidden_sage_maker_image_version_aliases)
      SENSITIVE = []
      include Aws::Structure
    end

    # Describes a work team of a vendor that does the labelling job.
    #
    # @!attribute [rw] workteam_arn
    #   The Amazon Resource Name (ARN) of the vendor that you have
    #   subscribed.
    #   @return [String]
    #
    # @!attribute [rw] marketplace_title
    #   The title of the service provided by the vendor in the Amazon
    #   Marketplace.
    #   @return [String]
    #
    # @!attribute [rw] seller_name
    #   The name of the vendor in the Amazon Marketplace.
    #   @return [String]
    #
    # @!attribute [rw] marketplace_description
    #   The description of the vendor from the Amazon Marketplace.
    #   @return [String]
    #
    # @!attribute [rw] listing_id
    #   Marketplace product listing ID.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/SubscribedWorkteam AWS API Documentation
    #
    class SubscribedWorkteam < Struct.new(
      :workteam_arn,
      :marketplace_title,
      :seller_name,
      :marketplace_description,
      :listing_id)
      SENSITIVE = []
      include Aws::Structure
    end

    # Specified in the [GetSearchSuggestions][1] request. Limits the
    # property names that are included in the response.
    #
    #
    #
    # [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_GetSearchSuggestions.html
    #
    # @!attribute [rw] property_name_query
    #   Defines a property name hint. Only property names that begin with
    #   the specified hint are included in the response.
    #   @return [Types::PropertyNameQuery]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/SuggestionQuery AWS API Documentation
    #
    class SuggestionQuery < Struct.new(
      :property_name_query)
      SENSITIVE = []
      include Aws::Structure
    end

    # The collection of settings used by an AutoML job V2 for the tabular
    # problem type.
    #
    # @!attribute [rw] candidate_generation_config
    #   The configuration information of how model candidates are generated.
    #   @return [Types::CandidateGenerationConfig]
    #
    # @!attribute [rw] completion_criteria
    #   How long a job is allowed to run, or how many candidates a job is
    #   allowed to generate.
    #   @return [Types::AutoMLJobCompletionCriteria]
    #
    # @!attribute [rw] feature_specification_s3_uri
    #   A URL to the Amazon S3 data source containing selected features from
    #   the input data source to run an Autopilot job V2. You can input
    #   `FeatureAttributeNames` (optional) in JSON format as shown below:
    #
    #   `{ "FeatureAttributeNames":["col1", "col2", ...] }`.
    #
    #   You can also specify the data type of the feature (optional) in the
    #   format shown below:
    #
    #   `{ "FeatureDataTypes":{"col1":"numeric", "col2":"categorical" ... }
    #   }`
    #
    #   <note markdown="1"> These column keys may not include the target column.
    #
    #    </note>
    #
    #   In ensembling mode, Autopilot only supports the following data
    #   types: `numeric`, `categorical`, `text`, and `datetime`. In HPO
    #   mode, Autopilot can support `numeric`, `categorical`, `text`,
    #   `datetime`, and `sequence`.
    #
    #   If only `FeatureDataTypes` is provided, the column keys (`col1`,
    #   `col2`,..) should be a subset of the column names in the input data.
    #
    #   If both `FeatureDataTypes` and `FeatureAttributeNames` are provided,
    #   then the column keys should be a subset of the column names provided
    #   in `FeatureAttributeNames`.
    #
    #   The key name `FeatureAttributeNames` is fixed. The values listed in
    #   `["col1", "col2", ...]` are case sensitive and should be a list of
    #   strings containing unique values that are a subset of the column
    #   names in the input data. The list of columns provided must not
    #   include the target column.
    #   @return [String]
    #
    # @!attribute [rw] mode
    #   The method that Autopilot uses to train the data. You can either
    #   specify the mode manually or let Autopilot choose for you based on
    #   the dataset size by selecting `AUTO`. In `AUTO` mode, Autopilot
    #   chooses `ENSEMBLING` for datasets smaller than 100 MB, and
    #   `HYPERPARAMETER_TUNING` for larger ones.
    #
    #   The `ENSEMBLING` mode uses a multi-stack ensemble model to predict
    #   classification and regression tasks directly from your dataset. This
    #   machine learning mode combines several base models to produce an
    #   optimal predictive model. It then uses a stacking ensemble method to
    #   combine predictions from contributing members. A multi-stack
    #   ensemble model can provide better performance over a single model by
    #   combining the predictive capabilities of multiple models. See
    #   [Autopilot algorithm support][1] for a list of algorithms supported
    #   by `ENSEMBLING` mode.
    #
    #   The `HYPERPARAMETER_TUNING` (HPO) mode uses the best hyperparameters
    #   to train the best version of a model. HPO automatically selects an
    #   algorithm for the type of problem you want to solve. Then HPO finds
    #   the best hyperparameters according to your objective metric. See
    #   [Autopilot algorithm support][1] for a list of algorithms supported
    #   by `HYPERPARAMETER_TUNING` mode.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-model-support-validation.html#autopilot-algorithm-support
    #   @return [String]
    #
    # @!attribute [rw] generate_candidate_definitions_only
    #   Generates possible candidates without training the models. A model
    #   candidate is a combination of data preprocessors, algorithms, and
    #   algorithm parameter settings.
    #   @return [Boolean]
    #
    # @!attribute [rw] problem_type
    #   The type of supervised learning problem available for the model
    #   candidates of the AutoML job V2. For more information, see [
    #   SageMaker Autopilot problem types][1].
    #
    #   <note markdown="1"> You must either specify the type of supervised learning problem in
    #   `ProblemType` and provide the [AutoMLJobObjective][2] metric, or
    #   none at all.
    #
    #    </note>
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-datasets-problem-types.html#autopilot-problem-types
    #   [2]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#sagemaker-CreateAutoMLJobV2-request-AutoMLJobObjective
    #   @return [String]
    #
    # @!attribute [rw] target_attribute_name
    #   The name of the target variable in supervised learning, usually
    #   represented by 'y'.
    #   @return [String]
    #
    # @!attribute [rw] sample_weight_attribute_name
    #   If specified, this column name indicates which column of the dataset
    #   should be treated as sample weights for use by the objective metric
    #   during the training, evaluation, and the selection of the best
    #   model. This column is not considered as a predictive feature. For
    #   more information on Autopilot metrics, see [Metrics and
    #   validation][1].
    #
    #   Sample weights should be numeric, non-negative, with larger values
    #   indicating which rows are more important than others. Data points
    #   that have invalid or no weight value are excluded.
    #
    #   Support for sample weights is available in [Ensembling][2] mode
    #   only.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-metrics-validation.html
    #   [2]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLAlgorithmConfig.html
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/TabularJobConfig AWS API Documentation
    #
    class TabularJobConfig < Struct.new(
      :candidate_generation_config,
      :completion_criteria,
      :feature_specification_s3_uri,
      :mode,
      :generate_candidate_definitions_only,
      :problem_type,
      :target_attribute_name,
      :sample_weight_attribute_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # The resolved attributes specific to the tabular problem type.
    #
    # @!attribute [rw] problem_type
    #   The type of supervised learning problem available for the model
    #   candidates of the AutoML job V2 (Binary Classification, Multiclass
    #   Classification, Regression). For more information, see [ SageMaker
    #   Autopilot problem types][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-datasets-problem-types.html#autopilot-problem-types
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/TabularResolvedAttributes AWS API Documentation
    #
    class TabularResolvedAttributes < Struct.new(
      :problem_type)
      SENSITIVE = []
      include Aws::Structure
    end

    # A tag object that consists of a key and an optional value, used to
    # manage metadata for SageMaker Amazon Web Services resources.
    #
    # You can add tags to notebook instances, training jobs, hyperparameter
    # tuning jobs, batch transform jobs, models, labeling jobs, work teams,
    # endpoint configurations, and endpoints. For more information on adding
    # tags to SageMaker resources, see [AddTags][1].
    #
    # For more information on adding metadata to your Amazon Web Services
    # resources with tagging, see [Tagging Amazon Web Services
    # resources][2]. For advice on best practices for managing Amazon Web
    # Services resources with tagging, see [Tagging Best Practices:
    # Implement an Effective Amazon Web Services Resource Tagging
    # Strategy][3].
    #
    #
    #
    # [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AddTags.html
    # [2]: https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html
    # [3]: https://d1.awsstatic.com/whitepapers/aws-tagging-best-practices.pdf
    #
    # @!attribute [rw] key
    #   The tag key. Tag keys must be unique per resource.
    #   @return [String]
    #
    # @!attribute [rw] value
    #   The tag value.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/Tag AWS API Documentation
    #
    class Tag < Struct.new(
      :key,
      :value)
      SENSITIVE = []
      include Aws::Structure
    end

    # Contains information about a target platform that you want your model
    # to run on, such as OS, architecture, and accelerators. It is an
    # alternative of `TargetDevice`.
    #
    # @!attribute [rw] os
    #   Specifies a target platform OS.
    #
    #   * `LINUX`: Linux-based operating systems.
    #
    #   * `ANDROID`: Android operating systems. Android API level can be
    #     specified using the `ANDROID_PLATFORM` compiler option. For
    #     example, `"CompilerOptions": {'ANDROID_PLATFORM': 28}`
    #   @return [String]
    #
    # @!attribute [rw] arch
    #   Specifies a target platform architecture.
    #
    #   * `X86_64`: 64-bit version of the x86 instruction set.
    #
    #   * `X86`: 32-bit version of the x86 instruction set.
    #
    #   * `ARM64`: ARMv8 64-bit CPU.
    #
    #   * `ARM_EABIHF`: ARMv7 32-bit, Hard Float.
    #
    #   * `ARM_EABI`: ARMv7 32-bit, Soft Float. Used by Android 32-bit ARM
    #     platform.
    #   @return [String]
    #
    # @!attribute [rw] accelerator
    #   Specifies a target platform accelerator (optional).
    #
    #   * `NVIDIA`: Nvidia graphics processing unit. It also requires
    #     `gpu-code`, `trt-ver`, `cuda-ver` compiler options
    #
    #   * `MALI`: ARM Mali graphics processor
    #
    #   * `INTEL_GRAPHICS`: Integrated Intel graphics
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/TargetPlatform AWS API Documentation
    #
    class TargetPlatform < Struct.new(
      :os,
      :arch,
      :accelerator)
      SENSITIVE = []
      include Aws::Structure
    end

    # A target tracking scaling policy. Includes support for predefined or
    # customized metrics.
    #
    # When using the [PutScalingPolicy][1] API, this parameter is required
    # when you are creating a policy with the policy type
    # `TargetTrackingScaling`.
    #
    #
    #
    # [1]: https://docs.aws.amazon.com/autoscaling/application/APIReference/API_PutScalingPolicy.html
    #
    # @!attribute [rw] metric_specification
    #   An object containing information about a metric.
    #   @return [Types::MetricSpecification]
    #
    # @!attribute [rw] target_value
    #   The recommended target value to specify for the metric when creating
    #   a scaling policy.
    #   @return [Float]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/TargetTrackingScalingPolicyConfiguration AWS API Documentation
    #
    class TargetTrackingScalingPolicyConfiguration < Struct.new(
      :metric_specification,
      :target_value)
      SENSITIVE = []
      include Aws::Structure
    end

    # Details about a template provider configuration and associated
    # provisioning information.
    #
    # @!attribute [rw] cfn_template_provider_detail
    #   Details about a CloudFormation template provider configuration and
    #   associated provisioning information.
    #   @return [Types::CfnTemplateProviderDetail]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/TemplateProviderDetail AWS API Documentation
    #
    class TemplateProviderDetail < Struct.new(
      :cfn_template_provider_detail)
      SENSITIVE = []
      include Aws::Structure
    end

    # The TensorBoard app settings.
    #
    # @!attribute [rw] default_resource_spec
    #   The default instance type and the Amazon Resource Name (ARN) of the
    #   SageMaker AI image created on the instance.
    #   @return [Types::ResourceSpec]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/TensorBoardAppSettings AWS API Documentation
    #
    class TensorBoardAppSettings < Struct.new(
      :default_resource_spec)
      SENSITIVE = []
      include Aws::Structure
    end

    # Configuration of storage locations for the Amazon SageMaker Debugger
    # TensorBoard output data.
    #
    # @!attribute [rw] local_path
    #   Path to local storage location for tensorBoard output. Defaults to
    #   `/opt/ml/output/tensorboard`.
    #   @return [String]
    #
    # @!attribute [rw] s3_output_path
    #   Path to Amazon S3 storage location for TensorBoard output.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/TensorBoardOutputConfig AWS API Documentation
    #
    class TensorBoardOutputConfig < Struct.new(
      :local_path,
      :s3_output_path)
      SENSITIVE = []
      include Aws::Structure
    end

    # The collection of settings used by an AutoML job V2 for the text
    # classification problem type.
    #
    # @!attribute [rw] completion_criteria
    #   How long a job is allowed to run, or how many candidates a job is
    #   allowed to generate.
    #   @return [Types::AutoMLJobCompletionCriteria]
    #
    # @!attribute [rw] content_column
    #   The name of the column used to provide the sentences to be
    #   classified. It should not be the same as the target column.
    #   @return [String]
    #
    # @!attribute [rw] target_label_column
    #   The name of the column used to provide the class labels. It should
    #   not be same as the content column.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/TextClassificationJobConfig AWS API Documentation
    #
    class TextClassificationJobConfig < Struct.new(
      :completion_criteria,
      :content_column,
      :target_label_column)
      SENSITIVE = []
      include Aws::Structure
    end

    # The collection of settings used by an AutoML job V2 for the text
    # generation problem type.
    #
    # <note markdown="1"> The text generation models that support fine-tuning in Autopilot are
    # currently accessible exclusively in regions supported by Canvas. Refer
    # to the documentation of Canvas for the [full list of its supported
    # Regions][1].
    #
    #  </note>
    #
    #
    #
    # [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/canvas.html
    #
    # @!attribute [rw] completion_criteria
    #   How long a fine-tuning job is allowed to run. For
    #   `TextGenerationJobConfig` problem types, the
    #   `MaxRuntimePerTrainingJobInSeconds` attribute of
    #   `AutoMLJobCompletionCriteria` defaults to 72h (259200s).
    #   @return [Types::AutoMLJobCompletionCriteria]
    #
    # @!attribute [rw] base_model_name
    #   The name of the base model to fine-tune. Autopilot supports
    #   fine-tuning a variety of large language models. For information on
    #   the list of supported models, see [Text generation models supporting
    #   fine-tuning in Autopilot][1]. If no `BaseModelName` is provided, the
    #   default model used is **Falcon7BInstruct**.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-llms-finetuning-models.html#autopilot-llms-finetuning-supported-llms
    #   @return [String]
    #
    # @!attribute [rw] text_generation_hyper_parameters
    #   The hyperparameters used to configure and optimize the learning
    #   process of the base model. You can set any combination of the
    #   following hyperparameters for all base models. For more information
    #   on each supported hyperparameter, see [Optimize the learning process
    #   of your text generation models with hyperparameters][1].
    #
    #   * `"epochCount"`: The number of times the model goes through the
    #     entire training dataset. Its value should be a string containing
    #     an integer value within the range of "1" to "10".
    #
    #   * `"batchSize"`: The number of data samples used in each iteration
    #     of training. Its value should be a string containing an integer
    #     value within the range of "1" to "64".
    #
    #   * `"learningRate"`: The step size at which a model's parameters are
    #     updated during training. Its value should be a string containing a
    #     floating-point value within the range of "0" to "1".
    #
    #   * `"learningRateWarmupSteps"`: The number of training steps during
    #     which the learning rate gradually increases before reaching its
    #     target or maximum value. Its value should be a string containing
    #     an integer value within the range of "0" to "250".
    #
    #   Here is an example where all four hyperparameters are configured.
    #
    #   `{ "epochCount":"5", "learningRate":"0.5", "batchSize": "32",
    #   "learningRateWarmupSteps": "10" }`
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-llms-finetuning-set-hyperparameters.html
    #   @return [Hash<String,String>]
    #
    # @!attribute [rw] model_access_config
    #   The access configuration file to control access to the ML model. You
    #   can explicitly accept the model end-user license agreement (EULA)
    #   within the `ModelAccessConfig`.
    #
    #   * If you are a Jumpstart user, see the [End-user license
    #     agreements][1] section for more details on accepting the EULA.
    #
    #   * If you are an AutoML user, see the *Optional Parameters* section
    #     of *Create an AutoML job to fine-tune text generation models using
    #     the API* for details on [How to set the EULA acceptance when
    #     fine-tuning a model using the AutoML API][2].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/jumpstart-foundation-models-choose.html#jumpstart-foundation-models-choose-eula
    #   [2]: https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-create-experiment-finetune-llms.html#autopilot-llms-finetuning-api-optional-params
    #   @return [Types::ModelAccessConfig]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/TextGenerationJobConfig AWS API Documentation
    #
    class TextGenerationJobConfig < Struct.new(
      :completion_criteria,
      :base_model_name,
      :text_generation_hyper_parameters,
      :model_access_config)
      SENSITIVE = []
      include Aws::Structure
    end

    # The resolved attributes specific to the text generation problem type.
    #
    # @!attribute [rw] base_model_name
    #   The name of the base model to fine-tune.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/TextGenerationResolvedAttributes AWS API Documentation
    #
    class TextGenerationResolvedAttributes < Struct.new(
      :base_model_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # Used to set feature group throughput configuration. There are two
    # modes: `ON_DEMAND` and `PROVISIONED`. With on-demand mode, you are
    # charged for data reads and writes that your application performs on
    # your feature group. You do not need to specify read and write
    # throughput because Feature Store accommodates your workloads as they
    # ramp up and down. You can switch a feature group to on-demand only
    # once in a 24 hour period. With provisioned throughput mode, you
    # specify the read and write capacity per second that you expect your
    # application to require, and you are billed based on those limits.
    # Exceeding provisioned throughput will result in your requests being
    # throttled.
    #
    # Note: `PROVISIONED` throughput mode is supported only for feature
    # groups that are offline-only, or use the [ `Standard` ][1] tier online
    # store.
    #
    #
    #
    # [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_OnlineStoreConfig.html#sagemaker-Type-OnlineStoreConfig-StorageType
    #
    # @!attribute [rw] throughput_mode
    #   The mode used for your feature group throughput: `ON_DEMAND` or
    #   `PROVISIONED`.
    #   @return [String]
    #
    # @!attribute [rw] provisioned_read_capacity_units
    #   For provisioned feature groups with online store enabled, this
    #   indicates the read throughput you are billed for and can consume
    #   without throttling.
    #
    #   This field is not applicable for on-demand feature groups.
    #   @return [Integer]
    #
    # @!attribute [rw] provisioned_write_capacity_units
    #   For provisioned feature groups, this indicates the write throughput
    #   you are billed for and can consume without throttling.
    #
    #   This field is not applicable for on-demand feature groups.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ThroughputConfig AWS API Documentation
    #
    class ThroughputConfig < Struct.new(
      :throughput_mode,
      :provisioned_read_capacity_units,
      :provisioned_write_capacity_units)
      SENSITIVE = []
      include Aws::Structure
    end

    # Active throughput configuration of the feature group. There are two
    # modes: `ON_DEMAND` and `PROVISIONED`. With on-demand mode, you are
    # charged for data reads and writes that your application performs on
    # your feature group. You do not need to specify read and write
    # throughput because Feature Store accommodates your workloads as they
    # ramp up and down. You can switch a feature group to on-demand only
    # once in a 24 hour period. With provisioned throughput mode, you
    # specify the read and write capacity per second that you expect your
    # application to require, and you are billed based on those limits.
    # Exceeding provisioned throughput will result in your requests being
    # throttled.
    #
    # Note: `PROVISIONED` throughput mode is supported only for feature
    # groups that are offline-only, or use the [ `Standard` ][1] tier online
    # store.
    #
    #
    #
    # [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_OnlineStoreConfig.html#sagemaker-Type-OnlineStoreConfig-StorageType
    #
    # @!attribute [rw] throughput_mode
    #   The mode used for your feature group throughput: `ON_DEMAND` or
    #   `PROVISIONED`.
    #   @return [String]
    #
    # @!attribute [rw] provisioned_read_capacity_units
    #   For provisioned feature groups with online store enabled, this
    #   indicates the read throughput you are billed for and can consume
    #   without throttling.
    #
    #   This field is not applicable for on-demand feature groups.
    #   @return [Integer]
    #
    # @!attribute [rw] provisioned_write_capacity_units
    #   For provisioned feature groups, this indicates the write throughput
    #   you are billed for and can consume without throttling.
    #
    #   This field is not applicable for on-demand feature groups.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ThroughputConfigDescription AWS API Documentation
    #
    class ThroughputConfigDescription < Struct.new(
      :throughput_mode,
      :provisioned_read_capacity_units,
      :provisioned_write_capacity_units)
      SENSITIVE = []
      include Aws::Structure
    end

    # The new throughput configuration for the feature group. You can switch
    # between on-demand and provisioned modes or update the read / write
    # capacity of provisioned feature groups. You can switch a feature group
    # to on-demand only once in a 24 hour period.
    #
    # @!attribute [rw] throughput_mode
    #   Target throughput mode of the feature group. Throughput update is an
    #   asynchronous operation, and the outcome should be monitored by
    #   polling `LastUpdateStatus` field in `DescribeFeatureGroup` response.
    #   You cannot update a feature group's throughput while another update
    #   is in progress.
    #   @return [String]
    #
    # @!attribute [rw] provisioned_read_capacity_units
    #   For provisioned feature groups with online store enabled, this
    #   indicates the read throughput you are billed for and can consume
    #   without throttling.
    #   @return [Integer]
    #
    # @!attribute [rw] provisioned_write_capacity_units
    #   For provisioned feature groups, this indicates the write throughput
    #   you are billed for and can consume without throttling.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ThroughputConfigUpdate AWS API Documentation
    #
    class ThroughputConfigUpdate < Struct.new(
      :throughput_mode,
      :provisioned_read_capacity_units,
      :provisioned_write_capacity_units)
      SENSITIVE = []
      include Aws::Structure
    end

    # The collection of components that defines the time-series.
    #
    # @!attribute [rw] target_attribute_name
    #   The name of the column representing the target variable that you
    #   want to predict for each item in your dataset. The data type of the
    #   target variable must be numerical.
    #   @return [String]
    #
    # @!attribute [rw] timestamp_attribute_name
    #   The name of the column indicating a point in time at which the
    #   target value of a given item is recorded.
    #   @return [String]
    #
    # @!attribute [rw] item_identifier_attribute_name
    #   The name of the column that represents the set of item identifiers
    #   for which you want to predict the target value.
    #   @return [String]
    #
    # @!attribute [rw] grouping_attribute_names
    #   A set of columns names that can be grouped with the item identifier
    #   column to create a composite key for which a target value is
    #   predicted.
    #   @return [Array<String>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/TimeSeriesConfig AWS API Documentation
    #
    class TimeSeriesConfig < Struct.new(
      :target_attribute_name,
      :timestamp_attribute_name,
      :item_identifier_attribute_name,
      :grouping_attribute_names)
      SENSITIVE = []
      include Aws::Structure
    end

    # The collection of settings used by an AutoML job V2 for the
    # time-series forecasting problem type.
    #
    # @!attribute [rw] feature_specification_s3_uri
    #   A URL to the Amazon S3 data source containing additional selected
    #   features that complement the target, itemID, timestamp, and grouped
    #   columns set in `TimeSeriesConfig`. When not provided, the AutoML job
    #   V2 includes all the columns from the original dataset that are not
    #   already declared in `TimeSeriesConfig`. If provided, the AutoML job
    #   V2 only considers these additional columns as a complement to the
    #   ones declared in `TimeSeriesConfig`.
    #
    #   You can input `FeatureAttributeNames` (optional) in JSON format as
    #   shown below:
    #
    #   `{ "FeatureAttributeNames":["col1", "col2", ...] }`.
    #
    #   You can also specify the data type of the feature (optional) in the
    #   format shown below:
    #
    #   `{ "FeatureDataTypes":{"col1":"numeric", "col2":"categorical" ... }
    #   }`
    #
    #   Autopilot supports the following data types: `numeric`,
    #   `categorical`, `text`, and `datetime`.
    #
    #   <note markdown="1"> These column keys must not include any column set in
    #   `TimeSeriesConfig`.
    #
    #    </note>
    #   @return [String]
    #
    # @!attribute [rw] completion_criteria
    #   How long a job is allowed to run, or how many candidates a job is
    #   allowed to generate.
    #   @return [Types::AutoMLJobCompletionCriteria]
    #
    # @!attribute [rw] forecast_frequency
    #   The frequency of predictions in a forecast.
    #
    #   Valid intervals are an integer followed by Y (Year), M (Month), W
    #   (Week), D (Day), H (Hour), and min (Minute). For example, `1D`
    #   indicates every day and `15min` indicates every 15 minutes. The
    #   value of a frequency must not overlap with the next larger
    #   frequency. For example, you must use a frequency of `1H` instead of
    #   `60min`.
    #
    #   The valid values for each frequency are the following:
    #
    #   * Minute - 1-59
    #
    #   * Hour - 1-23
    #
    #   * Day - 1-6
    #
    #   * Week - 1-4
    #
    #   * Month - 1-11
    #
    #   * Year - 1
    #   @return [String]
    #
    # @!attribute [rw] forecast_horizon
    #   The number of time-steps that the model predicts. The forecast
    #   horizon is also called the prediction length. The maximum forecast
    #   horizon is the lesser of 500 time-steps or 1/4 of the time-steps in
    #   the dataset.
    #   @return [Integer]
    #
    # @!attribute [rw] forecast_quantiles
    #   The quantiles used to train the model for forecasts at a specified
    #   quantile. You can specify quantiles from `0.01` (p1) to `0.99`
    #   (p99), by increments of 0.01 or higher. Up to five forecast
    #   quantiles can be specified. When `ForecastQuantiles` is not
    #   provided, the AutoML job uses the quantiles p10, p50, and p90 as
    #   default.
    #   @return [Array<String>]
    #
    # @!attribute [rw] transformations
    #   The transformations modifying specific attributes of the
    #   time-series, such as filling strategies for missing values.
    #   @return [Types::TimeSeriesTransformations]
    #
    # @!attribute [rw] time_series_config
    #   The collection of components that defines the time-series.
    #   @return [Types::TimeSeriesConfig]
    #
    # @!attribute [rw] holiday_config
    #   The collection of holiday featurization attributes used to
    #   incorporate national holiday information into your forecasting
    #   model.
    #   @return [Array<Types::HolidayConfigAttributes>]
    #
    # @!attribute [rw] candidate_generation_config
    #   Stores the configuration information for how model candidates are
    #   generated using an AutoML job V2.
    #   @return [Types::CandidateGenerationConfig]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/TimeSeriesForecastingJobConfig AWS API Documentation
    #
    class TimeSeriesForecastingJobConfig < Struct.new(
      :feature_specification_s3_uri,
      :completion_criteria,
      :forecast_frequency,
      :forecast_horizon,
      :forecast_quantiles,
      :transformations,
      :time_series_config,
      :holiday_config,
      :candidate_generation_config)
      SENSITIVE = []
      include Aws::Structure
    end

    # Time series forecast settings for the SageMaker Canvas application.
    #
    # @!attribute [rw] status
    #   Describes whether time series forecasting is enabled or disabled in
    #   the Canvas application.
    #   @return [String]
    #
    # @!attribute [rw] amazon_forecast_role_arn
    #   The IAM role that Canvas passes to Amazon Forecast for time series
    #   forecasting. By default, Canvas uses the execution role specified in
    #   the `UserProfile` that launches the Canvas application. If an
    #   execution role is not specified in the `UserProfile`, Canvas uses
    #   the execution role specified in the Domain that owns the
    #   `UserProfile`. To allow time series forecasting, this IAM role
    #   should have the [ AmazonSageMakerCanvasForecastAccess][1] policy
    #   attached and `forecast.amazonaws.com` added in the trust
    #   relationship as a service principal.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/security-iam-awsmanpol-canvas.html#security-iam-awsmanpol-AmazonSageMakerCanvasForecastAccess
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/TimeSeriesForecastingSettings AWS API Documentation
    #
    class TimeSeriesForecastingSettings < Struct.new(
      :status,
      :amazon_forecast_role_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # Transformations allowed on the dataset. Supported transformations are
    # `Filling` and `Aggregation`. `Filling` specifies how to add values to
    # missing values in the dataset. `Aggregation` defines how to aggregate
    # data that does not align with forecast frequency.
    #
    # @!attribute [rw] filling
    #   A key value pair defining the filling method for a column, where the
    #   key is the column name and the value is an object which defines the
    #   filling logic. You can specify multiple filling methods for a single
    #   column.
    #
    #   The supported filling methods and their corresponding options are:
    #
    #   * `frontfill`: `none` (Supported only for target column)
    #
    #   * `middlefill`: `zero`, `value`, `median`, `mean`, `min`, `max`
    #
    #   * `backfill`: `zero`, `value`, `median`, `mean`, `min`, `max`
    #
    #   * `futurefill`: `zero`, `value`, `median`, `mean`, `min`, `max`
    #
    #   To set a filling method to a specific value, set the fill parameter
    #   to the chosen filling method value (for example `"backfill" :
    #   "value"`), and define the filling value in an additional parameter
    #   prefixed with "\_value". For example, to set `backfill` to a value
    #   of `2`, you must include two parameters: `"backfill": "value"` and
    #   `"backfill_value":"2"`.
    #   @return [Hash<String,Hash<String,String>>]
    #
    # @!attribute [rw] aggregation
    #   A key value pair defining the aggregation method for a column, where
    #   the key is the column name and the value is the aggregation method.
    #
    #   The supported aggregation methods are `sum` (default), `avg`,
    #   `first`, `min`, `max`.
    #
    #   <note markdown="1"> Aggregation is only supported for the target column.
    #
    #    </note>
    #   @return [Hash<String,String>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/TimeSeriesTransformations AWS API Documentation
    #
    class TimeSeriesTransformations < Struct.new(
      :filling,
      :aggregation)
      SENSITIVE = []
      include Aws::Structure
    end

    # Represents the total number of matching results and indicates how
    # accurate that count is.
    #
    # The `Value` field provides the count, which may be exact or estimated.
    # The `Relation` field indicates whether it's an exact figure or a
    # lower bound. This helps understand the full scope of search results,
    # especially when dealing with large result sets.
    #
    # @!attribute [rw] value
    #   The total number of matching results. This value may be exact or an
    #   estimate, depending on the `Relation` field.
    #   @return [Integer]
    #
    # @!attribute [rw] relation
    #   Indicates the relationship between the returned `Value` and the
    #   actual total number of matching results. Possible values are:
    #
    #   * `EqualTo`: The `Value` is the exact count of matching results.
    #
    #   * `GreaterThanOrEqualTo`: The `Value` is a lower bound of the actual
    #     count of matching results.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/TotalHits AWS API Documentation
    #
    class TotalHits < Struct.new(
      :value,
      :relation)
      SENSITIVE = []
      include Aws::Structure
    end

    # The summary of the tracking server to list.
    #
    # @!attribute [rw] tracking_server_arn
    #   The ARN of a listed tracking server.
    #   @return [String]
    #
    # @!attribute [rw] tracking_server_name
    #   The name of a listed tracking server.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   The creation time of a listed tracking server.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time
    #   The last modified time of a listed tracking server.
    #   @return [Time]
    #
    # @!attribute [rw] tracking_server_status
    #   The creation status of a listed tracking server.
    #   @return [String]
    #
    # @!attribute [rw] is_active
    #   The activity status of a listed tracking server.
    #   @return [String]
    #
    # @!attribute [rw] mlflow_version
    #   The MLflow version used for a listed tracking server.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/TrackingServerSummary AWS API Documentation
    #
    class TrackingServerSummary < Struct.new(
      :tracking_server_arn,
      :tracking_server_name,
      :creation_time,
      :last_modified_time,
      :tracking_server_status,
      :is_active,
      :mlflow_version)
      SENSITIVE = []
      include Aws::Structure
    end

    # Defines the traffic pattern of the load test.
    #
    # @!attribute [rw] traffic_type
    #   Defines the traffic patterns. Choose either `PHASES` or `STAIRS`.
    #   @return [String]
    #
    # @!attribute [rw] phases
    #   Defines the phases traffic specification.
    #   @return [Array<Types::Phase>]
    #
    # @!attribute [rw] stairs
    #   Defines the stairs traffic pattern.
    #   @return [Types::Stairs]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/TrafficPattern AWS API Documentation
    #
    class TrafficPattern < Struct.new(
      :traffic_type,
      :phases,
      :stairs)
      SENSITIVE = []
      include Aws::Structure
    end

    # Defines the traffic routing strategy during an endpoint deployment to
    # shift traffic from the old fleet to the new fleet.
    #
    # @!attribute [rw] type
    #   Traffic routing strategy type.
    #
    #   * `ALL_AT_ONCE`: Endpoint traffic shifts to the new fleet in a
    #     single step.
    #
    #   * `CANARY`: Endpoint traffic shifts to the new fleet in two steps.
    #     The first step is the canary, which is a small portion of the
    #     traffic. The second step is the remainder of the traffic.
    #
    #   * `LINEAR`: Endpoint traffic shifts to the new fleet in n steps of a
    #     configurable size.
    #   @return [String]
    #
    # @!attribute [rw] wait_interval_in_seconds
    #   The waiting time (in seconds) between incremental steps to turn on
    #   traffic on the new endpoint fleet.
    #   @return [Integer]
    #
    # @!attribute [rw] canary_size
    #   Batch size for the first step to turn on traffic on the new endpoint
    #   fleet. `Value` must be less than or equal to 50% of the variant's
    #   total instance count.
    #   @return [Types::CapacitySize]
    #
    # @!attribute [rw] linear_step_size
    #   Batch size for each step to turn on traffic on the new endpoint
    #   fleet. `Value` must be 10-50% of the variant's total instance
    #   count.
    #   @return [Types::CapacitySize]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/TrafficRoutingConfig AWS API Documentation
    #
    class TrafficRoutingConfig < Struct.new(
      :type,
      :wait_interval_in_seconds,
      :canary_size,
      :linear_step_size)
      SENSITIVE = []
      include Aws::Structure
    end

    # The configuration to use an image from a private Docker registry for a
    # training job.
    #
    # @!attribute [rw] training_repository_access_mode
    #   The method that your training job will use to gain access to the
    #   images in your private Docker registry. For access to an image in a
    #   private Docker registry, set to `Vpc`.
    #   @return [String]
    #
    # @!attribute [rw] training_repository_auth_config
    #   An object containing authentication information for a private Docker
    #   registry containing your training images.
    #   @return [Types::TrainingRepositoryAuthConfig]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/TrainingImageConfig AWS API Documentation
    #
    class TrainingImageConfig < Struct.new(
      :training_repository_access_mode,
      :training_repository_auth_config)
      SENSITIVE = []
      include Aws::Structure
    end

    # Contains information about a training job.
    #
    # @!attribute [rw] training_job_name
    #   The name of the training job.
    #   @return [String]
    #
    # @!attribute [rw] training_job_arn
    #   The Amazon Resource Name (ARN) of the training job.
    #   @return [String]
    #
    # @!attribute [rw] tuning_job_arn
    #   The Amazon Resource Name (ARN) of the associated hyperparameter
    #   tuning job if the training job was launched by a hyperparameter
    #   tuning job.
    #   @return [String]
    #
    # @!attribute [rw] labeling_job_arn
    #   The Amazon Resource Name (ARN) of the labeling job.
    #   @return [String]
    #
    # @!attribute [rw] auto_ml_job_arn
    #   The Amazon Resource Name (ARN) of the job.
    #   @return [String]
    #
    # @!attribute [rw] model_artifacts
    #   Information about the Amazon S3 location that is configured for
    #   storing model artifacts.
    #   @return [Types::ModelArtifacts]
    #
    # @!attribute [rw] training_job_status
    #   The status of the training job.
    #
    #   Training job statuses are:
    #
    #   * `InProgress` - The training is in progress.
    #
    #   * `Completed` - The training job has completed.
    #
    #   * `Failed` - The training job has failed. To see the reason for the
    #     failure, see the `FailureReason` field in the response to a
    #     `DescribeTrainingJobResponse` call.
    #
    #   * `Stopping` - The training job is stopping.
    #
    #   * `Stopped` - The training job has stopped.
    #
    #   For more detailed information, see `SecondaryStatus`.
    #   @return [String]
    #
    # @!attribute [rw] secondary_status
    #   Provides detailed information about the state of the training job.
    #   For detailed information about the secondary status of the training
    #   job, see `StatusMessage` under [SecondaryStatusTransition][1].
    #
    #   SageMaker provides primary statuses and secondary statuses that
    #   apply to each of them:
    #
    #   InProgress
    #   : * `Starting` - Starting the training job.
    #
    #     * `Downloading` - An optional stage for algorithms that support
    #       `File` training input mode. It indicates that data is being
    #       downloaded to the ML storage volumes.
    #
    #     * `Training` - Training is in progress.
    #
    #     * `Uploading` - Training is complete and the model artifacts are
    #       being uploaded to the S3 location.
    #
    #   Completed
    #   : * `Completed` - The training job has completed.
    #
    #     ^
    #
    #   Failed
    #   : * `Failed` - The training job has failed. The reason for the
    #       failure is returned in the `FailureReason` field of
    #       `DescribeTrainingJobResponse`.
    #
    #     ^
    #
    #   Stopped
    #   : * `MaxRuntimeExceeded` - The job stopped because it exceeded the
    #       maximum allowed runtime.
    #
    #     * `Stopped` - The training job has stopped.
    #
    #   Stopping
    #   : * `Stopping` - Stopping the training job.
    #
    #     ^
    #
    #   Valid values for `SecondaryStatus` are subject to change.
    #
    #   We no longer support the following secondary statuses:
    #
    #   * `LaunchingMLInstances`
    #
    #   * `PreparingTrainingStack`
    #
    #   * `DownloadingTrainingImage`
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_SecondaryStatusTransition.html
    #   @return [String]
    #
    # @!attribute [rw] failure_reason
    #   If the training job failed, the reason it failed.
    #   @return [String]
    #
    # @!attribute [rw] hyper_parameters
    #   Algorithm-specific parameters.
    #   @return [Hash<String,String>]
    #
    # @!attribute [rw] algorithm_specification
    #   Information about the algorithm used for training, and algorithm
    #   metadata.
    #   @return [Types::AlgorithmSpecification]
    #
    # @!attribute [rw] role_arn
    #   The Amazon Web Services Identity and Access Management (IAM) role
    #   configured for the training job.
    #   @return [String]
    #
    # @!attribute [rw] input_data_config
    #   An array of `Channel` objects that describes each data input
    #   channel.
    #
    #   Your input must be in the same Amazon Web Services region as your
    #   training job.
    #   @return [Array<Types::Channel>]
    #
    # @!attribute [rw] output_data_config
    #   The S3 path where model artifacts that you configured when creating
    #   the job are stored. SageMaker creates subfolders for model
    #   artifacts.
    #   @return [Types::OutputDataConfig]
    #
    # @!attribute [rw] resource_config
    #   Resources, including ML compute instances and ML storage volumes,
    #   that are configured for model training.
    #   @return [Types::ResourceConfig]
    #
    # @!attribute [rw] vpc_config
    #   A [VpcConfig][1] object that specifies the VPC that this training
    #   job has access to. For more information, see [Protect Training Jobs
    #   by Using an Amazon Virtual Private Cloud][2].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_VpcConfig.html
    #   [2]: https://docs.aws.amazon.com/sagemaker/latest/dg/train-vpc.html
    #   @return [Types::VpcConfig]
    #
    # @!attribute [rw] stopping_condition
    #   Specifies a limit to how long a model training job can run. It also
    #   specifies how long a managed Spot training job has to complete. When
    #   the job reaches the time limit, SageMaker ends the training job. Use
    #   this API to cap model training costs.
    #
    #   To stop a job, SageMaker sends the algorithm the `SIGTERM` signal,
    #   which delays job termination for 120 seconds. Algorithms can use
    #   this 120-second window to save the model artifacts, so the results
    #   of training are not lost.
    #   @return [Types::StoppingCondition]
    #
    # @!attribute [rw] creation_time
    #   A timestamp that indicates when the training job was created.
    #   @return [Time]
    #
    # @!attribute [rw] training_start_time
    #   Indicates the time when the training job starts on training
    #   instances. You are billed for the time interval between this time
    #   and the value of `TrainingEndTime`. The start time in CloudWatch
    #   Logs might be later than this time. The difference is due to the
    #   time it takes to download the training data and to the size of the
    #   training container.
    #   @return [Time]
    #
    # @!attribute [rw] training_end_time
    #   Indicates the time when the training job ends on training instances.
    #   You are billed for the time interval between the value of
    #   `TrainingStartTime` and this time. For successful jobs and stopped
    #   jobs, this is the time after model artifacts are uploaded. For
    #   failed jobs, this is the time when SageMaker detects a job failure.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time
    #   A timestamp that indicates when the status of the training job was
    #   last modified.
    #   @return [Time]
    #
    # @!attribute [rw] secondary_status_transitions
    #   A history of all of the secondary statuses that the training job has
    #   transitioned through.
    #   @return [Array<Types::SecondaryStatusTransition>]
    #
    # @!attribute [rw] final_metric_data_list
    #   A list of final metric values that are set when the training job
    #   completes. Used only if the training job was configured to use
    #   metrics.
    #   @return [Array<Types::MetricData>]
    #
    # @!attribute [rw] enable_network_isolation
    #   If the `TrainingJob` was created with network isolation, the value
    #   is set to `true`. If network isolation is enabled, nodes can't
    #   communicate beyond the VPC they run in.
    #   @return [Boolean]
    #
    # @!attribute [rw] enable_inter_container_traffic_encryption
    #   To encrypt all communications between ML compute instances in
    #   distributed training, choose `True`. Encryption provides greater
    #   security for distributed training, but training might take longer.
    #   How long it takes depends on the amount of communication between
    #   compute instances, especially if you use a deep learning algorithm
    #   in distributed training.
    #   @return [Boolean]
    #
    # @!attribute [rw] enable_managed_spot_training
    #   When true, enables managed spot training using Amazon EC2 Spot
    #   instances to run training jobs instead of on-demand instances. For
    #   more information, see [Managed Spot Training][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/model-managed-spot-training.html
    #   @return [Boolean]
    #
    # @!attribute [rw] checkpoint_config
    #   Contains information about the output location for managed spot
    #   training checkpoint data.
    #   @return [Types::CheckpointConfig]
    #
    # @!attribute [rw] training_time_in_seconds
    #   The training time in seconds.
    #   @return [Integer]
    #
    # @!attribute [rw] billable_time_in_seconds
    #   The billable time in seconds.
    #   @return [Integer]
    #
    # @!attribute [rw] debug_hook_config
    #   Configuration information for the Amazon SageMaker Debugger hook
    #   parameters, metric and tensor collections, and storage paths. To
    #   learn more about how to configure the `DebugHookConfig` parameter,
    #   see [Use the SageMaker and Debugger Configuration API Operations to
    #   Create, Update, and Debug Your Training Job][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/debugger-createtrainingjob-api.html
    #   @return [Types::DebugHookConfig]
    #
    # @!attribute [rw] experiment_config
    #   Associates a SageMaker job as a trial component with an experiment
    #   and trial. Specified when you call the following APIs:
    #
    #   * [CreateProcessingJob][1]
    #
    #   * [CreateTrainingJob][2]
    #
    #   * [CreateTransformJob][3]
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateProcessingJob.html
    #   [2]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html
    #   [3]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html
    #   @return [Types::ExperimentConfig]
    #
    # @!attribute [rw] debug_rule_configurations
    #   Information about the debug rule configuration.
    #   @return [Array<Types::DebugRuleConfiguration>]
    #
    # @!attribute [rw] tensor_board_output_config
    #   Configuration of storage locations for the Amazon SageMaker Debugger
    #   TensorBoard output data.
    #   @return [Types::TensorBoardOutputConfig]
    #
    # @!attribute [rw] debug_rule_evaluation_statuses
    #   Information about the evaluation status of the rules for the
    #   training job.
    #   @return [Array<Types::DebugRuleEvaluationStatus>]
    #
    # @!attribute [rw] profiler_config
    #   Configuration information for Amazon SageMaker Debugger system
    #   monitoring, framework profiling, and storage paths.
    #   @return [Types::ProfilerConfig]
    #
    # @!attribute [rw] environment
    #   The environment variables to set in the Docker container.
    #   @return [Hash<String,String>]
    #
    # @!attribute [rw] retry_strategy
    #   The number of times to retry the job when the job fails due to an
    #   `InternalServerError`.
    #   @return [Types::RetryStrategy]
    #
    # @!attribute [rw] tags
    #   An array of key-value pairs. You can use tags to categorize your
    #   Amazon Web Services resources in different ways, for example, by
    #   purpose, owner, or environment. For more information, see [Tagging
    #   Amazon Web Services Resources][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html
    #   @return [Array<Types::Tag>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/TrainingJob AWS API Documentation
    #
    class TrainingJob < Struct.new(
      :training_job_name,
      :training_job_arn,
      :tuning_job_arn,
      :labeling_job_arn,
      :auto_ml_job_arn,
      :model_artifacts,
      :training_job_status,
      :secondary_status,
      :failure_reason,
      :hyper_parameters,
      :algorithm_specification,
      :role_arn,
      :input_data_config,
      :output_data_config,
      :resource_config,
      :vpc_config,
      :stopping_condition,
      :creation_time,
      :training_start_time,
      :training_end_time,
      :last_modified_time,
      :secondary_status_transitions,
      :final_metric_data_list,
      :enable_network_isolation,
      :enable_inter_container_traffic_encryption,
      :enable_managed_spot_training,
      :checkpoint_config,
      :training_time_in_seconds,
      :billable_time_in_seconds,
      :debug_hook_config,
      :experiment_config,
      :debug_rule_configurations,
      :tensor_board_output_config,
      :debug_rule_evaluation_statuses,
      :profiler_config,
      :environment,
      :retry_strategy,
      :tags)
      SENSITIVE = []
      include Aws::Structure
    end

    # Defines the input needed to run a training job using the algorithm.
    #
    # @!attribute [rw] training_input_mode
    #   The training input mode that the algorithm supports. For more
    #   information about input modes, see [Algorithms][1].
    #
    #   **Pipe mode**
    #
    #   If an algorithm supports `Pipe` mode, Amazon SageMaker streams data
    #   directly from Amazon S3 to the container.
    #
    #   **File mode**
    #
    #   If an algorithm supports `File` mode, SageMaker downloads the
    #   training data from S3 to the provisioned ML storage volume, and
    #   mounts the directory to the Docker volume for the training
    #   container.
    #
    #   You must provision the ML storage volume with sufficient capacity to
    #   accommodate the data downloaded from S3. In addition to the training
    #   data, the ML storage volume also stores the output model. The
    #   algorithm container uses the ML storage volume to also store
    #   intermediate information, if any.
    #
    #   For distributed algorithms, training data is distributed uniformly.
    #   Your training duration is predictable if the input data objects
    #   sizes are approximately the same. SageMaker does not split the files
    #   any further for model training. If the object sizes are skewed,
    #   training won't be optimal as the data distribution is also skewed
    #   when one host in a training cluster is overloaded, thus becoming a
    #   bottleneck in training.
    #
    #   **FastFile mode**
    #
    #   If an algorithm supports `FastFile` mode, SageMaker streams data
    #   directly from S3 to the container with no code changes, and provides
    #   file system access to the data. Users can author their training
    #   script to interact with these files as if they were stored on disk.
    #
    #   `FastFile` mode works best when the data is read sequentially.
    #   Augmented manifest files aren't supported. The startup time is
    #   lower when there are fewer files in the S3 bucket provided.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/algos.html
    #   @return [String]
    #
    # @!attribute [rw] hyper_parameters
    #   The hyperparameters used for the training job.
    #   @return [Hash<String,String>]
    #
    # @!attribute [rw] input_data_config
    #   An array of `Channel` objects, each of which specifies an input
    #   source.
    #   @return [Array<Types::Channel>]
    #
    # @!attribute [rw] output_data_config
    #   the path to the S3 bucket where you want to store model artifacts.
    #   SageMaker creates subfolders for the artifacts.
    #   @return [Types::OutputDataConfig]
    #
    # @!attribute [rw] resource_config
    #   The resources, including the ML compute instances and ML storage
    #   volumes, to use for model training.
    #   @return [Types::ResourceConfig]
    #
    # @!attribute [rw] stopping_condition
    #   Specifies a limit to how long a model training job can run. It also
    #   specifies how long a managed Spot training job has to complete. When
    #   the job reaches the time limit, SageMaker ends the training job. Use
    #   this API to cap model training costs.
    #
    #   To stop a job, SageMaker sends the algorithm the SIGTERM signal,
    #   which delays job termination for 120 seconds. Algorithms can use
    #   this 120-second window to save the model artifacts.
    #   @return [Types::StoppingCondition]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/TrainingJobDefinition AWS API Documentation
    #
    class TrainingJobDefinition < Struct.new(
      :training_input_mode,
      :hyper_parameters,
      :input_data_config,
      :output_data_config,
      :resource_config,
      :stopping_condition)
      SENSITIVE = []
      include Aws::Structure
    end

    # The numbers of training jobs launched by a hyperparameter tuning job,
    # categorized by status.
    #
    # @!attribute [rw] completed
    #   The number of completed training jobs launched by the hyperparameter
    #   tuning job.
    #   @return [Integer]
    #
    # @!attribute [rw] in_progress
    #   The number of in-progress training jobs launched by a hyperparameter
    #   tuning job.
    #   @return [Integer]
    #
    # @!attribute [rw] retryable_error
    #   The number of training jobs that failed, but can be retried. A
    #   failed training job can be retried only if it failed because an
    #   internal service error occurred.
    #   @return [Integer]
    #
    # @!attribute [rw] non_retryable_error
    #   The number of training jobs that failed and can't be retried. A
    #   failed training job can't be retried if it failed because a client
    #   error occurred.
    #   @return [Integer]
    #
    # @!attribute [rw] stopped
    #   The number of training jobs launched by a hyperparameter tuning job
    #   that were manually stopped.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/TrainingJobStatusCounters AWS API Documentation
    #
    class TrainingJobStatusCounters < Struct.new(
      :completed,
      :in_progress,
      :retryable_error,
      :non_retryable_error,
      :stopped)
      SENSITIVE = []
      include Aws::Structure
    end

    # Metadata for a training job step.
    #
    # @!attribute [rw] arn
    #   The Amazon Resource Name (ARN) of the training job that was run by
    #   this step execution.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/TrainingJobStepMetadata AWS API Documentation
    #
    class TrainingJobStepMetadata < Struct.new(
      :arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # Provides summary information about a training job.
    #
    # @!attribute [rw] training_job_name
    #   The name of the training job that you want a summary for.
    #   @return [String]
    #
    # @!attribute [rw] training_job_arn
    #   The Amazon Resource Name (ARN) of the training job.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   A timestamp that shows when the training job was created.
    #   @return [Time]
    #
    # @!attribute [rw] training_end_time
    #   A timestamp that shows when the training job ended. This field is
    #   set only if the training job has one of the terminal statuses
    #   (`Completed`, `Failed`, or `Stopped`).
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time
    #   Timestamp when the training job was last modified.
    #   @return [Time]
    #
    # @!attribute [rw] training_job_status
    #   The status of the training job.
    #   @return [String]
    #
    # @!attribute [rw] secondary_status
    #   The secondary status of the training job.
    #   @return [String]
    #
    # @!attribute [rw] warm_pool_status
    #   The status of the warm pool associated with the training job.
    #   @return [Types::WarmPoolStatus]
    #
    # @!attribute [rw] training_plan_arn
    #   The Amazon Resource Name (ARN); of the training plan associated with
    #   this training job.
    #
    #   For more information about how to reserve GPU capacity for your
    #   SageMaker HyperPod clusters using Amazon SageMaker Training Plan,
    #   see ` CreateTrainingPlan `.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/TrainingJobSummary AWS API Documentation
    #
    class TrainingJobSummary < Struct.new(
      :training_job_name,
      :training_job_arn,
      :creation_time,
      :training_end_time,
      :last_modified_time,
      :training_job_status,
      :secondary_status,
      :warm_pool_status,
      :training_plan_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # A filter to apply when listing or searching for training plans.
    #
    # For more information about how to reserve GPU capacity for your
    # SageMaker HyperPod clusters using Amazon SageMaker Training Plan, see
    # ` CreateTrainingPlan `.
    #
    # @!attribute [rw] name
    #   The name of the filter field (e.g., Status, InstanceType).
    #   @return [String]
    #
    # @!attribute [rw] value
    #   The value to filter by for the specified field.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/TrainingPlanFilter AWS API Documentation
    #
    class TrainingPlanFilter < Struct.new(
      :name,
      :value)
      SENSITIVE = []
      include Aws::Structure
    end

    # Details about a training plan offering.
    #
    # For more information about how to reserve GPU capacity for your
    # SageMaker HyperPod clusters using Amazon SageMaker Training Plan, see
    # ` CreateTrainingPlan `.
    #
    # @!attribute [rw] training_plan_offering_id
    #   The unique identifier for this training plan offering.
    #   @return [String]
    #
    # @!attribute [rw] target_resources
    #   The target resources (e.g., SageMaker Training Jobs, SageMaker
    #   HyperPod) for this training plan offering.
    #
    #   Training plans are specific to their target resource.
    #
    #   * A training plan designed for SageMaker training jobs can only be
    #     used to schedule and run training jobs.
    #
    #   * A training plan for HyperPod clusters can be used exclusively to
    #     provide compute resources to a cluster's instance group.
    #   @return [Array<String>]
    #
    # @!attribute [rw] requested_start_time_after
    #   The requested start time that the user specified when searching for
    #   the training plan offering.
    #   @return [Time]
    #
    # @!attribute [rw] requested_end_time_before
    #   The requested end time that the user specified when searching for
    #   the training plan offering.
    #   @return [Time]
    #
    # @!attribute [rw] duration_hours
    #   The number of whole hours in the total duration for this training
    #   plan offering.
    #   @return [Integer]
    #
    # @!attribute [rw] duration_minutes
    #   The additional minutes beyond whole hours in the total duration for
    #   this training plan offering.
    #   @return [Integer]
    #
    # @!attribute [rw] upfront_fee
    #   The upfront fee for this training plan offering.
    #   @return [String]
    #
    # @!attribute [rw] currency_code
    #   The currency code for the upfront fee (e.g., USD).
    #   @return [String]
    #
    # @!attribute [rw] reserved_capacity_offerings
    #   A list of reserved capacity offerings associated with this training
    #   plan offering.
    #   @return [Array<Types::ReservedCapacityOffering>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/TrainingPlanOffering AWS API Documentation
    #
    class TrainingPlanOffering < Struct.new(
      :training_plan_offering_id,
      :target_resources,
      :requested_start_time_after,
      :requested_end_time_before,
      :duration_hours,
      :duration_minutes,
      :upfront_fee,
      :currency_code,
      :reserved_capacity_offerings)
      SENSITIVE = []
      include Aws::Structure
    end

    # Details of the training plan.
    #
    # For more information about how to reserve GPU capacity for your
    # SageMaker HyperPod clusters using Amazon SageMaker Training Plan, see
    # ` CreateTrainingPlan `.
    #
    # @!attribute [rw] training_plan_arn
    #   The Amazon Resource Name (ARN); of the training plan.
    #   @return [String]
    #
    # @!attribute [rw] training_plan_name
    #   The name of the training plan.
    #   @return [String]
    #
    # @!attribute [rw] status
    #   The current status of the training plan (e.g., Pending, Active,
    #   Expired). To see the complete list of status values available for a
    #   training plan, refer to the `Status` attribute within the `
    #   TrainingPlanSummary ` object.
    #   @return [String]
    #
    # @!attribute [rw] status_message
    #   A message providing additional information about the current status
    #   of the training plan.
    #   @return [String]
    #
    # @!attribute [rw] duration_hours
    #   The number of whole hours in the total duration for this training
    #   plan.
    #   @return [Integer]
    #
    # @!attribute [rw] duration_minutes
    #   The additional minutes beyond whole hours in the total duration for
    #   this training plan.
    #   @return [Integer]
    #
    # @!attribute [rw] start_time
    #   The start time of the training plan.
    #   @return [Time]
    #
    # @!attribute [rw] end_time
    #   The end time of the training plan.
    #   @return [Time]
    #
    # @!attribute [rw] upfront_fee
    #   The upfront fee for the training plan.
    #   @return [String]
    #
    # @!attribute [rw] currency_code
    #   The currency code for the upfront fee (e.g., USD).
    #   @return [String]
    #
    # @!attribute [rw] total_instance_count
    #   The total number of instances reserved in this training plan.
    #   @return [Integer]
    #
    # @!attribute [rw] available_instance_count
    #   The number of instances currently available for use in this training
    #   plan.
    #   @return [Integer]
    #
    # @!attribute [rw] in_use_instance_count
    #   The number of instances currently in use from this training plan.
    #   @return [Integer]
    #
    # @!attribute [rw] total_ultra_server_count
    #   The total number of UltraServers allocated to this training plan.
    #   @return [Integer]
    #
    # @!attribute [rw] target_resources
    #   The target resources (e.g., training jobs, HyperPod clusters) that
    #   can use this training plan.
    #
    #   Training plans are specific to their target resource.
    #
    #   * A training plan designed for SageMaker training jobs can only be
    #     used to schedule and run training jobs.
    #
    #   * A training plan for HyperPod clusters can be used exclusively to
    #     provide compute resources to a cluster's instance group.
    #   @return [Array<String>]
    #
    # @!attribute [rw] reserved_capacity_summaries
    #   A list of reserved capacities associated with this training plan,
    #   including details such as instance types, counts, and availability
    #   zones.
    #   @return [Array<Types::ReservedCapacitySummary>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/TrainingPlanSummary AWS API Documentation
    #
    class TrainingPlanSummary < Struct.new(
      :training_plan_arn,
      :training_plan_name,
      :status,
      :status_message,
      :duration_hours,
      :duration_minutes,
      :start_time,
      :end_time,
      :upfront_fee,
      :currency_code,
      :total_instance_count,
      :available_instance_count,
      :in_use_instance_count,
      :total_ultra_server_count,
      :target_resources,
      :reserved_capacity_summaries)
      SENSITIVE = []
      include Aws::Structure
    end

    # An object containing authentication information for a private Docker
    # registry.
    #
    # @!attribute [rw] training_repository_credentials_provider_arn
    #   The Amazon Resource Name (ARN) of an Amazon Web Services Lambda
    #   function used to give SageMaker access credentials to your private
    #   Docker registry.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/TrainingRepositoryAuthConfig AWS API Documentation
    #
    class TrainingRepositoryAuthConfig < Struct.new(
      :training_repository_credentials_provider_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # Defines how the algorithm is used for a training job.
    #
    # @!attribute [rw] training_image
    #   The Amazon ECR registry path of the Docker image that contains the
    #   training algorithm.
    #   @return [String]
    #
    # @!attribute [rw] training_image_digest
    #   An MD5 hash of the training algorithm that identifies the Docker
    #   image used for training.
    #   @return [String]
    #
    # @!attribute [rw] supported_hyper_parameters
    #   A list of the `HyperParameterSpecification` objects, that define the
    #   supported hyperparameters. This is required if the algorithm
    #   supports automatic model tuning.&gt;
    #   @return [Array<Types::HyperParameterSpecification>]
    #
    # @!attribute [rw] supported_training_instance_types
    #   A list of the instance types that this algorithm can use for
    #   training.
    #   @return [Array<String>]
    #
    # @!attribute [rw] supports_distributed_training
    #   Indicates whether the algorithm supports distributed training. If
    #   set to false, buyers can't request more than one instance during
    #   training.
    #   @return [Boolean]
    #
    # @!attribute [rw] metric_definitions
    #   A list of `MetricDefinition` objects, which are used for parsing
    #   metrics generated by the algorithm.
    #   @return [Array<Types::MetricDefinition>]
    #
    # @!attribute [rw] training_channels
    #   A list of `ChannelSpecification` objects, which specify the input
    #   sources to be used by the algorithm.
    #   @return [Array<Types::ChannelSpecification>]
    #
    # @!attribute [rw] supported_tuning_job_objective_metrics
    #   A list of the metrics that the algorithm emits that can be used as
    #   the objective metric in a hyperparameter tuning job.
    #   @return [Array<Types::HyperParameterTuningJobObjective>]
    #
    # @!attribute [rw] additional_s3_data_source
    #   The additional data source used during the training job.
    #   @return [Types::AdditionalS3DataSource]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/TrainingSpecification AWS API Documentation
    #
    class TrainingSpecification < Struct.new(
      :training_image,
      :training_image_digest,
      :supported_hyper_parameters,
      :supported_training_instance_types,
      :supports_distributed_training,
      :metric_definitions,
      :training_channels,
      :supported_tuning_job_objective_metrics,
      :additional_s3_data_source)
      SENSITIVE = []
      include Aws::Structure
    end

    # Describes the location of the channel data.
    #
    # @!attribute [rw] s3_data_source
    #   The S3 location of the data source that is associated with a
    #   channel.
    #   @return [Types::TransformS3DataSource]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/TransformDataSource AWS API Documentation
    #
    class TransformDataSource < Struct.new(
      :s3_data_source)
      SENSITIVE = []
      include Aws::Structure
    end

    # Describes the input source of a transform job and the way the
    # transform job consumes it.
    #
    # @!attribute [rw] data_source
    #   Describes the location of the channel data, which is, the S3
    #   location of the input data that the model can consume.
    #   @return [Types::TransformDataSource]
    #
    # @!attribute [rw] content_type
    #   The multipurpose internet mail extension (MIME) type of the data.
    #   Amazon SageMaker uses the MIME type with each http call to transfer
    #   data to the transform job.
    #   @return [String]
    #
    # @!attribute [rw] compression_type
    #   If your transform data is compressed, specify the compression type.
    #   Amazon SageMaker automatically decompresses the data for the
    #   transform job accordingly. The default value is `None`.
    #   @return [String]
    #
    # @!attribute [rw] split_type
    #   The method to use to split the transform job's data files into
    #   smaller batches. Splitting is necessary when the total size of each
    #   object is too large to fit in a single request. You can also use
    #   data splitting to improve performance by processing multiple
    #   concurrent mini-batches. The default value for `SplitType` is
    #   `None`, which indicates that input data files are not split, and
    #   request payloads contain the entire contents of an input object. Set
    #   the value of this parameter to `Line` to split records on a newline
    #   character boundary. `SplitType` also supports a number of
    #   record-oriented binary data formats. Currently, the supported record
    #   formats are:
    #
    #   * RecordIO
    #
    #   * TFRecord
    #
    #   When splitting is enabled, the size of a mini-batch depends on the
    #   values of the `BatchStrategy` and `MaxPayloadInMB` parameters. When
    #   the value of `BatchStrategy` is `MultiRecord`, Amazon SageMaker
    #   sends the maximum number of records in each request, up to the
    #   `MaxPayloadInMB` limit. If the value of `BatchStrategy` is
    #   `SingleRecord`, Amazon SageMaker sends individual records in each
    #   request.
    #
    #   <note markdown="1"> Some data formats represent a record as a binary payload wrapped
    #   with extra padding bytes. When splitting is applied to a binary data
    #   format, padding is removed if the value of `BatchStrategy` is set to
    #   `SingleRecord`. Padding is not removed if the value of
    #   `BatchStrategy` is set to `MultiRecord`.
    #
    #    For more information about `RecordIO`, see [Create a Dataset Using
    #   RecordIO][1] in the MXNet documentation. For more information about
    #   `TFRecord`, see [Consuming TFRecord data][2] in the TensorFlow
    #   documentation.
    #
    #    </note>
    #
    #
    #
    #   [1]: https://mxnet.apache.org/api/faq/recordio
    #   [2]: https://www.tensorflow.org/guide/data#consuming_tfrecord_data
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/TransformInput AWS API Documentation
    #
    class TransformInput < Struct.new(
      :data_source,
      :content_type,
      :compression_type,
      :split_type)
      SENSITIVE = []
      include Aws::Structure
    end

    # A batch transform job. For information about SageMaker batch
    # transform, see [Use Batch Transform][1].
    #
    #
    #
    # [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/batch-transform.html
    #
    # @!attribute [rw] transform_job_name
    #   The name of the transform job.
    #   @return [String]
    #
    # @!attribute [rw] transform_job_arn
    #   The Amazon Resource Name (ARN) of the transform job.
    #   @return [String]
    #
    # @!attribute [rw] transform_job_status
    #   The status of the transform job.
    #
    #   Transform job statuses are:
    #
    #   * `InProgress` - The job is in progress.
    #
    #   * `Completed` - The job has completed.
    #
    #   * `Failed` - The transform job has failed. To see the reason for the
    #     failure, see the `FailureReason` field in the response to a
    #     `DescribeTransformJob` call.
    #
    #   * `Stopping` - The transform job is stopping.
    #
    #   * `Stopped` - The transform job has stopped.
    #   @return [String]
    #
    # @!attribute [rw] failure_reason
    #   If the transform job failed, the reason it failed.
    #   @return [String]
    #
    # @!attribute [rw] model_name
    #   The name of the model associated with the transform job.
    #   @return [String]
    #
    # @!attribute [rw] max_concurrent_transforms
    #   The maximum number of parallel requests that can be sent to each
    #   instance in a transform job. If `MaxConcurrentTransforms` is set to
    #   0 or left unset, SageMaker checks the optional execution-parameters
    #   to determine the settings for your chosen algorithm. If the
    #   execution-parameters endpoint is not enabled, the default value is
    #   1. For built-in algorithms, you don't need to set a value for
    #   `MaxConcurrentTransforms`.
    #   @return [Integer]
    #
    # @!attribute [rw] model_client_config
    #   Configures the timeout and maximum number of retries for processing
    #   a transform job invocation.
    #   @return [Types::ModelClientConfig]
    #
    # @!attribute [rw] max_payload_in_mb
    #   The maximum allowed size of the payload, in MB. A payload is the
    #   data portion of a record (without metadata). The value in
    #   `MaxPayloadInMB` must be greater than, or equal to, the size of a
    #   single record. To estimate the size of a record in MB, divide the
    #   size of your dataset by the number of records. To ensure that the
    #   records fit within the maximum payload size, we recommend using a
    #   slightly larger value. The default value is 6 MB. For cases where
    #   the payload might be arbitrarily large and is transmitted using HTTP
    #   chunked encoding, set the value to 0. This feature works only in
    #   supported algorithms. Currently, SageMaker built-in algorithms do
    #   not support HTTP chunked encoding.
    #   @return [Integer]
    #
    # @!attribute [rw] batch_strategy
    #   Specifies the number of records to include in a mini-batch for an
    #   HTTP inference request. A record is a single unit of input data that
    #   inference can be made on. For example, a single line in a CSV file
    #   is a record.
    #   @return [String]
    #
    # @!attribute [rw] environment
    #   The environment variables to set in the Docker container. We support
    #   up to 16 key and values entries in the map.
    #   @return [Hash<String,String>]
    #
    # @!attribute [rw] transform_input
    #   Describes the input source of a transform job and the way the
    #   transform job consumes it.
    #   @return [Types::TransformInput]
    #
    # @!attribute [rw] transform_output
    #   Describes the results of a transform job.
    #   @return [Types::TransformOutput]
    #
    # @!attribute [rw] data_capture_config
    #   Configuration to control how SageMaker captures inference data for
    #   batch transform jobs.
    #   @return [Types::BatchDataCaptureConfig]
    #
    # @!attribute [rw] transform_resources
    #   Describes the resources, including ML instance types and ML instance
    #   count, to use for transform job.
    #   @return [Types::TransformResources]
    #
    # @!attribute [rw] creation_time
    #   A timestamp that shows when the transform Job was created.
    #   @return [Time]
    #
    # @!attribute [rw] transform_start_time
    #   Indicates when the transform job starts on ML instances. You are
    #   billed for the time interval between this time and the value of
    #   `TransformEndTime`.
    #   @return [Time]
    #
    # @!attribute [rw] transform_end_time
    #   Indicates when the transform job has been completed, or has stopped
    #   or failed. You are billed for the time interval between this time
    #   and the value of `TransformStartTime`.
    #   @return [Time]
    #
    # @!attribute [rw] labeling_job_arn
    #   The Amazon Resource Name (ARN) of the labeling job that created the
    #   transform job.
    #   @return [String]
    #
    # @!attribute [rw] auto_ml_job_arn
    #   The Amazon Resource Name (ARN) of the AutoML job that created the
    #   transform job.
    #   @return [String]
    #
    # @!attribute [rw] data_processing
    #   The data structure used to specify the data to be used for inference
    #   in a batch transform job and to associate the data that is relevant
    #   to the prediction results in the output. The input filter provided
    #   allows you to exclude input data that is not needed for inference in
    #   a batch transform job. The output filter provided allows you to
    #   include input data relevant to interpreting the predictions in the
    #   output from the job. For more information, see [Associate Prediction
    #   Results with their Corresponding Input Records][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/batch-transform-data-processing.html
    #   @return [Types::DataProcessing]
    #
    # @!attribute [rw] experiment_config
    #   Associates a SageMaker job as a trial component with an experiment
    #   and trial. Specified when you call the following APIs:
    #
    #   * [CreateProcessingJob][1]
    #
    #   * [CreateTrainingJob][2]
    #
    #   * [CreateTransformJob][3]
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateProcessingJob.html
    #   [2]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html
    #   [3]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html
    #   @return [Types::ExperimentConfig]
    #
    # @!attribute [rw] tags
    #   A list of tags associated with the transform job.
    #   @return [Array<Types::Tag>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/TransformJob AWS API Documentation
    #
    class TransformJob < Struct.new(
      :transform_job_name,
      :transform_job_arn,
      :transform_job_status,
      :failure_reason,
      :model_name,
      :max_concurrent_transforms,
      :model_client_config,
      :max_payload_in_mb,
      :batch_strategy,
      :environment,
      :transform_input,
      :transform_output,
      :data_capture_config,
      :transform_resources,
      :creation_time,
      :transform_start_time,
      :transform_end_time,
      :labeling_job_arn,
      :auto_ml_job_arn,
      :data_processing,
      :experiment_config,
      :tags)
      SENSITIVE = []
      include Aws::Structure
    end

    # Defines the input needed to run a transform job using the inference
    # specification specified in the algorithm.
    #
    # @!attribute [rw] max_concurrent_transforms
    #   The maximum number of parallel requests that can be sent to each
    #   instance in a transform job. The default value is 1.
    #   @return [Integer]
    #
    # @!attribute [rw] max_payload_in_mb
    #   The maximum payload size allowed, in MB. A payload is the data
    #   portion of a record (without metadata).
    #   @return [Integer]
    #
    # @!attribute [rw] batch_strategy
    #   A string that determines the number of records included in a single
    #   mini-batch.
    #
    #   `SingleRecord` means only one record is used per mini-batch.
    #   `MultiRecord` means a mini-batch is set to contain as many records
    #   that can fit within the `MaxPayloadInMB` limit.
    #   @return [String]
    #
    # @!attribute [rw] environment
    #   The environment variables to set in the Docker container. We support
    #   up to 16 key and values entries in the map.
    #   @return [Hash<String,String>]
    #
    # @!attribute [rw] transform_input
    #   A description of the input source and the way the transform job
    #   consumes it.
    #   @return [Types::TransformInput]
    #
    # @!attribute [rw] transform_output
    #   Identifies the Amazon S3 location where you want Amazon SageMaker to
    #   save the results from the transform job.
    #   @return [Types::TransformOutput]
    #
    # @!attribute [rw] transform_resources
    #   Identifies the ML compute instances for the transform job.
    #   @return [Types::TransformResources]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/TransformJobDefinition AWS API Documentation
    #
    class TransformJobDefinition < Struct.new(
      :max_concurrent_transforms,
      :max_payload_in_mb,
      :batch_strategy,
      :environment,
      :transform_input,
      :transform_output,
      :transform_resources)
      SENSITIVE = []
      include Aws::Structure
    end

    # Metadata for a transform job step.
    #
    # @!attribute [rw] arn
    #   The Amazon Resource Name (ARN) of the transform job that was run by
    #   this step execution.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/TransformJobStepMetadata AWS API Documentation
    #
    class TransformJobStepMetadata < Struct.new(
      :arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # Provides a summary of a transform job. Multiple `TransformJobSummary`
    # objects are returned as a list after in response to a
    # [ListTransformJobs][1] call.
    #
    #
    #
    # [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ListTransformJobs.html
    #
    # @!attribute [rw] transform_job_name
    #   The name of the transform job.
    #   @return [String]
    #
    # @!attribute [rw] transform_job_arn
    #   The Amazon Resource Name (ARN) of the transform job.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   A timestamp that shows when the transform Job was created.
    #   @return [Time]
    #
    # @!attribute [rw] transform_end_time
    #   Indicates when the transform job ends on compute instances. For
    #   successful jobs and stopped jobs, this is the exact time recorded
    #   after the results are uploaded. For failed jobs, this is when Amazon
    #   SageMaker detected that the job failed.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time
    #   Indicates when the transform job was last modified.
    #   @return [Time]
    #
    # @!attribute [rw] transform_job_status
    #   The status of the transform job.
    #   @return [String]
    #
    # @!attribute [rw] failure_reason
    #   If the transform job failed, the reason it failed.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/TransformJobSummary AWS API Documentation
    #
    class TransformJobSummary < Struct.new(
      :transform_job_name,
      :transform_job_arn,
      :creation_time,
      :transform_end_time,
      :last_modified_time,
      :transform_job_status,
      :failure_reason)
      SENSITIVE = []
      include Aws::Structure
    end

    # Describes the results of a transform job.
    #
    # @!attribute [rw] s3_output_path
    #   The Amazon S3 path where you want Amazon SageMaker to store the
    #   results of the transform job. For example,
    #   `s3://bucket-name/key-name-prefix`.
    #
    #   For every S3 object used as input for the transform job, batch
    #   transform stores the transformed data with an .`out` suffix in a
    #   corresponding subfolder in the location in the output prefix. For
    #   example, for the input data stored at
    #   `s3://bucket-name/input-name-prefix/dataset01/data.csv`, batch
    #   transform stores the transformed data at
    #   `s3://bucket-name/output-name-prefix/input-name-prefix/data.csv.out`.
    #   Batch transform doesn't upload partially processed objects. For an
    #   input S3 object that contains multiple records, it creates an .`out`
    #   file only if the transform job succeeds on the entire file. When the
    #   input contains multiple S3 objects, the batch transform job
    #   processes the listed S3 objects and uploads only the output for
    #   successfully processed objects. If any object fails in the transform
    #   job batch transform marks the job as failed to prompt investigation.
    #   @return [String]
    #
    # @!attribute [rw] accept
    #   The MIME type used to specify the output data. Amazon SageMaker uses
    #   the MIME type with each http call to transfer data from the
    #   transform job.
    #   @return [String]
    #
    # @!attribute [rw] assemble_with
    #   Defines how to assemble the results of the transform job as a single
    #   S3 object. Choose a format that is most convenient to you. To
    #   concatenate the results in binary format, specify `None`. To add a
    #   newline character at the end of every transformed record, specify
    #   `Line`.
    #   @return [String]
    #
    # @!attribute [rw] kms_key_id
    #   The Amazon Web Services Key Management Service (Amazon Web Services
    #   KMS) key that Amazon SageMaker uses to encrypt the model artifacts
    #   at rest using Amazon S3 server-side encryption. The `KmsKeyId` can
    #   be any of the following formats:
    #
    #   * Key ID: `1234abcd-12ab-34cd-56ef-1234567890ab`
    #
    #   * Key ARN:
    #     `arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab`
    #
    #   * Alias name: `alias/ExampleAlias`
    #
    #   * Alias name ARN:
    #     `arn:aws:kms:us-west-2:111122223333:alias/ExampleAlias`
    #
    #   If you don't provide a KMS key ID, Amazon SageMaker uses the
    #   default KMS key for Amazon S3 for your role's account. For more
    #   information, see [KMS-Managed Encryption Keys][1] in the *Amazon
    #   Simple Storage Service Developer Guide.*
    #
    #   The KMS key policy must grant permission to the IAM role that you
    #   specify in your [CreateModel][2] request. For more information, see
    #   [Using Key Policies in Amazon Web Services KMS][3] in the *Amazon
    #   Web Services Key Management Service Developer Guide*.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html
    #   [2]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateModel.html
    #   [3]: https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/TransformOutput AWS API Documentation
    #
    class TransformOutput < Struct.new(
      :s3_output_path,
      :accept,
      :assemble_with,
      :kms_key_id)
      SENSITIVE = []
      include Aws::Structure
    end

    # Describes the resources, including ML instance types and ML instance
    # count, to use for transform job.
    #
    # @!attribute [rw] instance_type
    #   The ML compute instance type for the transform job. If you are using
    #   built-in algorithms to transform moderately sized datasets, we
    #   recommend using ml.m4.xlarge or `ml.m5.large`instance types.
    #   @return [String]
    #
    # @!attribute [rw] instance_count
    #   The number of ML compute instances to use in the transform job. The
    #   default value is `1`, and the maximum is `100`. For distributed
    #   transform jobs, specify a value greater than `1`.
    #   @return [Integer]
    #
    # @!attribute [rw] volume_kms_key_id
    #   The Amazon Web Services Key Management Service (Amazon Web Services
    #   KMS) key that Amazon SageMaker uses to encrypt model data on the
    #   storage volume attached to the ML compute instance(s) that run the
    #   batch transform job.
    #
    #   <note markdown="1"> Certain Nitro-based instances include local storage, dependent on
    #   the instance type. Local storage volumes are encrypted using a
    #   hardware module on the instance. You can't request a
    #   `VolumeKmsKeyId` when using an instance type with local storage.
    #
    #    For a list of instance types that support local instance storage,
    #   see [Instance Store Volumes][1].
    #
    #    For more information about local instance storage encryption, see
    #   [SSD Instance Store Volumes][2].
    #
    #    </note>
    #
    #   The `VolumeKmsKeyId` can be any of the following formats:
    #
    #   * Key ID: `1234abcd-12ab-34cd-56ef-1234567890ab`
    #
    #   * Key ARN:
    #     `arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab`
    #
    #   * Alias name: `alias/ExampleAlias`
    #
    #   * Alias name ARN:
    #     `arn:aws:kms:us-west-2:111122223333:alias/ExampleAlias`
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#instance-store-volumes
    #   [2]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ssd-instance-store.html
    #   @return [String]
    #
    # @!attribute [rw] transform_ami_version
    #   Specifies an option from a collection of preconfigured Amazon
    #   Machine Image (AMI) images. Each image is configured by Amazon Web
    #   Services with a set of software and driver versions.
    #
    #   al2-ami-sagemaker-batch-gpu-470
    #   : * Accelerator: GPU
    #
    #     * NVIDIA driver version: 470
    #
    #   al2-ami-sagemaker-batch-gpu-535
    #   : * Accelerator: GPU
    #
    #     * NVIDIA driver version: 535
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/TransformResources AWS API Documentation
    #
    class TransformResources < Struct.new(
      :instance_type,
      :instance_count,
      :volume_kms_key_id,
      :transform_ami_version)
      SENSITIVE = []
      include Aws::Structure
    end

    # Describes the S3 data source.
    #
    # @!attribute [rw] s3_data_type
    #   If you choose `S3Prefix`, `S3Uri` identifies a key name prefix.
    #   Amazon SageMaker uses all objects with the specified key name prefix
    #   for batch transform.
    #
    #   If you choose `ManifestFile`, `S3Uri` identifies an object that is a
    #   manifest file containing a list of object keys that you want Amazon
    #   SageMaker to use for batch transform.
    #
    #   The following values are compatible: `ManifestFile`, `S3Prefix`
    #
    #   The following value is not compatible: `AugmentedManifestFile`
    #   @return [String]
    #
    # @!attribute [rw] s3_uri
    #   Depending on the value specified for the `S3DataType`, identifies
    #   either a key name prefix or a manifest. For example:
    #
    #   * A key name prefix might look like this:
    #     `s3://bucketname/exampleprefix/`.
    #
    #   * A manifest might look like this:
    #     `s3://bucketname/example.manifest`
    #
    #     The manifest is an S3 object which is a JSON file with the
    #     following format:
    #
    #     `[ {"prefix": "s3://customer_bucket/some/prefix/"},`
    #
    #     `"relative/path/to/custdata-1",`
    #
    #     `"relative/path/custdata-2",`
    #
    #     `...`
    #
    #     `"relative/path/custdata-N"`
    #
    #     `]`
    #
    #     The preceding JSON matches the following `S3Uris`:
    #
    #     `s3://customer_bucket/some/prefix/relative/path/to/custdata-1`
    #
    #     `s3://customer_bucket/some/prefix/relative/path/custdata-2`
    #
    #     `...`
    #
    #     `s3://customer_bucket/some/prefix/relative/path/custdata-N`
    #
    #     The complete set of `S3Uris` in this manifest constitutes the
    #     input data for the channel for this datasource. The object that
    #     each `S3Uris` points to must be readable by the IAM role that
    #     Amazon SageMaker uses to perform tasks on your behalf.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/TransformS3DataSource AWS API Documentation
    #
    class TransformS3DataSource < Struct.new(
      :s3_data_type,
      :s3_uri)
      SENSITIVE = []
      include Aws::Structure
    end

    # The properties of a trial as returned by the [Search][1] API.
    #
    #
    #
    # [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_Search.html
    #
    # @!attribute [rw] trial_name
    #   The name of the trial.
    #   @return [String]
    #
    # @!attribute [rw] trial_arn
    #   The Amazon Resource Name (ARN) of the trial.
    #   @return [String]
    #
    # @!attribute [rw] display_name
    #   The name of the trial as displayed. If `DisplayName` isn't
    #   specified, `TrialName` is displayed.
    #   @return [String]
    #
    # @!attribute [rw] experiment_name
    #   The name of the experiment the trial is part of.
    #   @return [String]
    #
    # @!attribute [rw] source
    #   The source of the trial.
    #   @return [Types::TrialSource]
    #
    # @!attribute [rw] creation_time
    #   When the trial was created.
    #   @return [Time]
    #
    # @!attribute [rw] created_by
    #   Who created the trial.
    #   @return [Types::UserContext]
    #
    # @!attribute [rw] last_modified_time
    #   Who last modified the trial.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_by
    #   Information about the user who created or modified a SageMaker
    #   resource.
    #   @return [Types::UserContext]
    #
    # @!attribute [rw] metadata_properties
    #   Metadata properties of the tracking entity, trial, or trial
    #   component.
    #   @return [Types::MetadataProperties]
    #
    # @!attribute [rw] tags
    #   The list of tags that are associated with the trial. You can use
    #   [Search][1] API to search on the tags.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_Search.html
    #   @return [Array<Types::Tag>]
    #
    # @!attribute [rw] trial_component_summaries
    #   A list of the components associated with the trial. For each
    #   component, a summary of the component's properties is included.
    #   @return [Array<Types::TrialComponentSimpleSummary>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/Trial AWS API Documentation
    #
    class Trial < Struct.new(
      :trial_name,
      :trial_arn,
      :display_name,
      :experiment_name,
      :source,
      :creation_time,
      :created_by,
      :last_modified_time,
      :last_modified_by,
      :metadata_properties,
      :tags,
      :trial_component_summaries)
      SENSITIVE = []
      include Aws::Structure
    end

    # The properties of a trial component as returned by the [Search][1]
    # API.
    #
    #
    #
    # [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_Search.html
    #
    # @!attribute [rw] trial_component_name
    #   The name of the trial component.
    #   @return [String]
    #
    # @!attribute [rw] display_name
    #   The name of the component as displayed. If `DisplayName` isn't
    #   specified, `TrialComponentName` is displayed.
    #   @return [String]
    #
    # @!attribute [rw] trial_component_arn
    #   The Amazon Resource Name (ARN) of the trial component.
    #   @return [String]
    #
    # @!attribute [rw] source
    #   The Amazon Resource Name (ARN) and job type of the source of the
    #   component.
    #   @return [Types::TrialComponentSource]
    #
    # @!attribute [rw] status
    #   The status of the trial component.
    #   @return [Types::TrialComponentStatus]
    #
    # @!attribute [rw] start_time
    #   When the component started.
    #   @return [Time]
    #
    # @!attribute [rw] end_time
    #   When the component ended.
    #   @return [Time]
    #
    # @!attribute [rw] creation_time
    #   When the component was created.
    #   @return [Time]
    #
    # @!attribute [rw] created_by
    #   Who created the trial component.
    #   @return [Types::UserContext]
    #
    # @!attribute [rw] last_modified_time
    #   When the component was last modified.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_by
    #   Information about the user who created or modified a SageMaker
    #   resource.
    #   @return [Types::UserContext]
    #
    # @!attribute [rw] parameters
    #   The hyperparameters of the component.
    #   @return [Hash<String,Types::TrialComponentParameterValue>]
    #
    # @!attribute [rw] input_artifacts
    #   The input artifacts of the component.
    #   @return [Hash<String,Types::TrialComponentArtifact>]
    #
    # @!attribute [rw] output_artifacts
    #   The output artifacts of the component.
    #   @return [Hash<String,Types::TrialComponentArtifact>]
    #
    # @!attribute [rw] metrics
    #   The metrics for the component.
    #   @return [Array<Types::TrialComponentMetricSummary>]
    #
    # @!attribute [rw] metadata_properties
    #   Metadata properties of the tracking entity, trial, or trial
    #   component.
    #   @return [Types::MetadataProperties]
    #
    # @!attribute [rw] source_detail
    #   Details of the source of the component.
    #   @return [Types::TrialComponentSourceDetail]
    #
    # @!attribute [rw] lineage_group_arn
    #   The Amazon Resource Name (ARN) of the lineage group resource.
    #   @return [String]
    #
    # @!attribute [rw] tags
    #   The list of tags that are associated with the component. You can use
    #   [Search][1] API to search on the tags.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_Search.html
    #   @return [Array<Types::Tag>]
    #
    # @!attribute [rw] parents
    #   An array of the parents of the component. A parent is a trial the
    #   component is associated with and the experiment the trial is part
    #   of. A component might not have any parents.
    #   @return [Array<Types::Parent>]
    #
    # @!attribute [rw] run_name
    #   The name of the experiment run.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/TrialComponent AWS API Documentation
    #
    class TrialComponent < Struct.new(
      :trial_component_name,
      :display_name,
      :trial_component_arn,
      :source,
      :status,
      :start_time,
      :end_time,
      :creation_time,
      :created_by,
      :last_modified_time,
      :last_modified_by,
      :parameters,
      :input_artifacts,
      :output_artifacts,
      :metrics,
      :metadata_properties,
      :source_detail,
      :lineage_group_arn,
      :tags,
      :parents,
      :run_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # Represents an input or output artifact of a trial component. You
    # specify `TrialComponentArtifact` as part of the `InputArtifacts` and
    # `OutputArtifacts` parameters in the [CreateTrialComponent][1] request.
    #
    # Examples of input artifacts are datasets, algorithms, hyperparameters,
    # source code, and instance types. Examples of output artifacts are
    # metrics, snapshots, logs, and images.
    #
    #
    #
    # [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrialComponent.html
    #
    # @!attribute [rw] media_type
    #   The media type of the artifact, which indicates the type of data in
    #   the artifact file. The media type consists of a *type* and a
    #   *subtype* concatenated with a slash (/) character, for example,
    #   text/csv, image/jpeg, and s3/uri. The type specifies the category of
    #   the media. The subtype specifies the kind of data.
    #   @return [String]
    #
    # @!attribute [rw] value
    #   The location of the artifact.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/TrialComponentArtifact AWS API Documentation
    #
    class TrialComponentArtifact < Struct.new(
      :media_type,
      :value)
      SENSITIVE = []
      include Aws::Structure
    end

    # A summary of the metrics of a trial component.
    #
    # @!attribute [rw] metric_name
    #   The name of the metric.
    #   @return [String]
    #
    # @!attribute [rw] source_arn
    #   The Amazon Resource Name (ARN) of the source.
    #   @return [String]
    #
    # @!attribute [rw] time_stamp
    #   When the metric was last updated.
    #   @return [Time]
    #
    # @!attribute [rw] max
    #   The maximum value of the metric.
    #   @return [Float]
    #
    # @!attribute [rw] min
    #   The minimum value of the metric.
    #   @return [Float]
    #
    # @!attribute [rw] last
    #   The most recent value of the metric.
    #   @return [Float]
    #
    # @!attribute [rw] count
    #   The number of samples used to generate the metric.
    #   @return [Integer]
    #
    # @!attribute [rw] avg
    #   The average value of the metric.
    #   @return [Float]
    #
    # @!attribute [rw] std_dev
    #   The standard deviation of the metric.
    #   @return [Float]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/TrialComponentMetricSummary AWS API Documentation
    #
    class TrialComponentMetricSummary < Struct.new(
      :metric_name,
      :source_arn,
      :time_stamp,
      :max,
      :min,
      :last,
      :count,
      :avg,
      :std_dev)
      SENSITIVE = []
      include Aws::Structure
    end

    # The value of a hyperparameter. Only one of `NumberValue` or
    # `StringValue` can be specified.
    #
    # This object is specified in the [CreateTrialComponent][1] request.
    #
    #
    #
    # [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrialComponent.html
    #
    # @!attribute [rw] string_value
    #   The string value of a categorical hyperparameter. If you specify a
    #   value for this parameter, you can't specify the `NumberValue`
    #   parameter.
    #   @return [String]
    #
    # @!attribute [rw] number_value
    #   The numeric value of a numeric hyperparameter. If you specify a
    #   value for this parameter, you can't specify the `StringValue`
    #   parameter.
    #   @return [Float]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/TrialComponentParameterValue AWS API Documentation
    #
    class TrialComponentParameterValue < Struct.new(
      :string_value,
      :number_value)
      SENSITIVE = []
      include Aws::Structure
    end

    # A short summary of a trial component.
    #
    # @!attribute [rw] trial_component_name
    #   The name of the trial component.
    #   @return [String]
    #
    # @!attribute [rw] trial_component_arn
    #   The Amazon Resource Name (ARN) of the trial component.
    #   @return [String]
    #
    # @!attribute [rw] trial_component_source
    #   The Amazon Resource Name (ARN) and job type of the source of a trial
    #   component.
    #   @return [Types::TrialComponentSource]
    #
    # @!attribute [rw] creation_time
    #   When the component was created.
    #   @return [Time]
    #
    # @!attribute [rw] created_by
    #   Information about the user who created or modified a SageMaker
    #   resource.
    #   @return [Types::UserContext]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/TrialComponentSimpleSummary AWS API Documentation
    #
    class TrialComponentSimpleSummary < Struct.new(
      :trial_component_name,
      :trial_component_arn,
      :trial_component_source,
      :creation_time,
      :created_by)
      SENSITIVE = []
      include Aws::Structure
    end

    # The Amazon Resource Name (ARN) and job type of the source of a trial
    # component.
    #
    # @!attribute [rw] source_arn
    #   The source Amazon Resource Name (ARN).
    #   @return [String]
    #
    # @!attribute [rw] source_type
    #   The source job type.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/TrialComponentSource AWS API Documentation
    #
    class TrialComponentSource < Struct.new(
      :source_arn,
      :source_type)
      SENSITIVE = []
      include Aws::Structure
    end

    # Detailed information about the source of a trial component. Either
    # `ProcessingJob` or `TrainingJob` is returned.
    #
    # @!attribute [rw] source_arn
    #   The Amazon Resource Name (ARN) of the source.
    #   @return [String]
    #
    # @!attribute [rw] training_job
    #   Information about a training job that's the source of a trial
    #   component.
    #   @return [Types::TrainingJob]
    #
    # @!attribute [rw] processing_job
    #   Information about a processing job that's the source of a trial
    #   component.
    #   @return [Types::ProcessingJob]
    #
    # @!attribute [rw] transform_job
    #   Information about a transform job that's the source of a trial
    #   component.
    #   @return [Types::TransformJob]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/TrialComponentSourceDetail AWS API Documentation
    #
    class TrialComponentSourceDetail < Struct.new(
      :source_arn,
      :training_job,
      :processing_job,
      :transform_job)
      SENSITIVE = []
      include Aws::Structure
    end

    # The status of the trial component.
    #
    # @!attribute [rw] primary_status
    #   The status of the trial component.
    #   @return [String]
    #
    # @!attribute [rw] message
    #   If the component failed, a message describing why.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/TrialComponentStatus AWS API Documentation
    #
    class TrialComponentStatus < Struct.new(
      :primary_status,
      :message)
      SENSITIVE = []
      include Aws::Structure
    end

    # A summary of the properties of a trial component. To get all the
    # properties, call the [DescribeTrialComponent][1] API and provide the
    # `TrialComponentName`.
    #
    #
    #
    # [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeTrialComponent.html
    #
    # @!attribute [rw] trial_component_name
    #   The name of the trial component.
    #   @return [String]
    #
    # @!attribute [rw] trial_component_arn
    #   The Amazon Resource Name (ARN) of the trial component.
    #   @return [String]
    #
    # @!attribute [rw] display_name
    #   The name of the component as displayed. If `DisplayName` isn't
    #   specified, `TrialComponentName` is displayed.
    #   @return [String]
    #
    # @!attribute [rw] trial_component_source
    #   The Amazon Resource Name (ARN) and job type of the source of a trial
    #   component.
    #   @return [Types::TrialComponentSource]
    #
    # @!attribute [rw] status
    #   The status of the component. States include:
    #
    #   * InProgress
    #
    #   * Completed
    #
    #   * Failed
    #   @return [Types::TrialComponentStatus]
    #
    # @!attribute [rw] start_time
    #   When the component started.
    #   @return [Time]
    #
    # @!attribute [rw] end_time
    #   When the component ended.
    #   @return [Time]
    #
    # @!attribute [rw] creation_time
    #   When the component was created.
    #   @return [Time]
    #
    # @!attribute [rw] created_by
    #   Who created the trial component.
    #   @return [Types::UserContext]
    #
    # @!attribute [rw] last_modified_time
    #   When the component was last modified.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_by
    #   Who last modified the component.
    #   @return [Types::UserContext]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/TrialComponentSummary AWS API Documentation
    #
    class TrialComponentSummary < Struct.new(
      :trial_component_name,
      :trial_component_arn,
      :display_name,
      :trial_component_source,
      :status,
      :start_time,
      :end_time,
      :creation_time,
      :created_by,
      :last_modified_time,
      :last_modified_by)
      SENSITIVE = []
      include Aws::Structure
    end

    # The source of the trial.
    #
    # @!attribute [rw] source_arn
    #   The Amazon Resource Name (ARN) of the source.
    #   @return [String]
    #
    # @!attribute [rw] source_type
    #   The source job type.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/TrialSource AWS API Documentation
    #
    class TrialSource < Struct.new(
      :source_arn,
      :source_type)
      SENSITIVE = []
      include Aws::Structure
    end

    # A summary of the properties of a trial. To get the complete set of
    # properties, call the [DescribeTrial][1] API and provide the
    # `TrialName`.
    #
    #
    #
    # [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeTrial.html
    #
    # @!attribute [rw] trial_arn
    #   The Amazon Resource Name (ARN) of the trial.
    #   @return [String]
    #
    # @!attribute [rw] trial_name
    #   The name of the trial.
    #   @return [String]
    #
    # @!attribute [rw] display_name
    #   The name of the trial as displayed. If `DisplayName` isn't
    #   specified, `TrialName` is displayed.
    #   @return [String]
    #
    # @!attribute [rw] trial_source
    #   The source of the trial.
    #   @return [Types::TrialSource]
    #
    # @!attribute [rw] creation_time
    #   When the trial was created.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time
    #   When the trial was last modified.
    #   @return [Time]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/TrialSummary AWS API Documentation
    #
    class TrialSummary < Struct.new(
      :trial_arn,
      :trial_name,
      :display_name,
      :trial_source,
      :creation_time,
      :last_modified_time)
      SENSITIVE = []
      include Aws::Structure
    end

    # The Trusted Identity Propagation (TIP) settings for the SageMaker
    # domain. These settings determine how user identities from IAM Identity
    # Center are propagated through the domain to TIP enabled Amazon Web
    # Services services.
    #
    # @!attribute [rw] status
    #   The status of Trusted Identity Propagation (TIP) at the SageMaker
    #   domain level.
    #
    #   When disabled, standard IAM role-based access is used.
    #
    #   When enabled:
    #
    #   * User identities from IAM Identity Center are propagated through
    #     the application to TIP enabled Amazon Web Services services.
    #
    #   * New applications or existing applications that are automatically
    #     patched, will use the domain level configuration.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/TrustedIdentityPropagationSettings AWS API Documentation
    #
    class TrustedIdentityPropagationSettings < Struct.new(
      :status)
      SENSITIVE = []
      include Aws::Structure
    end

    # Time to live duration, where the record is hard deleted after the
    # expiration time is reached; `ExpiresAt` = `EventTime` + `TtlDuration`.
    # For information on HardDelete, see the [DeleteRecord][1] API in the
    # Amazon SageMaker API Reference guide.
    #
    #
    #
    # [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_feature_store_DeleteRecord.html
    #
    # @!attribute [rw] unit
    #   `TtlDuration` time unit.
    #   @return [String]
    #
    # @!attribute [rw] value
    #   `TtlDuration` time value.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/TtlDuration AWS API Documentation
    #
    class TtlDuration < Struct.new(
      :unit,
      :value)
      SENSITIVE = []
      include Aws::Structure
    end

    # The job completion criteria.
    #
    # @!attribute [rw] target_objective_metric_value
    #   The value of the objective metric.
    #   @return [Float]
    #
    # @!attribute [rw] best_objective_not_improving
    #   A flag to stop your hyperparameter tuning job if model performance
    #   fails to improve as evaluated against an objective function.
    #   @return [Types::BestObjectiveNotImproving]
    #
    # @!attribute [rw] convergence_detected
    #   A flag to top your hyperparameter tuning job if automatic model
    #   tuning (AMT) has detected that your model has converged as evaluated
    #   against your objective function.
    #   @return [Types::ConvergenceDetected]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/TuningJobCompletionCriteria AWS API Documentation
    #
    class TuningJobCompletionCriteria < Struct.new(
      :target_objective_metric_value,
      :best_objective_not_improving,
      :convergence_detected)
      SENSITIVE = []
      include Aws::Structure
    end

    # Metadata for a tuning step.
    #
    # @!attribute [rw] arn
    #   The Amazon Resource Name (ARN) of the tuning job that was run by
    #   this step execution.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/TuningJobStepMetaData AWS API Documentation
    #
    class TuningJobStepMetaData < Struct.new(
      :arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # Represents an amount of money in United States dollars.
    #
    # @!attribute [rw] dollars
    #   The whole number of dollars in the amount.
    #   @return [Integer]
    #
    # @!attribute [rw] cents
    #   The fractional portion, in cents, of the amount.
    #   @return [Integer]
    #
    # @!attribute [rw] tenth_fractions_of_a_cent
    #   Fractions of a cent, in tenths.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/USD AWS API Documentation
    #
    class USD < Struct.new(
      :dollars,
      :cents,
      :tenth_fractions_of_a_cent)
      SENSITIVE = []
      include Aws::Structure
    end

    # Provided configuration information for the worker UI for a labeling
    # job. Provide either `HumanTaskUiArn` or `UiTemplateS3Uri`.
    #
    # For named entity recognition, 3D point cloud and video frame labeling
    # jobs, use `HumanTaskUiArn`.
    #
    # For all other Ground Truth built-in task types and custom task types,
    # use `UiTemplateS3Uri` to specify the location of a worker task
    # template in Amazon S3.
    #
    # @!attribute [rw] ui_template_s3_uri
    #   The Amazon S3 bucket location of the UI template, or worker task
    #   template. This is the template used to render the worker UI and
    #   tools for labeling job tasks. For more information about the
    #   contents of a UI template, see [ Creating Your Custom Labeling Task
    #   Template][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/sms-custom-templates-step2.html
    #   @return [String]
    #
    # @!attribute [rw] human_task_ui_arn
    #   The ARN of the worker task template used to render the worker UI and
    #   tools for labeling job tasks.
    #
    #   Use this parameter when you are creating a labeling job for named
    #   entity recognition, 3D point cloud and video frame labeling jobs.
    #   Use your labeling job task type to select one of the following ARNs
    #   and use it with this parameter when you create a labeling job.
    #   Replace `aws-region` with the Amazon Web Services Region you are
    #   creating your labeling job in. For example, replace `aws-region`
    #   with `us-west-1` if you create a labeling job in US West (N.
    #   California).
    #
    #   **Named Entity Recognition**
    #
    #   Use the following `HumanTaskUiArn` for named entity recognition
    #   labeling jobs:
    #
    #   `arn:aws:sagemaker:aws-region:394669845002:human-task-ui/NamedEntityRecognition`
    #
    #   **3D Point Cloud HumanTaskUiArns**
    #
    #   Use this `HumanTaskUiArn` for 3D point cloud object detection and 3D
    #   point cloud object detection adjustment labeling jobs.
    #
    #   * `arn:aws:sagemaker:aws-region:394669845002:human-task-ui/PointCloudObjectDetection`
    #
    #   ^
    #
    #   Use this `HumanTaskUiArn` for 3D point cloud object tracking and 3D
    #   point cloud object tracking adjustment labeling jobs.
    #
    #   * `arn:aws:sagemaker:aws-region:394669845002:human-task-ui/PointCloudObjectTracking`
    #
    #   ^
    #
    #   Use this `HumanTaskUiArn` for 3D point cloud semantic segmentation
    #   and 3D point cloud semantic segmentation adjustment labeling jobs.
    #
    #   * `arn:aws:sagemaker:aws-region:394669845002:human-task-ui/PointCloudSemanticSegmentation`
    #
    #   ^
    #
    #   **Video Frame HumanTaskUiArns**
    #
    #   Use this `HumanTaskUiArn` for video frame object detection and video
    #   frame object detection adjustment labeling jobs.
    #
    #   * `arn:aws:sagemaker:region:394669845002:human-task-ui/VideoObjectDetection`
    #
    #   ^
    #
    #   Use this `HumanTaskUiArn` for video frame object tracking and video
    #   frame object tracking adjustment labeling jobs.
    #
    #   * `arn:aws:sagemaker:aws-region:394669845002:human-task-ui/VideoObjectTracking`
    #
    #   ^
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UiConfig AWS API Documentation
    #
    class UiConfig < Struct.new(
      :ui_template_s3_uri,
      :human_task_ui_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # The Liquid template for the worker user interface.
    #
    # @!attribute [rw] content
    #   The content of the Liquid template for the worker user interface.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UiTemplate AWS API Documentation
    #
    class UiTemplate < Struct.new(
      :content)
      SENSITIVE = []
      include Aws::Structure
    end

    # Container for user interface template information.
    #
    # @!attribute [rw] url
    #   The URL for the user interface template.
    #   @return [String]
    #
    # @!attribute [rw] content_sha_256
    #   The SHA-256 digest of the contents of the template.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UiTemplateInfo AWS API Documentation
    #
    class UiTemplateInfo < Struct.new(
      :url,
      :content_sha_256)
      SENSITIVE = []
      include Aws::Structure
    end

    # Represents a high-performance compute server used for distributed
    # training in SageMaker AI. An UltraServer consists of multiple
    # instances within a shared NVLink interconnect domain.
    #
    # @!attribute [rw] ultra_server_id
    #   The unique identifier for the UltraServer.
    #   @return [String]
    #
    # @!attribute [rw] ultra_server_type
    #   The type of UltraServer, such as ml.u-p6e-gb200x72.
    #   @return [String]
    #
    # @!attribute [rw] availability_zone
    #   The name of the Availability Zone where the UltraServer is
    #   provisioned.
    #   @return [String]
    #
    # @!attribute [rw] instance_type
    #   The Amazon EC2 instance type used in the UltraServer.
    #   @return [String]
    #
    # @!attribute [rw] total_instance_count
    #   The total number of instances in this UltraServer.
    #   @return [Integer]
    #
    # @!attribute [rw] configured_spare_instance_count
    #   The number of spare instances configured for this UltraServer to
    #   provide enhanced resiliency.
    #   @return [Integer]
    #
    # @!attribute [rw] available_instance_count
    #   The number of instances currently available for use in this
    #   UltraServer.
    #   @return [Integer]
    #
    # @!attribute [rw] in_use_instance_count
    #   The number of instances currently in use in this UltraServer.
    #   @return [Integer]
    #
    # @!attribute [rw] available_spare_instance_count
    #   The number of available spare instances in the UltraServer.
    #   @return [Integer]
    #
    # @!attribute [rw] unhealthy_instance_count
    #   The number of instances in this UltraServer that are currently in an
    #   unhealthy state.
    #   @return [Integer]
    #
    # @!attribute [rw] health_status
    #   The overall health status of the UltraServer.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UltraServer AWS API Documentation
    #
    class UltraServer < Struct.new(
      :ultra_server_id,
      :ultra_server_type,
      :availability_zone,
      :instance_type,
      :total_instance_count,
      :configured_spare_instance_count,
      :available_instance_count,
      :in_use_instance_count,
      :available_spare_instance_count,
      :unhealthy_instance_count,
      :health_status)
      SENSITIVE = []
      include Aws::Structure
    end

    # Contains information about the UltraServer object.
    #
    # @!attribute [rw] id
    #   The unique identifier of the UltraServer.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UltraServerInfo AWS API Documentation
    #
    class UltraServerInfo < Struct.new(
      :id)
      SENSITIVE = []
      include Aws::Structure
    end

    # A summary of UltraServer resources and their current status.
    #
    # @!attribute [rw] ultra_server_type
    #   The type of UltraServer, such as ml.u-p6e-gb200x72.
    #   @return [String]
    #
    # @!attribute [rw] instance_type
    #   The Amazon EC2 instance type used in the UltraServer.
    #   @return [String]
    #
    # @!attribute [rw] ultra_server_count
    #   The number of UltraServers of this type.
    #   @return [Integer]
    #
    # @!attribute [rw] available_spare_instance_count
    #   The number of available spare instances in the UltraServers.
    #   @return [Integer]
    #
    # @!attribute [rw] unhealthy_instance_count
    #   The total number of instances across all UltraServers of this type
    #   that are currently in an unhealthy state.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UltraServerSummary AWS API Documentation
    #
    class UltraServerSummary < Struct.new(
      :ultra_server_type,
      :instance_type,
      :ultra_server_count,
      :available_spare_instance_count,
      :unhealthy_instance_count)
      SENSITIVE = []
      include Aws::Structure
    end

    # The settings that apply to an Amazon SageMaker AI domain when you use
    # it in Amazon SageMaker Unified Studio.
    #
    # @!attribute [rw] studio_web_portal_access
    #   Sets whether you can access the domain in Amazon SageMaker Studio:
    #
    #   ENABLED
    #
    #   : You can access the domain in Amazon SageMaker Studio. If you
    #     migrate the domain to Amazon SageMaker Unified Studio, you can
    #     access it in both studio interfaces.
    #
    #   DISABLED
    #
    #   : You can't access the domain in Amazon SageMaker Studio. If you
    #     migrate the domain to Amazon SageMaker Unified Studio, you can
    #     access it only in that studio interface.
    #
    #   To migrate a domain to Amazon SageMaker Unified Studio, you specify
    #   the UnifiedStudioSettings data type when you use the UpdateDomain
    #   action.
    #   @return [String]
    #
    # @!attribute [rw] domain_account_id
    #   The ID of the Amazon Web Services account that has the Amazon
    #   SageMaker Unified Studio domain. The default value, if you don't
    #   specify an ID, is the ID of the account that has the Amazon
    #   SageMaker AI domain.
    #   @return [String]
    #
    # @!attribute [rw] domain_region
    #   The Amazon Web Services Region where the domain is located in Amazon
    #   SageMaker Unified Studio. The default value, if you don't specify a
    #   Region, is the Region where the Amazon SageMaker AI domain is
    #   located.
    #   @return [String]
    #
    # @!attribute [rw] domain_id
    #   The ID of the Amazon SageMaker Unified Studio domain associated with
    #   this domain.
    #   @return [String]
    #
    # @!attribute [rw] project_id
    #   The ID of the Amazon SageMaker Unified Studio project that
    #   corresponds to the domain.
    #   @return [String]
    #
    # @!attribute [rw] environment_id
    #   The ID of the environment that Amazon SageMaker Unified Studio
    #   associates with the domain.
    #   @return [String]
    #
    # @!attribute [rw] project_s3_path
    #   The location where Amazon S3 stores temporary execution data and
    #   other artifacts for the project that corresponds to the domain.
    #   @return [String]
    #
    # @!attribute [rw] single_sign_on_application_arn
    #   The ARN of the Amazon DataZone application managed by Amazon
    #   SageMaker Unified Studio in the Amazon Web Services IAM Identity
    #   Center.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UnifiedStudioSettings AWS API Documentation
    #
    class UnifiedStudioSettings < Struct.new(
      :studio_web_portal_access,
      :domain_account_id,
      :domain_region,
      :domain_id,
      :project_id,
      :environment_id,
      :project_s3_path,
      :single_sign_on_application_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] action_name
    #   The name of the action to update.
    #   @return [String]
    #
    # @!attribute [rw] description
    #   The new description for the action.
    #   @return [String]
    #
    # @!attribute [rw] status
    #   The new status for the action.
    #   @return [String]
    #
    # @!attribute [rw] properties
    #   The new list of properties. Overwrites the current property list.
    #   @return [Hash<String,String>]
    #
    # @!attribute [rw] properties_to_remove
    #   A list of properties to remove.
    #   @return [Array<String>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateActionRequest AWS API Documentation
    #
    class UpdateActionRequest < Struct.new(
      :action_name,
      :description,
      :status,
      :properties,
      :properties_to_remove)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] action_arn
    #   The Amazon Resource Name (ARN) of the action.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateActionResponse AWS API Documentation
    #
    class UpdateActionResponse < Struct.new(
      :action_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] app_image_config_name
    #   The name of the AppImageConfig to update.
    #   @return [String]
    #
    # @!attribute [rw] kernel_gateway_image_config
    #   The new KernelGateway app to run on the image.
    #   @return [Types::KernelGatewayImageConfig]
    #
    # @!attribute [rw] jupyter_lab_app_image_config
    #   The JupyterLab app running on the image.
    #   @return [Types::JupyterLabAppImageConfig]
    #
    # @!attribute [rw] code_editor_app_image_config
    #   The Code Editor app running on the image.
    #   @return [Types::CodeEditorAppImageConfig]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateAppImageConfigRequest AWS API Documentation
    #
    class UpdateAppImageConfigRequest < Struct.new(
      :app_image_config_name,
      :kernel_gateway_image_config,
      :jupyter_lab_app_image_config,
      :code_editor_app_image_config)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] app_image_config_arn
    #   The ARN for the AppImageConfig.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateAppImageConfigResponse AWS API Documentation
    #
    class UpdateAppImageConfigResponse < Struct.new(
      :app_image_config_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] artifact_arn
    #   The Amazon Resource Name (ARN) of the artifact to update.
    #   @return [String]
    #
    # @!attribute [rw] artifact_name
    #   The new name for the artifact.
    #   @return [String]
    #
    # @!attribute [rw] properties
    #   The new list of properties. Overwrites the current property list.
    #   @return [Hash<String,String>]
    #
    # @!attribute [rw] properties_to_remove
    #   A list of properties to remove.
    #   @return [Array<String>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateArtifactRequest AWS API Documentation
    #
    class UpdateArtifactRequest < Struct.new(
      :artifact_arn,
      :artifact_name,
      :properties,
      :properties_to_remove)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] artifact_arn
    #   The Amazon Resource Name (ARN) of the artifact.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateArtifactResponse AWS API Documentation
    #
    class UpdateArtifactResponse < Struct.new(
      :artifact_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] cluster_name
    #   Specify the name of the SageMaker HyperPod cluster you want to
    #   update.
    #   @return [String]
    #
    # @!attribute [rw] instance_groups
    #   Specify the instance groups to update.
    #   @return [Array<Types::ClusterInstanceGroupSpecification>]
    #
    # @!attribute [rw] restricted_instance_groups
    #   The specialized instance groups for training models like Amazon Nova
    #   to be created in the SageMaker HyperPod cluster.
    #   @return [Array<Types::ClusterRestrictedInstanceGroupSpecification>]
    #
    # @!attribute [rw] tiered_storage_config
    #   Updates the configuration for managed tier checkpointing on the
    #   HyperPod cluster. For example, you can enable or disable the feature
    #   and modify the percentage of cluster memory allocated for checkpoint
    #   storage.
    #   @return [Types::ClusterTieredStorageConfig]
    #
    # @!attribute [rw] node_recovery
    #   The node recovery mode to be applied to the SageMaker HyperPod
    #   cluster.
    #   @return [String]
    #
    # @!attribute [rw] instance_groups_to_delete
    #   Specify the names of the instance groups to delete. Use a single `,`
    #   as the separator between multiple names.
    #   @return [Array<String>]
    #
    # @!attribute [rw] cluster_role
    #   The Amazon Resource Name (ARN) of the IAM role that HyperPod assumes
    #   for cluster autoscaling operations. Cannot be updated while
    #   autoscaling is enabled.
    #   @return [String]
    #
    # @!attribute [rw] auto_scaling
    #   Updates the autoscaling configuration for the cluster. Use to enable
    #   or disable automatic node scaling.
    #   @return [Types::ClusterAutoScalingConfig]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateClusterRequest AWS API Documentation
    #
    class UpdateClusterRequest < Struct.new(
      :cluster_name,
      :instance_groups,
      :restricted_instance_groups,
      :tiered_storage_config,
      :node_recovery,
      :instance_groups_to_delete,
      :cluster_role,
      :auto_scaling)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] cluster_arn
    #   The Amazon Resource Name (ARN) of the updated SageMaker HyperPod
    #   cluster.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateClusterResponse AWS API Documentation
    #
    class UpdateClusterResponse < Struct.new(
      :cluster_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] cluster_scheduler_config_id
    #   ID of the cluster policy.
    #   @return [String]
    #
    # @!attribute [rw] target_version
    #   Target version.
    #   @return [Integer]
    #
    # @!attribute [rw] scheduler_config
    #   Cluster policy configuration.
    #   @return [Types::SchedulerConfig]
    #
    # @!attribute [rw] description
    #   Description of the cluster policy.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateClusterSchedulerConfigRequest AWS API Documentation
    #
    class UpdateClusterSchedulerConfigRequest < Struct.new(
      :cluster_scheduler_config_id,
      :target_version,
      :scheduler_config,
      :description)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] cluster_scheduler_config_arn
    #   ARN of the cluster policy.
    #   @return [String]
    #
    # @!attribute [rw] cluster_scheduler_config_version
    #   Version of the cluster policy.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateClusterSchedulerConfigResponse AWS API Documentation
    #
    class UpdateClusterSchedulerConfigResponse < Struct.new(
      :cluster_scheduler_config_arn,
      :cluster_scheduler_config_version)
      SENSITIVE = []
      include Aws::Structure
    end

    # The configuration that describes specifications of the instance groups
    # to update.
    #
    # @!attribute [rw] instance_group_name
    #   The name of the instance group to update.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateClusterSoftwareInstanceGroupSpecification AWS API Documentation
    #
    class UpdateClusterSoftwareInstanceGroupSpecification < Struct.new(
      :instance_group_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] cluster_name
    #   Specify the name or the Amazon Resource Name (ARN) of the SageMaker
    #   HyperPod cluster you want to update for security patching.
    #   @return [String]
    #
    # @!attribute [rw] instance_groups
    #   The array of instance groups for which to update AMI versions.
    #   @return [Array<Types::UpdateClusterSoftwareInstanceGroupSpecification>]
    #
    # @!attribute [rw] deployment_config
    #   The configuration to use when updating the AMI versions.
    #   @return [Types::DeploymentConfiguration]
    #
    # @!attribute [rw] image_id
    #   When configuring your HyperPod cluster, you can specify an image ID
    #   using one of the following options:
    #
    #   * `HyperPodPublicAmiId`: Use a HyperPod public AMI
    #
    #   * `CustomAmiId`: Use your custom AMI
    #
    #   * `default`: Use the default latest system image
    #
    #   If you choose to use a custom AMI (`CustomAmiId`), ensure it meets
    #   the following requirements:
    #
    #   * Encryption: The custom AMI must be unencrypted.
    #
    #   * Ownership: The custom AMI must be owned by the same Amazon Web
    #     Services account that is creating the HyperPod cluster.
    #
    #   * Volume support: Only the primary AMI snapshot volume is supported;
    #     additional AMI volumes are not supported.
    #
    #   When updating the instance group's AMI through the
    #   `UpdateClusterSoftware` operation, if an instance group uses a
    #   custom AMI, you must provide an `ImageId` or use the default as
    #   input. Note that if you don't specify an instance group in your
    #   `UpdateClusterSoftware` request, then all of the instance groups are
    #   patched with the specified image.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateClusterSoftwareRequest AWS API Documentation
    #
    class UpdateClusterSoftwareRequest < Struct.new(
      :cluster_name,
      :instance_groups,
      :deployment_config,
      :image_id)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] cluster_arn
    #   The Amazon Resource Name (ARN) of the SageMaker HyperPod cluster
    #   being updated for security patching.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateClusterSoftwareResponse AWS API Documentation
    #
    class UpdateClusterSoftwareResponse < Struct.new(
      :cluster_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] code_repository_name
    #   The name of the Git repository to update.
    #   @return [String]
    #
    # @!attribute [rw] git_config
    #   The configuration of the git repository, including the URL and the
    #   Amazon Resource Name (ARN) of the Amazon Web Services Secrets
    #   Manager secret that contains the credentials used to access the
    #   repository. The secret must have a staging label of `AWSCURRENT` and
    #   must be in the following format:
    #
    #   `{"username": UserName, "password": Password}`
    #   @return [Types::GitConfigForUpdate]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateCodeRepositoryInput AWS API Documentation
    #
    class UpdateCodeRepositoryInput < Struct.new(
      :code_repository_name,
      :git_config)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] code_repository_arn
    #   The ARN of the Git repository.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateCodeRepositoryOutput AWS API Documentation
    #
    class UpdateCodeRepositoryOutput < Struct.new(
      :code_repository_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] compute_quota_id
    #   ID of the compute allocation definition.
    #   @return [String]
    #
    # @!attribute [rw] target_version
    #   Target version.
    #   @return [Integer]
    #
    # @!attribute [rw] compute_quota_config
    #   Configuration of the compute allocation definition. This includes
    #   the resource sharing option, and the setting to preempt low priority
    #   tasks.
    #   @return [Types::ComputeQuotaConfig]
    #
    # @!attribute [rw] compute_quota_target
    #   The target entity to allocate compute resources to.
    #   @return [Types::ComputeQuotaTarget]
    #
    # @!attribute [rw] activation_state
    #   The state of the compute allocation being described. Use to enable
    #   or disable compute allocation.
    #
    #   Default is `Enabled`.
    #   @return [String]
    #
    # @!attribute [rw] description
    #   Description of the compute allocation definition.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateComputeQuotaRequest AWS API Documentation
    #
    class UpdateComputeQuotaRequest < Struct.new(
      :compute_quota_id,
      :target_version,
      :compute_quota_config,
      :compute_quota_target,
      :activation_state,
      :description)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] compute_quota_arn
    #   ARN of the compute allocation definition.
    #   @return [String]
    #
    # @!attribute [rw] compute_quota_version
    #   Version of the compute allocation definition.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateComputeQuotaResponse AWS API Documentation
    #
    class UpdateComputeQuotaResponse < Struct.new(
      :compute_quota_arn,
      :compute_quota_version)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] context_name
    #   The name of the context to update.
    #   @return [String]
    #
    # @!attribute [rw] description
    #   The new description for the context.
    #   @return [String]
    #
    # @!attribute [rw] properties
    #   The new list of properties. Overwrites the current property list.
    #   @return [Hash<String,String>]
    #
    # @!attribute [rw] properties_to_remove
    #   A list of properties to remove.
    #   @return [Array<String>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateContextRequest AWS API Documentation
    #
    class UpdateContextRequest < Struct.new(
      :context_name,
      :description,
      :properties,
      :properties_to_remove)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] context_arn
    #   The Amazon Resource Name (ARN) of the context.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateContextResponse AWS API Documentation
    #
    class UpdateContextResponse < Struct.new(
      :context_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] device_fleet_name
    #   The name of the fleet.
    #   @return [String]
    #
    # @!attribute [rw] role_arn
    #   The Amazon Resource Name (ARN) of the device.
    #   @return [String]
    #
    # @!attribute [rw] description
    #   Description of the fleet.
    #   @return [String]
    #
    # @!attribute [rw] output_config
    #   Output configuration for storing sample data collected by the fleet.
    #   @return [Types::EdgeOutputConfig]
    #
    # @!attribute [rw] enable_iot_role_alias
    #   Whether to create an Amazon Web Services IoT Role Alias during
    #   device fleet creation. The name of the role alias generated will
    #   match this pattern: "SageMakerEdge-\{DeviceFleetName}".
    #
    #   For example, if your device fleet is called "demo-fleet", the name
    #   of the role alias will be "SageMakerEdge-demo-fleet".
    #   @return [Boolean]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateDeviceFleetRequest AWS API Documentation
    #
    class UpdateDeviceFleetRequest < Struct.new(
      :device_fleet_name,
      :role_arn,
      :description,
      :output_config,
      :enable_iot_role_alias)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] device_fleet_name
    #   The name of the fleet the devices belong to.
    #   @return [String]
    #
    # @!attribute [rw] devices
    #   List of devices to register with Edge Manager agent.
    #   @return [Array<Types::Device>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateDevicesRequest AWS API Documentation
    #
    class UpdateDevicesRequest < Struct.new(
      :device_fleet_name,
      :devices)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] domain_id
    #   The ID of the domain to be updated.
    #   @return [String]
    #
    # @!attribute [rw] default_user_settings
    #   A collection of settings.
    #   @return [Types::UserSettings]
    #
    # @!attribute [rw] domain_settings_for_update
    #   A collection of `DomainSettings` configuration values to update.
    #   @return [Types::DomainSettingsForUpdate]
    #
    # @!attribute [rw] app_security_group_management
    #   The entity that creates and manages the required security groups for
    #   inter-app communication in `VPCOnly` mode. Required when
    #   `CreateDomain.AppNetworkAccessType` is `VPCOnly` and
    #   `DomainSettings.RStudioServerProDomainSettings.DomainExecutionRoleArn`
    #   is provided. If setting up the domain for use with RStudio, this
    #   value must be set to `Service`.
    #   @return [String]
    #
    # @!attribute [rw] default_space_settings
    #   The default settings for shared spaces that users create in the
    #   domain.
    #   @return [Types::DefaultSpaceSettings]
    #
    # @!attribute [rw] subnet_ids
    #   The VPC subnets that Studio uses for communication.
    #
    #   If removing subnets, ensure there are no apps in the `InService`,
    #   `Pending`, or `Deleting` state.
    #   @return [Array<String>]
    #
    # @!attribute [rw] app_network_access_type
    #   Specifies the VPC used for non-EFS traffic.
    #
    #   * `PublicInternetOnly` - Non-EFS traffic is through a VPC managed by
    #     Amazon SageMaker AI, which allows direct internet access.
    #
    #   * `VpcOnly` - All Studio traffic is through the specified VPC and
    #     subnets.
    #
    #   This configuration can only be modified if there are no apps in the
    #   `InService`, `Pending`, or `Deleting` state. The configuration
    #   cannot be updated if
    #   `DomainSettings.RStudioServerProDomainSettings.DomainExecutionRoleArn`
    #   is already set or
    #   `DomainSettings.RStudioServerProDomainSettings.DomainExecutionRoleArn`
    #   is provided as part of the same request.
    #   @return [String]
    #
    # @!attribute [rw] tag_propagation
    #   Indicates whether custom tag propagation is supported for the
    #   domain. Defaults to `DISABLED`.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateDomainRequest AWS API Documentation
    #
    class UpdateDomainRequest < Struct.new(
      :domain_id,
      :default_user_settings,
      :domain_settings_for_update,
      :app_security_group_management,
      :default_space_settings,
      :subnet_ids,
      :app_network_access_type,
      :tag_propagation)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] domain_arn
    #   The Amazon Resource Name (ARN) of the domain.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateDomainResponse AWS API Documentation
    #
    class UpdateDomainResponse < Struct.new(
      :domain_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] endpoint_name
    #   The name of the endpoint whose configuration you want to update.
    #   @return [String]
    #
    # @!attribute [rw] endpoint_config_name
    #   The name of the new endpoint configuration.
    #   @return [String]
    #
    # @!attribute [rw] retain_all_variant_properties
    #   When updating endpoint resources, enables or disables the retention
    #   of [variant properties][1], such as the instance count or the
    #   variant weight. To retain the variant properties of an endpoint when
    #   updating it, set `RetainAllVariantProperties` to `true`. To use the
    #   variant properties specified in a new `EndpointConfig` call when
    #   updating an endpoint, set `RetainAllVariantProperties` to `false`.
    #   The default is `false`.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_VariantProperty.html
    #   @return [Boolean]
    #
    # @!attribute [rw] exclude_retained_variant_properties
    #   When you are updating endpoint resources with
    #   `RetainAllVariantProperties`, whose value is set to `true`,
    #   `ExcludeRetainedVariantProperties` specifies the list of type
    #   [VariantProperty][1] to override with the values provided by
    #   `EndpointConfig`. If you don't specify a value for
    #   `ExcludeRetainedVariantProperties`, no variant properties are
    #   overridden.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_VariantProperty.html
    #   @return [Array<Types::VariantProperty>]
    #
    # @!attribute [rw] deployment_config
    #   The deployment configuration for an endpoint, which contains the
    #   desired deployment strategy and rollback configurations.
    #   @return [Types::DeploymentConfig]
    #
    # @!attribute [rw] retain_deployment_config
    #   Specifies whether to reuse the last deployment configuration. The
    #   default value is false (the configuration is not reused).
    #   @return [Boolean]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateEndpointInput AWS API Documentation
    #
    class UpdateEndpointInput < Struct.new(
      :endpoint_name,
      :endpoint_config_name,
      :retain_all_variant_properties,
      :exclude_retained_variant_properties,
      :deployment_config,
      :retain_deployment_config)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] endpoint_arn
    #   The Amazon Resource Name (ARN) of the endpoint.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateEndpointOutput AWS API Documentation
    #
    class UpdateEndpointOutput < Struct.new(
      :endpoint_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] endpoint_name
    #   The name of an existing SageMaker endpoint.
    #   @return [String]
    #
    # @!attribute [rw] desired_weights_and_capacities
    #   An object that provides new capacity and weight values for a
    #   variant.
    #   @return [Array<Types::DesiredWeightAndCapacity>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateEndpointWeightsAndCapacitiesInput AWS API Documentation
    #
    class UpdateEndpointWeightsAndCapacitiesInput < Struct.new(
      :endpoint_name,
      :desired_weights_and_capacities)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] endpoint_arn
    #   The Amazon Resource Name (ARN) of the updated endpoint.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateEndpointWeightsAndCapacitiesOutput AWS API Documentation
    #
    class UpdateEndpointWeightsAndCapacitiesOutput < Struct.new(
      :endpoint_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] experiment_name
    #   The name of the experiment to update.
    #   @return [String]
    #
    # @!attribute [rw] display_name
    #   The name of the experiment as displayed. The name doesn't need to
    #   be unique. If `DisplayName` isn't specified, `ExperimentName` is
    #   displayed.
    #   @return [String]
    #
    # @!attribute [rw] description
    #   The description of the experiment.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateExperimentRequest AWS API Documentation
    #
    class UpdateExperimentRequest < Struct.new(
      :experiment_name,
      :display_name,
      :description)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] experiment_arn
    #   The Amazon Resource Name (ARN) of the experiment.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateExperimentResponse AWS API Documentation
    #
    class UpdateExperimentResponse < Struct.new(
      :experiment_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] feature_group_name
    #   The name or Amazon Resource Name (ARN) of the feature group that
    #   you're updating.
    #   @return [String]
    #
    # @!attribute [rw] feature_additions
    #   Updates the feature group. Updating a feature group is an
    #   asynchronous operation. When you get an HTTP 200 response, you've
    #   made a valid request. It takes some time after you've made a valid
    #   request for Feature Store to update the feature group.
    #   @return [Array<Types::FeatureDefinition>]
    #
    # @!attribute [rw] online_store_config
    #   Updates the feature group online store configuration.
    #   @return [Types::OnlineStoreConfigUpdate]
    #
    # @!attribute [rw] throughput_config
    #   The new throughput configuration for the feature group. You can
    #   switch between on-demand and provisioned modes or update the read /
    #   write capacity of provisioned feature groups. You can switch a
    #   feature group to on-demand only once in a 24 hour period.
    #   @return [Types::ThroughputConfigUpdate]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateFeatureGroupRequest AWS API Documentation
    #
    class UpdateFeatureGroupRequest < Struct.new(
      :feature_group_name,
      :feature_additions,
      :online_store_config,
      :throughput_config)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] feature_group_arn
    #   The Amazon Resource Number (ARN) of the feature group that you're
    #   updating.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateFeatureGroupResponse AWS API Documentation
    #
    class UpdateFeatureGroupResponse < Struct.new(
      :feature_group_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] feature_group_name
    #   The name or Amazon Resource Name (ARN) of the feature group
    #   containing the feature that you're updating.
    #   @return [String]
    #
    # @!attribute [rw] feature_name
    #   The name of the feature that you're updating.
    #   @return [String]
    #
    # @!attribute [rw] description
    #   A description that you can write to better describe the feature.
    #   @return [String]
    #
    # @!attribute [rw] parameter_additions
    #   A list of key-value pairs that you can add to better describe the
    #   feature.
    #   @return [Array<Types::FeatureParameter>]
    #
    # @!attribute [rw] parameter_removals
    #   A list of parameter keys that you can specify to remove parameters
    #   that describe your feature.
    #   @return [Array<String>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateFeatureMetadataRequest AWS API Documentation
    #
    class UpdateFeatureMetadataRequest < Struct.new(
      :feature_group_name,
      :feature_name,
      :description,
      :parameter_additions,
      :parameter_removals)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] hub_name
    #   The name of the SageMaker hub that contains the hub content you want
    #   to update. You can optionally use the hub ARN instead.
    #   @return [String]
    #
    # @!attribute [rw] hub_content_name
    #   The name of the hub content resource that you want to update.
    #   @return [String]
    #
    # @!attribute [rw] hub_content_type
    #   The content type of the resource that you want to update. Only
    #   specify a `ModelReference` resource for this API. To update a
    #   `Model` or `Notebook` resource, use the `UpdateHubContent` API
    #   instead.
    #   @return [String]
    #
    # @!attribute [rw] min_version
    #   The minimum hub content version of the referenced model that you
    #   want to use. The minimum version must be older than the latest
    #   available version of the referenced model. To support all versions
    #   of a model, set the value to `1.0.0`.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateHubContentReferenceRequest AWS API Documentation
    #
    class UpdateHubContentReferenceRequest < Struct.new(
      :hub_name,
      :hub_content_name,
      :hub_content_type,
      :min_version)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] hub_arn
    #   The ARN of the private model hub that contains the updated hub
    #   content.
    #   @return [String]
    #
    # @!attribute [rw] hub_content_arn
    #   The ARN of the hub content resource that was updated.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateHubContentReferenceResponse AWS API Documentation
    #
    class UpdateHubContentReferenceResponse < Struct.new(
      :hub_arn,
      :hub_content_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] hub_name
    #   The name of the SageMaker hub that contains the hub content you want
    #   to update. You can optionally use the hub ARN instead.
    #   @return [String]
    #
    # @!attribute [rw] hub_content_name
    #   The name of the hub content resource that you want to update.
    #   @return [String]
    #
    # @!attribute [rw] hub_content_type
    #   The content type of the resource that you want to update. Only
    #   specify a `Model` or `Notebook` resource for this API. To update a
    #   `ModelReference`, use the `UpdateHubContentReference` API instead.
    #   @return [String]
    #
    # @!attribute [rw] hub_content_version
    #   The hub content version that you want to update. For example, if you
    #   have two versions of a resource in your hub, you can update the
    #   second version.
    #   @return [String]
    #
    # @!attribute [rw] hub_content_display_name
    #   The display name of the hub content.
    #   @return [String]
    #
    # @!attribute [rw] hub_content_description
    #   The description of the hub content.
    #   @return [String]
    #
    # @!attribute [rw] hub_content_markdown
    #   A string that provides a description of the hub content. This string
    #   can include links, tables, and standard markdown formatting.
    #   @return [String]
    #
    # @!attribute [rw] hub_content_search_keywords
    #   The searchable keywords of the hub content.
    #   @return [Array<String>]
    #
    # @!attribute [rw] support_status
    #   Indicates the current status of the hub content resource.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateHubContentRequest AWS API Documentation
    #
    class UpdateHubContentRequest < Struct.new(
      :hub_name,
      :hub_content_name,
      :hub_content_type,
      :hub_content_version,
      :hub_content_display_name,
      :hub_content_description,
      :hub_content_markdown,
      :hub_content_search_keywords,
      :support_status)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] hub_arn
    #   The ARN of the private model hub that contains the updated hub
    #   content.
    #   @return [String]
    #
    # @!attribute [rw] hub_content_arn
    #   The ARN of the hub content resource that was updated.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateHubContentResponse AWS API Documentation
    #
    class UpdateHubContentResponse < Struct.new(
      :hub_arn,
      :hub_content_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] hub_name
    #   The name of the hub to update.
    #   @return [String]
    #
    # @!attribute [rw] hub_description
    #   A description of the updated hub.
    #   @return [String]
    #
    # @!attribute [rw] hub_display_name
    #   The display name of the hub.
    #   @return [String]
    #
    # @!attribute [rw] hub_search_keywords
    #   The searchable keywords for the hub.
    #   @return [Array<String>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateHubRequest AWS API Documentation
    #
    class UpdateHubRequest < Struct.new(
      :hub_name,
      :hub_description,
      :hub_display_name,
      :hub_search_keywords)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] hub_arn
    #   The Amazon Resource Name (ARN) of the updated hub.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateHubResponse AWS API Documentation
    #
    class UpdateHubResponse < Struct.new(
      :hub_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] delete_properties
    #   A list of properties to delete. Only the `Description` and
    #   `DisplayName` properties can be deleted.
    #   @return [Array<String>]
    #
    # @!attribute [rw] description
    #   The new description for the image.
    #   @return [String]
    #
    # @!attribute [rw] display_name
    #   The new display name for the image.
    #   @return [String]
    #
    # @!attribute [rw] image_name
    #   The name of the image to update.
    #   @return [String]
    #
    # @!attribute [rw] role_arn
    #   The new ARN for the IAM role that enables Amazon SageMaker AI to
    #   perform tasks on your behalf.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateImageRequest AWS API Documentation
    #
    class UpdateImageRequest < Struct.new(
      :delete_properties,
      :description,
      :display_name,
      :image_name,
      :role_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] image_arn
    #   The ARN of the image.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateImageResponse AWS API Documentation
    #
    class UpdateImageResponse < Struct.new(
      :image_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] image_name
    #   The name of the image.
    #   @return [String]
    #
    # @!attribute [rw] alias
    #   The alias of the image version.
    #   @return [String]
    #
    # @!attribute [rw] version
    #   The version of the image.
    #   @return [Integer]
    #
    # @!attribute [rw] aliases_to_add
    #   A list of aliases to add.
    #   @return [Array<String>]
    #
    # @!attribute [rw] aliases_to_delete
    #   A list of aliases to delete.
    #   @return [Array<String>]
    #
    # @!attribute [rw] vendor_guidance
    #   The availability of the image version specified by the maintainer.
    #
    #   * `NOT_PROVIDED`: The maintainers did not provide a status for image
    #     version stability.
    #
    #   * `STABLE`: The image version is stable.
    #
    #   * `TO_BE_ARCHIVED`: The image version is set to be archived. Custom
    #     image versions that are set to be archived are automatically
    #     archived after three months.
    #
    #   * `ARCHIVED`: The image version is archived. Archived image versions
    #     are not searchable and are no longer actively supported.
    #   @return [String]
    #
    # @!attribute [rw] job_type
    #   Indicates SageMaker AI job type compatibility.
    #
    #   * `TRAINING`: The image version is compatible with SageMaker AI
    #     training jobs.
    #
    #   * `INFERENCE`: The image version is compatible with SageMaker AI
    #     inference jobs.
    #
    #   * `NOTEBOOK_KERNEL`: The image version is compatible with SageMaker
    #     AI notebook kernels.
    #   @return [String]
    #
    # @!attribute [rw] ml_framework
    #   The machine learning framework vended in the image version.
    #   @return [String]
    #
    # @!attribute [rw] programming_lang
    #   The supported programming language and its version.
    #   @return [String]
    #
    # @!attribute [rw] processor
    #   Indicates CPU or GPU compatibility.
    #
    #   * `CPU`: The image version is compatible with CPU.
    #
    #   * `GPU`: The image version is compatible with GPU.
    #   @return [String]
    #
    # @!attribute [rw] horovod
    #   Indicates Horovod compatibility.
    #   @return [Boolean]
    #
    # @!attribute [rw] release_notes
    #   The maintainer description of the image version.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateImageVersionRequest AWS API Documentation
    #
    class UpdateImageVersionRequest < Struct.new(
      :image_name,
      :alias,
      :version,
      :aliases_to_add,
      :aliases_to_delete,
      :vendor_guidance,
      :job_type,
      :ml_framework,
      :programming_lang,
      :processor,
      :horovod,
      :release_notes)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] image_version_arn
    #   The ARN of the image version.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateImageVersionResponse AWS API Documentation
    #
    class UpdateImageVersionResponse < Struct.new(
      :image_version_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] inference_component_name
    #   The name of the inference component.
    #   @return [String]
    #
    # @!attribute [rw] specification
    #   Details about the resources to deploy with this inference component,
    #   including the model, container, and compute resources.
    #   @return [Types::InferenceComponentSpecification]
    #
    # @!attribute [rw] runtime_config
    #   Runtime settings for a model that is deployed with an inference
    #   component.
    #   @return [Types::InferenceComponentRuntimeConfig]
    #
    # @!attribute [rw] deployment_config
    #   The deployment configuration for the inference component. The
    #   configuration contains the desired deployment strategy and rollback
    #   settings.
    #   @return [Types::InferenceComponentDeploymentConfig]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateInferenceComponentInput AWS API Documentation
    #
    class UpdateInferenceComponentInput < Struct.new(
      :inference_component_name,
      :specification,
      :runtime_config,
      :deployment_config)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] inference_component_arn
    #   The Amazon Resource Name (ARN) of the inference component.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateInferenceComponentOutput AWS API Documentation
    #
    class UpdateInferenceComponentOutput < Struct.new(
      :inference_component_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] inference_component_name
    #   The name of the inference component to update.
    #   @return [String]
    #
    # @!attribute [rw] desired_runtime_config
    #   Runtime settings for a model that is deployed with an inference
    #   component.
    #   @return [Types::InferenceComponentRuntimeConfig]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateInferenceComponentRuntimeConfigInput AWS API Documentation
    #
    class UpdateInferenceComponentRuntimeConfigInput < Struct.new(
      :inference_component_name,
      :desired_runtime_config)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] inference_component_arn
    #   The Amazon Resource Name (ARN) of the inference component.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateInferenceComponentRuntimeConfigOutput AWS API Documentation
    #
    class UpdateInferenceComponentRuntimeConfigOutput < Struct.new(
      :inference_component_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] name
    #   The name of the inference experiment to be updated.
    #   @return [String]
    #
    # @!attribute [rw] schedule
    #   The duration for which the inference experiment will run. If the
    #   status of the inference experiment is `Created`, then you can update
    #   both the start and end dates. If the status of the inference
    #   experiment is `Running`, then you can update only the end date.
    #   @return [Types::InferenceExperimentSchedule]
    #
    # @!attribute [rw] description
    #   The description of the inference experiment.
    #   @return [String]
    #
    # @!attribute [rw] model_variants
    #   An array of `ModelVariantConfig` objects. There is one for each
    #   variant, whose infrastructure configuration you want to update.
    #   @return [Array<Types::ModelVariantConfig>]
    #
    # @!attribute [rw] data_storage_config
    #   The Amazon S3 location and configuration for storing inference
    #   request and response data.
    #   @return [Types::InferenceExperimentDataStorageConfig]
    #
    # @!attribute [rw] shadow_mode_config
    #   The configuration of `ShadowMode` inference experiment type. Use
    #   this field to specify a production variant which takes all the
    #   inference requests, and a shadow variant to which Amazon SageMaker
    #   replicates a percentage of the inference requests. For the shadow
    #   variant also specify the percentage of requests that Amazon
    #   SageMaker replicates.
    #   @return [Types::ShadowModeConfig]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateInferenceExperimentRequest AWS API Documentation
    #
    class UpdateInferenceExperimentRequest < Struct.new(
      :name,
      :schedule,
      :description,
      :model_variants,
      :data_storage_config,
      :shadow_mode_config)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] inference_experiment_arn
    #   The ARN of the updated inference experiment.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateInferenceExperimentResponse AWS API Documentation
    #
    class UpdateInferenceExperimentResponse < Struct.new(
      :inference_experiment_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] tracking_server_name
    #   The name of the MLflow Tracking Server to update.
    #   @return [String]
    #
    # @!attribute [rw] artifact_store_uri
    #   The new S3 URI for the general purpose bucket to use as the artifact
    #   store for the MLflow Tracking Server.
    #   @return [String]
    #
    # @!attribute [rw] tracking_server_size
    #   The new size for the MLflow Tracking Server.
    #   @return [String]
    #
    # @!attribute [rw] automatic_model_registration
    #   Whether to enable or disable automatic registration of new MLflow
    #   models to the SageMaker Model Registry. To enable automatic model
    #   registration, set this value to `True`. To disable automatic model
    #   registration, set this value to `False`. If not specified,
    #   `AutomaticModelRegistration` defaults to `False`
    #   @return [Boolean]
    #
    # @!attribute [rw] weekly_maintenance_window_start
    #   The new weekly maintenance window start day and time to update. The
    #   maintenance window day and time should be in Coordinated Universal
    #   Time (UTC) 24-hour standard time. For example: TUE:03:30.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateMlflowTrackingServerRequest AWS API Documentation
    #
    class UpdateMlflowTrackingServerRequest < Struct.new(
      :tracking_server_name,
      :artifact_store_uri,
      :tracking_server_size,
      :automatic_model_registration,
      :weekly_maintenance_window_start)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] tracking_server_arn
    #   The ARN of the updated MLflow Tracking Server.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateMlflowTrackingServerResponse AWS API Documentation
    #
    class UpdateMlflowTrackingServerResponse < Struct.new(
      :tracking_server_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] model_card_name
    #   The name or Amazon Resource Name (ARN) of the model card to update.
    #   @return [String]
    #
    # @!attribute [rw] content
    #   The updated model card content. Content must be in [model card JSON
    #   schema][1] and provided as a string.
    #
    #   When updating model card content, be sure to include the full
    #   content and not just updated content.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/model-cards.html#model-cards-json-schema
    #   @return [String]
    #
    # @!attribute [rw] model_card_status
    #   The approval status of the model card within your organization.
    #   Different organizations might have different criteria for model card
    #   review and approval.
    #
    #   * `Draft`: The model card is a work in progress.
    #
    #   * `PendingReview`: The model card is pending review.
    #
    #   * `Approved`: The model card is approved.
    #
    #   * `Archived`: The model card is archived. No more updates should be
    #     made to the model card, but it can still be exported.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateModelCardRequest AWS API Documentation
    #
    class UpdateModelCardRequest < Struct.new(
      :model_card_name,
      :content,
      :model_card_status)
      SENSITIVE = [:content]
      include Aws::Structure
    end

    # @!attribute [rw] model_card_arn
    #   The Amazon Resource Name (ARN) of the updated model card.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateModelCardResponse AWS API Documentation
    #
    class UpdateModelCardResponse < Struct.new(
      :model_card_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] model_package_arn
    #   The Amazon Resource Name (ARN) of the model package.
    #   @return [String]
    #
    # @!attribute [rw] model_approval_status
    #   The approval status of the model.
    #   @return [String]
    #
    # @!attribute [rw] approval_description
    #   A description for the approval status of the model.
    #   @return [String]
    #
    # @!attribute [rw] customer_metadata_properties
    #   The metadata properties associated with the model package versions.
    #   @return [Hash<String,String>]
    #
    # @!attribute [rw] customer_metadata_properties_to_remove
    #   The metadata properties associated with the model package versions
    #   to remove.
    #   @return [Array<String>]
    #
    # @!attribute [rw] additional_inference_specifications_to_add
    #   An array of additional Inference Specification objects to be added
    #   to the existing array additional Inference Specification. Total
    #   number of additional Inference Specifications can not exceed 15.
    #   Each additional Inference Specification specifies artifacts based on
    #   this model package that can be used on inference endpoints.
    #   Generally used with SageMaker Neo to store the compiled artifacts.
    #   @return [Array<Types::AdditionalInferenceSpecificationDefinition>]
    #
    # @!attribute [rw] inference_specification
    #   Specifies details about inference jobs that you can run with models
    #   based on this model package, including the following information:
    #
    #   * The Amazon ECR paths of containers that contain the inference code
    #     and model artifacts.
    #
    #   * The instance types that the model package supports for transform
    #     jobs and real-time endpoints used for inference.
    #
    #   * The input and output content formats that the model package
    #     supports for inference.
    #   @return [Types::InferenceSpecification]
    #
    # @!attribute [rw] source_uri
    #   The URI of the source for the model package.
    #   @return [String]
    #
    # @!attribute [rw] model_card
    #   The model card associated with the model package. Since
    #   `ModelPackageModelCard` is tied to a model package, it is a specific
    #   usage of a model card and its schema is simplified compared to the
    #   schema of `ModelCard`. The `ModelPackageModelCard` schema does not
    #   include `model_package_details`, and `model_overview` is composed of
    #   the `model_creator` and `model_artifact` properties. For more
    #   information about the model package model card schema, see [Model
    #   package model card schema][1]. For more information about the model
    #   card associated with the model package, see [View the Details of a
    #   Model Version][2].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/model-registry-details.html#model-card-schema
    #   [2]: https://docs.aws.amazon.com/sagemaker/latest/dg/model-registry-details.html
    #   @return [Types::ModelPackageModelCard]
    #
    # @!attribute [rw] model_life_cycle
    #   A structure describing the current state of the model in its life
    #   cycle.
    #   @return [Types::ModelLifeCycle]
    #
    # @!attribute [rw] client_token
    #   A unique token that guarantees that the call to this API is
    #   idempotent.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateModelPackageInput AWS API Documentation
    #
    class UpdateModelPackageInput < Struct.new(
      :model_package_arn,
      :model_approval_status,
      :approval_description,
      :customer_metadata_properties,
      :customer_metadata_properties_to_remove,
      :additional_inference_specifications_to_add,
      :inference_specification,
      :source_uri,
      :model_card,
      :model_life_cycle,
      :client_token)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] model_package_arn
    #   The Amazon Resource Name (ARN) of the model.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateModelPackageOutput AWS API Documentation
    #
    class UpdateModelPackageOutput < Struct.new(
      :model_package_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] monitoring_schedule_name
    #   The name of a monitoring schedule.
    #   @return [String]
    #
    # @!attribute [rw] monitoring_alert_name
    #   The name of a monitoring alert.
    #   @return [String]
    #
    # @!attribute [rw] datapoints_to_alert
    #   Within `EvaluationPeriod`, how many execution failures will raise an
    #   alert.
    #   @return [Integer]
    #
    # @!attribute [rw] evaluation_period
    #   The number of most recent monitoring executions to consider when
    #   evaluating alert status.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateMonitoringAlertRequest AWS API Documentation
    #
    class UpdateMonitoringAlertRequest < Struct.new(
      :monitoring_schedule_name,
      :monitoring_alert_name,
      :datapoints_to_alert,
      :evaluation_period)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] monitoring_schedule_arn
    #   The Amazon Resource Name (ARN) of the monitoring schedule.
    #   @return [String]
    #
    # @!attribute [rw] monitoring_alert_name
    #   The name of a monitoring alert.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateMonitoringAlertResponse AWS API Documentation
    #
    class UpdateMonitoringAlertResponse < Struct.new(
      :monitoring_schedule_arn,
      :monitoring_alert_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] monitoring_schedule_name
    #   The name of the monitoring schedule. The name must be unique within
    #   an Amazon Web Services Region within an Amazon Web Services account.
    #   @return [String]
    #
    # @!attribute [rw] monitoring_schedule_config
    #   The configuration object that specifies the monitoring schedule and
    #   defines the monitoring job.
    #   @return [Types::MonitoringScheduleConfig]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateMonitoringScheduleRequest AWS API Documentation
    #
    class UpdateMonitoringScheduleRequest < Struct.new(
      :monitoring_schedule_name,
      :monitoring_schedule_config)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] monitoring_schedule_arn
    #   The Amazon Resource Name (ARN) of the monitoring schedule.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateMonitoringScheduleResponse AWS API Documentation
    #
    class UpdateMonitoringScheduleResponse < Struct.new(
      :monitoring_schedule_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] notebook_instance_name
    #   The name of the notebook instance to update.
    #   @return [String]
    #
    # @!attribute [rw] instance_type
    #   The Amazon ML compute instance type.
    #   @return [String]
    #
    # @!attribute [rw] ip_address_type
    #   The IP address type for the notebook instance. Specify `ipv4` for
    #   IPv4-only connectivity or `dualstack` for both IPv4 and IPv6
    #   connectivity. The notebook instance must be stopped before updating
    #   this setting. When you specify `dualstack`, the subnet must support
    #   IPv6 addressing.
    #   @return [String]
    #
    # @!attribute [rw] role_arn
    #   The Amazon Resource Name (ARN) of the IAM role that SageMaker AI can
    #   assume to access the notebook instance. For more information, see
    #   [SageMaker AI Roles][1].
    #
    #   <note markdown="1"> To be able to pass this role to SageMaker AI, the caller of this API
    #   must have the `iam:PassRole` permission.
    #
    #    </note>
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html
    #   @return [String]
    #
    # @!attribute [rw] lifecycle_config_name
    #   The name of a lifecycle configuration to associate with the notebook
    #   instance. For information about lifestyle configurations, see [Step
    #   2.1: (Optional) Customize a Notebook Instance][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/notebook-lifecycle-config.html
    #   @return [String]
    #
    # @!attribute [rw] disassociate_lifecycle_config
    #   Set to `true` to remove the notebook instance lifecycle
    #   configuration currently associated with the notebook instance. This
    #   operation is idempotent. If you specify a lifecycle configuration
    #   that is not associated with the notebook instance when you call this
    #   method, it does not throw an error.
    #   @return [Boolean]
    #
    # @!attribute [rw] volume_size_in_gb
    #   The size, in GB, of the ML storage volume to attach to the notebook
    #   instance. The default value is 5 GB. ML storage volumes are
    #   encrypted, so SageMaker AI can't determine the amount of available
    #   free space on the volume. Because of this, you can increase the
    #   volume size when you update a notebook instance, but you can't
    #   decrease the volume size. If you want to decrease the size of the ML
    #   storage volume in use, create a new notebook instance with the
    #   desired size.
    #   @return [Integer]
    #
    # @!attribute [rw] default_code_repository
    #   The Git repository to associate with the notebook instance as its
    #   default code repository. This can be either the name of a Git
    #   repository stored as a resource in your account, or the URL of a Git
    #   repository in [Amazon Web Services CodeCommit][1] or in any other
    #   Git repository. When you open a notebook instance, it opens in the
    #   directory that contains this repository. For more information, see
    #   [Associating Git Repositories with SageMaker AI Notebook
    #   Instances][2].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html
    #   [2]: https://docs.aws.amazon.com/sagemaker/latest/dg/nbi-git-repo.html
    #   @return [String]
    #
    # @!attribute [rw] additional_code_repositories
    #   An array of up to three Git repositories to associate with the
    #   notebook instance. These can be either the names of Git repositories
    #   stored as resources in your account, or the URL of Git repositories
    #   in [Amazon Web Services CodeCommit][1] or in any other Git
    #   repository. These repositories are cloned at the same level as the
    #   default repository of your notebook instance. For more information,
    #   see [Associating Git Repositories with SageMaker AI Notebook
    #   Instances][2].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html
    #   [2]: https://docs.aws.amazon.com/sagemaker/latest/dg/nbi-git-repo.html
    #   @return [Array<String>]
    #
    # @!attribute [rw] accelerator_types
    #   This parameter is no longer supported. Elastic Inference (EI) is no
    #   longer available.
    #
    #   This parameter was used to specify a list of the EI instance types
    #   to associate with this notebook instance.
    #   @return [Array<String>]
    #
    # @!attribute [rw] disassociate_accelerator_types
    #   This parameter is no longer supported. Elastic Inference (EI) is no
    #   longer available.
    #
    #   This parameter was used to specify a list of the EI instance types
    #   to remove from this notebook instance.
    #   @return [Boolean]
    #
    # @!attribute [rw] disassociate_default_code_repository
    #   The name or URL of the default Git repository to remove from this
    #   notebook instance. This operation is idempotent. If you specify a
    #   Git repository that is not associated with the notebook instance
    #   when you call this method, it does not throw an error.
    #   @return [Boolean]
    #
    # @!attribute [rw] disassociate_additional_code_repositories
    #   A list of names or URLs of the default Git repositories to remove
    #   from this notebook instance. This operation is idempotent. If you
    #   specify a Git repository that is not associated with the notebook
    #   instance when you call this method, it does not throw an error.
    #   @return [Boolean]
    #
    # @!attribute [rw] root_access
    #   Whether root access is enabled or disabled for users of the notebook
    #   instance. The default value is `Enabled`.
    #
    #   <note markdown="1"> If you set this to `Disabled`, users don't have root access on the
    #   notebook instance, but lifecycle configuration scripts still run
    #   with root permissions.
    #
    #    </note>
    #   @return [String]
    #
    # @!attribute [rw] instance_metadata_service_configuration
    #   Information on the IMDS configuration of the notebook instance
    #   @return [Types::InstanceMetadataServiceConfiguration]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateNotebookInstanceInput AWS API Documentation
    #
    class UpdateNotebookInstanceInput < Struct.new(
      :notebook_instance_name,
      :instance_type,
      :ip_address_type,
      :role_arn,
      :lifecycle_config_name,
      :disassociate_lifecycle_config,
      :volume_size_in_gb,
      :default_code_repository,
      :additional_code_repositories,
      :accelerator_types,
      :disassociate_accelerator_types,
      :disassociate_default_code_repository,
      :disassociate_additional_code_repositories,
      :root_access,
      :instance_metadata_service_configuration)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] notebook_instance_lifecycle_config_name
    #   The name of the lifecycle configuration.
    #   @return [String]
    #
    # @!attribute [rw] on_create
    #   The shell script that runs only once, when you create a notebook
    #   instance. The shell script must be a base64-encoded string.
    #   @return [Array<Types::NotebookInstanceLifecycleHook>]
    #
    # @!attribute [rw] on_start
    #   The shell script that runs every time you start a notebook instance,
    #   including when you create the notebook instance. The shell script
    #   must be a base64-encoded string.
    #   @return [Array<Types::NotebookInstanceLifecycleHook>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateNotebookInstanceLifecycleConfigInput AWS API Documentation
    #
    class UpdateNotebookInstanceLifecycleConfigInput < Struct.new(
      :notebook_instance_lifecycle_config_name,
      :on_create,
      :on_start)
      SENSITIVE = []
      include Aws::Structure
    end

    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateNotebookInstanceLifecycleConfigOutput AWS API Documentation
    #
    class UpdateNotebookInstanceLifecycleConfigOutput < Aws::EmptyStructure; end

    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateNotebookInstanceOutput AWS API Documentation
    #
    class UpdateNotebookInstanceOutput < Aws::EmptyStructure; end

    # @!attribute [rw] arn
    #   The ARN of the SageMaker Partner AI App to update.
    #   @return [String]
    #
    # @!attribute [rw] maintenance_config
    #   Maintenance configuration settings for the SageMaker Partner AI App.
    #   @return [Types::PartnerAppMaintenanceConfig]
    #
    # @!attribute [rw] tier
    #   Indicates the instance type and size of the cluster attached to the
    #   SageMaker Partner AI App.
    #   @return [String]
    #
    # @!attribute [rw] application_config
    #   Configuration settings for the SageMaker Partner AI App.
    #   @return [Types::PartnerAppConfig]
    #
    # @!attribute [rw] enable_iam_session_based_identity
    #   When set to `TRUE`, the SageMaker Partner AI App sets the Amazon Web
    #   Services IAM session name or the authenticated IAM user as the
    #   identity of the SageMaker Partner AI App user.
    #   @return [Boolean]
    #
    # @!attribute [rw] client_token
    #   A unique token that guarantees that the call to this API is
    #   idempotent.
    #
    #   **A suitable default value is auto-generated.** You should normally
    #   not need to pass this option.
    #   @return [String]
    #
    # @!attribute [rw] tags
    #   Each tag consists of a key and an optional value. Tag keys must be
    #   unique per resource.
    #   @return [Array<Types::Tag>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdatePartnerAppRequest AWS API Documentation
    #
    class UpdatePartnerAppRequest < Struct.new(
      :arn,
      :maintenance_config,
      :tier,
      :application_config,
      :enable_iam_session_based_identity,
      :client_token,
      :tags)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] arn
    #   The ARN of the SageMaker Partner AI App that was updated.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdatePartnerAppResponse AWS API Documentation
    #
    class UpdatePartnerAppResponse < Struct.new(
      :arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] pipeline_execution_arn
    #   The Amazon Resource Name (ARN) of the pipeline execution.
    #   @return [String]
    #
    # @!attribute [rw] pipeline_execution_description
    #   The description of the pipeline execution.
    #   @return [String]
    #
    # @!attribute [rw] pipeline_execution_display_name
    #   The display name of the pipeline execution.
    #   @return [String]
    #
    # @!attribute [rw] parallelism_configuration
    #   This configuration, if specified, overrides the parallelism
    #   configuration of the parent pipeline for this specific run.
    #   @return [Types::ParallelismConfiguration]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdatePipelineExecutionRequest AWS API Documentation
    #
    class UpdatePipelineExecutionRequest < Struct.new(
      :pipeline_execution_arn,
      :pipeline_execution_description,
      :pipeline_execution_display_name,
      :parallelism_configuration)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] pipeline_execution_arn
    #   The Amazon Resource Name (ARN) of the updated pipeline execution.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdatePipelineExecutionResponse AWS API Documentation
    #
    class UpdatePipelineExecutionResponse < Struct.new(
      :pipeline_execution_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] pipeline_name
    #   The name of the pipeline to update.
    #   @return [String]
    #
    # @!attribute [rw] pipeline_display_name
    #   The display name of the pipeline.
    #   @return [String]
    #
    # @!attribute [rw] pipeline_definition
    #   The JSON pipeline definition.
    #   @return [String]
    #
    # @!attribute [rw] pipeline_definition_s3_location
    #   The location of the pipeline definition stored in Amazon S3. If
    #   specified, SageMaker will retrieve the pipeline definition from this
    #   location.
    #   @return [Types::PipelineDefinitionS3Location]
    #
    # @!attribute [rw] pipeline_description
    #   The description of the pipeline.
    #   @return [String]
    #
    # @!attribute [rw] role_arn
    #   The Amazon Resource Name (ARN) that the pipeline uses to execute.
    #   @return [String]
    #
    # @!attribute [rw] parallelism_configuration
    #   If specified, it applies to all executions of this pipeline by
    #   default.
    #   @return [Types::ParallelismConfiguration]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdatePipelineRequest AWS API Documentation
    #
    class UpdatePipelineRequest < Struct.new(
      :pipeline_name,
      :pipeline_display_name,
      :pipeline_definition,
      :pipeline_definition_s3_location,
      :pipeline_description,
      :role_arn,
      :parallelism_configuration)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] pipeline_arn
    #   The Amazon Resource Name (ARN) of the updated pipeline.
    #   @return [String]
    #
    # @!attribute [rw] pipeline_version_id
    #   The ID of the pipeline version.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdatePipelineResponse AWS API Documentation
    #
    class UpdatePipelineResponse < Struct.new(
      :pipeline_arn,
      :pipeline_version_id)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] pipeline_arn
    #   The Amazon Resource Name (ARN) of the pipeline.
    #   @return [String]
    #
    # @!attribute [rw] pipeline_version_id
    #   The pipeline version ID to update.
    #   @return [Integer]
    #
    # @!attribute [rw] pipeline_version_display_name
    #   The display name of the pipeline version.
    #   @return [String]
    #
    # @!attribute [rw] pipeline_version_description
    #   The description of the pipeline version.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdatePipelineVersionRequest AWS API Documentation
    #
    class UpdatePipelineVersionRequest < Struct.new(
      :pipeline_arn,
      :pipeline_version_id,
      :pipeline_version_display_name,
      :pipeline_version_description)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] pipeline_arn
    #   The Amazon Resource Name (ARN) of the pipeline.
    #   @return [String]
    #
    # @!attribute [rw] pipeline_version_id
    #   The ID of the pipeline version.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdatePipelineVersionResponse AWS API Documentation
    #
    class UpdatePipelineVersionResponse < Struct.new(
      :pipeline_arn,
      :pipeline_version_id)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] project_name
    #   The name of the project.
    #   @return [String]
    #
    # @!attribute [rw] project_description
    #   The description for the project.
    #   @return [String]
    #
    # @!attribute [rw] service_catalog_provisioning_update_details
    #   The product ID and provisioning artifact ID to provision a service
    #   catalog. The provisioning artifact ID will default to the latest
    #   provisioning artifact ID of the product, if you don't provide the
    #   provisioning artifact ID. For more information, see [What is Amazon
    #   Web Services Service Catalog][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/servicecatalog/latest/adminguide/introduction.html
    #   @return [Types::ServiceCatalogProvisioningUpdateDetails]
    #
    # @!attribute [rw] tags
    #   An array of key-value pairs. You can use tags to categorize your
    #   Amazon Web Services resources in different ways, for example, by
    #   purpose, owner, or environment. For more information, see [Tagging
    #   Amazon Web Services Resources][1]. In addition, the project must
    #   have tag update constraints set in order to include this parameter
    #   in the request. For more information, see [Amazon Web Services
    #   Service Catalog Tag Update Constraints][2].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html
    #   [2]: https://docs.aws.amazon.com/servicecatalog/latest/adminguide/constraints-resourceupdate.html
    #   @return [Array<Types::Tag>]
    #
    # @!attribute [rw] template_providers_to_update
    #   The template providers to update in the project.
    #   @return [Array<Types::UpdateTemplateProvider>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateProjectInput AWS API Documentation
    #
    class UpdateProjectInput < Struct.new(
      :project_name,
      :project_description,
      :service_catalog_provisioning_update_details,
      :tags,
      :template_providers_to_update)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] project_arn
    #   The Amazon Resource Name (ARN) of the project.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateProjectOutput AWS API Documentation
    #
    class UpdateProjectOutput < Struct.new(
      :project_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] domain_id
    #   The ID of the associated domain.
    #   @return [String]
    #
    # @!attribute [rw] space_name
    #   The name of the space.
    #   @return [String]
    #
    # @!attribute [rw] space_settings
    #   A collection of space settings.
    #   @return [Types::SpaceSettings]
    #
    # @!attribute [rw] space_display_name
    #   The name of the space that appears in the Amazon SageMaker Studio
    #   UI.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateSpaceRequest AWS API Documentation
    #
    class UpdateSpaceRequest < Struct.new(
      :domain_id,
      :space_name,
      :space_settings,
      :space_display_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] space_arn
    #   The space's Amazon Resource Name (ARN).
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateSpaceResponse AWS API Documentation
    #
    class UpdateSpaceResponse < Struct.new(
      :space_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # Contains configuration details for updating an existing template
    # provider in the project.
    #
    # @!attribute [rw] cfn_template_provider
    #   The CloudFormation template provider configuration to update.
    #   @return [Types::CfnUpdateTemplateProvider]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateTemplateProvider AWS API Documentation
    #
    class UpdateTemplateProvider < Struct.new(
      :cfn_template_provider)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] training_job_name
    #   The name of a training job to update the Debugger profiling
    #   configuration.
    #   @return [String]
    #
    # @!attribute [rw] profiler_config
    #   Configuration information for Amazon SageMaker Debugger system
    #   monitoring, framework profiling, and storage paths.
    #   @return [Types::ProfilerConfigForUpdate]
    #
    # @!attribute [rw] profiler_rule_configurations
    #   Configuration information for Amazon SageMaker Debugger rules for
    #   profiling system and framework metrics.
    #   @return [Array<Types::ProfilerRuleConfiguration>]
    #
    # @!attribute [rw] resource_config
    #   The training job `ResourceConfig` to update warm pool retention
    #   length.
    #   @return [Types::ResourceConfigForUpdate]
    #
    # @!attribute [rw] remote_debug_config
    #   Configuration for remote debugging while the training job is
    #   running. You can update the remote debugging configuration when the
    #   `SecondaryStatus` of the job is `Downloading` or `Training`.To learn
    #   more about the remote debugging functionality of SageMaker, see
    #   [Access a training container through Amazon Web Services Systems
    #   Manager (SSM) for remote debugging][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/train-remote-debugging.html
    #   @return [Types::RemoteDebugConfigForUpdate]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateTrainingJobRequest AWS API Documentation
    #
    class UpdateTrainingJobRequest < Struct.new(
      :training_job_name,
      :profiler_config,
      :profiler_rule_configurations,
      :resource_config,
      :remote_debug_config)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] training_job_arn
    #   The Amazon Resource Name (ARN) of the training job.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateTrainingJobResponse AWS API Documentation
    #
    class UpdateTrainingJobResponse < Struct.new(
      :training_job_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] trial_component_name
    #   The name of the component to update.
    #   @return [String]
    #
    # @!attribute [rw] display_name
    #   The name of the component as displayed. The name doesn't need to be
    #   unique. If `DisplayName` isn't specified, `TrialComponentName` is
    #   displayed.
    #   @return [String]
    #
    # @!attribute [rw] status
    #   The new status of the component.
    #   @return [Types::TrialComponentStatus]
    #
    # @!attribute [rw] start_time
    #   When the component started.
    #   @return [Time]
    #
    # @!attribute [rw] end_time
    #   When the component ended.
    #   @return [Time]
    #
    # @!attribute [rw] parameters
    #   Replaces all of the component's hyperparameters with the specified
    #   hyperparameters or add new hyperparameters. Existing hyperparameters
    #   are replaced if the trial component is updated with an identical
    #   hyperparameter key.
    #   @return [Hash<String,Types::TrialComponentParameterValue>]
    #
    # @!attribute [rw] parameters_to_remove
    #   The hyperparameters to remove from the component.
    #   @return [Array<String>]
    #
    # @!attribute [rw] input_artifacts
    #   Replaces all of the component's input artifacts with the specified
    #   artifacts or adds new input artifacts. Existing input artifacts are
    #   replaced if the trial component is updated with an identical input
    #   artifact key.
    #   @return [Hash<String,Types::TrialComponentArtifact>]
    #
    # @!attribute [rw] input_artifacts_to_remove
    #   The input artifacts to remove from the component.
    #   @return [Array<String>]
    #
    # @!attribute [rw] output_artifacts
    #   Replaces all of the component's output artifacts with the specified
    #   artifacts or adds new output artifacts. Existing output artifacts
    #   are replaced if the trial component is updated with an identical
    #   output artifact key.
    #   @return [Hash<String,Types::TrialComponentArtifact>]
    #
    # @!attribute [rw] output_artifacts_to_remove
    #   The output artifacts to remove from the component.
    #   @return [Array<String>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateTrialComponentRequest AWS API Documentation
    #
    class UpdateTrialComponentRequest < Struct.new(
      :trial_component_name,
      :display_name,
      :status,
      :start_time,
      :end_time,
      :parameters,
      :parameters_to_remove,
      :input_artifacts,
      :input_artifacts_to_remove,
      :output_artifacts,
      :output_artifacts_to_remove)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] trial_component_arn
    #   The Amazon Resource Name (ARN) of the trial component.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateTrialComponentResponse AWS API Documentation
    #
    class UpdateTrialComponentResponse < Struct.new(
      :trial_component_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] trial_name
    #   The name of the trial to update.
    #   @return [String]
    #
    # @!attribute [rw] display_name
    #   The name of the trial as displayed. The name doesn't need to be
    #   unique. If `DisplayName` isn't specified, `TrialName` is displayed.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateTrialRequest AWS API Documentation
    #
    class UpdateTrialRequest < Struct.new(
      :trial_name,
      :display_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] trial_arn
    #   The Amazon Resource Name (ARN) of the trial.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateTrialResponse AWS API Documentation
    #
    class UpdateTrialResponse < Struct.new(
      :trial_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] domain_id
    #   The domain ID.
    #   @return [String]
    #
    # @!attribute [rw] user_profile_name
    #   The user profile name.
    #   @return [String]
    #
    # @!attribute [rw] user_settings
    #   A collection of settings.
    #   @return [Types::UserSettings]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateUserProfileRequest AWS API Documentation
    #
    class UpdateUserProfileRequest < Struct.new(
      :domain_id,
      :user_profile_name,
      :user_settings)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] user_profile_arn
    #   The user profile Amazon Resource Name (ARN).
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateUserProfileResponse AWS API Documentation
    #
    class UpdateUserProfileResponse < Struct.new(
      :user_profile_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] workforce_name
    #   The name of the private workforce that you want to update. You can
    #   find your workforce name by using the [ListWorkforces][1] operation.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ListWorkforces.html
    #   @return [String]
    #
    # @!attribute [rw] source_ip_config
    #   A list of one to ten worker IP address ranges ([CIDRs][1]) that can
    #   be used to access tasks assigned to this workforce.
    #
    #   Maximum: Ten CIDR values
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html
    #   @return [Types::SourceIpConfig]
    #
    # @!attribute [rw] oidc_config
    #   Use this parameter to update your OIDC Identity Provider (IdP)
    #   configuration for a workforce made using your own IdP.
    #   @return [Types::OidcConfig]
    #
    # @!attribute [rw] workforce_vpc_config
    #   Use this parameter to update your VPC configuration for a workforce.
    #   @return [Types::WorkforceVpcConfigRequest]
    #
    # @!attribute [rw] ip_address_type
    #   Use this parameter to specify whether you want `IPv4` only or
    #   `dualstack` (`IPv4` and `IPv6`) to support your labeling workforce.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateWorkforceRequest AWS API Documentation
    #
    class UpdateWorkforceRequest < Struct.new(
      :workforce_name,
      :source_ip_config,
      :oidc_config,
      :workforce_vpc_config,
      :ip_address_type)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] workforce
    #   A single private workforce. You can create one private work force in
    #   each Amazon Web Services Region. By default, any workforce-related
    #   API operation used in a specific region will apply to the workforce
    #   created in that region. To learn how to create a private workforce,
    #   see [Create a Private Workforce][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/sms-workforce-create-private.html
    #   @return [Types::Workforce]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateWorkforceResponse AWS API Documentation
    #
    class UpdateWorkforceResponse < Struct.new(
      :workforce)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] workteam_name
    #   The name of the work team to update.
    #   @return [String]
    #
    # @!attribute [rw] member_definitions
    #   A list of `MemberDefinition` objects that contains objects that
    #   identify the workers that make up the work team.
    #
    #   Workforces can be created using Amazon Cognito or your own OIDC
    #   Identity Provider (IdP). For private workforces created using Amazon
    #   Cognito use `CognitoMemberDefinition`. For workforces created using
    #   your own OIDC identity provider (IdP) use `OidcMemberDefinition`.
    #   You should not provide input for both of these parameters in a
    #   single request.
    #
    #   For workforces created using Amazon Cognito, private work teams
    #   correspond to Amazon Cognito *user groups* within the user pool used
    #   to create a workforce. All of the `CognitoMemberDefinition` objects
    #   that make up the member definition must have the same `ClientId` and
    #   `UserPool` values. To add a Amazon Cognito user group to an existing
    #   worker pool, see [Adding groups to a User Pool](). For more
    #   information about user pools, see [Amazon Cognito User Pools][1].
    #
    #   For workforces created using your own OIDC IdP, specify the user
    #   groups that you want to include in your private work team in
    #   `OidcMemberDefinition` by listing those groups in `Groups`. Be aware
    #   that user groups that are already in the work team must also be
    #   listed in `Groups` when you make this request to remain on the work
    #   team. If you do not include these user groups, they will no longer
    #   be associated with the work team you update.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools.html
    #   @return [Array<Types::MemberDefinition>]
    #
    # @!attribute [rw] description
    #   An updated description for the work team.
    #   @return [String]
    #
    # @!attribute [rw] notification_configuration
    #   Configures SNS topic notifications for available or expiring work
    #   items
    #   @return [Types::NotificationConfiguration]
    #
    # @!attribute [rw] worker_access_configuration
    #   Use this optional parameter to constrain access to an Amazon S3
    #   resource based on the IP address using supported IAM global
    #   condition keys. The Amazon S3 resource is accessed in the worker
    #   portal using a Amazon S3 presigned URL.
    #   @return [Types::WorkerAccessConfiguration]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateWorkteamRequest AWS API Documentation
    #
    class UpdateWorkteamRequest < Struct.new(
      :workteam_name,
      :member_definitions,
      :description,
      :notification_configuration,
      :worker_access_configuration)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] workteam
    #   A `Workteam` object that describes the updated work team.
    #   @return [Types::Workteam]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateWorkteamResponse AWS API Documentation
    #
    class UpdateWorkteamResponse < Struct.new(
      :workteam)
      SENSITIVE = []
      include Aws::Structure
    end

    # Information about the user who created or modified a SageMaker
    # resource.
    #
    # @!attribute [rw] user_profile_arn
    #   The Amazon Resource Name (ARN) of the user's profile.
    #   @return [String]
    #
    # @!attribute [rw] user_profile_name
    #   The name of the user's profile.
    #   @return [String]
    #
    # @!attribute [rw] domain_id
    #   The domain associated with the user.
    #   @return [String]
    #
    # @!attribute [rw] iam_identity
    #   The IAM Identity details associated with the user. These details are
    #   associated with model package groups, model packages, and project
    #   entities only.
    #   @return [Types::IamIdentity]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UserContext AWS API Documentation
    #
    class UserContext < Struct.new(
      :user_profile_arn,
      :user_profile_name,
      :domain_id,
      :iam_identity)
      SENSITIVE = []
      include Aws::Structure
    end

    # The user profile details.
    #
    # @!attribute [rw] domain_id
    #   The domain ID.
    #   @return [String]
    #
    # @!attribute [rw] user_profile_name
    #   The user profile name.
    #   @return [String]
    #
    # @!attribute [rw] status
    #   The status.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   The creation time.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time
    #   The last modified time.
    #   @return [Time]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UserProfileDetails AWS API Documentation
    #
    class UserProfileDetails < Struct.new(
      :domain_id,
      :user_profile_name,
      :status,
      :creation_time,
      :last_modified_time)
      SENSITIVE = []
      include Aws::Structure
    end

    # A collection of settings that apply to users in a domain. These
    # settings are specified when the `CreateUserProfile` API is called, and
    # as `DefaultUserSettings` when the `CreateDomain` API is called.
    #
    # `SecurityGroups` is aggregated when specified in both calls. For all
    # other settings in `UserSettings`, the values specified in
    # `CreateUserProfile` take precedence over those specified in
    # `CreateDomain`.
    #
    # @!attribute [rw] execution_role
    #   The execution role for the user.
    #
    #   SageMaker applies this setting only to private spaces that the user
    #   creates in the domain. SageMaker doesn't apply this setting to
    #   shared spaces.
    #   @return [String]
    #
    # @!attribute [rw] security_groups
    #   The security groups for the Amazon Virtual Private Cloud (VPC) that
    #   the domain uses for communication.
    #
    #   Optional when the `CreateDomain.AppNetworkAccessType` parameter is
    #   set to `PublicInternetOnly`.
    #
    #   Required when the `CreateDomain.AppNetworkAccessType` parameter is
    #   set to `VpcOnly`, unless specified as part of the
    #   `DefaultUserSettings` for the domain.
    #
    #   Amazon SageMaker AI adds a security group to allow NFS traffic from
    #   Amazon SageMaker AI Studio. Therefore, the number of security groups
    #   that you can specify is one less than the maximum number shown.
    #
    #   SageMaker applies these settings only to private spaces that the
    #   user creates in the domain. SageMaker doesn't apply these settings
    #   to shared spaces.
    #   @return [Array<String>]
    #
    # @!attribute [rw] sharing_settings
    #   Specifies options for sharing Amazon SageMaker AI Studio notebooks.
    #   @return [Types::SharingSettings]
    #
    # @!attribute [rw] jupyter_server_app_settings
    #   The Jupyter server's app settings.
    #   @return [Types::JupyterServerAppSettings]
    #
    # @!attribute [rw] kernel_gateway_app_settings
    #   The kernel gateway app settings.
    #   @return [Types::KernelGatewayAppSettings]
    #
    # @!attribute [rw] tensor_board_app_settings
    #   The TensorBoard app settings.
    #   @return [Types::TensorBoardAppSettings]
    #
    # @!attribute [rw] r_studio_server_pro_app_settings
    #   A collection of settings that configure user interaction with the
    #   `RStudioServerPro` app.
    #   @return [Types::RStudioServerProAppSettings]
    #
    # @!attribute [rw] r_session_app_settings
    #   A collection of settings that configure the `RSessionGateway` app.
    #   @return [Types::RSessionAppSettings]
    #
    # @!attribute [rw] canvas_app_settings
    #   The Canvas app settings.
    #
    #   SageMaker applies these settings only to private spaces that
    #   SageMaker creates for the Canvas app.
    #   @return [Types::CanvasAppSettings]
    #
    # @!attribute [rw] code_editor_app_settings
    #   The Code Editor application settings.
    #
    #   SageMaker applies these settings only to private spaces that the
    #   user creates in the domain. SageMaker doesn't apply these settings
    #   to shared spaces.
    #   @return [Types::CodeEditorAppSettings]
    #
    # @!attribute [rw] jupyter_lab_app_settings
    #   The settings for the JupyterLab application.
    #
    #   SageMaker applies these settings only to private spaces that the
    #   user creates in the domain. SageMaker doesn't apply these settings
    #   to shared spaces.
    #   @return [Types::JupyterLabAppSettings]
    #
    # @!attribute [rw] space_storage_settings
    #   The storage settings for a space.
    #
    #   SageMaker applies these settings only to private spaces that the
    #   user creates in the domain. SageMaker doesn't apply these settings
    #   to shared spaces.
    #   @return [Types::DefaultSpaceStorageSettings]
    #
    # @!attribute [rw] default_landing_uri
    #   The default experience that the user is directed to when accessing
    #   the domain. The supported values are:
    #
    #   * `studio::`: Indicates that Studio is the default experience. This
    #     value can only be passed if `StudioWebPortal` is set to `ENABLED`.
    #
    #   * `app:JupyterServer:`: Indicates that Studio Classic is the default
    #     experience.
    #   @return [String]
    #
    # @!attribute [rw] studio_web_portal
    #   Whether the user can access Studio. If this value is set to
    #   `DISABLED`, the user cannot access Studio, even if that is the
    #   default experience for the domain.
    #   @return [String]
    #
    # @!attribute [rw] custom_posix_user_config
    #   Details about the POSIX identity that is used for file system
    #   operations.
    #
    #   SageMaker applies these settings only to private spaces that the
    #   user creates in the domain. SageMaker doesn't apply these settings
    #   to shared spaces.
    #   @return [Types::CustomPosixUserConfig]
    #
    # @!attribute [rw] custom_file_system_configs
    #   The settings for assigning a custom file system to a user profile.
    #   Permitted users can access this file system in Amazon SageMaker AI
    #   Studio.
    #
    #   SageMaker applies these settings only to private spaces that the
    #   user creates in the domain. SageMaker doesn't apply these settings
    #   to shared spaces.
    #   @return [Array<Types::CustomFileSystemConfig>]
    #
    # @!attribute [rw] studio_web_portal_settings
    #   Studio settings. If these settings are applied on a user level, they
    #   take priority over the settings applied on a domain level.
    #   @return [Types::StudioWebPortalSettings]
    #
    # @!attribute [rw] auto_mount_home_efs
    #   Indicates whether auto-mounting of an EFS volume is supported for
    #   the user profile. The `DefaultAsDomain` value is only supported for
    #   user profiles. Do not use the `DefaultAsDomain` value when setting
    #   this parameter for a domain.
    #
    #   SageMaker applies this setting only to private spaces that the user
    #   creates in the domain. SageMaker doesn't apply this setting to
    #   shared spaces.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UserSettings AWS API Documentation
    #
    class UserSettings < Struct.new(
      :execution_role,
      :security_groups,
      :sharing_settings,
      :jupyter_server_app_settings,
      :kernel_gateway_app_settings,
      :tensor_board_app_settings,
      :r_studio_server_pro_app_settings,
      :r_session_app_settings,
      :canvas_app_settings,
      :code_editor_app_settings,
      :jupyter_lab_app_settings,
      :space_storage_settings,
      :default_landing_uri,
      :studio_web_portal,
      :custom_posix_user_config,
      :custom_file_system_configs,
      :studio_web_portal_settings,
      :auto_mount_home_efs)
      SENSITIVE = []
      include Aws::Structure
    end

    # Specifies a production variant property type for an Endpoint.
    #
    # If you are updating an endpoint with the `RetainAllVariantProperties`
    # option of [UpdateEndpointInput][1] set to `true`, the
    # `VariantProperty` objects listed in the
    # `ExcludeRetainedVariantProperties` parameter of
    # [UpdateEndpointInput][1] override the existing variant properties of
    # the endpoint.
    #
    #
    #
    # [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateEndpoint.html
    #
    # @!attribute [rw] variant_property_type
    #   The type of variant property. The supported values are:
    #
    #   * `DesiredInstanceCount`: Overrides the existing variant instance
    #     counts using the `InitialInstanceCount` values in the
    #     `ProductionVariants` of [CreateEndpointConfig][1].
    #
    #   * `DesiredWeight`: Overrides the existing variant weights using the
    #     `InitialVariantWeight` values in the `ProductionVariants` of
    #     [CreateEndpointConfig][1].
    #
    #   * `DataCaptureConfig`: (Not currently supported.)
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpointConfig.html
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/VariantProperty AWS API Documentation
    #
    class VariantProperty < Struct.new(
      :variant_property_type)
      SENSITIVE = []
      include Aws::Structure
    end

    # Configuration for your vector collection type.
    #
    # @!attribute [rw] dimension
    #   The number of elements in your vector.
    #   @return [Integer]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/VectorConfig AWS API Documentation
    #
    class VectorConfig < Struct.new(
      :dimension)
      SENSITIVE = []
      include Aws::Structure
    end

    # A lineage entity connected to the starting entity(ies).
    #
    # @!attribute [rw] arn
    #   The Amazon Resource Name (ARN) of the lineage entity resource.
    #   @return [String]
    #
    # @!attribute [rw] type
    #   The type of the lineage entity resource. For example: `DataSet`,
    #   `Model`, `Endpoint`, etc...
    #   @return [String]
    #
    # @!attribute [rw] lineage_type
    #   The type of resource of the lineage entity.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/Vertex AWS API Documentation
    #
    class Vertex < Struct.new(
      :arn,
      :type,
      :lineage_type)
      SENSITIVE = []
      include Aws::Structure
    end

    # The list of key-value pairs used to filter your search results. If a
    # search result contains a key from your list, it is included in the
    # final search response if the value associated with the key in the
    # result matches the value you specified. If the value doesn't match,
    # the result is excluded from the search response. Any resources that
    # don't have a key from the list that you've provided will also be
    # included in the search response.
    #
    # @!attribute [rw] key
    #   The key that specifies the tag that you're using to filter the
    #   search results. It must be in the following format: `Tags.<key>`.
    #   @return [String]
    #
    # @!attribute [rw] value
    #   The value for the tag that you're using to filter the search
    #   results.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/VisibilityConditions AWS API Documentation
    #
    class VisibilityConditions < Struct.new(
      :key,
      :value)
      SENSITIVE = []
      include Aws::Structure
    end

    # Specifies an Amazon Virtual Private Cloud (VPC) that your SageMaker
    # jobs, hosted models, and compute resources have access to. You can
    # control access to and from your resources by configuring a VPC. For
    # more information, see [Give SageMaker Access to Resources in your
    # Amazon VPC][1].
    #
    #
    #
    # [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/infrastructure-give-access.html
    #
    # @!attribute [rw] security_group_ids
    #   The VPC security group IDs, in the form `sg-xxxxxxxx`. Specify the
    #   security groups for the VPC that is specified in the `Subnets`
    #   field.
    #   @return [Array<String>]
    #
    # @!attribute [rw] subnets
    #   The ID of the subnets in the VPC to which you want to connect your
    #   training job or model. For information about the availability of
    #   specific instance types, see [Supported Instance Types and
    #   Availability Zones][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/instance-types-az.html
    #   @return [Array<String>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/VpcConfig AWS API Documentation
    #
    class VpcConfig < Struct.new(
      :security_group_ids,
      :subnets)
      SENSITIVE = []
      include Aws::Structure
    end

    # Status and billing information about the warm pool.
    #
    # @!attribute [rw] status
    #   The status of the warm pool.
    #
    #   * `InUse`: The warm pool is in use for the training job.
    #
    #   * `Available`: The warm pool is available to reuse for a matching
    #     training job.
    #
    #   * `Reused`: The warm pool moved to a matching training job for
    #     reuse.
    #
    #   * `Terminated`: The warm pool is no longer available. Warm pools are
    #     unavailable if they are terminated by a user, terminated for a
    #     patch update, or terminated for exceeding the specified
    #     `KeepAlivePeriodInSeconds`.
    #   @return [String]
    #
    # @!attribute [rw] resource_retained_billable_time_in_seconds
    #   The billable time in seconds used by the warm pool. Billable time
    #   refers to the absolute wall-clock time.
    #
    #   Multiply `ResourceRetainedBillableTimeInSeconds` by the number of
    #   instances (`InstanceCount`) in your training cluster to get the
    #   total compute time SageMaker bills you if you run warm pool
    #   training. The formula is as follows:
    #   `ResourceRetainedBillableTimeInSeconds * InstanceCount`.
    #   @return [Integer]
    #
    # @!attribute [rw] reused_by_job
    #   The name of the matching training job that reused the warm pool.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/WarmPoolStatus AWS API Documentation
    #
    class WarmPoolStatus < Struct.new(
      :status,
      :resource_retained_billable_time_in_seconds,
      :reused_by_job)
      SENSITIVE = []
      include Aws::Structure
    end

    # Use this optional parameter to constrain access to an Amazon S3
    # resource based on the IP address using supported IAM global condition
    # keys. The Amazon S3 resource is accessed in the worker portal using a
    # Amazon S3 presigned URL.
    #
    # @!attribute [rw] s3_presign
    #   Defines any Amazon S3 resource constraints.
    #   @return [Types::S3Presign]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/WorkerAccessConfiguration AWS API Documentation
    #
    class WorkerAccessConfiguration < Struct.new(
      :s3_presign)
      SENSITIVE = []
      include Aws::Structure
    end

    # A single private workforce, which is automatically created when you
    # create your first private work team. You can create one private work
    # force in each Amazon Web Services Region. By default, any
    # workforce-related API operation used in a specific region will apply
    # to the workforce created in that region. To learn how to create a
    # private workforce, see [Create a Private Workforce][1].
    #
    #
    #
    # [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/sms-workforce-create-private.html
    #
    # @!attribute [rw] workforce_name
    #   The name of the private workforce.
    #   @return [String]
    #
    # @!attribute [rw] workforce_arn
    #   The Amazon Resource Name (ARN) of the private workforce.
    #   @return [String]
    #
    # @!attribute [rw] last_updated_date
    #   The most recent date that [UpdateWorkforce][1] was used to
    #   successfully add one or more IP address ranges ([CIDRs][2]) to a
    #   private workforce's allow list.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateWorkforce.html
    #   [2]: https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html
    #   @return [Time]
    #
    # @!attribute [rw] source_ip_config
    #   A list of one to ten IP address ranges ([CIDRs][1]) to be added to
    #   the workforce allow list. By default, a workforce isn't restricted
    #   to specific IP addresses.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html
    #   @return [Types::SourceIpConfig]
    #
    # @!attribute [rw] sub_domain
    #   The subdomain for your OIDC Identity Provider.
    #   @return [String]
    #
    # @!attribute [rw] cognito_config
    #   The configuration of an Amazon Cognito workforce. A single Cognito
    #   workforce is created using and corresponds to a single [ Amazon
    #   Cognito user pool][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools.html
    #   @return [Types::CognitoConfig]
    #
    # @!attribute [rw] oidc_config
    #   The configuration of an OIDC Identity Provider (IdP) private
    #   workforce.
    #   @return [Types::OidcConfigForResponse]
    #
    # @!attribute [rw] create_date
    #   The date that the workforce is created.
    #   @return [Time]
    #
    # @!attribute [rw] workforce_vpc_config
    #   The configuration of a VPC workforce.
    #   @return [Types::WorkforceVpcConfigResponse]
    #
    # @!attribute [rw] status
    #   The status of your workforce.
    #   @return [String]
    #
    # @!attribute [rw] failure_reason
    #   The reason your workforce failed.
    #   @return [String]
    #
    # @!attribute [rw] ip_address_type
    #   The IP address type you specify - either `IPv4` only or `dualstack`
    #   (`IPv4` and `IPv6`) - to support your labeling workforce.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/Workforce AWS API Documentation
    #
    class Workforce < Struct.new(
      :workforce_name,
      :workforce_arn,
      :last_updated_date,
      :source_ip_config,
      :sub_domain,
      :cognito_config,
      :oidc_config,
      :create_date,
      :workforce_vpc_config,
      :status,
      :failure_reason,
      :ip_address_type)
      SENSITIVE = []
      include Aws::Structure
    end

    # The VPC object you use to create or update a workforce.
    #
    # @!attribute [rw] vpc_id
    #   The ID of the VPC that the workforce uses for communication.
    #   @return [String]
    #
    # @!attribute [rw] security_group_ids
    #   The VPC security group IDs, in the form `sg-xxxxxxxx`. The security
    #   groups must be for the same VPC as specified in the subnet.
    #   @return [Array<String>]
    #
    # @!attribute [rw] subnets
    #   The ID of the subnets in the VPC that you want to connect.
    #   @return [Array<String>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/WorkforceVpcConfigRequest AWS API Documentation
    #
    class WorkforceVpcConfigRequest < Struct.new(
      :vpc_id,
      :security_group_ids,
      :subnets)
      SENSITIVE = []
      include Aws::Structure
    end

    # A VpcConfig object that specifies the VPC that you want your workforce
    # to connect to.
    #
    # @!attribute [rw] vpc_id
    #   The ID of the VPC that the workforce uses for communication.
    #   @return [String]
    #
    # @!attribute [rw] security_group_ids
    #   The VPC security group IDs, in the form sg-xxxxxxxx. The security
    #   groups must be for the same VPC as specified in the subnet.
    #   @return [Array<String>]
    #
    # @!attribute [rw] subnets
    #   The ID of the subnets in the VPC that you want to connect.
    #   @return [Array<String>]
    #
    # @!attribute [rw] vpc_endpoint_id
    #   The IDs for the VPC service endpoints of your VPC workforce when it
    #   is created and updated.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/WorkforceVpcConfigResponse AWS API Documentation
    #
    class WorkforceVpcConfigResponse < Struct.new(
      :vpc_id,
      :security_group_ids,
      :subnets,
      :vpc_endpoint_id)
      SENSITIVE = []
      include Aws::Structure
    end

    # The workspace settings for the SageMaker Canvas application.
    #
    # @!attribute [rw] s3_artifact_path
    #   The Amazon S3 bucket used to store artifacts generated by Canvas.
    #   Updating the Amazon S3 location impacts existing configuration
    #   settings, and Canvas users no longer have access to their artifacts.
    #   Canvas users must log out and log back in to apply the new location.
    #   @return [String]
    #
    # @!attribute [rw] s3_kms_key_id
    #   The Amazon Web Services Key Management Service (KMS) encryption key
    #   ID that is used to encrypt artifacts generated by Canvas in the
    #   Amazon S3 bucket.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/WorkspaceSettings AWS API Documentation
    #
    class WorkspaceSettings < Struct.new(
      :s3_artifact_path,
      :s3_kms_key_id)
      SENSITIVE = []
      include Aws::Structure
    end

    # Provides details about a labeling work team.
    #
    # @!attribute [rw] workteam_name
    #   The name of the work team.
    #   @return [String]
    #
    # @!attribute [rw] member_definitions
    #   A list of `MemberDefinition` objects that contains objects that
    #   identify the workers that make up the work team.
    #
    #   Workforces can be created using Amazon Cognito or your own OIDC
    #   Identity Provider (IdP). For private workforces created using Amazon
    #   Cognito use `CognitoMemberDefinition`. For workforces created using
    #   your own OIDC identity provider (IdP) use `OidcMemberDefinition`.
    #   @return [Array<Types::MemberDefinition>]
    #
    # @!attribute [rw] workteam_arn
    #   The Amazon Resource Name (ARN) that identifies the work team.
    #   @return [String]
    #
    # @!attribute [rw] workforce_arn
    #   The Amazon Resource Name (ARN) of the workforce.
    #   @return [String]
    #
    # @!attribute [rw] product_listing_ids
    #   The Amazon Marketplace identifier for a vendor's work team.
    #   @return [Array<String>]
    #
    # @!attribute [rw] description
    #   A description of the work team.
    #   @return [String]
    #
    # @!attribute [rw] sub_domain
    #   The URI of the labeling job's user interface. Workers open this URI
    #   to start labeling your data objects.
    #   @return [String]
    #
    # @!attribute [rw] create_date
    #   The date and time that the work team was created (timestamp).
    #   @return [Time]
    #
    # @!attribute [rw] last_updated_date
    #   The date and time that the work team was last updated (timestamp).
    #   @return [Time]
    #
    # @!attribute [rw] notification_configuration
    #   Configures SNS notifications of available or expiring work items for
    #   work teams.
    #   @return [Types::NotificationConfiguration]
    #
    # @!attribute [rw] worker_access_configuration
    #   Describes any access constraints that have been defined for Amazon
    #   S3 resources.
    #   @return [Types::WorkerAccessConfiguration]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/Workteam AWS API Documentation
    #
    class Workteam < Struct.new(
      :workteam_name,
      :member_definitions,
      :workteam_arn,
      :workforce_arn,
      :product_listing_ids,
      :description,
      :sub_domain,
      :create_date,
      :last_updated_date,
      :notification_configuration,
      :worker_access_configuration)
      SENSITIVE = []
      include Aws::Structure
    end

  end
end

