# 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

    # @!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

    # 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

    # 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

    # Specifies the training algorithm to use in a [CreateTrainingJob][1]
    # request.
    #
    # 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

    # 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.
    #
    #   This parameter is required for all labeling jobs. 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`
    #
    #
    #
    #   [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 app.
    #
    # @!attribute [rw] domain_id
    #   The domain ID.
    #   @return [String]
    #
    # @!attribute [rw] user_profile_name
    #   The user profile name.
    #   @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] space_name
    #   The name of the space.
    #   @return [String]
    #
    # @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,
      :app_type,
      :app_name,
      :status,
      :creation_time,
      :space_name)
      SENSITIVE = []
      include Aws::Structure
    end

    # The configuration for running a SageMaker image as a KernelGateway
    # app.
    #
    # @!attribute [rw] app_image_config_arn
    #   The Amazon Resource Name (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
    #   image.
    #   @return [Types::KernelGatewayImageConfig]
    #
    # @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)
      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 an experiment,
    #   trial, trial component, lineage group, project, or model card.
    #   @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

    # The collection of algorithms run on a dataset for training the model
    # candidates of an Autopilot job.
    #
    # @!attribute [rw] auto_ml_algorithms
    #   The selection of algorithms run on a dataset to train the model
    #   candidates of an Autopilot job.
    #
    #   <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"
    #
    #
    #
    #   [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 V2 API only (for example, for jobs created by
    #   calling `CreateAutoMLJobV2`).
    #   @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
    #   used to train the model candidates.
    #
    #   The list of available algorithms to choose from depends on the
    #   training mode set in [ `AutoMLJobConfig.Mode` ][1].
    #
    #   * `AlgorithmsConfig` should not be set in `AUTO` training mode.
    #
    #   * 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, `AutoMLCandidateGenerationConfig`
    #     uses the full set of algorithms for the given training mode.
    #
    #   * When `AlgorithmsConfig` is not provided,
    #     `AutoMLCandidateGenerationConfig` uses the full set of algorithms
    #     for the given training mode.
    #
    #   For the list of all algorithms per 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_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
    #   @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]
    #
    # @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)
      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.
    #
    # If you are using the V1 API (for example `CreateAutoMLJob`) or the V2
    # API for Natural Language Processing problems (for example
    # `CreateAutoMLJobV2` with a `TextClassificationJobConfig` problem
    # type), the validation and training datasets must contain the same
    # headers. Also, for V1 API jobs, 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 the non tabular training data of an
    # AutoML job using the V2 API. For tabular training data, see [
    # AutoMLChannel][1]. For more information, see [ Channel][2].
    #
    #
    #
    # [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLChannel.html
    # [2]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_Channel.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`
    #   @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:
    #
    #   * ImageClassification: `image/png`, `image/jpeg`, `image/*`
    #
    #   * TextClassification: `text/csv;header=present`
    #   @return [String]
    #
    # @!attribute [rw] compression_type
    #   The allowed compression types depend on the input format. We allow
    #   the compression type `Gzip` for `S3Prefix` inputs 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.
    #   @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 V2 jobs (jobs created by calling `CreateAutoMLJobV2`), the
    #   supported value is 1.
    #   @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 V2 jobs (jobs created by calling `CreateAutoMLJobV2`), this
    #   field controls the runtime of the job candidate.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_StoppingCondition.html
    #   [2]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateHyperParameterTuningJob.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] data_split_config
    #   The configuration for splitting the input training dataset.
    #
    #   Type: AutoMLDataSplitConfig
    #   @return [Types::AutoMLDataSplitConfig]
    #
    # @!attribute [rw] candidate_generation_config
    #   The configuration for generating a candidate for an AutoML job
    #   (optional).
    #   @return [Types::AutoMLCandidateGenerationConfig]
    #
    # @!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-suppprt
    #   @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,
      :data_split_config,
      :candidate_generation_config,
      :mode)
      SENSITIVE = []
      include Aws::Structure
    end

    # Specifies a metric to minimize or maximize as the objective of a job.
    # V2 API jobs (for example jobs created by calling `CreateAutoMLJobV2`),
    # support `Accuracy` only.
    #
    # @!attribute [rw] metric_name
    #   The name of the objective metric used to measure the predictive
    #   quality of a machine learning system. This metric is optimized
    #   during training to provide the best estimate for model parameter
    #   values from data.
    #
    #   Here are the options:
    #
    #   Accuracy
    #
    #   : The ratio of the number of correctly classified items to the total
    #     number of (correctly and incorrectly) classified items. It is used
    #     for both binary and multiclass classification. Accuracy measures
    #     how close the predicted class values are to the actual values.
    #     Values for accuracy metrics vary between zero (0) and one (1). A
    #     value of 1 indicates perfect accuracy, and 0 indicates perfect
    #     inaccuracy.
    #
    #   AUC
    #
    #   : The area under the curve (AUC) metric is used to compare and
    #     evaluate binary classification by algorithms that return
    #     probabilities, such as logistic regression. To map the
    #     probabilities into classifications, these are compared against a
    #     threshold value.
    #
    #     The relevant curve is the receiver operating characteristic curve
    #     (ROC curve). The ROC curve plots the true positive rate (TPR) of
    #     predictions (or recall) against the false positive rate (FPR) as a
    #     function of the threshold value, above which a prediction is
    #     considered positive. Increasing the threshold results in fewer
    #     false positives, but more false negatives.
    #
    #     AUC is the area under this ROC curve. Therefore, AUC provides an
    #     aggregated measure of the model performance across all possible
    #     classification thresholds. AUC scores vary between 0 and 1. A
    #     score of 1 indicates perfect accuracy, and a score of one half
    #     (0.5) indicates that the prediction is not better than a random
    #     classifier.
    #
    #   BalancedAccuracy
    #
    #   : `BalancedAccuracy` is a metric that measures the ratio of accurate
    #     predictions to all predictions. This ratio is calculated after
    #     normalizing true positives (TP) and true negatives (TN) by the
    #     total number of positive (P) and negative (N) values. It is used
    #     in both binary and multiclass classification and is defined as
    #     follows: 0.5*((TP/P)+(TN/N)), with values ranging from 0 to 1.
    #     `BalancedAccuracy` gives a better measure of accuracy when the
    #     number of positives or negatives differ greatly from each other in
    #     an imbalanced dataset. For example, when only 1% of email is spam.
    #
    #   F1
    #
    #   : The `F1` score is the harmonic mean of the precision and recall,
    #     defined as follows: F1 = 2 * (precision * recall) / (precision +
    #     recall). It is used for binary classification into classes
    #     traditionally referred to as positive and negative. Predictions
    #     are said to be true when they match their actual (correct) class,
    #     and false when they do not.
    #
    #     Precision is the ratio of the true positive predictions to all
    #     positive predictions, and it includes the false positives in a
    #     dataset. Precision measures the quality of the prediction when it
    #     predicts the positive class.
    #
    #     Recall (or sensitivity) is the ratio of the true positive
    #     predictions to all actual positive instances. Recall measures how
    #     completely a model predicts the actual class members in a dataset.
    #
    #     F1 scores vary between 0 and 1. A score of 1 indicates the best
    #     possible performance, and 0 indicates the worst.
    #
    #   F1macro
    #
    #   : The `F1macro` score applies F1 scoring to multiclass
    #     classification problems. It does this by calculating the precision
    #     and recall, and then taking their harmonic mean to calculate the
    #     F1 score for each class. Lastly, the F1macro averages the
    #     individual scores to obtain the `F1macro` score. `F1macro` scores
    #     vary between 0 and 1. A score of 1 indicates the best possible
    #     performance, and 0 indicates the worst.
    #
    #   MAE
    #
    #   : The mean absolute error (MAE) is a measure of how different the
    #     predicted and actual values are, when they're averaged over all
    #     values. MAE is commonly used in regression analysis to understand
    #     model prediction error. If there is linear regression, MAE
    #     represents the average distance from a predicted line to the
    #     actual value. MAE is defined as the sum of absolute errors divided
    #     by the number of observations. Values range from 0 to infinity,
    #     with smaller numbers indicating a better model fit to the data.
    #
    #   MSE
    #
    #   : The mean squared error (MSE) is the average of the squared
    #     differences between the predicted and actual values. It is used
    #     for regression. MSE values are always positive. The better a model
    #     is at predicting the actual values, the smaller the MSE value is
    #
    #   Precision
    #
    #   : Precision measures how well an algorithm predicts the true
    #     positives (TP) out of all of the positives that it identifies. It
    #     is defined as follows: Precision = TP/(TP+FP), with values ranging
    #     from zero (0) to one (1), and is used in binary classification.
    #     Precision is an important metric when the cost of a false positive
    #     is high. For example, the cost of a false positive is very high if
    #     an airplane safety system is falsely deemed safe to fly. A false
    #     positive (FP) reflects a positive prediction that is actually
    #     negative in the data.
    #
    #   PrecisionMacro
    #
    #   : The precision macro computes precision for multiclass
    #     classification problems. It does this by calculating precision for
    #     each class and averaging scores to obtain precision for several
    #     classes. `PrecisionMacro` scores range from zero (0) to one (1).
    #     Higher scores reflect the model's ability to predict true
    #     positives (TP) out of all of the positives that it identifies,
    #     averaged across multiple classes.
    #
    #   R2
    #
    #   : R2, also known as the coefficient of determination, is used in
    #     regression to quantify how much a model can explain the variance
    #     of a dependent variable. Values range from one (1) to negative one
    #     (-1). Higher numbers indicate a higher fraction of explained
    #     variability. `R2` values close to zero (0) indicate that very
    #     little of the dependent variable can be explained by the model.
    #     Negative values indicate a poor fit and that the model is
    #     outperformed by a constant function. For linear regression, this
    #     is a horizontal line.
    #
    #   Recall
    #
    #   : Recall measures how well an algorithm correctly predicts all of
    #     the true positives (TP) in a dataset. A true positive is a
    #     positive prediction that is also an actual positive value in the
    #     data. Recall is defined as follows: Recall = TP/(TP+FN), with
    #     values ranging from 0 to 1. Higher scores reflect a better ability
    #     of the model to predict true positives (TP) in the data, and is
    #     used in binary classification.
    #
    #     Recall is important when testing for cancer because it's used to
    #     find all of the true positives. A false positive (FP) reflects a
    #     positive prediction that is actually negative in the data. It is
    #     often insufficient to measure only recall, because predicting
    #     every output as a true positive yield a perfect recall score.
    #
    #   RecallMacro
    #
    #   : The RecallMacro computes recall for multiclass classification
    #     problems by calculating recall for each class and averaging scores
    #     to obtain recall for several classes. RecallMacro scores range
    #     from 0 to 1. Higher scores reflect the model's ability to predict
    #     true positives (TP) in a dataset. Whereas, a true positive
    #     reflects a positive prediction that is also an actual positive
    #     value in the data. It is often insufficient to measure only
    #     recall, because predicting every output as a true positive yields
    #     a perfect recall score.
    #
    #   RMSE
    #
    #   : Root mean squared error (RMSE) measures the square root of the
    #     squared difference between predicted and actual values, and it's
    #     averaged over all values. It is used in regression analysis to
    #     understand model prediction error. It's an important metric to
    #     indicate the presence of large model errors and outliers. Values
    #     range from zero (0) to infinity, with smaller numbers indicating a
    #     better model fit to the data. RMSE is dependent on scale, and
    #     should not be used to compare datasets of different sizes.
    #
    #   If you do not specify a metric explicitly, the default behavior is
    #   to automatically use:
    #
    #   * `MSE`: for regression.
    #
    #   * `F1`: for binary classification
    #
    #   * `Accuracy`: for multiclass classification.
    #   @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 (KMS) encryption key ID.
    #   @return [String]
    #
    # @!attribute [rw] s3_output_path
    #   The Amazon S3 output path. Must be 128 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 using the V2 API. 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 using the V2 API for the
    #   image classification problem type.
    #   @return [Types::ImageClassificationJobConfig]
    #
    # @!attribute [rw] text_classification_job_config
    #   Settings used to configure an AutoML job using the V2 API for the
    #   text classification problem type.
    #   @return [Types::TextClassificationJobConfig]
    #
    # @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,
      :unknown)
      SENSITIVE = []
      include Aws::Structure
      include Aws::Structure::Union

      class ImageClassificationJobConfig < AutoMLProblemTypeConfig; end
      class TextClassificationJobConfig < AutoMLProblemTypeConfig; end
      class Unknown < AutoMLProblemTypeConfig; end
    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 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 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

    # 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

    # 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

    # 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 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]
    #
    # @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)
      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]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CandidateArtifactLocations AWS API Documentation
    #
    class CandidateArtifactLocations < Struct.new(
      :explainability,
      :model_insights)
      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 Canvas application.
    #   @return [Types::TimeSeriesForecastingSettings]
    #
    # @!attribute [rw] model_register_settings
    #   The model registry settings for the SageMaker Canvas application.
    #   @return [Types::ModelRegisterSettings]
    #
    # @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)
      SENSITIVE = []
      include Aws::Structure
    end

    # Specifies the endpoint capacity to activate for production.
    #
    # @!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

    # Configuration specifying how to treat different headers. If no headers
    # are specified SageMaker will by default base64 encode when capturing
    # the data.
    #
    # @!attribute [rw] csv_content_types
    #   The list of all content type headers that SageMaker will treat as
    #   CSV and capture accordingly.
    #   @return [Array<String>]
    #
    # @!attribute [rw] json_content_types
    #   The list of all content type headers that SageMaker 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

    # 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

    # A Git repository that SageMaker 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 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

    # 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

    # 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] 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_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,
      :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]
    #
    # @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)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] app_image_config_arn
    #   The Amazon Resource Name (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] 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 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] space_name
    #   The name of the space. If this value is not set, then
    #   `UserProfileName` must be set.
    #   @return [String]
    #
    # @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,
      :app_type,
      :app_name,
      :tags,
      :resource_spec,
      :space_name)
      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 [ Amazon 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
    #   Defines the objective metric used to measure the predictive quality
    #   of an AutoML job. You provide an [AutoMLJobObjective$MetricName][1]
    #   and Autopilot infers whether to minimize or maximize it. For
    #   [CreateAutoMLJobV2][2], only `Accuracy` is supported.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLJobObjective.html
    #   [2]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.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
    #   [InputDataConfig][1] supported by `CreateAutoMLJob`. The supported
    #   formats depend on the problem type:
    #
    #   * ImageClassification: S3Prefix, `ManifestFile`,
    #     `AugmentedManifestFile`
    #
    #   * TextClassification: 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. For [CreateAutoMLJobV2][1], only `Accuracy` is supported.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.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.
    #
    #   If you are using the V1 API (for example `CreateAutoMLJob`) or the
    #   V2 API for Natural Language Processing problems (for example
    #   `CreateAutoMLJobV2` with a `TextClassificationJobConfig` problem
    #   type), the validation and training datasets must contain the same
    #   headers. Also, for V1 API jobs, the validation dataset must be less
    #   than 2 GB in size.
    #   @return [Types::AutoMLDataSplitConfig]
    #
    # @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)
      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] 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 to perform tasks on your behalf.
    #
    #   During model compilation, Amazon SageMaker 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, the caller of this API must have the
    #   `iam:PassRole` permission. For more information, see [Amazon
    #   SageMaker 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 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 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] 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
    #   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] subnet_ids
    #   The VPC subnets that Studio uses for communication.
    #   @return [Array<String>]
    #
    # @!attribute [rw] vpc_id
    #   The ID of the Amazon Virtual Private Cloud (VPC) that Studio uses
    #   for communication.
    #   @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, which allows direct internet access
    #
    #   * `VpcOnly` - All Studio 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 uses Amazon Web Services KMS to encrypt the EFS volume
    #   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.
    #   @return [String]
    #
    # @!attribute [rw] domain_settings
    #   A collection of `Domain` settings.
    #   @return [Types::DomainSettings]
    #
    # @!attribute [rw] default_space_settings
    #   The default settings used to create a space.
    #   @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,
      :subnet_ids,
      :vpc_id,
      :tags,
      :app_network_access_type,
      :home_efs_file_system_kms_key_id,
      :kms_key_id,
      :app_security_group_management,
      :domain_settings,
      :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] 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,
      :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 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>]
    #
    # @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)
      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 and end with an alphanumeric character.
    #
    #   * Can only contain alphanumeric character 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 and end 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] 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,
      :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 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>]
    #
    # @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)
      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 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 Elastic Container
    #   Registry (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 job type compatibility.
    #
    #   * `TRAINING`: The image version is compatible with SageMaker
    #     training jobs.
    #
    #   * `INFERENCE`: The image version is compatible with SageMaker
    #     inference jobs.
    #
    #   * `NOTEBOOK_KERNEL`: The image version is compatible with SageMaker
    #     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] 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 following [built-in task types][1],
    #     the attribute name *must* end with "-ref". If the task type you
    #     are using is not listed below, the attribute name *must not* end
    #     with "-ref".
    #
    #     * Image semantic segmentation (`SemanticSegmentation)`, and
    #       adjustment (`AdjustmentSemanticSegmentation`) and verification
    #       (`VerificationSemanticSegmentation`) labeling jobs for this task
    #       type.
    #
    #     * 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] 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
    #   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 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
    #   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 can be run with models
    #   based on this model package, including the following:
    #
    #   * 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*.
    #
    #
    #
    #   [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] 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] 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] 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>]
    #
    # @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,
      :customer_metadata_properties,
      :drift_check_baselines,
      :domain,
      :task,
      :sample_payload_url,
      :additional_inference_specifications)
      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
    #   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] role_arn
    #   When you send any requests to Amazon Web Services resources from the
    #   notebook instance, SageMaker assumes this role to perform tasks on
    #   your behalf. You must grant this role necessary permissions so
    #   SageMaker can perform these tasks. The policy must allow the
    #   SageMaker service principal (sagemaker.amazonaws.com) permissions to
    #   assume this 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] 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 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 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 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
    #   A list of Elastic Inference (EI) instance types to associate with
    #   this notebook instance. Currently, only one instance type can be
    #   associated with a notebook instance. For more information, see
    #   [Using Elastic Inference in Amazon SageMaker][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/ei.html
    #   @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 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 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,
      :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>]
    #
    # @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)
      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] 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 of the pipeline.
    #   @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]
    #
    # @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)
      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] 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.
    #   @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*.
    #
    #
    #
    #   [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>]
    #
    # @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)
      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]
    #
    # @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)
      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 Studio Lifecycle Configuration to create.
    #   @return [String]
    #
    # @!attribute [rw] studio_lifecycle_config_content
    #   The content of your 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

    # @!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 field. If the
    #   use of security-sensitive credentials are detected, SageMaker will
    #   reject your training job request and return an exception error.
    #
    #
    #
    #   [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.
    #   @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].
    #
    #
    #
    #   [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.
    #   @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]
    #
    # @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)
      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] 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. 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 login 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]
    #
    # @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)
      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] 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,
      :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 custom SageMaker image. For more information, see [Bring your own
    # SageMaker 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

    # Configuration to control how SageMaker 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 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 a Amazon Web Services Key
    #   Management Service key that SageMaker 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 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
    #   flatted 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 settings that apply to spaces created in the Domain.
    #
    # @!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 Virtual Private Cloud 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]
    #
    # @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)
      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] app_type
    #   The type of app.
    #   @return [String]
    #
    # @!attribute [rw] app_name
    #   The name of the app.
    #   @return [String]
    #
    # @!attribute [rw] space_name
    #   The name of the space. If this value is not set, then
    #   `UserProfileName` must be set.
    #   @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,
      :app_type,
      :app_name,
      :space_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] 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] 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 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] 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] 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] 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 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] 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 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] 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,
      :auto_rollback_configuration)
      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

    # @!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 an experiment,
    #   trial, trial component, lineage group, project, or model card.
    #   @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 an experiment,
    #   trial, trial component, lineage group, project, or model card.
    #   @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 Amazon Resource Name (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]
    #
    # @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)
      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] app_type
    #   The type of app.
    #   @return [String]
    #
    # @!attribute [rw] app_name
    #   The name of the app.
    #   @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/DescribeAppRequest AWS API Documentation
    #
    class DescribeAppRequest < Struct.new(
      :domain_id,
      :user_profile_name,
      :app_type,
      :app_name,
      :space_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] status
    #   The status.
    #   @return [String]
    #
    # @!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 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.
    #   @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 image created on the instance.
    #   @return [Types::ResourceSpec]
    #
    # @!attribute [rw] space_name
    #   The name of the space. If this value is not set, then
    #   `UserProfileName` must be set.
    #   @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,
      :status,
      :last_health_check_timestamp,
      :last_user_activity_timestamp,
      :creation_time,
      :failure_reason,
      :resource_spec,
      :space_name)
      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 an experiment,
    #   trial, trial component, lineage group, project, or model card.
    #   @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 an experiment,
    #   trial, trial component, lineage group, project, or model card.
    #   @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 Amazon Resource Name (ARN) of the Identity and Access Management
    #   (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 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
    #   auto-inferred. If you do provide them, the values used are the ones
    #   you provide.
    #   @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 V2 job 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 V2 job.
    #   @return [String]
    #
    # @!attribute [rw] auto_ml_job_arn
    #   Returns the Amazon Resource Name (ARN) of the AutoML V2 job.
    #   @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 Identity and Access Management 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 V2 job.
    #   @return [Types::AutoMLProblemTypeConfig]
    #
    # @!attribute [rw] creation_time
    #   Returns the creation time of the AutoML V2 job.
    #   @return [Time]
    #
    # @!attribute [rw] end_time
    #   Returns the end time of the AutoML V2 job.
    #   @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 V2 job, when
    #   applicable.
    #   @return [String]
    #
    # @!attribute [rw] partial_failure_reasons
    #   Returns a list of reasons for partial failures within an AutoML V2
    #   job.
    #   @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 V2 job.
    #   @return [String]
    #
    # @!attribute [rw] auto_ml_job_secondary_status
    #   Returns the secondary status of the AutoML V2 job.
    #   @return [String]
    #
    # @!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]
    #
    # @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,
      :creation_time,
      :end_time,
      :last_modified_time,
      :failure_reason,
      :partial_failure_reasons,
      :best_candidate,
      :auto_ml_job_status,
      :auto_ml_job_secondary_status,
      :model_deploy_config,
      :model_deploy_result,
      :data_split_config,
      :security_config)
      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 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 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
    #   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]
    #
    # @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)
      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 an experiment,
    #   trial, trial component, lineage group, project, or model card.
    #   @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 an experiment,
    #   trial, trial component, lineage group, project, or model card.
    #   @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
    #   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 (EFS) 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] 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] 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] 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, which allows direct internet access
    #
    #   * `VpcOnly` - All Studio 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 Studio 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 Studio 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] domain_settings
    #   A collection of `Domain` settings.
    #   @return [Types::DomainSettings]
    #
    # @!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] 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] default_space_settings
    #   The default settings used to create a space.
    #   @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,
      :status,
      :creation_time,
      :last_modified_time,
      :failure_reason,
      :auth_mode,
      :default_user_settings,
      :app_network_access_type,
      :home_efs_file_system_kms_key_id,
      :subnet_ids,
      :url,
      :vpc_id,
      :kms_key_id,
      :domain_settings,
      :app_security_group_management,
      :security_group_id_for_domain_boundary,
      :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 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>]
    #
    # @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)
      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.
    #
    #
    #
    #   [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
    #   @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 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] 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,
      :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 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] 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]
    #
    # @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,
      :hub_content_search_keywords,
      :hub_content_dependencies,
      :hub_content_status,
      :failure_reason,
      :creation_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 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: InProgress, Completed, Failed,
    #   Stopping, or Stopped.
    #   @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] 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,
      :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 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 job type compatibility.
    #
    #   * `TRAINING`: The image version is compatible with SageMaker
    #     training jobs.
    #
    #   * `INFERENCE`: The image version is compatible with SageMaker
    #     inference jobs.
    #
    #   * `NOTEBOOK_KERNEL`: The image version is compatible with SageMaker
    #     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] 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 an experiment,
    #   trial, trial component, lineage group, project, or model card.
    #   @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 an experiment,
    #   trial, trial component, lineage group, project, or model card.
    #   @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] 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 Amazon Web Services Identity
    #   and Access Management (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 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 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 an experiment,
    #   trial, trial component, lineage group, project, or model card.
    #   @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 an experiment,
    #   trial, trial component, lineage group, project, or model card.
    #   @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 Amazon Web Services Identity
    #   and Access Management (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]
    #
    # @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)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] model_package_group_name
    #   The name of gthe 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 an experiment,
    #   trial, trial component, lineage group, project, or model card.
    #   @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 can be 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 an experiment,
    #   trial, trial component, lineage group, project, or model card.
    #   @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 an experiment,
    #   trial, trial component, lineage group, project, or model card.
    #   @return [Types::UserContext]
    #
    # @!attribute [rw] approval_description
    #   A description provided for the model approval.
    #   @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] 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] 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>]
    #
    # @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,
      :customer_metadata_properties,
      :drift_check_baselines,
      :domain,
      :task,
      :sample_payload_url,
      :additional_inference_specifications)
      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
    #   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 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] 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 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 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 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
    #   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
    #   A list of the Elastic Inference (EI) instance types associated with
    #   this notebook instance. Currently only one EI instance type can be
    #   associated with a notebook instance. For more information, see
    #   [Using Elastic Inference in Amazon SageMaker][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/ei.html
    #   @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 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 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,
      :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] 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 an experiment,
    #   trial, trial component, lineage group, project, or model card.
    #   @return [Types::UserContext]
    #
    # @!attribute [rw] last_modified_by
    #   Information about the user who created or modified an experiment,
    #   trial, trial component, lineage group, project, or model card.
    #   @return [Types::UserContext]
    #
    # @!attribute [rw] parallelism_configuration
    #   The parallelism configuration applied to the pipeline.
    #   @return [Types::ParallelismConfiguration]
    #
    # @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)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] pipeline_name
    #   The name of the pipeline to describe.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribePipelineRequest AWS API Documentation
    #
    class DescribePipelineRequest < Struct.new(
      :pipeline_name)
      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 an experiment,
    #   trial, trial component, lineage group, project, or model card.
    #   @return [Types::UserContext]
    #
    # @!attribute [rw] last_modified_by
    #   Information about the user who created or modified an experiment,
    #   trial, trial component, lineage group, project, or model card.
    #   @return [Types::UserContext]
    #
    # @!attribute [rw] parallelism_configuration
    #   Lists the parallelism configuration applied to the pipeline.
    #   @return [Types::ParallelismConfiguration]
    #
    # @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)
      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] created_by
    #   Information about the user who created or modified an experiment,
    #   trial, trial component, lineage group, project, or model card.
    #   @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 an experiment,
    #   trial, trial component, lineage group, project, or model card.
    #   @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,
      :created_by,
      :creation_time,
      :last_modified_time,
      :last_modified_by)
      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 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] space_settings
    #   A collection of space settings.
    #   @return [Types::SpaceSettings]
    #
    # @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)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] studio_lifecycle_config_name
    #   The name of the 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 Studio Lifecycle Configuration that is described.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   The creation time of the Studio Lifecycle Configuration.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time
    #   This value is equivalent to CreationTime because Studio Lifecycle
    #   Configurations are immutable.
    #   @return [Time]
    #
    # @!attribute [rw] studio_lifecycle_config_content
    #   The content of your 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] 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] retry_strategy
    #   The number of times to retry the job when the job fails due to an
    #   `InternalServerError`.
    #   @return [Types::RetryStrategy]
    #
    # @!attribute [rw] environment
    #   The environment variables to set in the Docker container.
    #   @return [Hash<String,String>]
    #
    # @!attribute [rw] warm_pool_status
    #   The status of the warm pool associated with the training job.
    #   @return [Types::WarmPoolStatus]
    #
    # @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,
      :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,
      :retry_strategy,
      :environment,
      :warm_pool_status)
      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
    #   (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] 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]
    #
    # @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)
      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

    # @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

    # 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 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]
    #
    # @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)
      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.
    #   @return [Types::RStudioServerProDomainSettingsForUpdate]
    #
    # @!attribute [rw] execution_role_identity_config
    #   The configuration for attaching a SageMaker 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>]
    #
    # @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)
      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

    # 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 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

    # @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

    # 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 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]
    #
    # @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)
      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] 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,
      :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]
    #
    # @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)
      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

    # 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

    # 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

    # The properties of an experiment as returned by the [Search][1] API.
    #
    #
    #
    # [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_Search.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 an experiment,
    #   trial, trial component, lineage group, project, or model card.
    #   @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

    # 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`.
    #   @return [String]
    #
    # @!attribute [rw] feature_type
    #   The value type of a feature. Valid values are Integral, Fractional,
    #   or String.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/FeatureDefinition AWS API Documentation
    #
    class FeatureDefinition < Struct.new(
      :feature_name,
      :feature_type)
      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 (EFS) storage configuration for a
    # SageMaker 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

    # @!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] 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

    # 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] 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] 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]
    #
    # @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,
      :hub_content_version,
      :hub_content_type,
      :document_schema_version,
      :hub_content_display_name,
      :hub_content_description,
      :hub_content_search_keywords,
      :hub_content_status,
      :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`
    #
    #
    #
    #   [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.
    #   @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] 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] 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] 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,
      :stopping_condition,
      :enable_network_isolation,
      :enable_inter_container_traffic_encryption,
      :enable_managed_spot_training,
      :checkpoint_config,
      :retry_strategy,
      :hyper_parameter_tuning_resource_config,
      :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 [SageMaker distributed training jobs][1] for more
    #   information.
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/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.
    #
    # @!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] 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>]
    #
    # @!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]
    #
    # @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,
      :tags,
      :tuning_job_completion_details,
      :consumed_resources)
      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/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, `HyperbandTrainingJ` 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
    #   [distributive][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

    # A SageMaker image. A SageMaker 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 `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

    # Stores the configuration information for the image classification
    # problem of an AutoML job using the V2 API.
    #
    # @!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 `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] 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,
      :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 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 SageMaker 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

    # 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] 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] recommendation_id
    #   The recommendation ID which uniquely identifies each recommendation.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/InferenceRecommendation AWS API Documentation
    #
    class InferenceRecommendation < Struct.new(
      :metrics,
      :endpoint_configuration,
      :model_configuration,
      :recommendation_id)
      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]
    #
    # @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)
      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

    # 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

    # 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

    # 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 JupyterServer app settings.
    #
    # @!attribute [rw] default_resource_spec
    #   The default instance type and the Amazon Resource Name (ARN) of the
    #   default SageMaker 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 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 KernelGateway app settings.
    #
    # @!attribute [rw] default_resource_spec
    #   The default instance type and the Amazon Resource Name (ARN) of the
    #   default SageMaker image used by the KernelGateway app.
    #
    #   <note markdown="1"> The Amazon SageMaker 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 Amazon Web Services Command Line
    #   Interface or Amazon Web Services CloudFormation and the instance
    #   type parameter value is not passed.
    #
    #    </note>
    #   @return [Types::ResourceSpec]
    #
    # @!attribute [rw] custom_images
    #   A list of custom SageMaker images that are configured to run as a
    #   KernelGateway app.
    #   @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 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 (EFS) storage configuration for a
    #   SageMaker 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 a VPC that your training jobs and hosted models have
    #   access to. Control access to and from your training and model
    #   containers by configuring the VPC. For more information, see
    #   [Protect Endpoints by Using an Amazon Virtual Private Cloud][1] and
    #   [Protect Training Jobs by Using an Amazon Virtual Private Cloud][2].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/host-vpc.html
    #   [2]: https://docs.aws.amazon.com/sagemaker/latest/dg/train-vpc.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 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 maximum number of AppImageConfigs to return in the response. 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
    #   Returns a list up to a specified limit.
    #   @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] 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 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] 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
    #   The sort order for results. 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
    #   Returns a list up to a specified limit.
    #   @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] 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]
    #
    # @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)
      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] 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
    #   If the response is truncated, Amazon SageMaker returns this token.
    #   To retrieve the next set of jobs, use it in the subsequent 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.
    #   @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
    #   If the response is truncated, Amazon SageMaker returns this token.
    #   To retrieve the next set of jobs, use it in the subsequent 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]
    #
    # @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)
      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
    #   The sort order for results. 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 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 results by `Status`, `CreationTime`, `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
    #   If the response is truncated, Amazon SageMaker returns this token.
    #   To retrieve the next set of jobs, use it in the subsequent reques
    #   @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 results by `Status`, `CreationTime`, `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
    #   If the response is truncated, Amazon SageMaker returns this token.
    #   To retrieve the next set of jobs, use it in the subsequent 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 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 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] 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 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_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] 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
    #   Returns a list up to a specified limit.
    #   @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 maximum number of Studio Lifecycle Configurations to return in
    #   the response. 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
    #   A token for getting the next set of actions, if there are any.
    #   @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]
    #
    # @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)
      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] 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] 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
    #   Returns a list up to a specified limit.
    #   @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] value
    #   The value of the metric.
    #   @return [Float]
    #
    # @!attribute [rw] set
    #   The dataset split from which the AutoML job produced 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]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/MetricDatum AWS API Documentation
    #
    class MetricDatum < Struct.new(
      :metric_name,
      :value,
      :set,
      :standard_metric_name)
      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

    # 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 a VPC that your training jobs and hosted models have
    #   access to. Control access to and from your training and model
    #   containers by configuring the VPC. For more information, see
    #   [Protect Endpoints by Using an Amazon Virtual Private Cloud][1] and
    #   [Protect Training Jobs by Using an Amazon Virtual Private Cloud][2].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/host-vpc.html
    #   [2]: https://docs.aws.amazon.com/sagemaker/latest/dg/train-vpc.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>]
    #
    # @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)
      SENSITIVE = []
      include Aws::Structure
    end

    # Provides information about the location that is configured for storing
    # model artifacts.
    #
    # Model artifacts are the output that results from training a model, and
    # typically consist of trained parameters, a model definition that
    # describes how to compute inferences, and other metadata.
    #
    # @!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 an experiment,
    #   trial, trial component, lineage group, project, or model card.
    #   @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 an experiment,
    #   trial, trial component, lineage group, project, or model card.
    #   @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]
    #
    # @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)
      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

    # 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 an experiment,
    #   trial, trial component, lineage group, project, or model card.
    #   @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 an experiment,
    #   trial, trial component, lineage group, project, or model card.
    #   @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]
    #
    # @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)
      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 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 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.
    #   @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

    # 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 bais 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 versioned model that can be deployed for SageMaker inference.
    #
    # @!attribute [rw] model_package_name
    #   The name of the model.
    #   @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] 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]
    #
    # @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,
      :tags,
      :customer_metadata_properties,
      :drift_check_baselines)
      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 EC2 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] 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]
    #
    # @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,
      :product_id,
      :environment,
      :model_input,
      :framework,
      :framework_version,
      :nearest_model_name)
      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 an experiment,
    #   trial, trial component, lineage group, project, or model card.
    #   @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

    # 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]
    #
    # @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)
      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
    #   flatted 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 endponts 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

    # 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 AWS account than the AWS 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

    # 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
    #   flatted 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 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 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 Endpoint.
    #   @return [Array<Types::MonitoringInput>]
    #
    # @!attribute [rw] monitoring_output_config
    #   The array of outputs from the monitoring job to be uploaded to
    #   Amazon Simple Storage Service (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
    #   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 a VPC that your training jobs and hosted models have
    #   access to. Control access to and from your training and model
    #   containers by configuring the VPC. For more information, see
    #   [Protect Endpoints by Using an Amazon Virtual Private Cloud][1] and
    #   [Protect Training Jobs by Using an Amazon Virtual Private Cloud][2].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/host-vpc.html
    #   [2]: https://docs.aws.amazon.com/sagemaker/latest/dg/train-vpc.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 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.
    #   @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 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 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 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 a VPC that your training jobs and hosted models have
    #   access to. Control access to and from your training and model
    #   containers by configuring the VPC. For more information, see
    #   [Protect Endpoints by Using an Amazon Virtual Private Cloud][1] and
    #   [Protect Training Jobs by Using an Amazon Virtual Private Cloud][2].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/host-vpc.html
    #   [2]: https://docs.aws.amazon.com/sagemaker/latest/dg/train-vpc.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

    # 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 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 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 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 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]
    #
    # @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)
      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]
    #
    # @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)
      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]
    #
    # @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)
      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

    # 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 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`.
    #
    #
    #
    #   [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][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.
    #
    #     ^
    #
    #   * `EIA`: Compilation for the Elastic Inference Accelerator supports
    #     the following compiler options:
    #
    #     * `precision_mode`: Specifies the precision of compiled artifacts.
    #       Supported values are `"FP16"` and `"FP32"`. Default is `"FP32"`.
    #
    #     * `signature_def_key`: Specifies the signature to use for models
    #       in SavedModel format. Defaults is TensorFlow's default
    #       signature def key.
    #
    #     * `output_names`: Specifies a list of output tensor names for
    #       models in FrozenGraph format. Set at most one API field, either:
    #       `signature_def_key` or `output_names`.
    #
    #     For example: `\{"precision_mode": "FP32", "output_names":
    #     ["output:0"]\}`
    #
    #
    #
    #   [1]: https://github.com/aws/aws-neuron-sdk/blob/master/docs/neuron-cc/command-line-reference.md
    #   [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 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 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. 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 `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]
    #
    # @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)
      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

    # 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>]
    #
    # @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)
      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

    # 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
    #   The size of the Elastic Inference (EI) instance to use for the
    #   production variant. EI instances provide on-demand GPU computing for
    #   inference. For more information, see [Using Elastic Inference in
    #   Amazon SageMaker][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/ei.html
    #   @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]
    #
    # @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)
      SENSITIVE = []
      include Aws::Structure
    end

    # Defines the traffic pattern.
    #
    # @!attribute [rw] initial_number_of_users
    #   Specifies how many concurrent users to start with.
    #   @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 traffic phase should be.
    #   @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 an experiment,
    #   trial, trial component, lineage group, project, or model card.
    #   @return [Types::UserContext]
    #
    # @!attribute [rw] last_modified_by
    #   Information about the user who created or modified an experiment,
    #   trial, trial component, lineage group, project, or model card.
    #   @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 an experiment,
    #   trial, trial component, lineage group, project, or model card.
    #   @return [Types::UserContext]
    #
    # @!attribute [rw] last_modified_by
    #   Information about the user who created or modified an experiment,
    #   trial, trial component, lineage group, project, or model card.
    #   @return [Types::UserContext]
    #
    # @!attribute [rw] parallelism_configuration
    #   The parallelism configuration applied to the pipeline execution.
    #   @return [Types::ParallelismConfiguration]
    #
    # @!attribute [rw] pipeline_parameters
    #   Contains a list of pipeline parameters. This list can be empty.
    #   @return [Array<Types::Parameter>]
    #
    # @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,
      :pipeline_parameters)
      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] 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] 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]
    #
    # @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,
      :attempt_count,
      :failure_reason,
      :metadata)
      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] 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] emr
    #   The configurations and outcomes of an Amazon EMR step execution.
    #   @return [Types::EMRStepMetadata]
    #
    # @!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]
    #
    # @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,
      :quality_check,
      :clarify_check,
      :emr,
      :fail,
      :auto_ml_job)
      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

    # 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,
    #   alias 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
    #   The size of the Elastic Inference (EI) instance to use for the
    #   production variant. EI instances provide on-demand GPU computing for
    #   inference. For more information, see [Using Elastic Inference in
    #   Amazon SageMaker][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/ei.html
    #   @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]
    #
    # @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)
      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

    # 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]
    #
    # @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)
      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]
    #
    # @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)
      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] 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 an experiment,
    #   trial, trial component, lineage group, project, or model card.
    #   @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,
      :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 image and SageMaker image
    #   version, and the instance type that the version runs on.
    #   @return [Types::ResourceSpec]
    #
    # @!attribute [rw] custom_images
    #   A list of custom SageMaker 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. `RStudioServerProAppSettings` cannot be
    # updated. The `RStudioServerPro` app must be deleted and a new one
    # created to make any changes.
    #
    # @!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 image and SageMaker image
    #   version, and the instance type that the version runs on.
    #   @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 image and SageMaker image
    #   version, and the instance type that the version runs on.
    #   @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

    # 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] 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]
    #
    # @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,
      :data_input_config)
      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_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] endpoint_metrics
    #   The metrics for an existing endpoint compared in an Inference
    #   Recommender job.
    #   @return [Types::InferenceMetrics]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/RecommendationJobInferenceBenchmark AWS API Documentation
    #
    class RecommendationJobInferenceBenchmark < Struct.new(
      :metrics,
      :endpoint_configuration,
      :model_configuration,
      :failure_reason,
      :endpoint_metrics)
      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] job_duration_in_seconds
    #   Specifies the maximum duration of the job, in seconds.&gt;
    #   @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]
    #
    # @!attribute [rw] model_name
    #   The name of the created model.
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/RecommendationJobInputConfig AWS API Documentation
    #
    class RecommendationJobInputConfig < Struct.new(
      :model_package_version_arn,
      :job_duration_in_seconds,
      :traffic_pattern,
      :resource_limit,
      :endpoint_configurations,
      :volume_kms_key_id,
      :container_config,
      :endpoints,
      :vpc_config,
      :model_name)
      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>]
    #
    # @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)
      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]
    #
    # @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)
      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

    # @!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

    # The resolved attributes.
    #
    # @!attribute [rw] auto_ml_job_objective
    #   Specifies a metric to minimize or maximize as the objective of a
    #   job. V2 API jobs (for example jobs created by calling
    #   `CreateAutoMLJobV2`), support `Accuracy` only.
    #   @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

    # 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.
    #
    #   <note markdown="1"> SageMaker Training on Amazon Elastic Compute Cloud (EC2) P4de
    #   instances is in preview release starting December 9th, 2022.
    #
    #    [Amazon EC2 P4de instances][1] (currently in preview) are powered by
    #   8 NVIDIA A100 GPUs with 80GB high-performance HBM2e GPU memory,
    #   which accelerate the speed of training ML models that need to be
    #   trained on large datasets of high-resolution data. In this preview
    #   release, Amazon SageMaker supports ML training jobs on P4de
    #   instances (`ml.p4de.24xlarge`) to reduce model training time. The
    #   `ml.p4de.24xlarge` instances are available in the following Amazon
    #   Web Services Regions.
    #
    #    * US East (N. Virginia) (us-east-1)
    #
    #   * US West (Oregon) (us-west-2)
    #
    #    To request quota limit increase and start using P4de instances,
    #   contact the SageMaker Training service team through your account
    #   team.
    #
    #    </note>
    #
    #
    #
    #   [1]: http://aws.amazon.com/ec2/instance-types/p4/
    #   @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] instance_groups
    #   The configuration of a heterogeneous cluster in JSON format.
    #   @return [Array<Types::InstanceGroup>]
    #
    # @!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]
    #
    # @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,
      :instance_groups,
      :keep_alive_period_in_seconds)
      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

    # Specifies the ARN's of a SageMaker image and SageMaker image version,
    # and the instance type that the version runs on.
    #
    # @!attribute [rw] sage_maker_image_arn
    #   The ARN of the SageMaker 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.
    #   @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,
      :instance_type,
      :lifecycle_config_arn)
      SENSITIVE = []
      include Aws::Structure
    end

    # The retention policy for data stored on an Amazon Elastic File System
    # (EFS) volume.
    #
    # @!attribute [rw] home_efs_file_system
    #   The default is `Retain`, which specifies to keep the data stored on
    #   the EFS volume.
    #
    #   Specify `Delete` to delete the data stored on the 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

    # Describes the S3 data source.
    #
    # @!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`.
    #   @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.
    #   @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>]
    #
    # @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)
      SENSITIVE = []
      include Aws::Structure
    end

    # The Amazon Simple Storage (Amazon S3) location and 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

    # Configuration details about the monitoring schedule.
    #
    # @!attribute [rw] schedule_expression
    #   A cron expression that describes details about the monitoring
    #   schedule.
    #
    #   Currently the only supported cron expressions are:
    #
    #   * If you want to set the job to start every hour, please use the
    #     following:
    #
    #     `Hourly: cron(0 * ? * * *)`
    #
    #   * If you want to start the job daily:
    #
    #     `cron(0 [00-23] ? * * *)`
    #
    #   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 will pick a time for
    #     running every day.
    #
    #    </note>
    #   @return [String]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ScheduleConfig AWS API Documentation
    #
    class ScheduleConfig < Struct.new(
      :schedule_expression)
      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 versioned model that can be deployed for SageMaker inference.
    #   @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] 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] project
    #   The properties of a project.
    #   @return [Types::Project]
    #
    # @!attribute [rw] feature_metadata
    #   The feature metadata used to search through the features.
    #   @return [Types::FeatureMetadata]
    #
    # @!attribute [rw] hyper_parameter_tuning_job
    #   The properties of a hyperparameter tuning job.
    #   @return [Types::HyperParameterTuningJobSearchEntity]
    #
    # @!attribute [rw] model
    #   A model displayed in the Amazon SageMaker Model Dashboard.
    #   @return [Types::ModelDashboardModel]
    #
    # @!attribute [rw] model_card
    #   An Amazon SageMaker Model Card that documents details about a
    #   machine learning model.
    #   @return [Types::ModelCard]
    #
    # @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,
      :feature_group,
      :project,
      :feature_metadata,
      :hyper_parameter_tuning_job,
      :model,
      :model_card)
      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]
    #
    # @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)
      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]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/SearchResponse AWS API Documentation
    #
    class SearchResponse < Struct.new(
      :results,
      :next_token)
      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
    #   : * Downloading the training image.
    #
    #     * 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

    # @!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

    # 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 SageMaker 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
    #   region as the algorithm.
    #
    #    </note>
    #   @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,
      :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
    # login 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

    # 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]
    #
    # @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)
      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]
    #
    # @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)
      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] 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 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]
    #
    # @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)
      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] 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] 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] 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 model training job or model
    # compilation 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 or compilation job. Use this API to cap
    # model training 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]
    #
    # @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)
      SENSITIVE = []
      include Aws::Structure
    end

    # Details of the 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 Studio Lifecycle Configuration.
    #   @return [String]
    #
    # @!attribute [rw] creation_time
    #   The creation time of the Studio Lifecycle Configuration.
    #   @return [Time]
    #
    # @!attribute [rw] last_modified_time
    #   This value is equivalent to CreationTime because 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

    # Describes a work team of a vendor that does the a 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

    # 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

    # The TensorBoard app settings.
    #
    # @!attribute [rw] default_resource_spec
    #   The default instance type and the Amazon Resource Name (ARN) of the
    #   SageMaker 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

    # Stores the configuration information for the text classification
    # problem of an AutoML job using the V2 API.
    #
    # @!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

    # 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

    # Defines the traffic pattern of the load test.
    #
    # @!attribute [rw] traffic_type
    #   Defines the traffic patterns.
    #   @return [String]
    #
    # @!attribute [rw] phases
    #   Defines the phases traffic specification.
    #   @return [Array<Types::Phase>]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/TrafficPattern AWS API Documentation
    #
    class TrafficPattern < Struct.new(
      :traffic_type,
      :phases)
      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.
    #   @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] 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,
      :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] warm_pool_status
    #   The status of the warm pool associated with the training job.
    #   @return [Types::WarmPoolStatus]
    #
    # @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,
      :warm_pool_status)
      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>]
    #
    # @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)
      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] 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,
      :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]
    #
    # @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)
      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 an experiment,
    #   trial, trial component, lineage group, project, or model card.
    #   @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 an experiment,
    #   trial, trial component, lineage group, project, or model card.
    #   @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 an experiment,
    #   trial, trial component, lineage group, project, or model card.
    #   @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 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

    # @!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]
    #
    # @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)
      SENSITIVE = []
      include Aws::Structure
    end

    # @!attribute [rw] app_image_config_arn
    #   The Amazon Resource Name (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] 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] 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] default_space_settings
    #   The default settings used to create a space within the Domain.
    #   @return [Types::DefaultSpaceSettings]
    #
    # @!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]
    #
    # @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,
      :default_space_settings,
      :app_security_group_management)
      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 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>]
    #
    # @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)
      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 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 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 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 job type compatibility.
    #
    #   * `TRAINING`: The image version is compatible with SageMaker
    #     training jobs.
    #
    #   * `INFERENCE`: The image version is compatible with SageMaker
    #     inference jobs.
    #
    #   * `NOTEBOOK_KERNEL`: The image version is compatible with SageMaker
    #     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] 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] model_card_name
    #   The name 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>]
    #
    # @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)
      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] role_arn
    #   The Amazon Resource Name (ARN) of the IAM role that SageMaker can
    #   assume to access the notebook instance. 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] 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 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 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 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
    #   A list of the Elastic Inference (EI) instance types to associate
    #   with this notebook instance. Currently only one EI instance type can
    #   be associated with a notebook instance. For more information, see
    #   [Using Elastic Inference in Amazon SageMaker][1].
    #
    #
    #
    #   [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/ei.html
    #   @return [Array<String>]
    #
    # @!attribute [rw] disassociate_accelerator_types
    #   A list of the Elastic Inference (EI) instance types to remove from
    #   this notebook instance. This operation is idempotent. If you specify
    #   an accelerator type that is not associated with the notebook
    #   instance when you call this method, it does not throw an error.
    #   @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,
      :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] 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]
    #
    # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdatePipelineResponse AWS API Documentation
    #
    class UpdatePipelineResponse < Struct.new(
      :pipeline_arn)
      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>]
    #
    # @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)
      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]
    #
    # @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)
      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

    # @!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]
    #
    # @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)
      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]
    #
    # @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)
      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]
    #
    # @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)
      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 an experiment,
    # trial, trial component, lineage group, project, or model card.
    #
    # @!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 of Amazon SageMaker
    # Studio. 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.
    #   @return [String]
    #
    # @!attribute [rw] security_groups
    #   The security groups for the Amazon Virtual Private Cloud (VPC) that
    #   Studio 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 adds a security group to allow NFS traffic from
    #   SageMaker Studio. Therefore, the number of security groups that you
    #   can specify is one less than the maximum number shown.
    #   @return [Array<String>]
    #
    # @!attribute [rw] sharing_settings
    #   Specifies options for sharing SageMaker 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.
    #   @return [Types::CanvasAppSettings]
    #
    # @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)
      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

    # 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

    # Specifies a VPC that your training jobs and hosted models have access
    # to. Control access to and from your training and model containers by
    # configuring the VPC. For more information, see [Protect Endpoints by
    # Using an Amazon Virtual Private Cloud][1] and [Protect Training Jobs
    # by Using an Amazon Virtual Private Cloud][2].
    #
    #
    #
    # [1]: https://docs.aws.amazon.com/sagemaker/latest/dg/host-vpc.html
    # [2]: https://docs.aws.amazon.com/sagemaker/latest/dg/train-vpc.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

    # 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]
    #
    # @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)
      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

    # 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]
    #
    # @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)
      SENSITIVE = []
      include Aws::Structure
    end

  end
end