R/sagemaker_operations.R

Defines functions sagemaker_update_workteam sagemaker_update_workforce sagemaker_update_user_profile sagemaker_update_trial_component sagemaker_update_trial sagemaker_update_training_job sagemaker_update_pipeline_execution sagemaker_update_pipeline sagemaker_update_notebook_instance_lifecycle_config sagemaker_update_notebook_instance sagemaker_update_monitoring_schedule sagemaker_update_model_package sagemaker_update_image sagemaker_update_experiment sagemaker_update_endpoint_weights_and_capacities sagemaker_update_endpoint sagemaker_update_domain sagemaker_update_devices sagemaker_update_device_fleet sagemaker_update_context sagemaker_update_code_repository sagemaker_update_artifact sagemaker_update_app_image_config sagemaker_update_action sagemaker_stop_transform_job sagemaker_stop_training_job sagemaker_stop_processing_job sagemaker_stop_pipeline_execution sagemaker_stop_notebook_instance sagemaker_stop_monitoring_schedule sagemaker_stop_labeling_job sagemaker_stop_hyper_parameter_tuning_job sagemaker_stop_edge_packaging_job sagemaker_stop_compilation_job sagemaker_stop_auto_ml_job sagemaker_start_pipeline_execution sagemaker_start_notebook_instance sagemaker_start_monitoring_schedule sagemaker_search sagemaker_render_ui_template sagemaker_register_devices sagemaker_put_model_package_group_policy sagemaker_list_workteams sagemaker_list_workforces sagemaker_list_user_profiles sagemaker_list_trials sagemaker_list_trial_components sagemaker_list_transform_jobs sagemaker_list_training_jobs_for_hyper_parameter_tuning_job sagemaker_list_training_jobs sagemaker_list_tags sagemaker_list_subscribed_workteams sagemaker_list_projects sagemaker_list_processing_jobs sagemaker_list_pipelines sagemaker_list_pipeline_parameters_for_execution sagemaker_list_pipeline_executions sagemaker_list_pipeline_execution_steps sagemaker_list_notebook_instances sagemaker_list_notebook_instance_lifecycle_configs sagemaker_list_monitoring_schedules sagemaker_list_monitoring_executions sagemaker_list_models sagemaker_list_model_quality_job_definitions sagemaker_list_model_packages sagemaker_list_model_package_groups sagemaker_list_model_explainability_job_definitions sagemaker_list_model_bias_job_definitions sagemaker_list_labeling_jobs_for_workteam sagemaker_list_labeling_jobs sagemaker_list_images sagemaker_list_image_versions sagemaker_list_hyper_parameter_tuning_jobs sagemaker_list_human_task_uis sagemaker_list_flow_definitions sagemaker_list_feature_groups sagemaker_list_experiments sagemaker_list_endpoints sagemaker_list_endpoint_configs sagemaker_list_edge_packaging_jobs sagemaker_list_domains sagemaker_list_devices sagemaker_list_device_fleets sagemaker_list_data_quality_job_definitions sagemaker_list_contexts sagemaker_list_compilation_jobs sagemaker_list_code_repositories sagemaker_list_candidates_for_auto_ml_job sagemaker_list_auto_ml_jobs sagemaker_list_associations sagemaker_list_artifacts sagemaker_list_apps sagemaker_list_app_image_configs sagemaker_list_algorithms sagemaker_list_actions sagemaker_get_search_suggestions sagemaker_get_sagemaker_servicecatalog_portfolio_status sagemaker_get_model_package_group_policy sagemaker_get_device_fleet_report sagemaker_enable_sagemaker_servicecatalog_portfolio sagemaker_disassociate_trial_component sagemaker_disable_sagemaker_servicecatalog_portfolio sagemaker_describe_workteam sagemaker_describe_workforce sagemaker_describe_user_profile sagemaker_describe_trial_component sagemaker_describe_trial sagemaker_describe_transform_job sagemaker_describe_training_job sagemaker_describe_subscribed_workteam sagemaker_describe_project sagemaker_describe_processing_job sagemaker_describe_pipeline_execution sagemaker_describe_pipeline_definition_for_execution sagemaker_describe_pipeline sagemaker_describe_notebook_instance_lifecycle_config sagemaker_describe_notebook_instance sagemaker_describe_monitoring_schedule sagemaker_describe_model_quality_job_definition sagemaker_describe_model_package_group sagemaker_describe_model_package sagemaker_describe_model_explainability_job_definition sagemaker_describe_model_bias_job_definition sagemaker_describe_model sagemaker_describe_labeling_job sagemaker_describe_image_version sagemaker_describe_image sagemaker_describe_hyper_parameter_tuning_job sagemaker_describe_human_task_ui sagemaker_describe_flow_definition sagemaker_describe_feature_group sagemaker_describe_experiment sagemaker_describe_endpoint_config sagemaker_describe_endpoint sagemaker_describe_edge_packaging_job sagemaker_describe_domain sagemaker_describe_device_fleet sagemaker_describe_device sagemaker_describe_data_quality_job_definition sagemaker_describe_context sagemaker_describe_compilation_job sagemaker_describe_code_repository sagemaker_describe_auto_ml_job sagemaker_describe_artifact sagemaker_describe_app_image_config sagemaker_describe_app sagemaker_describe_algorithm sagemaker_describe_action sagemaker_deregister_devices sagemaker_delete_workteam sagemaker_delete_workforce sagemaker_delete_user_profile sagemaker_delete_trial_component sagemaker_delete_trial sagemaker_delete_tags sagemaker_delete_project sagemaker_delete_pipeline sagemaker_delete_notebook_instance_lifecycle_config sagemaker_delete_notebook_instance sagemaker_delete_monitoring_schedule sagemaker_delete_model_quality_job_definition sagemaker_delete_model_package_group_policy sagemaker_delete_model_package_group sagemaker_delete_model_package sagemaker_delete_model_explainability_job_definition sagemaker_delete_model_bias_job_definition sagemaker_delete_model sagemaker_delete_image_version sagemaker_delete_image sagemaker_delete_human_task_ui sagemaker_delete_flow_definition sagemaker_delete_feature_group sagemaker_delete_experiment sagemaker_delete_endpoint_config sagemaker_delete_endpoint sagemaker_delete_domain sagemaker_delete_device_fleet sagemaker_delete_data_quality_job_definition sagemaker_delete_context sagemaker_delete_code_repository sagemaker_delete_association sagemaker_delete_artifact sagemaker_delete_app_image_config sagemaker_delete_app sagemaker_delete_algorithm sagemaker_delete_action sagemaker_create_workteam sagemaker_create_workforce sagemaker_create_user_profile sagemaker_create_trial_component sagemaker_create_trial sagemaker_create_transform_job sagemaker_create_training_job sagemaker_create_project sagemaker_create_processing_job sagemaker_create_presigned_notebook_instance_url sagemaker_create_presigned_domain_url sagemaker_create_pipeline sagemaker_create_notebook_instance_lifecycle_config sagemaker_create_notebook_instance sagemaker_create_monitoring_schedule sagemaker_create_model_quality_job_definition sagemaker_create_model_package_group sagemaker_create_model_package sagemaker_create_model_explainability_job_definition sagemaker_create_model_bias_job_definition sagemaker_create_model sagemaker_create_labeling_job sagemaker_create_image_version sagemaker_create_image sagemaker_create_hyper_parameter_tuning_job sagemaker_create_human_task_ui sagemaker_create_flow_definition sagemaker_create_feature_group sagemaker_create_experiment sagemaker_create_endpoint_config sagemaker_create_endpoint sagemaker_create_edge_packaging_job sagemaker_create_domain sagemaker_create_device_fleet sagemaker_create_data_quality_job_definition sagemaker_create_context sagemaker_create_compilation_job sagemaker_create_code_repository sagemaker_create_auto_ml_job sagemaker_create_artifact sagemaker_create_app_image_config sagemaker_create_app sagemaker_create_algorithm sagemaker_create_action sagemaker_associate_trial_component sagemaker_add_tags sagemaker_add_association

Documented in sagemaker_add_association sagemaker_add_tags sagemaker_associate_trial_component sagemaker_create_action sagemaker_create_algorithm sagemaker_create_app sagemaker_create_app_image_config sagemaker_create_artifact sagemaker_create_auto_ml_job sagemaker_create_code_repository sagemaker_create_compilation_job sagemaker_create_context sagemaker_create_data_quality_job_definition sagemaker_create_device_fleet sagemaker_create_domain sagemaker_create_edge_packaging_job sagemaker_create_endpoint sagemaker_create_endpoint_config sagemaker_create_experiment sagemaker_create_feature_group sagemaker_create_flow_definition sagemaker_create_human_task_ui sagemaker_create_hyper_parameter_tuning_job sagemaker_create_image sagemaker_create_image_version sagemaker_create_labeling_job sagemaker_create_model sagemaker_create_model_bias_job_definition sagemaker_create_model_explainability_job_definition sagemaker_create_model_package sagemaker_create_model_package_group sagemaker_create_model_quality_job_definition sagemaker_create_monitoring_schedule sagemaker_create_notebook_instance sagemaker_create_notebook_instance_lifecycle_config sagemaker_create_pipeline sagemaker_create_presigned_domain_url sagemaker_create_presigned_notebook_instance_url sagemaker_create_processing_job sagemaker_create_project sagemaker_create_training_job sagemaker_create_transform_job sagemaker_create_trial sagemaker_create_trial_component sagemaker_create_user_profile sagemaker_create_workforce sagemaker_create_workteam sagemaker_delete_action sagemaker_delete_algorithm sagemaker_delete_app sagemaker_delete_app_image_config sagemaker_delete_artifact sagemaker_delete_association sagemaker_delete_code_repository sagemaker_delete_context sagemaker_delete_data_quality_job_definition sagemaker_delete_device_fleet sagemaker_delete_domain sagemaker_delete_endpoint sagemaker_delete_endpoint_config sagemaker_delete_experiment sagemaker_delete_feature_group sagemaker_delete_flow_definition sagemaker_delete_human_task_ui sagemaker_delete_image sagemaker_delete_image_version sagemaker_delete_model sagemaker_delete_model_bias_job_definition sagemaker_delete_model_explainability_job_definition sagemaker_delete_model_package sagemaker_delete_model_package_group sagemaker_delete_model_package_group_policy sagemaker_delete_model_quality_job_definition sagemaker_delete_monitoring_schedule sagemaker_delete_notebook_instance sagemaker_delete_notebook_instance_lifecycle_config sagemaker_delete_pipeline sagemaker_delete_project sagemaker_delete_tags sagemaker_delete_trial sagemaker_delete_trial_component sagemaker_delete_user_profile sagemaker_delete_workforce sagemaker_delete_workteam sagemaker_deregister_devices sagemaker_describe_action sagemaker_describe_algorithm sagemaker_describe_app sagemaker_describe_app_image_config sagemaker_describe_artifact sagemaker_describe_auto_ml_job sagemaker_describe_code_repository sagemaker_describe_compilation_job sagemaker_describe_context sagemaker_describe_data_quality_job_definition sagemaker_describe_device sagemaker_describe_device_fleet sagemaker_describe_domain sagemaker_describe_edge_packaging_job sagemaker_describe_endpoint sagemaker_describe_endpoint_config sagemaker_describe_experiment sagemaker_describe_feature_group sagemaker_describe_flow_definition sagemaker_describe_human_task_ui sagemaker_describe_hyper_parameter_tuning_job sagemaker_describe_image sagemaker_describe_image_version sagemaker_describe_labeling_job sagemaker_describe_model sagemaker_describe_model_bias_job_definition sagemaker_describe_model_explainability_job_definition sagemaker_describe_model_package sagemaker_describe_model_package_group sagemaker_describe_model_quality_job_definition sagemaker_describe_monitoring_schedule sagemaker_describe_notebook_instance sagemaker_describe_notebook_instance_lifecycle_config sagemaker_describe_pipeline sagemaker_describe_pipeline_definition_for_execution sagemaker_describe_pipeline_execution sagemaker_describe_processing_job sagemaker_describe_project sagemaker_describe_subscribed_workteam sagemaker_describe_training_job sagemaker_describe_transform_job sagemaker_describe_trial sagemaker_describe_trial_component sagemaker_describe_user_profile sagemaker_describe_workforce sagemaker_describe_workteam sagemaker_disable_sagemaker_servicecatalog_portfolio sagemaker_disassociate_trial_component sagemaker_enable_sagemaker_servicecatalog_portfolio sagemaker_get_device_fleet_report sagemaker_get_model_package_group_policy sagemaker_get_sagemaker_servicecatalog_portfolio_status sagemaker_get_search_suggestions sagemaker_list_actions sagemaker_list_algorithms sagemaker_list_app_image_configs sagemaker_list_apps sagemaker_list_artifacts sagemaker_list_associations sagemaker_list_auto_ml_jobs sagemaker_list_candidates_for_auto_ml_job sagemaker_list_code_repositories sagemaker_list_compilation_jobs sagemaker_list_contexts sagemaker_list_data_quality_job_definitions sagemaker_list_device_fleets sagemaker_list_devices sagemaker_list_domains sagemaker_list_edge_packaging_jobs sagemaker_list_endpoint_configs sagemaker_list_endpoints sagemaker_list_experiments sagemaker_list_feature_groups sagemaker_list_flow_definitions sagemaker_list_human_task_uis sagemaker_list_hyper_parameter_tuning_jobs sagemaker_list_images sagemaker_list_image_versions sagemaker_list_labeling_jobs sagemaker_list_labeling_jobs_for_workteam sagemaker_list_model_bias_job_definitions sagemaker_list_model_explainability_job_definitions sagemaker_list_model_package_groups sagemaker_list_model_packages sagemaker_list_model_quality_job_definitions sagemaker_list_models sagemaker_list_monitoring_executions sagemaker_list_monitoring_schedules sagemaker_list_notebook_instance_lifecycle_configs sagemaker_list_notebook_instances sagemaker_list_pipeline_executions sagemaker_list_pipeline_execution_steps sagemaker_list_pipeline_parameters_for_execution sagemaker_list_pipelines sagemaker_list_processing_jobs sagemaker_list_projects sagemaker_list_subscribed_workteams sagemaker_list_tags sagemaker_list_training_jobs sagemaker_list_training_jobs_for_hyper_parameter_tuning_job sagemaker_list_transform_jobs sagemaker_list_trial_components sagemaker_list_trials sagemaker_list_user_profiles sagemaker_list_workforces sagemaker_list_workteams sagemaker_put_model_package_group_policy sagemaker_register_devices sagemaker_render_ui_template sagemaker_search sagemaker_start_monitoring_schedule sagemaker_start_notebook_instance sagemaker_start_pipeline_execution sagemaker_stop_auto_ml_job sagemaker_stop_compilation_job sagemaker_stop_edge_packaging_job sagemaker_stop_hyper_parameter_tuning_job sagemaker_stop_labeling_job sagemaker_stop_monitoring_schedule sagemaker_stop_notebook_instance sagemaker_stop_pipeline_execution sagemaker_stop_processing_job sagemaker_stop_training_job sagemaker_stop_transform_job sagemaker_update_action sagemaker_update_app_image_config sagemaker_update_artifact sagemaker_update_code_repository sagemaker_update_context sagemaker_update_device_fleet sagemaker_update_devices sagemaker_update_domain sagemaker_update_endpoint sagemaker_update_endpoint_weights_and_capacities sagemaker_update_experiment sagemaker_update_image sagemaker_update_model_package sagemaker_update_monitoring_schedule sagemaker_update_notebook_instance sagemaker_update_notebook_instance_lifecycle_config sagemaker_update_pipeline sagemaker_update_pipeline_execution sagemaker_update_training_job sagemaker_update_trial sagemaker_update_trial_component sagemaker_update_user_profile sagemaker_update_workforce sagemaker_update_workteam

# This file is generated by make.paws. Please do not edit here.
#' @importFrom paws.common get_config new_operation new_request send_request
#' @include sagemaker_service.R
NULL

#' Creates an association between the source and the destination
#'
#' @description
#' Creates an *association* between the source and the destination. A
#' source can be associated with multiple destinations, and a destination
#' can be associated with multiple sources. An association is a lineage
#' tracking entity. For more information, see [Amazon SageMaker ML Lineage
#' Tracking](https://docs.aws.amazon.com/sagemaker/latest/dg/lineage-tracking.html).
#'
#' @usage
#' sagemaker_add_association(SourceArn, DestinationArn, AssociationType)
#'
#' @param SourceArn [required] The ARN of the source.
#' @param DestinationArn [required] The Amazon Resource Name (ARN) of the destination.
#' @param AssociationType 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
#' A list with the following syntax:
#' ```
#' list(
#'   SourceArn = "string",
#'   DestinationArn = "string"
#' )
#' ```
#'
#' @section Request syntax:
#' ```
#' svc$add_association(
#'   SourceArn = "string",
#'   DestinationArn = "string",
#'   AssociationType = "ContributedTo"|"AssociatedWith"|"DerivedFrom"|"Produced"
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname sagemaker_add_association
sagemaker_add_association <- function(SourceArn, DestinationArn, AssociationType = NULL) {
  op <- new_operation(
    name = "AddAssociation",
    http_method = "POST",
    http_path = "/",
    paginator = list()
  )
  input <- .sagemaker$add_association_input(SourceArn = SourceArn, DestinationArn = DestinationArn, AssociationType = AssociationType)
  output <- .sagemaker$add_association_output()
  config <- get_config()
  svc <- .sagemaker$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.sagemaker$operations$add_association <- sagemaker_add_association

#' Adds or overwrites one or more tags for the specified Amazon SageMaker
#' resource
#'
#' @description
#' Adds or overwrites one or more tags for the specified Amazon SageMaker
#' resource. You can add tags to notebook instances, training jobs,
#' hyperparameter tuning jobs, batch transform jobs, models, labeling jobs,
#' work teams, endpoint configurations, and endpoints.
#' 
#' Each tag consists of a key and an optional value. Tag keys must be
#' unique per resource. For more information about tags, see For more
#' information, see [AWS Tagging
#' Strategies](https://d1.awsstatic.com/whitepapers/aws-tagging-best-practices.pdf).
#' 
#' Tags that you add to a hyperparameter tuning job by calling this API are
#' also added to any training jobs that the hyperparameter tuning job
#' launches after you call this API, but not to training jobs that the
#' hyperparameter tuning job launched before you called this API. To make
#' sure that the tags associated with a hyperparameter tuning job are also
#' added to all training jobs that the hyperparameter tuning job launches,
#' add the tags when you first create the tuning job by specifying them in
#' the `Tags` parameter of
#' [`create_hyper_parameter_tuning_job`][sagemaker_create_hyper_parameter_tuning_job]
#'
#' @usage
#' sagemaker_add_tags(ResourceArn, Tags)
#'
#' @param ResourceArn &#91;required&#93; The Amazon Resource Name (ARN) of the resource that you want to tag.
#' @param Tags &#91;required&#93; An array of key-value pairs. You can use tags to categorize your AWS
#' resources in different ways, for example, by purpose, owner, or
#' environment. For more information, see [Tagging AWS
#' Resources](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html).
#'
#' @return
#' A list with the following syntax:
#' ```
#' list(
#'   Tags = list(
#'     list(
#'       Key = "string",
#'       Value = "string"
#'     )
#'   )
#' )
#' ```
#'
#' @section Request syntax:
#' ```
#' svc$add_tags(
#'   ResourceArn = "string",
#'   Tags = list(
#'     list(
#'       Key = "string",
#'       Value = "string"
#'     )
#'   )
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname sagemaker_add_tags
sagemaker_add_tags <- function(ResourceArn, Tags) {
  op <- new_operation(
    name = "AddTags",
    http_method = "POST",
    http_path = "/",
    paginator = list()
  )
  input <- .sagemaker$add_tags_input(ResourceArn = ResourceArn, Tags = Tags)
  output <- .sagemaker$add_tags_output()
  config <- get_config()
  svc <- .sagemaker$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.sagemaker$operations$add_tags <- sagemaker_add_tags

#' Associates a trial component with a trial
#'
#' @description
#' Associates a trial component with a trial. A trial component can be
#' associated with multiple trials. To disassociate a trial component from
#' a trial, call the
#' [`disassociate_trial_component`][sagemaker_disassociate_trial_component]
#' API.
#'
#' @usage
#' sagemaker_associate_trial_component(TrialComponentName, TrialName)
#'
#' @param TrialComponentName &#91;required&#93; The name of the component to associated with the trial.
#' @param TrialName &#91;required&#93; The name of the trial to associate with.
#'
#' @return
#' A list with the following syntax:
#' ```
#' list(
#'   TrialComponentArn = "string",
#'   TrialArn = "string"
#' )
#' ```
#'
#' @section Request syntax:
#' ```
#' svc$associate_trial_component(
#'   TrialComponentName = "string",
#'   TrialName = "string"
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname sagemaker_associate_trial_component
sagemaker_associate_trial_component <- function(TrialComponentName, TrialName) {
  op <- new_operation(
    name = "AssociateTrialComponent",
    http_method = "POST",
    http_path = "/",
    paginator = list()
  )
  input <- .sagemaker$associate_trial_component_input(TrialComponentName = TrialComponentName, TrialName = TrialName)
  output <- .sagemaker$associate_trial_component_output()
  config <- get_config()
  svc <- .sagemaker$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.sagemaker$operations$associate_trial_component <- sagemaker_associate_trial_component

#' Creates an action
#'
#' @description
#' Creates an *action*. An action is a lineage tracking entity that
#' represents an action or activity. For example, a model deployment or an
#' HPO job. Generally, an action involves at least one input or output
#' artifact. For more information, see [Amazon SageMaker ML Lineage
#' Tracking](https://docs.aws.amazon.com/sagemaker/latest/dg/lineage-tracking.html).
#'
#' @usage
#' sagemaker_create_action(ActionName, Source, ActionType, Description,
#'   Status, Properties, MetadataProperties, Tags)
#'
#' @param ActionName &#91;required&#93; The name of the action. Must be unique to your account in an AWS Region.
#' @param Source &#91;required&#93; The source type, ID, and URI.
#' @param ActionType &#91;required&#93; The action type.
#' @param Description The description of the action.
#' @param Status The status of the action.
#' @param Properties A list of properties to add to the action.
#' @param MetadataProperties 
#' @param Tags A list of tags to apply to the action.
#'
#' @return
#' A list with the following syntax:
#' ```
#' list(
#'   ActionArn = "string"
#' )
#' ```
#'
#' @section Request syntax:
#' ```
#' svc$create_action(
#'   ActionName = "string",
#'   Source = list(
#'     SourceUri = "string",
#'     SourceType = "string",
#'     SourceId = "string"
#'   ),
#'   ActionType = "string",
#'   Description = "string",
#'   Status = "Unknown"|"InProgress"|"Completed"|"Failed"|"Stopping"|"Stopped",
#'   Properties = list(
#'     "string"
#'   ),
#'   MetadataProperties = list(
#'     CommitId = "string",
#'     Repository = "string",
#'     GeneratedBy = "string",
#'     ProjectId = "string"
#'   ),
#'   Tags = list(
#'     list(
#'       Key = "string",
#'       Value = "string"
#'     )
#'   )
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname sagemaker_create_action
sagemaker_create_action <- function(ActionName, Source, ActionType, Description = NULL, Status = NULL, Properties = NULL, MetadataProperties = NULL, Tags = NULL) {
  op <- new_operation(
    name = "CreateAction",
    http_method = "POST",
    http_path = "/",
    paginator = list()
  )
  input <- .sagemaker$create_action_input(ActionName = ActionName, Source = Source, ActionType = ActionType, Description = Description, Status = Status, Properties = Properties, MetadataProperties = MetadataProperties, Tags = Tags)
  output <- .sagemaker$create_action_output()
  config <- get_config()
  svc <- .sagemaker$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.sagemaker$operations$create_action <- sagemaker_create_action

#' Create a machine learning algorithm that you can use in Amazon SageMaker
#' and list in the AWS Marketplace
#'
#' @description
#' Create a machine learning algorithm that you can use in Amazon SageMaker
#' and list in the AWS Marketplace.
#'
#' @usage
#' sagemaker_create_algorithm(AlgorithmName, AlgorithmDescription,
#'   TrainingSpecification, InferenceSpecification, ValidationSpecification,
#'   CertifyForMarketplace, Tags)
#'
#' @param AlgorithmName &#91;required&#93; The name of the algorithm.
#' @param AlgorithmDescription A description of the algorithm.
#' @param TrainingSpecification &#91;required&#93; 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.
#' @param InferenceSpecification 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.
#' @param ValidationSpecification Specifies configurations for one or more training jobs and that Amazon
#' SageMaker runs to test the algorithm's training code and, optionally,
#' one or more batch transform jobs that Amazon SageMaker runs to test the
#' algorithm's inference code.
#' @param CertifyForMarketplace Whether to certify the algorithm so that it can be listed in AWS
#' Marketplace.
#' @param Tags An array of key-value pairs. You can use tags to categorize your AWS
#' resources in different ways, for example, by purpose, owner, or
#' environment. For more information, see [Tagging AWS
#' Resources](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html).
#'
#' @return
#' A list with the following syntax:
#' ```
#' list(
#'   AlgorithmArn = "string"
#' )
#' ```
#'
#' @section Request syntax:
#' ```
#' svc$create_algorithm(
#'   AlgorithmName = "string",
#'   AlgorithmDescription = "string",
#'   TrainingSpecification = list(
#'     TrainingImage = "string",
#'     TrainingImageDigest = "string",
#'     SupportedHyperParameters = list(
#'       list(
#'         Name = "string",
#'         Description = "string",
#'         Type = "Integer"|"Continuous"|"Categorical"|"FreeText",
#'         Range = list(
#'           IntegerParameterRangeSpecification = list(
#'             MinValue = "string",
#'             MaxValue = "string"
#'           ),
#'           ContinuousParameterRangeSpecification = list(
#'             MinValue = "string",
#'             MaxValue = "string"
#'           ),
#'           CategoricalParameterRangeSpecification = list(
#'             Values = list(
#'               "string"
#'             )
#'           )
#'         ),
#'         IsTunable = TRUE|FALSE,
#'         IsRequired = TRUE|FALSE,
#'         DefaultValue = "string"
#'       )
#'     ),
#'     SupportedTrainingInstanceTypes = list(
#'       "ml.m4.xlarge"|"ml.m4.2xlarge"|"ml.m4.4xlarge"|"ml.m4.10xlarge"|"ml.m4.16xlarge"|"ml.g4dn.xlarge"|"ml.g4dn.2xlarge"|"ml.g4dn.4xlarge"|"ml.g4dn.8xlarge"|"ml.g4dn.12xlarge"|"ml.g4dn.16xlarge"|"ml.m5.large"|"ml.m5.xlarge"|"ml.m5.2xlarge"|"ml.m5.4xlarge"|"ml.m5.12xlarge"|"ml.m5.24xlarge"|"ml.c4.xlarge"|"ml.c4.2xlarge"|"ml.c4.4xlarge"|"ml.c4.8xlarge"|"ml.p2.xlarge"|"ml.p2.8xlarge"|"ml.p2.16xlarge"|"ml.p3.2xlarge"|"ml.p3.8xlarge"|"ml.p3.16xlarge"|"ml.p3dn.24xlarge"|"ml.p4d.24xlarge"|"ml.c5.xlarge"|"ml.c5.2xlarge"|"ml.c5.4xlarge"|"ml.c5.9xlarge"|"ml.c5.18xlarge"|"ml.c5n.xlarge"|"ml.c5n.2xlarge"|"ml.c5n.4xlarge"|"ml.c5n.9xlarge"|"ml.c5n.18xlarge"
#'     ),
#'     SupportsDistributedTraining = TRUE|FALSE,
#'     MetricDefinitions = list(
#'       list(
#'         Name = "string",
#'         Regex = "string"
#'       )
#'     ),
#'     TrainingChannels = list(
#'       list(
#'         Name = "string",
#'         Description = "string",
#'         IsRequired = TRUE|FALSE,
#'         SupportedContentTypes = list(
#'           "string"
#'         ),
#'         SupportedCompressionTypes = list(
#'           "None"|"Gzip"
#'         ),
#'         SupportedInputModes = list(
#'           "Pipe"|"File"
#'         )
#'       )
#'     ),
#'     SupportedTuningJobObjectiveMetrics = list(
#'       list(
#'         Type = "Maximize"|"Minimize",
#'         MetricName = "string"
#'       )
#'     )
#'   ),
#'   InferenceSpecification = list(
#'     Containers = list(
#'       list(
#'         ContainerHostname = "string",
#'         Image = "string",
#'         ImageDigest = "string",
#'         ModelDataUrl = "string",
#'         ProductId = "string"
#'       )
#'     ),
#'     SupportedTransformInstanceTypes = list(
#'       "ml.m4.xlarge"|"ml.m4.2xlarge"|"ml.m4.4xlarge"|"ml.m4.10xlarge"|"ml.m4.16xlarge"|"ml.c4.xlarge"|"ml.c4.2xlarge"|"ml.c4.4xlarge"|"ml.c4.8xlarge"|"ml.p2.xlarge"|"ml.p2.8xlarge"|"ml.p2.16xlarge"|"ml.p3.2xlarge"|"ml.p3.8xlarge"|"ml.p3.16xlarge"|"ml.c5.xlarge"|"ml.c5.2xlarge"|"ml.c5.4xlarge"|"ml.c5.9xlarge"|"ml.c5.18xlarge"|"ml.m5.large"|"ml.m5.xlarge"|"ml.m5.2xlarge"|"ml.m5.4xlarge"|"ml.m5.12xlarge"|"ml.m5.24xlarge"
#'     ),
#'     SupportedRealtimeInferenceInstanceTypes = list(
#'       "ml.t2.medium"|"ml.t2.large"|"ml.t2.xlarge"|"ml.t2.2xlarge"|"ml.m4.xlarge"|"ml.m4.2xlarge"|"ml.m4.4xlarge"|"ml.m4.10xlarge"|"ml.m4.16xlarge"|"ml.m5.large"|"ml.m5.xlarge"|"ml.m5.2xlarge"|"ml.m5.4xlarge"|"ml.m5.12xlarge"|"ml.m5.24xlarge"|"ml.m5d.large"|"ml.m5d.xlarge"|"ml.m5d.2xlarge"|"ml.m5d.4xlarge"|"ml.m5d.12xlarge"|"ml.m5d.24xlarge"|"ml.c4.large"|"ml.c4.xlarge"|"ml.c4.2xlarge"|"ml.c4.4xlarge"|"ml.c4.8xlarge"|"ml.p2.xlarge"|"ml.p2.8xlarge"|"ml.p2.16xlarge"|"ml.p3.2xlarge"|"ml.p3.8xlarge"|"ml.p3.16xlarge"|"ml.c5.large"|"ml.c5.xlarge"|"ml.c5.2xlarge"|"ml.c5.4xlarge"|"ml.c5.9xlarge"|"ml.c5.18xlarge"|"ml.c5d.large"|"ml.c5d.xlarge"|"ml.c5d.2xlarge"|"ml.c5d.4xlarge"|"ml.c5d.9xlarge"|"ml.c5d.18xlarge"|"ml.g4dn.xlarge"|"ml.g4dn.2xlarge"|"ml.g4dn.4xlarge"|"ml.g4dn.8xlarge"|"ml.g4dn.12xlarge"|"ml.g4dn.16xlarge"|"ml.r5.large"|"ml.r5.xlarge"|"ml.r5.2xlarge"|"ml.r5.4xlarge"|"ml.r5.12xlarge"|"ml.r5.24xlarge"|"ml.r5d.large"|"ml.r5d.xlarge"|"ml.r5d.2xlarge"|"ml.r5d.4xlarge"|"ml.r5d.12xlarge"|"ml.r5d.24xlarge"|"ml.inf1.xlarge"|"ml.inf1.2xlarge"|"ml.inf1.6xlarge"|"ml.inf1.24xlarge"
#'     ),
#'     SupportedContentTypes = list(
#'       "string"
#'     ),
#'     SupportedResponseMIMETypes = list(
#'       "string"
#'     )
#'   ),
#'   ValidationSpecification = list(
#'     ValidationRole = "string",
#'     ValidationProfiles = list(
#'       list(
#'         ProfileName = "string",
#'         TrainingJobDefinition = list(
#'           TrainingInputMode = "Pipe"|"File",
#'           HyperParameters = list(
#'             "string"
#'           ),
#'           InputDataConfig = list(
#'             list(
#'               ChannelName = "string",
#'               DataSource = list(
#'                 S3DataSource = list(
#'                   S3DataType = "ManifestFile"|"S3Prefix"|"AugmentedManifestFile",
#'                   S3Uri = "string",
#'                   S3DataDistributionType = "FullyReplicated"|"ShardedByS3Key",
#'                   AttributeNames = list(
#'                     "string"
#'                   )
#'                 ),
#'                 FileSystemDataSource = list(
#'                   FileSystemId = "string",
#'                   FileSystemAccessMode = "rw"|"ro",
#'                   FileSystemType = "EFS"|"FSxLustre",
#'                   DirectoryPath = "string"
#'                 )
#'               ),
#'               ContentType = "string",
#'               CompressionType = "None"|"Gzip",
#'               RecordWrapperType = "None"|"RecordIO",
#'               InputMode = "Pipe"|"File",
#'               ShuffleConfig = list(
#'                 Seed = 123
#'               )
#'             )
#'           ),
#'           OutputDataConfig = list(
#'             KmsKeyId = "string",
#'             S3OutputPath = "string"
#'           ),
#'           ResourceConfig = list(
#'             InstanceType = "ml.m4.xlarge"|"ml.m4.2xlarge"|"ml.m4.4xlarge"|"ml.m4.10xlarge"|"ml.m4.16xlarge"|"ml.g4dn.xlarge"|"ml.g4dn.2xlarge"|"ml.g4dn.4xlarge"|"ml.g4dn.8xlarge"|"ml.g4dn.12xlarge"|"ml.g4dn.16xlarge"|"ml.m5.large"|"ml.m5.xlarge"|"ml.m5.2xlarge"|"ml.m5.4xlarge"|"ml.m5.12xlarge"|"ml.m5.24xlarge"|"ml.c4.xlarge"|"ml.c4.2xlarge"|"ml.c4.4xlarge"|"ml.c4.8xlarge"|"ml.p2.xlarge"|"ml.p2.8xlarge"|"ml.p2.16xlarge"|"ml.p3.2xlarge"|"ml.p3.8xlarge"|"ml.p3.16xlarge"|"ml.p3dn.24xlarge"|"ml.p4d.24xlarge"|"ml.c5.xlarge"|"ml.c5.2xlarge"|"ml.c5.4xlarge"|"ml.c5.9xlarge"|"ml.c5.18xlarge"|"ml.c5n.xlarge"|"ml.c5n.2xlarge"|"ml.c5n.4xlarge"|"ml.c5n.9xlarge"|"ml.c5n.18xlarge",
#'             InstanceCount = 123,
#'             VolumeSizeInGB = 123,
#'             VolumeKmsKeyId = "string"
#'           ),
#'           StoppingCondition = list(
#'             MaxRuntimeInSeconds = 123,
#'             MaxWaitTimeInSeconds = 123
#'           )
#'         ),
#'         TransformJobDefinition = list(
#'           MaxConcurrentTransforms = 123,
#'           MaxPayloadInMB = 123,
#'           BatchStrategy = "MultiRecord"|"SingleRecord",
#'           Environment = list(
#'             "string"
#'           ),
#'           TransformInput = list(
#'             DataSource = list(
#'               S3DataSource = list(
#'                 S3DataType = "ManifestFile"|"S3Prefix"|"AugmentedManifestFile",
#'                 S3Uri = "string"
#'               )
#'             ),
#'             ContentType = "string",
#'             CompressionType = "None"|"Gzip",
#'             SplitType = "None"|"Line"|"RecordIO"|"TFRecord"
#'           ),
#'           TransformOutput = list(
#'             S3OutputPath = "string",
#'             Accept = "string",
#'             AssembleWith = "None"|"Line",
#'             KmsKeyId = "string"
#'           ),
#'           TransformResources = list(
#'             InstanceType = "ml.m4.xlarge"|"ml.m4.2xlarge"|"ml.m4.4xlarge"|"ml.m4.10xlarge"|"ml.m4.16xlarge"|"ml.c4.xlarge"|"ml.c4.2xlarge"|"ml.c4.4xlarge"|"ml.c4.8xlarge"|"ml.p2.xlarge"|"ml.p2.8xlarge"|"ml.p2.16xlarge"|"ml.p3.2xlarge"|"ml.p3.8xlarge"|"ml.p3.16xlarge"|"ml.c5.xlarge"|"ml.c5.2xlarge"|"ml.c5.4xlarge"|"ml.c5.9xlarge"|"ml.c5.18xlarge"|"ml.m5.large"|"ml.m5.xlarge"|"ml.m5.2xlarge"|"ml.m5.4xlarge"|"ml.m5.12xlarge"|"ml.m5.24xlarge",
#'             InstanceCount = 123,
#'             VolumeKmsKeyId = "string"
#'           )
#'         )
#'       )
#'     )
#'   ),
#'   CertifyForMarketplace = TRUE|FALSE,
#'   Tags = list(
#'     list(
#'       Key = "string",
#'       Value = "string"
#'     )
#'   )
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname sagemaker_create_algorithm
sagemaker_create_algorithm <- function(AlgorithmName, AlgorithmDescription = NULL, TrainingSpecification, InferenceSpecification = NULL, ValidationSpecification = NULL, CertifyForMarketplace = NULL, Tags = NULL) {
  op <- new_operation(
    name = "CreateAlgorithm",
    http_method = "POST",
    http_path = "/",
    paginator = list()
  )
  input <- .sagemaker$create_algorithm_input(AlgorithmName = AlgorithmName, AlgorithmDescription = AlgorithmDescription, TrainingSpecification = TrainingSpecification, InferenceSpecification = InferenceSpecification, ValidationSpecification = ValidationSpecification, CertifyForMarketplace = CertifyForMarketplace, Tags = Tags)
  output <- .sagemaker$create_algorithm_output()
  config <- get_config()
  svc <- .sagemaker$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.sagemaker$operations$create_algorithm <- sagemaker_create_algorithm

#' Creates a running App for the specified UserProfile
#'
#' @description
#' Creates a running App for the specified UserProfile. Supported Apps are
#' JupyterServer and KernelGateway. This operation is automatically invoked
#' by Amazon SageMaker Studio upon access to the associated Domain, and
#' when new kernel configurations are selected by the user. A user may have
#' multiple Apps active simultaneously.
#'
#' @usage
#' sagemaker_create_app(DomainId, UserProfileName, AppType, AppName, Tags,
#'   ResourceSpec)
#'
#' @param DomainId &#91;required&#93; The domain ID.
#' @param UserProfileName &#91;required&#93; The user profile name.
#' @param AppType &#91;required&#93; The type of app.
#' @param AppName &#91;required&#93; The name of the app.
#' @param Tags Each tag consists of a key and an optional value. Tag keys must be
#' unique per resource.
#' @param ResourceSpec The instance type and the Amazon Resource Name (ARN) of the SageMaker
#' image created on the instance.
#'
#' @return
#' A list with the following syntax:
#' ```
#' list(
#'   AppArn = "string"
#' )
#' ```
#'
#' @section Request syntax:
#' ```
#' svc$create_app(
#'   DomainId = "string",
#'   UserProfileName = "string",
#'   AppType = "JupyterServer"|"KernelGateway"|"TensorBoard",
#'   AppName = "string",
#'   Tags = list(
#'     list(
#'       Key = "string",
#'       Value = "string"
#'     )
#'   ),
#'   ResourceSpec = list(
#'     SageMakerImageArn = "string",
#'     SageMakerImageVersionArn = "string",
#'     InstanceType = "system"|"ml.t3.micro"|"ml.t3.small"|"ml.t3.medium"|"ml.t3.large"|"ml.t3.xlarge"|"ml.t3.2xlarge"|"ml.m5.large"|"ml.m5.xlarge"|"ml.m5.2xlarge"|"ml.m5.4xlarge"|"ml.m5.8xlarge"|"ml.m5.12xlarge"|"ml.m5.16xlarge"|"ml.m5.24xlarge"|"ml.c5.large"|"ml.c5.xlarge"|"ml.c5.2xlarge"|"ml.c5.4xlarge"|"ml.c5.9xlarge"|"ml.c5.12xlarge"|"ml.c5.18xlarge"|"ml.c5.24xlarge"|"ml.p3.2xlarge"|"ml.p3.8xlarge"|"ml.p3.16xlarge"|"ml.g4dn.xlarge"|"ml.g4dn.2xlarge"|"ml.g4dn.4xlarge"|"ml.g4dn.8xlarge"|"ml.g4dn.12xlarge"|"ml.g4dn.16xlarge"
#'   )
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname sagemaker_create_app
sagemaker_create_app <- function(DomainId, UserProfileName, AppType, AppName, Tags = NULL, ResourceSpec = NULL) {
  op <- new_operation(
    name = "CreateApp",
    http_method = "POST",
    http_path = "/",
    paginator = list()
  )
  input <- .sagemaker$create_app_input(DomainId = DomainId, UserProfileName = UserProfileName, AppType = AppType, AppName = AppName, Tags = Tags, ResourceSpec = ResourceSpec)
  output <- .sagemaker$create_app_output()
  config <- get_config()
  svc <- .sagemaker$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.sagemaker$operations$create_app <- sagemaker_create_app

#' Creates a configuration for running a SageMaker image as a KernelGateway
#' app
#'
#' @description
#' Creates a configuration for running a SageMaker image as a KernelGateway
#' app. The configuration specifies the Amazon Elastic File System (EFS)
#' storage volume on the image, and a list of the kernels in the image.
#'
#' @usage
#' sagemaker_create_app_image_config(AppImageConfigName, Tags,
#'   KernelGatewayImageConfig)
#'
#' @param AppImageConfigName &#91;required&#93; The name of the AppImageConfig. Must be unique to your account.
#' @param Tags A list of tags to apply to the AppImageConfig.
#' @param KernelGatewayImageConfig The KernelGatewayImageConfig.
#'
#' @return
#' A list with the following syntax:
#' ```
#' list(
#'   AppImageConfigArn = "string"
#' )
#' ```
#'
#' @section Request syntax:
#' ```
#' svc$create_app_image_config(
#'   AppImageConfigName = "string",
#'   Tags = list(
#'     list(
#'       Key = "string",
#'       Value = "string"
#'     )
#'   ),
#'   KernelGatewayImageConfig = list(
#'     KernelSpecs = list(
#'       list(
#'         Name = "string",
#'         DisplayName = "string"
#'       )
#'     ),
#'     FileSystemConfig = list(
#'       MountPath = "string",
#'       DefaultUid = 123,
#'       DefaultGid = 123
#'     )
#'   )
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname sagemaker_create_app_image_config
sagemaker_create_app_image_config <- function(AppImageConfigName, Tags = NULL, KernelGatewayImageConfig = NULL) {
  op <- new_operation(
    name = "CreateAppImageConfig",
    http_method = "POST",
    http_path = "/",
    paginator = list()
  )
  input <- .sagemaker$create_app_image_config_input(AppImageConfigName = AppImageConfigName, Tags = Tags, KernelGatewayImageConfig = KernelGatewayImageConfig)
  output <- .sagemaker$create_app_image_config_output()
  config <- get_config()
  svc <- .sagemaker$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.sagemaker$operations$create_app_image_config <- sagemaker_create_app_image_config

#' Creates an artifact
#'
#' @description
#' Creates an *artifact*. An artifact is a lineage tracking entity that
#' represents a URI addressable object or data. Some examples are the S3
#' URI of a dataset and the ECR registry path of an image. For more
#' information, see [Amazon SageMaker ML Lineage
#' Tracking](https://docs.aws.amazon.com/sagemaker/latest/dg/lineage-tracking.html).
#'
#' @usage
#' sagemaker_create_artifact(ArtifactName, Source, ArtifactType,
#'   Properties, MetadataProperties, Tags)
#'
#' @param ArtifactName The name of the artifact. Must be unique to your account in an AWS
#' Region.
#' @param Source &#91;required&#93; The ID, ID type, and URI of the source.
#' @param ArtifactType &#91;required&#93; The artifact type.
#' @param Properties A list of properties to add to the artifact.
#' @param MetadataProperties 
#' @param Tags A list of tags to apply to the artifact.
#'
#' @return
#' A list with the following syntax:
#' ```
#' list(
#'   ArtifactArn = "string"
#' )
#' ```
#'
#' @section Request syntax:
#' ```
#' svc$create_artifact(
#'   ArtifactName = "string",
#'   Source = list(
#'     SourceUri = "string",
#'     SourceTypes = list(
#'       list(
#'         SourceIdType = "MD5Hash"|"S3ETag"|"S3Version"|"Custom",
#'         Value = "string"
#'       )
#'     )
#'   ),
#'   ArtifactType = "string",
#'   Properties = list(
#'     "string"
#'   ),
#'   MetadataProperties = list(
#'     CommitId = "string",
#'     Repository = "string",
#'     GeneratedBy = "string",
#'     ProjectId = "string"
#'   ),
#'   Tags = list(
#'     list(
#'       Key = "string",
#'       Value = "string"
#'     )
#'   )
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname sagemaker_create_artifact
sagemaker_create_artifact <- function(ArtifactName = NULL, Source, ArtifactType, Properties = NULL, MetadataProperties = NULL, Tags = NULL) {
  op <- new_operation(
    name = "CreateArtifact",
    http_method = "POST",
    http_path = "/",
    paginator = list()
  )
  input <- .sagemaker$create_artifact_input(ArtifactName = ArtifactName, Source = Source, ArtifactType = ArtifactType, Properties = Properties, MetadataProperties = MetadataProperties, Tags = Tags)
  output <- .sagemaker$create_artifact_output()
  config <- get_config()
  svc <- .sagemaker$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.sagemaker$operations$create_artifact <- sagemaker_create_artifact

#' Creates an Autopilot job
#'
#' @description
#' Creates an Autopilot job.
#' 
#' Find the best performing model after you run an Autopilot job by calling
#' . Deploy that model by following the steps described in [Step 6.1:
#' Deploy the Model to Amazon SageMaker Hosting
#' Services](https://docs.aws.amazon.com/sagemaker/latest/dg/).
#' 
#' For information about how to use Autopilot, see [Automate Model
#' Development with Amazon SageMaker
#' Autopilot](https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-automate-model-development.html).
#'
#' @usage
#' sagemaker_create_auto_ml_job(AutoMLJobName, InputDataConfig,
#'   OutputDataConfig, ProblemType, AutoMLJobObjective, AutoMLJobConfig,
#'   RoleArn, GenerateCandidateDefinitionsOnly, Tags)
#'
#' @param AutoMLJobName &#91;required&#93; Identifies an Autopilot job. Must be unique to your account and is
#' case-insensitive.
#' @param InputDataConfig &#91;required&#93; Similar to InputDataConfig supported by Tuning. Format(s) supported:
#' CSV. Minimum of 500 rows.
#' @param OutputDataConfig &#91;required&#93; Similar to OutputDataConfig supported by Tuning. Format(s) supported:
#' CSV.
#' @param ProblemType Defines the kind of preprocessing and algorithms intended for the
#' candidates. Options include: BinaryClassification,
#' MulticlassClassification, and Regression.
#' @param AutoMLJobObjective Defines the objective of a an AutoML job. You provide a
#' AutoMLJobObjective$MetricName and Autopilot infers whether to minimize
#' or maximize it. If a metric is not specified, the most commonly used
#' ObjectiveMetric for problem type is automaically selected.
#' @param AutoMLJobConfig Contains CompletionCriteria and SecurityConfig.
#' @param RoleArn &#91;required&#93; The ARN of the role that is used to access the data.
#' @param GenerateCandidateDefinitionsOnly Generates possible candidates without training a model. A candidate is a
#' combination of data preprocessors, algorithms, and algorithm parameter
#' settings.
#' @param Tags Each tag consists of a key and an optional value. Tag keys must be
#' unique per resource.
#'
#' @return
#' A list with the following syntax:
#' ```
#' list(
#'   AutoMLJobArn = "string"
#' )
#' ```
#'
#' @section Request syntax:
#' ```
#' svc$create_auto_ml_job(
#'   AutoMLJobName = "string",
#'   InputDataConfig = list(
#'     list(
#'       DataSource = list(
#'         S3DataSource = list(
#'           S3DataType = "ManifestFile"|"S3Prefix",
#'           S3Uri = "string"
#'         )
#'       ),
#'       CompressionType = "None"|"Gzip",
#'       TargetAttributeName = "string"
#'     )
#'   ),
#'   OutputDataConfig = list(
#'     KmsKeyId = "string",
#'     S3OutputPath = "string"
#'   ),
#'   ProblemType = "BinaryClassification"|"MulticlassClassification"|"Regression",
#'   AutoMLJobObjective = list(
#'     MetricName = "Accuracy"|"MSE"|"F1"|"F1macro"|"AUC"
#'   ),
#'   AutoMLJobConfig = list(
#'     CompletionCriteria = list(
#'       MaxCandidates = 123,
#'       MaxRuntimePerTrainingJobInSeconds = 123,
#'       MaxAutoMLJobRuntimeInSeconds = 123
#'     ),
#'     SecurityConfig = list(
#'       VolumeKmsKeyId = "string",
#'       EnableInterContainerTrafficEncryption = TRUE|FALSE,
#'       VpcConfig = list(
#'         SecurityGroupIds = list(
#'           "string"
#'         ),
#'         Subnets = list(
#'           "string"
#'         )
#'       )
#'     )
#'   ),
#'   RoleArn = "string",
#'   GenerateCandidateDefinitionsOnly = TRUE|FALSE,
#'   Tags = list(
#'     list(
#'       Key = "string",
#'       Value = "string"
#'     )
#'   )
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname sagemaker_create_auto_ml_job
sagemaker_create_auto_ml_job <- function(AutoMLJobName, InputDataConfig, OutputDataConfig, ProblemType = NULL, AutoMLJobObjective = NULL, AutoMLJobConfig = NULL, RoleArn, GenerateCandidateDefinitionsOnly = NULL, Tags = NULL) {
  op <- new_operation(
    name = "CreateAutoMLJob",
    http_method = "POST",
    http_path = "/",
    paginator = list()
  )
  input <- .sagemaker$create_auto_ml_job_input(AutoMLJobName = AutoMLJobName, InputDataConfig = InputDataConfig, OutputDataConfig = OutputDataConfig, ProblemType = ProblemType, AutoMLJobObjective = AutoMLJobObjective, AutoMLJobConfig = AutoMLJobConfig, RoleArn = RoleArn, GenerateCandidateDefinitionsOnly = GenerateCandidateDefinitionsOnly, Tags = Tags)
  output <- .sagemaker$create_auto_ml_job_output()
  config <- get_config()
  svc <- .sagemaker$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.sagemaker$operations$create_auto_ml_job <- sagemaker_create_auto_ml_job

#' Creates a Git repository as a resource in your Amazon SageMaker account
#'
#' @description
#' Creates a Git repository as a resource in your Amazon SageMaker account.
#' You can associate the repository with notebook instances so that you can
#' use Git source control for the notebooks you create. The Git repository
#' is a resource in your Amazon SageMaker account, so it can be associated
#' with more than one notebook instance, and it persists independently from
#' the lifecycle of any notebook instances it is associated with.
#' 
#' The repository can be hosted either in [AWS
#' CodeCommit](https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html)
#' or in any other Git repository.
#'
#' @usage
#' sagemaker_create_code_repository(CodeRepositoryName, GitConfig, Tags)
#'
#' @param CodeRepositoryName &#91;required&#93; 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).
#' @param GitConfig &#91;required&#93; Specifies details about the repository, including the URL where the
#' repository is located, the default branch, and credentials to use to
#' access the repository.
#' @param Tags An array of key-value pairs. You can use tags to categorize your AWS
#' resources in different ways, for example, by purpose, owner, or
#' environment. For more information, see [Tagging AWS
#' Resources](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html).
#'
#' @return
#' A list with the following syntax:
#' ```
#' list(
#'   CodeRepositoryArn = "string"
#' )
#' ```
#'
#' @section Request syntax:
#' ```
#' svc$create_code_repository(
#'   CodeRepositoryName = "string",
#'   GitConfig = list(
#'     RepositoryUrl = "string",
#'     Branch = "string",
#'     SecretArn = "string"
#'   ),
#'   Tags = list(
#'     list(
#'       Key = "string",
#'       Value = "string"
#'     )
#'   )
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname sagemaker_create_code_repository
sagemaker_create_code_repository <- function(CodeRepositoryName, GitConfig, Tags = NULL) {
  op <- new_operation(
    name = "CreateCodeRepository",
    http_method = "POST",
    http_path = "/",
    paginator = list()
  )
  input <- .sagemaker$create_code_repository_input(CodeRepositoryName = CodeRepositoryName, GitConfig = GitConfig, Tags = Tags)
  output <- .sagemaker$create_code_repository_output()
  config <- get_config()
  svc <- .sagemaker$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.sagemaker$operations$create_code_repository <- sagemaker_create_code_repository

#' Starts a model compilation job
#'
#' @description
#' Starts a model compilation job. After the model has been compiled,
#' Amazon SageMaker saves the resulting model artifacts to an Amazon Simple
#' Storage Service (Amazon S3) bucket that you specify.
#' 
#' If you choose to host your model using Amazon SageMaker hosting
#' services, you can use the resulting model artifacts as part of the
#' model. You can also use the artifacts with AWS IoT Greengrass. In that
#' case, deploy them as an ML resource.
#' 
#' In the request body, you provide the following:
#' 
#' -   A name for the compilation job
#' 
#' -   Information about the input model artifacts
#' 
#' -   The output location for the compiled model and the device (target)
#'     that the model runs on
#' 
#' -   The Amazon Resource Name (ARN) of the IAM role that Amazon SageMaker
#'     assumes to perform the model compilation job.
#' 
#' You can also provide a `Tag` to track the model compilation job's
#' resource use and costs. The response body contains the
#' `CompilationJobArn` for the compiled job.
#' 
#' To stop a model compilation job, use
#' [`stop_compilation_job`][sagemaker_stop_compilation_job]. To get
#' information about a particular model compilation job, use
#' [`describe_compilation_job`][sagemaker_describe_compilation_job]. To get
#' information about multiple model compilation jobs, use
#' [`list_compilation_jobs`][sagemaker_list_compilation_jobs].
#'
#' @usage
#' sagemaker_create_compilation_job(CompilationJobName, RoleArn,
#'   InputConfig, OutputConfig, StoppingCondition, Tags)
#'
#' @param CompilationJobName &#91;required&#93; A name for the model compilation job. The name must be unique within the
#' AWS Region and within your AWS account.
#' @param RoleArn &#91;required&#93; 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.](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html)
#' @param InputConfig &#91;required&#93; 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.
#' @param OutputConfig &#91;required&#93; Provides information about the output location for the compiled model
#' and the target device the model runs on.
#' @param StoppingCondition &#91;required&#93; 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.
#' @param Tags An array of key-value pairs. You can use tags to categorize your AWS
#' resources in different ways, for example, by purpose, owner, or
#' environment. For more information, see [Tagging AWS
#' Resources](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html).
#'
#' @return
#' A list with the following syntax:
#' ```
#' list(
#'   CompilationJobArn = "string"
#' )
#' ```
#'
#' @section Request syntax:
#' ```
#' svc$create_compilation_job(
#'   CompilationJobName = "string",
#'   RoleArn = "string",
#'   InputConfig = list(
#'     S3Uri = "string",
#'     DataInputConfig = "string",
#'     Framework = "TENSORFLOW"|"KERAS"|"MXNET"|"ONNX"|"PYTORCH"|"XGBOOST"|"TFLITE"|"DARKNET"|"SKLEARN"
#'   ),
#'   OutputConfig = list(
#'     S3OutputLocation = "string",
#'     TargetDevice = "lambda"|"ml_m4"|"ml_m5"|"ml_c4"|"ml_c5"|"ml_p2"|"ml_p3"|"ml_g4dn"|"ml_inf1"|"jetson_tx1"|"jetson_tx2"|"jetson_nano"|"jetson_xavier"|"rasp3b"|"imx8qm"|"deeplens"|"rk3399"|"rk3288"|"aisage"|"sbe_c"|"qcs605"|"qcs603"|"sitara_am57x"|"amba_cv22"|"x86_win32"|"x86_win64"|"coreml"|"jacinto_tda4vm",
#'     TargetPlatform = list(
#'       Os = "ANDROID"|"LINUX",
#'       Arch = "X86_64"|"X86"|"ARM64"|"ARM_EABI"|"ARM_EABIHF",
#'       Accelerator = "INTEL_GRAPHICS"|"MALI"|"NVIDIA"
#'     ),
#'     CompilerOptions = "string",
#'     KmsKeyId = "string"
#'   ),
#'   StoppingCondition = list(
#'     MaxRuntimeInSeconds = 123,
#'     MaxWaitTimeInSeconds = 123
#'   ),
#'   Tags = list(
#'     list(
#'       Key = "string",
#'       Value = "string"
#'     )
#'   )
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname sagemaker_create_compilation_job
sagemaker_create_compilation_job <- function(CompilationJobName, RoleArn, InputConfig, OutputConfig, StoppingCondition, Tags = NULL) {
  op <- new_operation(
    name = "CreateCompilationJob",
    http_method = "POST",
    http_path = "/",
    paginator = list()
  )
  input <- .sagemaker$create_compilation_job_input(CompilationJobName = CompilationJobName, RoleArn = RoleArn, InputConfig = InputConfig, OutputConfig = OutputConfig, StoppingCondition = StoppingCondition, Tags = Tags)
  output <- .sagemaker$create_compilation_job_output()
  config <- get_config()
  svc <- .sagemaker$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.sagemaker$operations$create_compilation_job <- sagemaker_create_compilation_job

#' Creates a context
#'
#' @description
#' Creates a *context*. A context is a lineage tracking entity that
#' represents a logical grouping of other tracking or experiment entities.
#' Some examples are an endpoint and a model package. For more information,
#' see [Amazon SageMaker ML Lineage
#' Tracking](https://docs.aws.amazon.com/sagemaker/latest/dg/lineage-tracking.html).
#'
#' @usage
#' sagemaker_create_context(ContextName, Source, ContextType, Description,
#'   Properties, Tags)
#'
#' @param ContextName &#91;required&#93; The name of the context. Must be unique to your account in an AWS
#' Region.
#' @param Source &#91;required&#93; The source type, ID, and URI.
#' @param ContextType &#91;required&#93; The context type.
#' @param Description The description of the context.
#' @param Properties A list of properties to add to the context.
#' @param Tags A list of tags to apply to the context.
#'
#' @return
#' A list with the following syntax:
#' ```
#' list(
#'   ContextArn = "string"
#' )
#' ```
#'
#' @section Request syntax:
#' ```
#' svc$create_context(
#'   ContextName = "string",
#'   Source = list(
#'     SourceUri = "string",
#'     SourceType = "string",
#'     SourceId = "string"
#'   ),
#'   ContextType = "string",
#'   Description = "string",
#'   Properties = list(
#'     "string"
#'   ),
#'   Tags = list(
#'     list(
#'       Key = "string",
#'       Value = "string"
#'     )
#'   )
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname sagemaker_create_context
sagemaker_create_context <- function(ContextName, Source, ContextType, Description = NULL, Properties = NULL, Tags = NULL) {
  op <- new_operation(
    name = "CreateContext",
    http_method = "POST",
    http_path = "/",
    paginator = list()
  )
  input <- .sagemaker$create_context_input(ContextName = ContextName, Source = Source, ContextType = ContextType, Description = Description, Properties = Properties, Tags = Tags)
  output <- .sagemaker$create_context_output()
  config <- get_config()
  svc <- .sagemaker$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.sagemaker$operations$create_context <- sagemaker_create_context

#' Creates a definition for a job that monitors data quality and drift
#'
#' @description
#' Creates a definition for a job that monitors data quality and drift. For
#' information about model monitor, see [Amazon SageMaker Model
#' Monitor](https://docs.aws.amazon.com/sagemaker/latest/dg/model-monitor.html).
#'
#' @usage
#' sagemaker_create_data_quality_job_definition(JobDefinitionName,
#'   DataQualityBaselineConfig, DataQualityAppSpecification,
#'   DataQualityJobInput, DataQualityJobOutputConfig, JobResources,
#'   NetworkConfig, RoleArn, StoppingCondition, Tags)
#'
#' @param JobDefinitionName &#91;required&#93; The name for the monitoring job definition.
#' @param DataQualityBaselineConfig Configures the constraints and baselines for the monitoring job.
#' @param DataQualityAppSpecification &#91;required&#93; Specifies the container that runs the monitoring job.
#' @param DataQualityJobInput &#91;required&#93; A list of inputs for the monitoring job. Currently endpoints are
#' supported as monitoring inputs.
#' @param DataQualityJobOutputConfig &#91;required&#93; 
#' @param JobResources &#91;required&#93; 
#' @param NetworkConfig Specifies networking configuration for the monitoring job.
#' @param RoleArn &#91;required&#93; The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker can
#' assume to perform tasks on your behalf.
#' @param StoppingCondition 
#' @param 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 *AWS Billing and Cost Management User Guide*.
#'
#' @return
#' A list with the following syntax:
#' ```
#' list(
#'   JobDefinitionArn = "string"
#' )
#' ```
#'
#' @section Request syntax:
#' ```
#' svc$create_data_quality_job_definition(
#'   JobDefinitionName = "string",
#'   DataQualityBaselineConfig = list(
#'     BaseliningJobName = "string",
#'     ConstraintsResource = list(
#'       S3Uri = "string"
#'     ),
#'     StatisticsResource = list(
#'       S3Uri = "string"
#'     )
#'   ),
#'   DataQualityAppSpecification = list(
#'     ImageUri = "string",
#'     ContainerEntrypoint = list(
#'       "string"
#'     ),
#'     ContainerArguments = list(
#'       "string"
#'     ),
#'     RecordPreprocessorSourceUri = "string",
#'     PostAnalyticsProcessorSourceUri = "string",
#'     Environment = list(
#'       "string"
#'     )
#'   ),
#'   DataQualityJobInput = list(
#'     EndpointInput = list(
#'       EndpointName = "string",
#'       LocalPath = "string",
#'       S3InputMode = "Pipe"|"File",
#'       S3DataDistributionType = "FullyReplicated"|"ShardedByS3Key",
#'       FeaturesAttribute = "string",
#'       InferenceAttribute = "string",
#'       ProbabilityAttribute = "string",
#'       ProbabilityThresholdAttribute = 123.0,
#'       StartTimeOffset = "string",
#'       EndTimeOffset = "string"
#'     )
#'   ),
#'   DataQualityJobOutputConfig = list(
#'     MonitoringOutputs = list(
#'       list(
#'         S3Output = list(
#'           S3Uri = "string",
#'           LocalPath = "string",
#'           S3UploadMode = "Continuous"|"EndOfJob"
#'         )
#'       )
#'     ),
#'     KmsKeyId = "string"
#'   ),
#'   JobResources = list(
#'     ClusterConfig = list(
#'       InstanceCount = 123,
#'       InstanceType = "ml.t3.medium"|"ml.t3.large"|"ml.t3.xlarge"|"ml.t3.2xlarge"|"ml.m4.xlarge"|"ml.m4.2xlarge"|"ml.m4.4xlarge"|"ml.m4.10xlarge"|"ml.m4.16xlarge"|"ml.c4.xlarge"|"ml.c4.2xlarge"|"ml.c4.4xlarge"|"ml.c4.8xlarge"|"ml.p2.xlarge"|"ml.p2.8xlarge"|"ml.p2.16xlarge"|"ml.p3.2xlarge"|"ml.p3.8xlarge"|"ml.p3.16xlarge"|"ml.c5.xlarge"|"ml.c5.2xlarge"|"ml.c5.4xlarge"|"ml.c5.9xlarge"|"ml.c5.18xlarge"|"ml.m5.large"|"ml.m5.xlarge"|"ml.m5.2xlarge"|"ml.m5.4xlarge"|"ml.m5.12xlarge"|"ml.m5.24xlarge"|"ml.r5.large"|"ml.r5.xlarge"|"ml.r5.2xlarge"|"ml.r5.4xlarge"|"ml.r5.8xlarge"|"ml.r5.12xlarge"|"ml.r5.16xlarge"|"ml.r5.24xlarge",
#'       VolumeSizeInGB = 123,
#'       VolumeKmsKeyId = "string"
#'     )
#'   ),
#'   NetworkConfig = list(
#'     EnableInterContainerTrafficEncryption = TRUE|FALSE,
#'     EnableNetworkIsolation = TRUE|FALSE,
#'     VpcConfig = list(
#'       SecurityGroupIds = list(
#'         "string"
#'       ),
#'       Subnets = list(
#'         "string"
#'       )
#'     )
#'   ),
#'   RoleArn = "string",
#'   StoppingCondition = list(
#'     MaxRuntimeInSeconds = 123
#'   ),
#'   Tags = list(
#'     list(
#'       Key = "string",
#'       Value = "string"
#'     )
#'   )
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname sagemaker_create_data_quality_job_definition
sagemaker_create_data_quality_job_definition <- function(JobDefinitionName, DataQualityBaselineConfig = NULL, DataQualityAppSpecification, DataQualityJobInput, DataQualityJobOutputConfig, JobResources, NetworkConfig = NULL, RoleArn, StoppingCondition = NULL, Tags = NULL) {
  op <- new_operation(
    name = "CreateDataQualityJobDefinition",
    http_method = "POST",
    http_path = "/",
    paginator = list()
  )
  input <- .sagemaker$create_data_quality_job_definition_input(JobDefinitionName = JobDefinitionName, DataQualityBaselineConfig = DataQualityBaselineConfig, DataQualityAppSpecification = DataQualityAppSpecification, DataQualityJobInput = DataQualityJobInput, DataQualityJobOutputConfig = DataQualityJobOutputConfig, JobResources = JobResources, NetworkConfig = NetworkConfig, RoleArn = RoleArn, StoppingCondition = StoppingCondition, Tags = Tags)
  output <- .sagemaker$create_data_quality_job_definition_output()
  config <- get_config()
  svc <- .sagemaker$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.sagemaker$operations$create_data_quality_job_definition <- sagemaker_create_data_quality_job_definition

#' Creates a device fleet
#'
#' @description
#' Creates a device fleet.
#'
#' @usage
#' sagemaker_create_device_fleet(DeviceFleetName, RoleArn, Description,
#'   OutputConfig, Tags)
#'
#' @param DeviceFleetName &#91;required&#93; The name of the fleet that the device belongs to.
#' @param RoleArn The Amazon Resource Name (ARN) that has access to AWS Internet of Things
#' (IoT).
#' @param Description A description of the fleet.
#' @param OutputConfig &#91;required&#93; The output configuration for storing sample data collected by the fleet.
#' @param Tags Creates tags for the specified fleet.
#'
#' @return
#' An empty list.
#'
#' @section Request syntax:
#' ```
#' svc$create_device_fleet(
#'   DeviceFleetName = "string",
#'   RoleArn = "string",
#'   Description = "string",
#'   OutputConfig = list(
#'     S3OutputLocation = "string",
#'     KmsKeyId = "string"
#'   ),
#'   Tags = list(
#'     list(
#'       Key = "string",
#'       Value = "string"
#'     )
#'   )
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname sagemaker_create_device_fleet
sagemaker_create_device_fleet <- function(DeviceFleetName, RoleArn = NULL, Description = NULL, OutputConfig, Tags = NULL) {
  op <- new_operation(
    name = "CreateDeviceFleet",
    http_method = "POST",
    http_path = "/",
    paginator = list()
  )
  input <- .sagemaker$create_device_fleet_input(DeviceFleetName = DeviceFleetName, RoleArn = RoleArn, Description = Description, OutputConfig = OutputConfig, Tags = Tags)
  output <- .sagemaker$create_device_fleet_output()
  config <- get_config()
  svc <- .sagemaker$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.sagemaker$operations$create_device_fleet <- sagemaker_create_device_fleet

#' Creates a Domain used by Amazon SageMaker Studio
#'
#' @description
#' Creates a `Domain` used by Amazon SageMaker Studio. A domain consists of
#' an associated Amazon Elastic File System (EFS) volume, a list of
#' authorized users, and a variety of security, application, policy, and
#' Amazon Virtual Private Cloud (VPC) configurations. An AWS account is
#' limited to one domain per region. Users within a domain can share
#' notebook files and other artifacts with each other.
#' 
#' **EFS storage**
#' 
#' When a domain is created, an EFS volume is created for use by all of the
#' users within the domain. Each user receives a private home directory
#' within the EFS volume for notebooks, Git repositories, and data files.
#' 
#' SageMaker uses the AWS Key Management Service (AWS KMS) to encrypt the
#' EFS volume attached to the domain with an AWS managed customer master
#' key (CMK) by default. For more control, you can specify a customer
#' managed CMK. For more information, see [Protect Data at Rest Using
#' Encryption](https://docs.aws.amazon.com/sagemaker/latest/dg/encryption-at-rest.html).
#' 
#' **VPC configuration**
#' 
#' All SageMaker Studio traffic between the domain and the EFS volume is
#' through the specified VPC and subnets. For other Studio traffic, you can
#' specify the `AppNetworkAccessType` parameter. `AppNetworkAccessType`
#' corresponds to the network access type that you choose when you onboard
#' to Studio. The following options are available:
#' 
#' -   `PublicInternetOnly` - Non-EFS traffic goes through a VPC managed by
#'     Amazon SageMaker, which allows internet access. This is the default
#'     value.
#' 
#' -   `VpcOnly` - All Studio traffic is through the specified VPC and
#'     subnets. Internet access is disabled by default. To allow internet
#'     access, you must specify a NAT gateway.
#' 
#'     When internet access is disabled, you won't be able to run a Studio
#'     notebook or to train or host models unless your VPC has an interface
#'     endpoint to the SageMaker API and runtime or a NAT gateway and your
#'     security groups allow outbound connections.
#' 
#' For more information, see [Connect SageMaker Studio Notebooks to
#' Resources in a
#' VPC](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-notebooks-and-internet-access.html).
#'
#' @usage
#' sagemaker_create_domain(DomainName, AuthMode, DefaultUserSettings,
#'   SubnetIds, VpcId, Tags, AppNetworkAccessType, HomeEfsFileSystemKmsKeyId,
#'   KmsKeyId)
#'
#' @param DomainName &#91;required&#93; A name for the domain.
#' @param AuthMode &#91;required&#93; The mode of authentication that members use to access the domain.
#' @param DefaultUserSettings &#91;required&#93; The default user settings.
#' @param SubnetIds &#91;required&#93; The VPC subnets that Studio uses for communication.
#' @param VpcId &#91;required&#93; The ID of the Amazon Virtual Private Cloud (VPC) that Studio uses for
#' communication.
#' @param 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`][sagemaker_search] API.
#' @param AppNetworkAccessType 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
#' @param HomeEfsFileSystemKmsKeyId This member is deprecated and replaced with `KmsKeyId`.
#' @param KmsKeyId SageMaker uses AWS KMS to encrypt the EFS volume attached to the domain
#' with an AWS managed customer master key (CMK) by default. For more
#' control, specify a customer managed CMK.
#'
#' @return
#' A list with the following syntax:
#' ```
#' list(
#'   DomainArn = "string",
#'   Url = "string"
#' )
#' ```
#'
#' @section Request syntax:
#' ```
#' svc$create_domain(
#'   DomainName = "string",
#'   AuthMode = "SSO"|"IAM",
#'   DefaultUserSettings = list(
#'     ExecutionRole = "string",
#'     SecurityGroups = list(
#'       "string"
#'     ),
#'     SharingSettings = list(
#'       NotebookOutputOption = "Allowed"|"Disabled",
#'       S3OutputPath = "string",
#'       S3KmsKeyId = "string"
#'     ),
#'     JupyterServerAppSettings = list(
#'       DefaultResourceSpec = list(
#'         SageMakerImageArn = "string",
#'         SageMakerImageVersionArn = "string",
#'         InstanceType = "system"|"ml.t3.micro"|"ml.t3.small"|"ml.t3.medium"|"ml.t3.large"|"ml.t3.xlarge"|"ml.t3.2xlarge"|"ml.m5.large"|"ml.m5.xlarge"|"ml.m5.2xlarge"|"ml.m5.4xlarge"|"ml.m5.8xlarge"|"ml.m5.12xlarge"|"ml.m5.16xlarge"|"ml.m5.24xlarge"|"ml.c5.large"|"ml.c5.xlarge"|"ml.c5.2xlarge"|"ml.c5.4xlarge"|"ml.c5.9xlarge"|"ml.c5.12xlarge"|"ml.c5.18xlarge"|"ml.c5.24xlarge"|"ml.p3.2xlarge"|"ml.p3.8xlarge"|"ml.p3.16xlarge"|"ml.g4dn.xlarge"|"ml.g4dn.2xlarge"|"ml.g4dn.4xlarge"|"ml.g4dn.8xlarge"|"ml.g4dn.12xlarge"|"ml.g4dn.16xlarge"
#'       )
#'     ),
#'     KernelGatewayAppSettings = list(
#'       DefaultResourceSpec = list(
#'         SageMakerImageArn = "string",
#'         SageMakerImageVersionArn = "string",
#'         InstanceType = "system"|"ml.t3.micro"|"ml.t3.small"|"ml.t3.medium"|"ml.t3.large"|"ml.t3.xlarge"|"ml.t3.2xlarge"|"ml.m5.large"|"ml.m5.xlarge"|"ml.m5.2xlarge"|"ml.m5.4xlarge"|"ml.m5.8xlarge"|"ml.m5.12xlarge"|"ml.m5.16xlarge"|"ml.m5.24xlarge"|"ml.c5.large"|"ml.c5.xlarge"|"ml.c5.2xlarge"|"ml.c5.4xlarge"|"ml.c5.9xlarge"|"ml.c5.12xlarge"|"ml.c5.18xlarge"|"ml.c5.24xlarge"|"ml.p3.2xlarge"|"ml.p3.8xlarge"|"ml.p3.16xlarge"|"ml.g4dn.xlarge"|"ml.g4dn.2xlarge"|"ml.g4dn.4xlarge"|"ml.g4dn.8xlarge"|"ml.g4dn.12xlarge"|"ml.g4dn.16xlarge"
#'       ),
#'       CustomImages = list(
#'         list(
#'           ImageName = "string",
#'           ImageVersionNumber = 123,
#'           AppImageConfigName = "string"
#'         )
#'       )
#'     ),
#'     TensorBoardAppSettings = list(
#'       DefaultResourceSpec = list(
#'         SageMakerImageArn = "string",
#'         SageMakerImageVersionArn = "string",
#'         InstanceType = "system"|"ml.t3.micro"|"ml.t3.small"|"ml.t3.medium"|"ml.t3.large"|"ml.t3.xlarge"|"ml.t3.2xlarge"|"ml.m5.large"|"ml.m5.xlarge"|"ml.m5.2xlarge"|"ml.m5.4xlarge"|"ml.m5.8xlarge"|"ml.m5.12xlarge"|"ml.m5.16xlarge"|"ml.m5.24xlarge"|"ml.c5.large"|"ml.c5.xlarge"|"ml.c5.2xlarge"|"ml.c5.4xlarge"|"ml.c5.9xlarge"|"ml.c5.12xlarge"|"ml.c5.18xlarge"|"ml.c5.24xlarge"|"ml.p3.2xlarge"|"ml.p3.8xlarge"|"ml.p3.16xlarge"|"ml.g4dn.xlarge"|"ml.g4dn.2xlarge"|"ml.g4dn.4xlarge"|"ml.g4dn.8xlarge"|"ml.g4dn.12xlarge"|"ml.g4dn.16xlarge"
#'       )
#'     )
#'   ),
#'   SubnetIds = list(
#'     "string"
#'   ),
#'   VpcId = "string",
#'   Tags = list(
#'     list(
#'       Key = "string",
#'       Value = "string"
#'     )
#'   ),
#'   AppNetworkAccessType = "PublicInternetOnly"|"VpcOnly",
#'   HomeEfsFileSystemKmsKeyId = "string",
#'   KmsKeyId = "string"
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname sagemaker_create_domain
sagemaker_create_domain <- function(DomainName, AuthMode, DefaultUserSettings, SubnetIds, VpcId, Tags = NULL, AppNetworkAccessType = NULL, HomeEfsFileSystemKmsKeyId = NULL, KmsKeyId = NULL) {
  op <- new_operation(
    name = "CreateDomain",
    http_method = "POST",
    http_path = "/",
    paginator = list()
  )
  input <- .sagemaker$create_domain_input(DomainName = DomainName, AuthMode = AuthMode, DefaultUserSettings = DefaultUserSettings, SubnetIds = SubnetIds, VpcId = VpcId, Tags = Tags, AppNetworkAccessType = AppNetworkAccessType, HomeEfsFileSystemKmsKeyId = HomeEfsFileSystemKmsKeyId, KmsKeyId = KmsKeyId)
  output <- .sagemaker$create_domain_output()
  config <- get_config()
  svc <- .sagemaker$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.sagemaker$operations$create_domain <- sagemaker_create_domain

#' Starts a SageMaker Edge Manager model packaging job
#'
#' @description
#' Starts a SageMaker Edge Manager model packaging job. Edge Manager will
#' use the model artifacts from the Amazon Simple Storage Service bucket
#' that you specify. After the model has been packaged, Amazon SageMaker
#' saves the resulting artifacts to an S3 bucket that you specify.
#'
#' @usage
#' sagemaker_create_edge_packaging_job(EdgePackagingJobName,
#'   CompilationJobName, ModelName, ModelVersion, RoleArn, OutputConfig,
#'   ResourceKey, Tags)
#'
#' @param EdgePackagingJobName &#91;required&#93; The name of the edge packaging job.
#' @param CompilationJobName &#91;required&#93; The name of the SageMaker Neo compilation job that will be used to
#' locate model artifacts for packaging.
#' @param ModelName &#91;required&#93; The name of the model.
#' @param ModelVersion &#91;required&#93; The version of the model.
#' @param RoleArn &#91;required&#93; The Amazon Resource Name (ARN) of an IAM role that enables Amazon
#' SageMaker to download and upload the model, and to contact SageMaker
#' Neo.
#' @param OutputConfig &#91;required&#93; Provides information about the output location for the packaged model.
#' @param ResourceKey The CMK to use when encrypting the EBS volume the edge packaging job
#' runs on.
#' @param Tags Creates tags for the packaging job.
#'
#' @return
#' An empty list.
#'
#' @section Request syntax:
#' ```
#' svc$create_edge_packaging_job(
#'   EdgePackagingJobName = "string",
#'   CompilationJobName = "string",
#'   ModelName = "string",
#'   ModelVersion = "string",
#'   RoleArn = "string",
#'   OutputConfig = list(
#'     S3OutputLocation = "string",
#'     KmsKeyId = "string"
#'   ),
#'   ResourceKey = "string",
#'   Tags = list(
#'     list(
#'       Key = "string",
#'       Value = "string"
#'     )
#'   )
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname sagemaker_create_edge_packaging_job
sagemaker_create_edge_packaging_job <- function(EdgePackagingJobName, CompilationJobName, ModelName, ModelVersion, RoleArn, OutputConfig, ResourceKey = NULL, Tags = NULL) {
  op <- new_operation(
    name = "CreateEdgePackagingJob",
    http_method = "POST",
    http_path = "/",
    paginator = list()
  )
  input <- .sagemaker$create_edge_packaging_job_input(EdgePackagingJobName = EdgePackagingJobName, CompilationJobName = CompilationJobName, ModelName = ModelName, ModelVersion = ModelVersion, RoleArn = RoleArn, OutputConfig = OutputConfig, ResourceKey = ResourceKey, Tags = Tags)
  output <- .sagemaker$create_edge_packaging_job_output()
  config <- get_config()
  svc <- .sagemaker$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.sagemaker$operations$create_edge_packaging_job <- sagemaker_create_edge_packaging_job

#' Creates an endpoint using the endpoint configuration specified in the
#' request
#'
#' @description
#' Creates an endpoint using the endpoint configuration specified in the
#' request. Amazon SageMaker uses the endpoint to provision resources and
#' deploy models. You create the endpoint configuration with the
#' [`create_endpoint_config`][sagemaker_create_endpoint_config] API.
#' 
#' Use this API to deploy models using Amazon SageMaker hosting services.
#' 
#' For an example that calls this method when deploying a model to Amazon
#' SageMaker hosting services, see [Deploy the Model to Amazon SageMaker
#' Hosting Services (AWS SDK for Python (Boto
#' 3)).](https://docs.aws.amazon.com/sagemaker/latest/dg/#ex1-deploy-model-boto)
#' 
#' You must not delete an `EndpointConfig` that is in use by an endpoint
#' that is live or while the [`update_endpoint`][sagemaker_update_endpoint]
#' or [`create_endpoint`][sagemaker_create_endpoint] operations are being
#' performed on the endpoint. To update an endpoint, you must create a new
#' `EndpointConfig`.
#' 
#' The endpoint name must be unique within an AWS Region in your AWS
#' account.
#' 
#' When it receives the request, Amazon SageMaker creates the endpoint,
#' launches the resources (ML compute instances), and deploys the model(s)
#' on them.
#' 
#' When you call [`create_endpoint`][sagemaker_create_endpoint], a load
#' call is made to DynamoDB to verify that your endpoint configuration
#' exists. When you read data from a DynamoDB table supporting
#' [`Eventually Consistent Reads`](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadConsistency.html)
#' , the response might not reflect the results of a recently completed
#' write operation. The response might include some stale data. If the
#' dependent entities are not yet in DynamoDB, this causes a validation
#' error. If you repeat your read request after a short time, the response
#' should return the latest data. So retry logic is recommended to handle
#' these possible issues. We also recommend that customers call
#' [`describe_endpoint_config`][sagemaker_describe_endpoint_config] before
#' calling [`create_endpoint`][sagemaker_create_endpoint] to minimize the
#' potential impact of a DynamoDB eventually consistent read.
#' 
#' When Amazon SageMaker receives the request, it sets the endpoint status
#' to `Creating`. After it creates the endpoint, it sets the status to
#' `InService`. Amazon SageMaker can then process incoming requests for
#' inferences. To check the status of an endpoint, use the
#' [`describe_endpoint`][sagemaker_describe_endpoint] API.
#' 
#' If any of the models hosted at this endpoint get model data from an
#' Amazon S3 location, Amazon SageMaker uses AWS Security Token Service to
#' download model artifacts from the S3 path you provided. AWS STS is
#' activated in your IAM user account by default. If you previously
#' deactivated AWS STS for a region, you need to reactivate AWS STS for
#' that region. For more information, see [Activating and Deactivating AWS
#' STS in an AWS
#' Region](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html)
#' in the *AWS Identity and Access Management User Guide*.
#' 
#' To add the IAM role policies for using this API operation, go to the IAM
#' console, and choose Roles in the left navigation pane. Search the IAM
#' role that you want to grant access to use the
#' [`create_endpoint`][sagemaker_create_endpoint] and
#' [`create_endpoint_config`][sagemaker_create_endpoint_config] API
#' operations, add the following policies to the role.
#' 
#' -   Option 1: For a full Amazon SageMaker access, search and attach the
#'     `AmazonSageMakerFullAccess` policy.
#' 
#' -   Option 2: For granting a limited access to an IAM role, paste the
#'     following Action elements manually into the JSON file of the IAM
#'     role:
#' 
#'     `"Action": ["sagemaker:CreateEndpoint", "sagemaker:CreateEndpointConfig"]`
#' 
#'     `"Resource": [`
#' 
#'     `"arn:aws:sagemaker:region:account-id:endpoint/endpointName"`
#' 
#'     `"arn:aws:sagemaker:region:account-id:endpoint-config/endpointConfigName"`
#' 
#'     `]`
#' 
#'     For more information, see [Amazon SageMaker API Permissions:
#'     Actions, Permissions, and Resources
#'     Reference](https://docs.aws.amazon.com/sagemaker/latest/dg/api-permissions-reference.html).
#'
#' @usage
#' sagemaker_create_endpoint(EndpointName, EndpointConfigName, Tags)
#'
#' @param EndpointName &#91;required&#93; The name of the endpoint.The name must be unique within an AWS Region in
#' your AWS account. The name is case-insensitive in
#' [`create_endpoint`][sagemaker_create_endpoint], but the case is
#' preserved and must be matched in .
#' @param EndpointConfigName &#91;required&#93; The name of an endpoint configuration. For more information, see
#' [`create_endpoint_config`][sagemaker_create_endpoint_config].
#' @param Tags An array of key-value pairs. You can use tags to categorize your AWS
#' resources in different ways, for example, by purpose, owner, or
#' environment. For more information, see [Tagging AWS
#' Resources](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html).
#'
#' @return
#' A list with the following syntax:
#' ```
#' list(
#'   EndpointArn = "string"
#' )
#' ```
#'
#' @section Request syntax:
#' ```
#' svc$create_endpoint(
#'   EndpointName = "string",
#'   EndpointConfigName = "string",
#'   Tags = list(
#'     list(
#'       Key = "string",
#'       Value = "string"
#'     )
#'   )
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname sagemaker_create_endpoint
sagemaker_create_endpoint <- function(EndpointName, EndpointConfigName, Tags = NULL) {
  op <- new_operation(
    name = "CreateEndpoint",
    http_method = "POST",
    http_path = "/",
    paginator = list()
  )
  input <- .sagemaker$create_endpoint_input(EndpointName = EndpointName, EndpointConfigName = EndpointConfigName, Tags = Tags)
  output <- .sagemaker$create_endpoint_output()
  config <- get_config()
  svc <- .sagemaker$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.sagemaker$operations$create_endpoint <- sagemaker_create_endpoint

#' Creates an endpoint configuration that Amazon SageMaker hosting services
#' uses to deploy models
#'
#' @description
#' Creates an endpoint configuration that Amazon SageMaker hosting services
#' uses to deploy models. In the configuration, you identify one or more
#' models, created using the [`create_model`][sagemaker_create_model] API,
#' to deploy and the resources that you want Amazon SageMaker to provision.
#' Then you call the [`create_endpoint`][sagemaker_create_endpoint] API.
#' 
#' Use this API if you want to use Amazon SageMaker hosting services to
#' deploy models into production.
#' 
#' In the request, you define a `ProductionVariant`, for each model that
#' you want to deploy. Each `ProductionVariant` parameter also describes
#' the resources that you want Amazon SageMaker to provision. This includes
#' the number and type of ML compute instances to deploy.
#' 
#' If you are hosting multiple models, you also assign a `VariantWeight` to
#' specify how much traffic you want to allocate to each model. For
#' example, suppose that you want to host two models, A and B, and you
#' assign traffic weight 2 for model A and 1 for model B. Amazon SageMaker
#' distributes two-thirds of the traffic to Model A, and one-third to model
#' B.
#' 
#' For an example that calls this method when deploying a model to Amazon
#' SageMaker hosting services, see [Deploy the Model to Amazon SageMaker
#' Hosting Services (AWS SDK for Python (Boto
#' 3)).](https://docs.aws.amazon.com/sagemaker/latest/dg/#ex1-deploy-model-boto)
#' 
#' When you call [`create_endpoint`][sagemaker_create_endpoint], a load
#' call is made to DynamoDB to verify that your endpoint configuration
#' exists. When you read data from a DynamoDB table supporting
#' [`Eventually Consistent Reads`](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadConsistency.html)
#' , the response might not reflect the results of a recently completed
#' write operation. The response might include some stale data. If the
#' dependent entities are not yet in DynamoDB, this causes a validation
#' error. If you repeat your read request after a short time, the response
#' should return the latest data. So retry logic is recommended to handle
#' these possible issues. We also recommend that customers call
#' [`describe_endpoint_config`][sagemaker_describe_endpoint_config] before
#' calling [`create_endpoint`][sagemaker_create_endpoint] to minimize the
#' potential impact of a DynamoDB eventually consistent read.
#'
#' @usage
#' sagemaker_create_endpoint_config(EndpointConfigName, ProductionVariants,
#'   DataCaptureConfig, Tags, KmsKeyId)
#'
#' @param EndpointConfigName &#91;required&#93; The name of the endpoint configuration. You specify this name in a
#' [`create_endpoint`][sagemaker_create_endpoint] request.
#' @param ProductionVariants &#91;required&#93; An list of `ProductionVariant` objects, one for each model that you want
#' to host at this endpoint.
#' @param DataCaptureConfig 
#' @param Tags An array of key-value pairs. You can use tags to categorize your AWS
#' resources in different ways, for example, by purpose, owner, or
#' environment. For more information, see [Tagging AWS
#' Resources](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html).
#' @param KmsKeyId The Amazon Resource Name (ARN) of a AWS Key Management Service key that
#' Amazon 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 [`create_endpoint`][sagemaker_create_endpoint],
#' [`update_endpoint`][sagemaker_update_endpoint] requests. For more
#' information, refer to the AWS Key Management Service section [Using Key
#' Policies in AWS
#' KMS](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html)
#' 
#' 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
#' [`create_endpoint_config`][sagemaker_create_endpoint_config] fails.
#' 
#' For a list of instance types that support local instance storage, see
#' [Instance Store
#' Volumes](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#instance-store-volumes).
#' 
#' For more information about local instance storage encryption, see [SSD
#' Instance Store
#' Volumes](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ssd-instance-store.html).
#'
#' @return
#' A list with the following syntax:
#' ```
#' list(
#'   EndpointConfigArn = "string"
#' )
#' ```
#'
#' @section Request syntax:
#' ```
#' svc$create_endpoint_config(
#'   EndpointConfigName = "string",
#'   ProductionVariants = list(
#'     list(
#'       VariantName = "string",
#'       ModelName = "string",
#'       InitialInstanceCount = 123,
#'       InstanceType = "ml.t2.medium"|"ml.t2.large"|"ml.t2.xlarge"|"ml.t2.2xlarge"|"ml.m4.xlarge"|"ml.m4.2xlarge"|"ml.m4.4xlarge"|"ml.m4.10xlarge"|"ml.m4.16xlarge"|"ml.m5.large"|"ml.m5.xlarge"|"ml.m5.2xlarge"|"ml.m5.4xlarge"|"ml.m5.12xlarge"|"ml.m5.24xlarge"|"ml.m5d.large"|"ml.m5d.xlarge"|"ml.m5d.2xlarge"|"ml.m5d.4xlarge"|"ml.m5d.12xlarge"|"ml.m5d.24xlarge"|"ml.c4.large"|"ml.c4.xlarge"|"ml.c4.2xlarge"|"ml.c4.4xlarge"|"ml.c4.8xlarge"|"ml.p2.xlarge"|"ml.p2.8xlarge"|"ml.p2.16xlarge"|"ml.p3.2xlarge"|"ml.p3.8xlarge"|"ml.p3.16xlarge"|"ml.c5.large"|"ml.c5.xlarge"|"ml.c5.2xlarge"|"ml.c5.4xlarge"|"ml.c5.9xlarge"|"ml.c5.18xlarge"|"ml.c5d.large"|"ml.c5d.xlarge"|"ml.c5d.2xlarge"|"ml.c5d.4xlarge"|"ml.c5d.9xlarge"|"ml.c5d.18xlarge"|"ml.g4dn.xlarge"|"ml.g4dn.2xlarge"|"ml.g4dn.4xlarge"|"ml.g4dn.8xlarge"|"ml.g4dn.12xlarge"|"ml.g4dn.16xlarge"|"ml.r5.large"|"ml.r5.xlarge"|"ml.r5.2xlarge"|"ml.r5.4xlarge"|"ml.r5.12xlarge"|"ml.r5.24xlarge"|"ml.r5d.large"|"ml.r5d.xlarge"|"ml.r5d.2xlarge"|"ml.r5d.4xlarge"|"ml.r5d.12xlarge"|"ml.r5d.24xlarge"|"ml.inf1.xlarge"|"ml.inf1.2xlarge"|"ml.inf1.6xlarge"|"ml.inf1.24xlarge",
#'       InitialVariantWeight = 123.0,
#'       AcceleratorType = "ml.eia1.medium"|"ml.eia1.large"|"ml.eia1.xlarge"|"ml.eia2.medium"|"ml.eia2.large"|"ml.eia2.xlarge"
#'     )
#'   ),
#'   DataCaptureConfig = list(
#'     EnableCapture = TRUE|FALSE,
#'     InitialSamplingPercentage = 123,
#'     DestinationS3Uri = "string",
#'     KmsKeyId = "string",
#'     CaptureOptions = list(
#'       list(
#'         CaptureMode = "Input"|"Output"
#'       )
#'     ),
#'     CaptureContentTypeHeader = list(
#'       CsvContentTypes = list(
#'         "string"
#'       ),
#'       JsonContentTypes = list(
#'         "string"
#'       )
#'     )
#'   ),
#'   Tags = list(
#'     list(
#'       Key = "string",
#'       Value = "string"
#'     )
#'   ),
#'   KmsKeyId = "string"
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname sagemaker_create_endpoint_config
sagemaker_create_endpoint_config <- function(EndpointConfigName, ProductionVariants, DataCaptureConfig = NULL, Tags = NULL, KmsKeyId = NULL) {
  op <- new_operation(
    name = "CreateEndpointConfig",
    http_method = "POST",
    http_path = "/",
    paginator = list()
  )
  input <- .sagemaker$create_endpoint_config_input(EndpointConfigName = EndpointConfigName, ProductionVariants = ProductionVariants, DataCaptureConfig = DataCaptureConfig, Tags = Tags, KmsKeyId = KmsKeyId)
  output <- .sagemaker$create_endpoint_config_output()
  config <- get_config()
  svc <- .sagemaker$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.sagemaker$operations$create_endpoint_config <- sagemaker_create_endpoint_config

#' Creates an SageMaker experiment
#'
#' @description
#' Creates an SageMaker *experiment*. An experiment is a collection of
#' *trials* that are observed, compared and evaluated as a group. A trial
#' is a set of steps, called *trial components*, that produce a machine
#' learning model.
#' 
#' The goal of an experiment is to determine the components that produce
#' the best model. Multiple trials are performed, each one isolating and
#' measuring the impact of a change to one or more inputs, while keeping
#' the remaining inputs constant.
#' 
#' When you use Amazon SageMaker Studio or the Amazon SageMaker Python SDK,
#' all experiments, trials, and trial components are automatically tracked,
#' logged, and indexed. When you use the AWS SDK for Python (Boto), you
#' must use the logging APIs provided by the SDK.
#' 
#' You can add tags to experiments, trials, trial components and then use
#' the [`search`][sagemaker_search] API to search for the tags.
#' 
#' To add a description to an experiment, specify the optional
#' `Description` parameter. To add a description later, or to change the
#' description, call the [`update_experiment`][sagemaker_update_experiment]
#' API.
#' 
#' To get a list of all your experiments, call the
#' [`list_experiments`][sagemaker_list_experiments] API. To view an
#' experiment's properties, call the
#' [`describe_experiment`][sagemaker_describe_experiment] API. To get a
#' list of all the trials associated with an experiment, call the
#' [`list_trials`][sagemaker_list_trials] API. To create a trial call the
#' [`create_trial`][sagemaker_create_trial] API.
#'
#' @usage
#' sagemaker_create_experiment(ExperimentName, DisplayName, Description,
#'   Tags)
#'
#' @param ExperimentName &#91;required&#93; The name of the experiment. The name must be unique in your AWS account
#' and is not case-sensitive.
#' @param DisplayName 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.
#' @param Description The description of the experiment.
#' @param Tags A list of tags to associate with the experiment. You can use
#' [`search`][sagemaker_search] API to search on the tags.
#'
#' @return
#' A list with the following syntax:
#' ```
#' list(
#'   ExperimentArn = "string"
#' )
#' ```
#'
#' @section Request syntax:
#' ```
#' svc$create_experiment(
#'   ExperimentName = "string",
#'   DisplayName = "string",
#'   Description = "string",
#'   Tags = list(
#'     list(
#'       Key = "string",
#'       Value = "string"
#'     )
#'   )
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname sagemaker_create_experiment
sagemaker_create_experiment <- function(ExperimentName, DisplayName = NULL, Description = NULL, Tags = NULL) {
  op <- new_operation(
    name = "CreateExperiment",
    http_method = "POST",
    http_path = "/",
    paginator = list()
  )
  input <- .sagemaker$create_experiment_input(ExperimentName = ExperimentName, DisplayName = DisplayName, Description = Description, Tags = Tags)
  output <- .sagemaker$create_experiment_output()
  config <- get_config()
  svc <- .sagemaker$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.sagemaker$operations$create_experiment <- sagemaker_create_experiment

#' Create a new FeatureGroup
#'
#' @description
#' Create a new `FeatureGroup`. A `FeatureGroup` is a group of `Features`
#' defined in the `FeatureStore` to describe a `Record`.
#' 
#' The `FeatureGroup` defines the schema and features contained in the
#' FeatureGroup. A `FeatureGroup` definition is composed of a list of
#' `Features`, a `RecordIdentifierFeatureName`, an `EventTimeFeatureName`
#' and configurations for its `OnlineStore` and `OfflineStore`. Check [AWS
#' service
#' quotas](https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html)
#' to see the `FeatureGroup`s quota for your AWS account.
#' 
#' You must include at least one of `OnlineStoreConfig` and
#' `OfflineStoreConfig` to create a `FeatureGroup`.
#'
#' @usage
#' sagemaker_create_feature_group(FeatureGroupName,
#'   RecordIdentifierFeatureName, EventTimeFeatureName, FeatureDefinitions,
#'   OnlineStoreConfig, OfflineStoreConfig, RoleArn, Description, Tags)
#'
#' @param FeatureGroupName &#91;required&#93; The name of the `FeatureGroup`. The name must be unique within an AWS
#' Region in an AWS account. The name:
#' 
#' -   Must start and end with an alphanumeric character.
#' 
#' -   Can only contain alphanumeric character and hyphens. Spaces are not
#'     allowed.
#' @param RecordIdentifierFeatureName &#91;required&#93; 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.
#' @param EventTimeFeatureName &#91;required&#93; 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.
#' @param FeatureDefinitions &#91;required&#93; 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`.
#' @param OnlineStoreConfig You can turn the `OnlineStore` on or off by specifying `True` for the
#' `EnableOnlineStore` flag in `OnlineStoreConfig`; the default value is
#' `False`.
#' 
#' You can also include an AWS KMS key ID (`KMSKeyId`) for at-rest
#' encryption of the `OnlineStore`.
#' @param OfflineStoreConfig 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 AWS Glue or AWS Hive data cataolgue.
#' 
#' -   An KMS encryption key to encrypt the Amazon S3 location used for
#'     `OfflineStore`.
#' 
#' To learn more about this parameter, see OfflineStoreConfig.
#' @param RoleArn The Amazon Resource Name (ARN) of the IAM execution role used to persist
#' data into the `OfflineStore` if an `OfflineStoreConfig` is provided.
#' @param Description A free-form description of a `FeatureGroup`.
#' @param Tags Tags used to identify `Features` in each `FeatureGroup`.
#'
#' @return
#' A list with the following syntax:
#' ```
#' list(
#'   FeatureGroupArn = "string"
#' )
#' ```
#'
#' @section Request syntax:
#' ```
#' svc$create_feature_group(
#'   FeatureGroupName = "string",
#'   RecordIdentifierFeatureName = "string",
#'   EventTimeFeatureName = "string",
#'   FeatureDefinitions = list(
#'     list(
#'       FeatureName = "string",
#'       FeatureType = "Integral"|"Fractional"|"String"
#'     )
#'   ),
#'   OnlineStoreConfig = list(
#'     SecurityConfig = list(
#'       KmsKeyId = "string"
#'     ),
#'     EnableOnlineStore = TRUE|FALSE
#'   ),
#'   OfflineStoreConfig = list(
#'     S3StorageConfig = list(
#'       S3Uri = "string",
#'       KmsKeyId = "string"
#'     ),
#'     DisableGlueTableCreation = TRUE|FALSE,
#'     DataCatalogConfig = list(
#'       TableName = "string",
#'       Catalog = "string",
#'       Database = "string"
#'     )
#'   ),
#'   RoleArn = "string",
#'   Description = "string",
#'   Tags = list(
#'     list(
#'       Key = "string",
#'       Value = "string"
#'     )
#'   )
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname sagemaker_create_feature_group
sagemaker_create_feature_group <- function(FeatureGroupName, RecordIdentifierFeatureName, EventTimeFeatureName, FeatureDefinitions, OnlineStoreConfig = NULL, OfflineStoreConfig = NULL, RoleArn = NULL, Description = NULL, Tags = NULL) {
  op <- new_operation(
    name = "CreateFeatureGroup",
    http_method = "POST",
    http_path = "/",
    paginator = list()
  )
  input <- .sagemaker$create_feature_group_input(FeatureGroupName = FeatureGroupName, RecordIdentifierFeatureName = RecordIdentifierFeatureName, EventTimeFeatureName = EventTimeFeatureName, FeatureDefinitions = FeatureDefinitions, OnlineStoreConfig = OnlineStoreConfig, OfflineStoreConfig = OfflineStoreConfig, RoleArn = RoleArn, Description = Description, Tags = Tags)
  output <- .sagemaker$create_feature_group_output()
  config <- get_config()
  svc <- .sagemaker$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.sagemaker$operations$create_feature_group <- sagemaker_create_feature_group

#' Creates a flow definition
#'
#' @description
#' Creates a flow definition.
#'
#' @usage
#' sagemaker_create_flow_definition(FlowDefinitionName,
#'   HumanLoopRequestSource, HumanLoopActivationConfig, HumanLoopConfig,
#'   OutputConfig, RoleArn, Tags)
#'
#' @param FlowDefinitionName &#91;required&#93; The name of your flow definition.
#' @param HumanLoopRequestSource Container for configuring the source of human task requests. Use to
#' specify if Amazon Rekognition or Amazon Textract is used as an
#' integration source.
#' @param HumanLoopActivationConfig An object containing information about the events that trigger a human
#' workflow.
#' @param HumanLoopConfig &#91;required&#93; An object containing information about the tasks the human reviewers
#' will perform.
#' @param OutputConfig &#91;required&#93; An object containing information about where the human review results
#' will be uploaded.
#' @param RoleArn &#91;required&#93; 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`.
#' @param 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
#' A list with the following syntax:
#' ```
#' list(
#'   FlowDefinitionArn = "string"
#' )
#' ```
#'
#' @section Request syntax:
#' ```
#' svc$create_flow_definition(
#'   FlowDefinitionName = "string",
#'   HumanLoopRequestSource = list(
#'     AwsManagedHumanLoopRequestSource = "AWS/Rekognition/DetectModerationLabels/Image/V3"|"AWS/Textract/AnalyzeDocument/Forms/V1"
#'   ),
#'   HumanLoopActivationConfig = list(
#'     HumanLoopActivationConditionsConfig = list(
#'       HumanLoopActivationConditions = "string"
#'     )
#'   ),
#'   HumanLoopConfig = list(
#'     WorkteamArn = "string",
#'     HumanTaskUiArn = "string",
#'     TaskTitle = "string",
#'     TaskDescription = "string",
#'     TaskCount = 123,
#'     TaskAvailabilityLifetimeInSeconds = 123,
#'     TaskTimeLimitInSeconds = 123,
#'     TaskKeywords = list(
#'       "string"
#'     ),
#'     PublicWorkforceTaskPrice = list(
#'       AmountInUsd = list(
#'         Dollars = 123,
#'         Cents = 123,
#'         TenthFractionsOfACent = 123
#'       )
#'     )
#'   ),
#'   OutputConfig = list(
#'     S3OutputPath = "string",
#'     KmsKeyId = "string"
#'   ),
#'   RoleArn = "string",
#'   Tags = list(
#'     list(
#'       Key = "string",
#'       Value = "string"
#'     )
#'   )
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname sagemaker_create_flow_definition
sagemaker_create_flow_definition <- function(FlowDefinitionName, HumanLoopRequestSource = NULL, HumanLoopActivationConfig = NULL, HumanLoopConfig, OutputConfig, RoleArn, Tags = NULL) {
  op <- new_operation(
    name = "CreateFlowDefinition",
    http_method = "POST",
    http_path = "/",
    paginator = list()
  )
  input <- .sagemaker$create_flow_definition_input(FlowDefinitionName = FlowDefinitionName, HumanLoopRequestSource = HumanLoopRequestSource, HumanLoopActivationConfig = HumanLoopActivationConfig, HumanLoopConfig = HumanLoopConfig, OutputConfig = OutputConfig, RoleArn = RoleArn, Tags = Tags)
  output <- .sagemaker$create_flow_definition_output()
  config <- get_config()
  svc <- .sagemaker$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.sagemaker$operations$create_flow_definition <- sagemaker_create_flow_definition

#' Defines the settings you will use for the human review workflow user
#' interface
#'
#' @description
#' Defines the settings you will use for the human review workflow user
#' interface. Reviewers will see a three-panel interface with an
#' instruction area, the item to review, and an input area.
#'
#' @usage
#' sagemaker_create_human_task_ui(HumanTaskUiName, UiTemplate, Tags)
#'
#' @param HumanTaskUiName &#91;required&#93; The name of the user interface you are creating.
#' @param UiTemplate &#91;required&#93; 
#' @param 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
#' A list with the following syntax:
#' ```
#' list(
#'   HumanTaskUiArn = "string"
#' )
#' ```
#'
#' @section Request syntax:
#' ```
#' svc$create_human_task_ui(
#'   HumanTaskUiName = "string",
#'   UiTemplate = list(
#'     Content = "string"
#'   ),
#'   Tags = list(
#'     list(
#'       Key = "string",
#'       Value = "string"
#'     )
#'   )
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname sagemaker_create_human_task_ui
sagemaker_create_human_task_ui <- function(HumanTaskUiName, UiTemplate, Tags = NULL) {
  op <- new_operation(
    name = "CreateHumanTaskUi",
    http_method = "POST",
    http_path = "/",
    paginator = list()
  )
  input <- .sagemaker$create_human_task_ui_input(HumanTaskUiName = HumanTaskUiName, UiTemplate = UiTemplate, Tags = Tags)
  output <- .sagemaker$create_human_task_ui_output()
  config <- get_config()
  svc <- .sagemaker$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.sagemaker$operations$create_human_task_ui <- sagemaker_create_human_task_ui

#' Starts a hyperparameter tuning job
#'
#' @description
#' Starts a hyperparameter tuning job. A hyperparameter tuning job finds
#' the best version of a model by running many training jobs on your
#' dataset using the algorithm you choose and values for hyperparameters
#' within ranges that you specify. It then chooses the hyperparameter
#' values that result in a model that performs the best, as measured by an
#' objective metric that you choose.
#'
#' @usage
#' sagemaker_create_hyper_parameter_tuning_job(HyperParameterTuningJobName,
#'   HyperParameterTuningJobConfig, TrainingJobDefinition,
#'   TrainingJobDefinitions, WarmStartConfig, Tags)
#'
#' @param HyperParameterTuningJobName &#91;required&#93; 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 AWS account and AWS 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.
#' @param HyperParameterTuningJobConfig &#91;required&#93; The HyperParameterTuningJobConfig 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](https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-how-it-works.html).
#' @param TrainingJobDefinition The HyperParameterTrainingJobDefinition 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.
#' @param TrainingJobDefinitions A list of the HyperParameterTrainingJobDefinition objects launched for
#' this tuning job.
#' @param WarmStartConfig 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.
#' 
#' 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.
#' @param Tags An array of key-value pairs. You can use tags to categorize your AWS
#' resources in different ways, for example, by purpose, owner, or
#' environment. For more information, see [Tagging AWS
#' Resources](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html).
#' 
#' Tags that you specify for the tuning job are also added to all training
#' jobs that the tuning job launches.
#'
#' @return
#' A list with the following syntax:
#' ```
#' list(
#'   HyperParameterTuningJobArn = "string"
#' )
#' ```
#'
#' @section Request syntax:
#' ```
#' svc$create_hyper_parameter_tuning_job(
#'   HyperParameterTuningJobName = "string",
#'   HyperParameterTuningJobConfig = list(
#'     Strategy = "Bayesian"|"Random",
#'     HyperParameterTuningJobObjective = list(
#'       Type = "Maximize"|"Minimize",
#'       MetricName = "string"
#'     ),
#'     ResourceLimits = list(
#'       MaxNumberOfTrainingJobs = 123,
#'       MaxParallelTrainingJobs = 123
#'     ),
#'     ParameterRanges = list(
#'       IntegerParameterRanges = list(
#'         list(
#'           Name = "string",
#'           MinValue = "string",
#'           MaxValue = "string",
#'           ScalingType = "Auto"|"Linear"|"Logarithmic"|"ReverseLogarithmic"
#'         )
#'       ),
#'       ContinuousParameterRanges = list(
#'         list(
#'           Name = "string",
#'           MinValue = "string",
#'           MaxValue = "string",
#'           ScalingType = "Auto"|"Linear"|"Logarithmic"|"ReverseLogarithmic"
#'         )
#'       ),
#'       CategoricalParameterRanges = list(
#'         list(
#'           Name = "string",
#'           Values = list(
#'             "string"
#'           )
#'         )
#'       )
#'     ),
#'     TrainingJobEarlyStoppingType = "Off"|"Auto",
#'     TuningJobCompletionCriteria = list(
#'       TargetObjectiveMetricValue = 123.0
#'     )
#'   ),
#'   TrainingJobDefinition = list(
#'     DefinitionName = "string",
#'     TuningObjective = list(
#'       Type = "Maximize"|"Minimize",
#'       MetricName = "string"
#'     ),
#'     HyperParameterRanges = list(
#'       IntegerParameterRanges = list(
#'         list(
#'           Name = "string",
#'           MinValue = "string",
#'           MaxValue = "string",
#'           ScalingType = "Auto"|"Linear"|"Logarithmic"|"ReverseLogarithmic"
#'         )
#'       ),
#'       ContinuousParameterRanges = list(
#'         list(
#'           Name = "string",
#'           MinValue = "string",
#'           MaxValue = "string",
#'           ScalingType = "Auto"|"Linear"|"Logarithmic"|"ReverseLogarithmic"
#'         )
#'       ),
#'       CategoricalParameterRanges = list(
#'         list(
#'           Name = "string",
#'           Values = list(
#'             "string"
#'           )
#'         )
#'       )
#'     ),
#'     StaticHyperParameters = list(
#'       "string"
#'     ),
#'     AlgorithmSpecification = list(
#'       TrainingImage = "string",
#'       TrainingInputMode = "Pipe"|"File",
#'       AlgorithmName = "string",
#'       MetricDefinitions = list(
#'         list(
#'           Name = "string",
#'           Regex = "string"
#'         )
#'       )
#'     ),
#'     RoleArn = "string",
#'     InputDataConfig = list(
#'       list(
#'         ChannelName = "string",
#'         DataSource = list(
#'           S3DataSource = list(
#'             S3DataType = "ManifestFile"|"S3Prefix"|"AugmentedManifestFile",
#'             S3Uri = "string",
#'             S3DataDistributionType = "FullyReplicated"|"ShardedByS3Key",
#'             AttributeNames = list(
#'               "string"
#'             )
#'           ),
#'           FileSystemDataSource = list(
#'             FileSystemId = "string",
#'             FileSystemAccessMode = "rw"|"ro",
#'             FileSystemType = "EFS"|"FSxLustre",
#'             DirectoryPath = "string"
#'           )
#'         ),
#'         ContentType = "string",
#'         CompressionType = "None"|"Gzip",
#'         RecordWrapperType = "None"|"RecordIO",
#'         InputMode = "Pipe"|"File",
#'         ShuffleConfig = list(
#'           Seed = 123
#'         )
#'       )
#'     ),
#'     VpcConfig = list(
#'       SecurityGroupIds = list(
#'         "string"
#'       ),
#'       Subnets = list(
#'         "string"
#'       )
#'     ),
#'     OutputDataConfig = list(
#'       KmsKeyId = "string",
#'       S3OutputPath = "string"
#'     ),
#'     ResourceConfig = list(
#'       InstanceType = "ml.m4.xlarge"|"ml.m4.2xlarge"|"ml.m4.4xlarge"|"ml.m4.10xlarge"|"ml.m4.16xlarge"|"ml.g4dn.xlarge"|"ml.g4dn.2xlarge"|"ml.g4dn.4xlarge"|"ml.g4dn.8xlarge"|"ml.g4dn.12xlarge"|"ml.g4dn.16xlarge"|"ml.m5.large"|"ml.m5.xlarge"|"ml.m5.2xlarge"|"ml.m5.4xlarge"|"ml.m5.12xlarge"|"ml.m5.24xlarge"|"ml.c4.xlarge"|"ml.c4.2xlarge"|"ml.c4.4xlarge"|"ml.c4.8xlarge"|"ml.p2.xlarge"|"ml.p2.8xlarge"|"ml.p2.16xlarge"|"ml.p3.2xlarge"|"ml.p3.8xlarge"|"ml.p3.16xlarge"|"ml.p3dn.24xlarge"|"ml.p4d.24xlarge"|"ml.c5.xlarge"|"ml.c5.2xlarge"|"ml.c5.4xlarge"|"ml.c5.9xlarge"|"ml.c5.18xlarge"|"ml.c5n.xlarge"|"ml.c5n.2xlarge"|"ml.c5n.4xlarge"|"ml.c5n.9xlarge"|"ml.c5n.18xlarge",
#'       InstanceCount = 123,
#'       VolumeSizeInGB = 123,
#'       VolumeKmsKeyId = "string"
#'     ),
#'     StoppingCondition = list(
#'       MaxRuntimeInSeconds = 123,
#'       MaxWaitTimeInSeconds = 123
#'     ),
#'     EnableNetworkIsolation = TRUE|FALSE,
#'     EnableInterContainerTrafficEncryption = TRUE|FALSE,
#'     EnableManagedSpotTraining = TRUE|FALSE,
#'     CheckpointConfig = list(
#'       S3Uri = "string",
#'       LocalPath = "string"
#'     )
#'   ),
#'   TrainingJobDefinitions = list(
#'     list(
#'       DefinitionName = "string",
#'       TuningObjective = list(
#'         Type = "Maximize"|"Minimize",
#'         MetricName = "string"
#'       ),
#'       HyperParameterRanges = list(
#'         IntegerParameterRanges = list(
#'           list(
#'             Name = "string",
#'             MinValue = "string",
#'             MaxValue = "string",
#'             ScalingType = "Auto"|"Linear"|"Logarithmic"|"ReverseLogarithmic"
#'           )
#'         ),
#'         ContinuousParameterRanges = list(
#'           list(
#'             Name = "string",
#'             MinValue = "string",
#'             MaxValue = "string",
#'             ScalingType = "Auto"|"Linear"|"Logarithmic"|"ReverseLogarithmic"
#'           )
#'         ),
#'         CategoricalParameterRanges = list(
#'           list(
#'             Name = "string",
#'             Values = list(
#'               "string"
#'             )
#'           )
#'         )
#'       ),
#'       StaticHyperParameters = list(
#'         "string"
#'       ),
#'       AlgorithmSpecification = list(
#'         TrainingImage = "string",
#'         TrainingInputMode = "Pipe"|"File",
#'         AlgorithmName = "string",
#'         MetricDefinitions = list(
#'           list(
#'             Name = "string",
#'             Regex = "string"
#'           )
#'         )
#'       ),
#'       RoleArn = "string",
#'       InputDataConfig = list(
#'         list(
#'           ChannelName = "string",
#'           DataSource = list(
#'             S3DataSource = list(
#'               S3DataType = "ManifestFile"|"S3Prefix"|"AugmentedManifestFile",
#'               S3Uri = "string",
#'               S3DataDistributionType = "FullyReplicated"|"ShardedByS3Key",
#'               AttributeNames = list(
#'                 "string"
#'               )
#'             ),
#'             FileSystemDataSource = list(
#'               FileSystemId = "string",
#'               FileSystemAccessMode = "rw"|"ro",
#'               FileSystemType = "EFS"|"FSxLustre",
#'               DirectoryPath = "string"
#'             )
#'           ),
#'           ContentType = "string",
#'           CompressionType = "None"|"Gzip",
#'           RecordWrapperType = "None"|"RecordIO",
#'           InputMode = "Pipe"|"File",
#'           ShuffleConfig = list(
#'             Seed = 123
#'           )
#'         )
#'       ),
#'       VpcConfig = list(
#'         SecurityGroupIds = list(
#'           "string"
#'         ),
#'         Subnets = list(
#'           "string"
#'         )
#'       ),
#'       OutputDataConfig = list(
#'         KmsKeyId = "string",
#'         S3OutputPath = "string"
#'       ),
#'       ResourceConfig = list(
#'         InstanceType = "ml.m4.xlarge"|"ml.m4.2xlarge"|"ml.m4.4xlarge"|"ml.m4.10xlarge"|"ml.m4.16xlarge"|"ml.g4dn.xlarge"|"ml.g4dn.2xlarge"|"ml.g4dn.4xlarge"|"ml.g4dn.8xlarge"|"ml.g4dn.12xlarge"|"ml.g4dn.16xlarge"|"ml.m5.large"|"ml.m5.xlarge"|"ml.m5.2xlarge"|"ml.m5.4xlarge"|"ml.m5.12xlarge"|"ml.m5.24xlarge"|"ml.c4.xlarge"|"ml.c4.2xlarge"|"ml.c4.4xlarge"|"ml.c4.8xlarge"|"ml.p2.xlarge"|"ml.p2.8xlarge"|"ml.p2.16xlarge"|"ml.p3.2xlarge"|"ml.p3.8xlarge"|"ml.p3.16xlarge"|"ml.p3dn.24xlarge"|"ml.p4d.24xlarge"|"ml.c5.xlarge"|"ml.c5.2xlarge"|"ml.c5.4xlarge"|"ml.c5.9xlarge"|"ml.c5.18xlarge"|"ml.c5n.xlarge"|"ml.c5n.2xlarge"|"ml.c5n.4xlarge"|"ml.c5n.9xlarge"|"ml.c5n.18xlarge",
#'         InstanceCount = 123,
#'         VolumeSizeInGB = 123,
#'         VolumeKmsKeyId = "string"
#'       ),
#'       StoppingCondition = list(
#'         MaxRuntimeInSeconds = 123,
#'         MaxWaitTimeInSeconds = 123
#'       ),
#'       EnableNetworkIsolation = TRUE|FALSE,
#'       EnableInterContainerTrafficEncryption = TRUE|FALSE,
#'       EnableManagedSpotTraining = TRUE|FALSE,
#'       CheckpointConfig = list(
#'         S3Uri = "string",
#'         LocalPath = "string"
#'       )
#'     )
#'   ),
#'   WarmStartConfig = list(
#'     ParentHyperParameterTuningJobs = list(
#'       list(
#'         HyperParameterTuningJobName = "string"
#'       )
#'     ),
#'     WarmStartType = "IdenticalDataAndAlgorithm"|"TransferLearning"
#'   ),
#'   Tags = list(
#'     list(
#'       Key = "string",
#'       Value = "string"
#'     )
#'   )
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname sagemaker_create_hyper_parameter_tuning_job
sagemaker_create_hyper_parameter_tuning_job <- function(HyperParameterTuningJobName, HyperParameterTuningJobConfig, TrainingJobDefinition = NULL, TrainingJobDefinitions = NULL, WarmStartConfig = NULL, Tags = NULL) {
  op <- new_operation(
    name = "CreateHyperParameterTuningJob",
    http_method = "POST",
    http_path = "/",
    paginator = list()
  )
  input <- .sagemaker$create_hyper_parameter_tuning_job_input(HyperParameterTuningJobName = HyperParameterTuningJobName, HyperParameterTuningJobConfig = HyperParameterTuningJobConfig, TrainingJobDefinition = TrainingJobDefinition, TrainingJobDefinitions = TrainingJobDefinitions, WarmStartConfig = WarmStartConfig, Tags = Tags)
  output <- .sagemaker$create_hyper_parameter_tuning_job_output()
  config <- get_config()
  svc <- .sagemaker$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.sagemaker$operations$create_hyper_parameter_tuning_job <- sagemaker_create_hyper_parameter_tuning_job

#' Creates a custom SageMaker image
#'
#' @description
#' Creates a custom SageMaker image. A SageMaker image is a set of image
#' versions. Each image version represents a container image stored in
#' Amazon Container Registry (ECR). For more information, see [Bring your
#' own SageMaker
#' image](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-byoi.html).
#'
#' @usage
#' sagemaker_create_image(Description, DisplayName, ImageName, RoleArn,
#'   Tags)
#'
#' @param Description The description of the image.
#' @param DisplayName The display name of the image. If not provided, `ImageName` is
#' displayed.
#' @param ImageName &#91;required&#93; The name of the image. Must be unique to your account.
#' @param RoleArn &#91;required&#93; The Amazon Resource Name (ARN) of an IAM role that enables Amazon
#' SageMaker to perform tasks on your behalf.
#' @param Tags A list of tags to apply to the image.
#'
#' @return
#' A list with the following syntax:
#' ```
#' list(
#'   ImageArn = "string"
#' )
#' ```
#'
#' @section Request syntax:
#' ```
#' svc$create_image(
#'   Description = "string",
#'   DisplayName = "string",
#'   ImageName = "string",
#'   RoleArn = "string",
#'   Tags = list(
#'     list(
#'       Key = "string",
#'       Value = "string"
#'     )
#'   )
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname sagemaker_create_image
sagemaker_create_image <- function(Description = NULL, DisplayName = NULL, ImageName, RoleArn, Tags = NULL) {
  op <- new_operation(
    name = "CreateImage",
    http_method = "POST",
    http_path = "/",
    paginator = list()
  )
  input <- .sagemaker$create_image_input(Description = Description, DisplayName = DisplayName, ImageName = ImageName, RoleArn = RoleArn, Tags = Tags)
  output <- .sagemaker$create_image_output()
  config <- get_config()
  svc <- .sagemaker$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.sagemaker$operations$create_image <- sagemaker_create_image

#' Creates a version of the SageMaker image specified by ImageName
#'
#' @description
#' Creates a version of the SageMaker image specified by `ImageName`. The
#' version represents the Amazon Container Registry (ECR) container image
#' specified by `BaseImage`.
#'
#' @usage
#' sagemaker_create_image_version(BaseImage, ClientToken, ImageName)
#'
#' @param BaseImage &#91;required&#93; The registry path of the container image to use as the starting point
#' for this version. The path is an Amazon Container Registry (ECR) URI in
#' the following format:
#' 
#' `<acct-id>.dkr.ecr.<region>.amazonaws.com/<repo-name[:tag] or [@@digest]>`
#' @param ClientToken &#91;required&#93; A unique ID. If not specified, the AWS CLI and AWS SDKs, such as the SDK
#' for Python (Boto3), add a unique value to the call.
#' @param ImageName &#91;required&#93; The `ImageName` of the `Image` to create a version of.
#'
#' @return
#' A list with the following syntax:
#' ```
#' list(
#'   ImageVersionArn = "string"
#' )
#' ```
#'
#' @section Request syntax:
#' ```
#' svc$create_image_version(
#'   BaseImage = "string",
#'   ClientToken = "string",
#'   ImageName = "string"
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname sagemaker_create_image_version
sagemaker_create_image_version <- function(BaseImage, ClientToken, ImageName) {
  op <- new_operation(
    name = "CreateImageVersion",
    http_method = "POST",
    http_path = "/",
    paginator = list()
  )
  input <- .sagemaker$create_image_version_input(BaseImage = BaseImage, ClientToken = ClientToken, ImageName = ImageName)
  output <- .sagemaker$create_image_version_output()
  config <- get_config()
  svc <- .sagemaker$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.sagemaker$operations$create_image_version <- sagemaker_create_image_version

#' Creates a job that uses workers to label the data objects in your input
#' dataset
#'
#' @description
#' Creates a job that uses workers to label the data objects in your input
#' dataset. You can use the labeled data to train machine learning models.
#' 
#' You can select your workforce from one of three providers:
#' 
#' -   A private workforce that you create. It can include employees,
#'     contractors, and outside experts. Use a private workforce when want
#'     the data to stay within your organization or when a specific set of
#'     skills is required.
#' 
#' -   One or more vendors that you select from the AWS Marketplace.
#'     Vendors provide expertise in specific areas.
#' 
#' -   The Amazon Mechanical Turk workforce. This is the largest workforce,
#'     but it should only be used for public data or data that has been
#'     stripped of any personally identifiable information.
#' 
#' You can also use *automated data labeling* to reduce the number of data
#' objects that need to be labeled by a human. Automated data labeling uses
#' *active learning* to determine if a data object can be labeled by
#' machine or if it needs to be sent to a human worker. For more
#' information, see [Using Automated Data
#' Labeling](https://docs.aws.amazon.com/sagemaker/latest/dg/sms-automated-labeling.html).
#' 
#' The data objects to be labeled are contained in an Amazon S3 bucket. You
#' create a *manifest file* that describes the location of each object. For
#' more information, see [Using Input and Output
#' Data](https://docs.aws.amazon.com/sagemaker/latest/dg/sms-data.html).
#' 
#' The output can be used as the manifest file for another labeling job or
#' as training data for your machine learning models.
#'
#' @usage
#' sagemaker_create_labeling_job(LabelingJobName, LabelAttributeName,
#'   InputConfig, OutputConfig, RoleArn, LabelCategoryConfigS3Uri,
#'   StoppingConditions, LabelingJobAlgorithmsConfig, HumanTaskConfig, Tags)
#'
#' @param LabelingJobName &#91;required&#93; The name of the labeling job. This name is used to identify the job in a
#' list of labeling jobs.
#' @param LabelAttributeName &#91;required&#93; 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 name can't end with "-metadata". If
#' you are running a semantic segmentation labeling job, the attribute name
#' must end with "-ref". If you are running any other kind of labeling job,
#' the attribute name must not end with "-ref".
#' @param InputConfig &#91;required&#93; 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.
#' @param OutputConfig &#91;required&#93; The location of the output data and the AWS Key Management Service key
#' ID for the key used to encrypt the output data, if any.
#' @param RoleArn &#91;required&#93; 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.
#' @param LabelCategoryConfigS3Uri The S3 URI of the file that defines the categories used to label the
#' data objects.
#' 
#' For 3D point cloud task types, see [Create a Labeling Category
#' Configuration File for 3D Point Cloud Labeling
#' Jobs](https://docs.aws.amazon.com/sagemaker/latest/dg/sms-label-cat-config-attributes.html).
#' 
#' For all other [built-in task
#' types](https://docs.aws.amazon.com/sagemaker/latest/dg/sms-task-types.html)
#' and [custom
#' tasks](https://docs.aws.amazon.com/sagemaker/latest/dg/sms-custom-templates.html),
#' 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"`
#' 
#' ` \}`
#' 
#' ` ]`
#' 
#' `\}`
#' @param StoppingConditions 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.
#' @param LabelingJobAlgorithmsConfig Configures the information required to perform automated data labeling.
#' @param HumanTaskConfig &#91;required&#93; Configures the labeling task and how it is presented to workers;
#' including, but not limited to price, keywords, and batch size (task
#' count).
#' @param Tags 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-what)
#' in the *AWS Billing and Cost Management User Guide*.
#'
#' @return
#' A list with the following syntax:
#' ```
#' list(
#'   LabelingJobArn = "string"
#' )
#' ```
#'
#' @section Request syntax:
#' ```
#' svc$create_labeling_job(
#'   LabelingJobName = "string",
#'   LabelAttributeName = "string",
#'   InputConfig = list(
#'     DataSource = list(
#'       S3DataSource = list(
#'         ManifestS3Uri = "string"
#'       ),
#'       SnsDataSource = list(
#'         SnsTopicArn = "string"
#'       )
#'     ),
#'     DataAttributes = list(
#'       ContentClassifiers = list(
#'         "FreeOfPersonallyIdentifiableInformation"|"FreeOfAdultContent"
#'       )
#'     )
#'   ),
#'   OutputConfig = list(
#'     S3OutputPath = "string",
#'     KmsKeyId = "string",
#'     SnsTopicArn = "string"
#'   ),
#'   RoleArn = "string",
#'   LabelCategoryConfigS3Uri = "string",
#'   StoppingConditions = list(
#'     MaxHumanLabeledObjectCount = 123,
#'     MaxPercentageOfInputDatasetLabeled = 123
#'   ),
#'   LabelingJobAlgorithmsConfig = list(
#'     LabelingJobAlgorithmSpecificationArn = "string",
#'     InitialActiveLearningModelArn = "string",
#'     LabelingJobResourceConfig = list(
#'       VolumeKmsKeyId = "string"
#'     )
#'   ),
#'   HumanTaskConfig = list(
#'     WorkteamArn = "string",
#'     UiConfig = list(
#'       UiTemplateS3Uri = "string",
#'       HumanTaskUiArn = "string"
#'     ),
#'     PreHumanTaskLambdaArn = "string",
#'     TaskKeywords = list(
#'       "string"
#'     ),
#'     TaskTitle = "string",
#'     TaskDescription = "string",
#'     NumberOfHumanWorkersPerDataObject = 123,
#'     TaskTimeLimitInSeconds = 123,
#'     TaskAvailabilityLifetimeInSeconds = 123,
#'     MaxConcurrentTaskCount = 123,
#'     AnnotationConsolidationConfig = list(
#'       AnnotationConsolidationLambdaArn = "string"
#'     ),
#'     PublicWorkforceTaskPrice = list(
#'       AmountInUsd = list(
#'         Dollars = 123,
#'         Cents = 123,
#'         TenthFractionsOfACent = 123
#'       )
#'     )
#'   ),
#'   Tags = list(
#'     list(
#'       Key = "string",
#'       Value = "string"
#'     )
#'   )
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname sagemaker_create_labeling_job
sagemaker_create_labeling_job <- function(LabelingJobName, LabelAttributeName, InputConfig, OutputConfig, RoleArn, LabelCategoryConfigS3Uri = NULL, StoppingConditions = NULL, LabelingJobAlgorithmsConfig = NULL, HumanTaskConfig, Tags = NULL) {
  op <- new_operation(
    name = "CreateLabelingJob",
    http_method = "POST",
    http_path = "/",
    paginator = list()
  )
  input <- .sagemaker$create_labeling_job_input(LabelingJobName = LabelingJobName, LabelAttributeName = LabelAttributeName, InputConfig = InputConfig, OutputConfig = OutputConfig, RoleArn = RoleArn, LabelCategoryConfigS3Uri = LabelCategoryConfigS3Uri, StoppingConditions = StoppingConditions, LabelingJobAlgorithmsConfig = LabelingJobAlgorithmsConfig, HumanTaskConfig = HumanTaskConfig, Tags = Tags)
  output <- .sagemaker$create_labeling_job_output()
  config <- get_config()
  svc <- .sagemaker$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.sagemaker$operations$create_labeling_job <- sagemaker_create_labeling_job

#' Creates a model in Amazon SageMaker
#'
#' @description
#' Creates a model in Amazon SageMaker. In the request, you name the model
#' and describe a primary container. For the primary container, you specify
#' the Docker image that contains inference code, artifacts (from prior
#' training), and a custom environment map that the inference code uses
#' when you deploy the model for predictions.
#' 
#' Use this API to create a model if you want to use Amazon SageMaker
#' hosting services or run a batch transform job.
#' 
#' To host your model, you create an endpoint configuration with the
#' [`create_endpoint_config`][sagemaker_create_endpoint_config] API, and
#' then create an endpoint with the
#' [`create_endpoint`][sagemaker_create_endpoint] API. Amazon SageMaker
#' then deploys all of the containers that you defined for the model in the
#' hosting environment.
#' 
#' For an example that calls this method when deploying a model to Amazon
#' SageMaker hosting services, see [Deploy the Model to Amazon SageMaker
#' Hosting Services (AWS SDK for Python (Boto
#' 3)).](https://docs.aws.amazon.com/sagemaker/latest/dg/#ex1-deploy-model-boto)
#' 
#' To run a batch transform using your model, you start a job with the
#' [`create_transform_job`][sagemaker_create_transform_job] API. Amazon
#' SageMaker uses your model and your dataset to get inferences which are
#' then saved to a specified S3 location.
#' 
#' In the [`create_model`][sagemaker_create_model] request, you must define
#' a container with the `PrimaryContainer` parameter.
#' 
#' In the request, you also provide an IAM role that Amazon SageMaker can
#' assume to access model artifacts and docker image for deployment on ML
#' compute hosting instances or for batch transform jobs. In addition, you
#' also use the IAM role to manage permissions the inference code needs.
#' For example, if the inference code access any other AWS resources, you
#' grant necessary permissions via this role.
#'
#' @usage
#' sagemaker_create_model(ModelName, PrimaryContainer, Containers,
#'   ExecutionRoleArn, Tags, VpcConfig, EnableNetworkIsolation)
#'
#' @param ModelName &#91;required&#93; The name of the new model.
#' @param PrimaryContainer 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.
#' @param Containers Specifies the containers in the inference pipeline.
#' @param ExecutionRoleArn &#91;required&#93; The Amazon Resource Name (ARN) of the IAM role that Amazon 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 [Amazon
#' SageMaker
#' Roles](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html).
#' 
#' To be able to pass this role to Amazon SageMaker, the caller of this API
#' must have the `iam:PassRole` permission.
#' @param Tags An array of key-value pairs. You can use tags to categorize your AWS
#' resources in different ways, for example, by purpose, owner, or
#' environment. For more information, see [Tagging AWS
#' Resources](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html).
#' @param VpcConfig A VpcConfig 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](https://docs.aws.amazon.com/sagemaker/latest/dg/host-vpc.html)
#' and [Protect Data in Batch Transform Jobs by Using an Amazon Virtual
#' Private
#' Cloud](https://docs.aws.amazon.com/sagemaker/latest/dg/batch-vpc.html).
#' @param EnableNetworkIsolation Isolates the model container. No inbound or outbound network calls can
#' be made to or from the model container.
#'
#' @return
#' A list with the following syntax:
#' ```
#' list(
#'   ModelArn = "string"
#' )
#' ```
#'
#' @section Request syntax:
#' ```
#' svc$create_model(
#'   ModelName = "string",
#'   PrimaryContainer = list(
#'     ContainerHostname = "string",
#'     Image = "string",
#'     ImageConfig = list(
#'       RepositoryAccessMode = "Platform"|"Vpc"
#'     ),
#'     Mode = "SingleModel"|"MultiModel",
#'     ModelDataUrl = "string",
#'     Environment = list(
#'       "string"
#'     ),
#'     ModelPackageName = "string"
#'   ),
#'   Containers = list(
#'     list(
#'       ContainerHostname = "string",
#'       Image = "string",
#'       ImageConfig = list(
#'         RepositoryAccessMode = "Platform"|"Vpc"
#'       ),
#'       Mode = "SingleModel"|"MultiModel",
#'       ModelDataUrl = "string",
#'       Environment = list(
#'         "string"
#'       ),
#'       ModelPackageName = "string"
#'     )
#'   ),
#'   ExecutionRoleArn = "string",
#'   Tags = list(
#'     list(
#'       Key = "string",
#'       Value = "string"
#'     )
#'   ),
#'   VpcConfig = list(
#'     SecurityGroupIds = list(
#'       "string"
#'     ),
#'     Subnets = list(
#'       "string"
#'     )
#'   ),
#'   EnableNetworkIsolation = TRUE|FALSE
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname sagemaker_create_model
sagemaker_create_model <- function(ModelName, PrimaryContainer = NULL, Containers = NULL, ExecutionRoleArn, Tags = NULL, VpcConfig = NULL, EnableNetworkIsolation = NULL) {
  op <- new_operation(
    name = "CreateModel",
    http_method = "POST",
    http_path = "/",
    paginator = list()
  )
  input <- .sagemaker$create_model_input(ModelName = ModelName, PrimaryContainer = PrimaryContainer, Containers = Containers, ExecutionRoleArn = ExecutionRoleArn, Tags = Tags, VpcConfig = VpcConfig, EnableNetworkIsolation = EnableNetworkIsolation)
  output <- .sagemaker$create_model_output()
  config <- get_config()
  svc <- .sagemaker$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.sagemaker$operations$create_model <- sagemaker_create_model

#' Creates the definition for a model bias job
#'
#' @description
#' Creates the definition for a model bias job.
#'
#' @usage
#' sagemaker_create_model_bias_job_definition(JobDefinitionName,
#'   ModelBiasBaselineConfig, ModelBiasAppSpecification, ModelBiasJobInput,
#'   ModelBiasJobOutputConfig, JobResources, NetworkConfig, RoleArn,
#'   StoppingCondition, Tags)
#'
#' @param JobDefinitionName &#91;required&#93; The name of the bias job definition. The name must be unique within an
#' AWS Region in the AWS account.
#' @param ModelBiasBaselineConfig The baseline configuration for a model bias job.
#' @param ModelBiasAppSpecification &#91;required&#93; Configures the model bias job to run a specified Docker container image.
#' @param ModelBiasJobInput &#91;required&#93; Inputs for the model bias job.
#' @param ModelBiasJobOutputConfig &#91;required&#93; 
#' @param JobResources &#91;required&#93; 
#' @param NetworkConfig Networking options for a model bias job.
#' @param RoleArn &#91;required&#93; The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker can
#' assume to perform tasks on your behalf.
#' @param StoppingCondition 
#' @param 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 *AWS Billing and Cost Management User Guide*.
#'
#' @return
#' A list with the following syntax:
#' ```
#' list(
#'   JobDefinitionArn = "string"
#' )
#' ```
#'
#' @section Request syntax:
#' ```
#' svc$create_model_bias_job_definition(
#'   JobDefinitionName = "string",
#'   ModelBiasBaselineConfig = list(
#'     BaseliningJobName = "string",
#'     ConstraintsResource = list(
#'       S3Uri = "string"
#'     )
#'   ),
#'   ModelBiasAppSpecification = list(
#'     ImageUri = "string",
#'     ConfigUri = "string",
#'     Environment = list(
#'       "string"
#'     )
#'   ),
#'   ModelBiasJobInput = list(
#'     EndpointInput = list(
#'       EndpointName = "string",
#'       LocalPath = "string",
#'       S3InputMode = "Pipe"|"File",
#'       S3DataDistributionType = "FullyReplicated"|"ShardedByS3Key",
#'       FeaturesAttribute = "string",
#'       InferenceAttribute = "string",
#'       ProbabilityAttribute = "string",
#'       ProbabilityThresholdAttribute = 123.0,
#'       StartTimeOffset = "string",
#'       EndTimeOffset = "string"
#'     ),
#'     GroundTruthS3Input = list(
#'       S3Uri = "string"
#'     )
#'   ),
#'   ModelBiasJobOutputConfig = list(
#'     MonitoringOutputs = list(
#'       list(
#'         S3Output = list(
#'           S3Uri = "string",
#'           LocalPath = "string",
#'           S3UploadMode = "Continuous"|"EndOfJob"
#'         )
#'       )
#'     ),
#'     KmsKeyId = "string"
#'   ),
#'   JobResources = list(
#'     ClusterConfig = list(
#'       InstanceCount = 123,
#'       InstanceType = "ml.t3.medium"|"ml.t3.large"|"ml.t3.xlarge"|"ml.t3.2xlarge"|"ml.m4.xlarge"|"ml.m4.2xlarge"|"ml.m4.4xlarge"|"ml.m4.10xlarge"|"ml.m4.16xlarge"|"ml.c4.xlarge"|"ml.c4.2xlarge"|"ml.c4.4xlarge"|"ml.c4.8xlarge"|"ml.p2.xlarge"|"ml.p2.8xlarge"|"ml.p2.16xlarge"|"ml.p3.2xlarge"|"ml.p3.8xlarge"|"ml.p3.16xlarge"|"ml.c5.xlarge"|"ml.c5.2xlarge"|"ml.c5.4xlarge"|"ml.c5.9xlarge"|"ml.c5.18xlarge"|"ml.m5.large"|"ml.m5.xlarge"|"ml.m5.2xlarge"|"ml.m5.4xlarge"|"ml.m5.12xlarge"|"ml.m5.24xlarge"|"ml.r5.large"|"ml.r5.xlarge"|"ml.r5.2xlarge"|"ml.r5.4xlarge"|"ml.r5.8xlarge"|"ml.r5.12xlarge"|"ml.r5.16xlarge"|"ml.r5.24xlarge",
#'       VolumeSizeInGB = 123,
#'       VolumeKmsKeyId = "string"
#'     )
#'   ),
#'   NetworkConfig = list(
#'     EnableInterContainerTrafficEncryption = TRUE|FALSE,
#'     EnableNetworkIsolation = TRUE|FALSE,
#'     VpcConfig = list(
#'       SecurityGroupIds = list(
#'         "string"
#'       ),
#'       Subnets = list(
#'         "string"
#'       )
#'     )
#'   ),
#'   RoleArn = "string",
#'   StoppingCondition = list(
#'     MaxRuntimeInSeconds = 123
#'   ),
#'   Tags = list(
#'     list(
#'       Key = "string",
#'       Value = "string"
#'     )
#'   )
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname sagemaker_create_model_bias_job_definition
sagemaker_create_model_bias_job_definition <- function(JobDefinitionName, ModelBiasBaselineConfig = NULL, ModelBiasAppSpecification, ModelBiasJobInput, ModelBiasJobOutputConfig, JobResources, NetworkConfig = NULL, RoleArn, StoppingCondition = NULL, Tags = NULL) {
  op <- new_operation(
    name = "CreateModelBiasJobDefinition",
    http_method = "POST",
    http_path = "/",
    paginator = list()
  )
  input <- .sagemaker$create_model_bias_job_definition_input(JobDefinitionName = JobDefinitionName, ModelBiasBaselineConfig = ModelBiasBaselineConfig, ModelBiasAppSpecification = ModelBiasAppSpecification, ModelBiasJobInput = ModelBiasJobInput, ModelBiasJobOutputConfig = ModelBiasJobOutputConfig, JobResources = JobResources, NetworkConfig = NetworkConfig, RoleArn = RoleArn, StoppingCondition = StoppingCondition, Tags = Tags)
  output <- .sagemaker$create_model_bias_job_definition_output()
  config <- get_config()
  svc <- .sagemaker$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.sagemaker$operations$create_model_bias_job_definition <- sagemaker_create_model_bias_job_definition

#' Creates the definition for a model explainability job
#'
#' @description
#' Creates the definition for a model explainability job.
#'
#' @usage
#' sagemaker_create_model_explainability_job_definition(JobDefinitionName,
#'   ModelExplainabilityBaselineConfig, ModelExplainabilityAppSpecification,
#'   ModelExplainabilityJobInput, ModelExplainabilityJobOutputConfig,
#'   JobResources, NetworkConfig, RoleArn, StoppingCondition, Tags)
#'
#' @param JobDefinitionName &#91;required&#93; The name of the model explainability job definition. The name must be
#' unique within an AWS Region in the AWS account.
#' @param ModelExplainabilityBaselineConfig The baseline configuration for a model explainability job.
#' @param ModelExplainabilityAppSpecification &#91;required&#93; Configures the model explainability job to run a specified Docker
#' container image.
#' @param ModelExplainabilityJobInput &#91;required&#93; Inputs for the model explainability job.
#' @param ModelExplainabilityJobOutputConfig &#91;required&#93; 
#' @param JobResources &#91;required&#93; 
#' @param NetworkConfig Networking options for a model explainability job.
#' @param RoleArn &#91;required&#93; The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker can
#' assume to perform tasks on your behalf.
#' @param StoppingCondition 
#' @param 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 *AWS Billing and Cost Management User Guide*.
#'
#' @return
#' A list with the following syntax:
#' ```
#' list(
#'   JobDefinitionArn = "string"
#' )
#' ```
#'
#' @section Request syntax:
#' ```
#' svc$create_model_explainability_job_definition(
#'   JobDefinitionName = "string",
#'   ModelExplainabilityBaselineConfig = list(
#'     BaseliningJobName = "string",
#'     ConstraintsResource = list(
#'       S3Uri = "string"
#'     )
#'   ),
#'   ModelExplainabilityAppSpecification = list(
#'     ImageUri = "string",
#'     ConfigUri = "string",
#'     Environment = list(
#'       "string"
#'     )
#'   ),
#'   ModelExplainabilityJobInput = list(
#'     EndpointInput = list(
#'       EndpointName = "string",
#'       LocalPath = "string",
#'       S3InputMode = "Pipe"|"File",
#'       S3DataDistributionType = "FullyReplicated"|"ShardedByS3Key",
#'       FeaturesAttribute = "string",
#'       InferenceAttribute = "string",
#'       ProbabilityAttribute = "string",
#'       ProbabilityThresholdAttribute = 123.0,
#'       StartTimeOffset = "string",
#'       EndTimeOffset = "string"
#'     )
#'   ),
#'   ModelExplainabilityJobOutputConfig = list(
#'     MonitoringOutputs = list(
#'       list(
#'         S3Output = list(
#'           S3Uri = "string",
#'           LocalPath = "string",
#'           S3UploadMode = "Continuous"|"EndOfJob"
#'         )
#'       )
#'     ),
#'     KmsKeyId = "string"
#'   ),
#'   JobResources = list(
#'     ClusterConfig = list(
#'       InstanceCount = 123,
#'       InstanceType = "ml.t3.medium"|"ml.t3.large"|"ml.t3.xlarge"|"ml.t3.2xlarge"|"ml.m4.xlarge"|"ml.m4.2xlarge"|"ml.m4.4xlarge"|"ml.m4.10xlarge"|"ml.m4.16xlarge"|"ml.c4.xlarge"|"ml.c4.2xlarge"|"ml.c4.4xlarge"|"ml.c4.8xlarge"|"ml.p2.xlarge"|"ml.p2.8xlarge"|"ml.p2.16xlarge"|"ml.p3.2xlarge"|"ml.p3.8xlarge"|"ml.p3.16xlarge"|"ml.c5.xlarge"|"ml.c5.2xlarge"|"ml.c5.4xlarge"|"ml.c5.9xlarge"|"ml.c5.18xlarge"|"ml.m5.large"|"ml.m5.xlarge"|"ml.m5.2xlarge"|"ml.m5.4xlarge"|"ml.m5.12xlarge"|"ml.m5.24xlarge"|"ml.r5.large"|"ml.r5.xlarge"|"ml.r5.2xlarge"|"ml.r5.4xlarge"|"ml.r5.8xlarge"|"ml.r5.12xlarge"|"ml.r5.16xlarge"|"ml.r5.24xlarge",
#'       VolumeSizeInGB = 123,
#'       VolumeKmsKeyId = "string"
#'     )
#'   ),
#'   NetworkConfig = list(
#'     EnableInterContainerTrafficEncryption = TRUE|FALSE,
#'     EnableNetworkIsolation = TRUE|FALSE,
#'     VpcConfig = list(
#'       SecurityGroupIds = list(
#'         "string"
#'       ),
#'       Subnets = list(
#'         "string"
#'       )
#'     )
#'   ),
#'   RoleArn = "string",
#'   StoppingCondition = list(
#'     MaxRuntimeInSeconds = 123
#'   ),
#'   Tags = list(
#'     list(
#'       Key = "string",
#'       Value = "string"
#'     )
#'   )
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname sagemaker_create_model_explainability_job_definition
sagemaker_create_model_explainability_job_definition <- function(JobDefinitionName, ModelExplainabilityBaselineConfig = NULL, ModelExplainabilityAppSpecification, ModelExplainabilityJobInput, ModelExplainabilityJobOutputConfig, JobResources, NetworkConfig = NULL, RoleArn, StoppingCondition = NULL, Tags = NULL) {
  op <- new_operation(
    name = "CreateModelExplainabilityJobDefinition",
    http_method = "POST",
    http_path = "/",
    paginator = list()
  )
  input <- .sagemaker$create_model_explainability_job_definition_input(JobDefinitionName = JobDefinitionName, ModelExplainabilityBaselineConfig = ModelExplainabilityBaselineConfig, ModelExplainabilityAppSpecification = ModelExplainabilityAppSpecification, ModelExplainabilityJobInput = ModelExplainabilityJobInput, ModelExplainabilityJobOutputConfig = ModelExplainabilityJobOutputConfig, JobResources = JobResources, NetworkConfig = NetworkConfig, RoleArn = RoleArn, StoppingCondition = StoppingCondition, Tags = Tags)
  output <- .sagemaker$create_model_explainability_job_definition_output()
  config <- get_config()
  svc <- .sagemaker$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.sagemaker$operations$create_model_explainability_job_definition <- sagemaker_create_model_explainability_job_definition

#' Creates a model package that you can use to create Amazon SageMaker
#' models or list on AWS Marketplace, or a versioned model that is part of
#' a model group
#'
#' @description
#' Creates a model package that you can use to create Amazon SageMaker
#' models or list on AWS Marketplace, or a versioned model that is part of
#' a model group. Buyers can subscribe to model packages listed on AWS
#' Marketplace to create models in Amazon SageMaker.
#' 
#' To create a model package by specifying a Docker container that contains
#' your inference code and the Amazon S3 location of your model artifacts,
#' provide values for `InferenceSpecification`. To create a model from an
#' algorithm resource that you created or subscribed to in AWS Marketplace,
#' provide a value for `SourceAlgorithmSpecification`.
#' 
#' There are two types of model packages:
#' 
#' -   Versioned - a model that is part of a model group in the model
#'     registry.
#' 
#' -   Unversioned - a model package that is not part of a model group.
#'
#' @usage
#' sagemaker_create_model_package(ModelPackageName, ModelPackageGroupName,
#'   ModelPackageDescription, InferenceSpecification,
#'   ValidationSpecification, SourceAlgorithmSpecification,
#'   CertifyForMarketplace, Tags, ModelApprovalStatus, MetadataProperties,
#'   ModelMetrics, ClientToken)
#'
#' @param ModelPackageName 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.
#' @param ModelPackageGroupName The name of the model group that this model version belongs to.
#' 
#' This parameter is required for versioned models, and does not apply to
#' unversioned models.
#' @param ModelPackageDescription A description of the model package.
#' @param InferenceSpecification 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.
#' @param ValidationSpecification Specifies configurations for one or more transform jobs that Amazon
#' SageMaker runs to test the model package.
#' @param SourceAlgorithmSpecification Details about the algorithm that was used to create the model package.
#' @param CertifyForMarketplace Whether to certify the model package for listing on AWS Marketplace.
#' 
#' This parameter is optional for unversioned models, and does not apply to
#' versioned models.
#' @param Tags A list of key value pairs associated with the model. For more
#' information, see [Tagging AWS
#' resources](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html)
#' in the *AWS General Reference Guide*.
#' @param ModelApprovalStatus 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.
#' @param MetadataProperties 
#' @param ModelMetrics A structure that contains model metrics reports.
#' @param ClientToken A unique token that guarantees that the call to this API is idempotent.
#'
#' @return
#' A list with the following syntax:
#' ```
#' list(
#'   ModelPackageArn = "string"
#' )
#' ```
#'
#' @section Request syntax:
#' ```
#' svc$create_model_package(
#'   ModelPackageName = "string",
#'   ModelPackageGroupName = "string",
#'   ModelPackageDescription = "string",
#'   InferenceSpecification = list(
#'     Containers = list(
#'       list(
#'         ContainerHostname = "string",
#'         Image = "string",
#'         ImageDigest = "string",
#'         ModelDataUrl = "string",
#'         ProductId = "string"
#'       )
#'     ),
#'     SupportedTransformInstanceTypes = list(
#'       "ml.m4.xlarge"|"ml.m4.2xlarge"|"ml.m4.4xlarge"|"ml.m4.10xlarge"|"ml.m4.16xlarge"|"ml.c4.xlarge"|"ml.c4.2xlarge"|"ml.c4.4xlarge"|"ml.c4.8xlarge"|"ml.p2.xlarge"|"ml.p2.8xlarge"|"ml.p2.16xlarge"|"ml.p3.2xlarge"|"ml.p3.8xlarge"|"ml.p3.16xlarge"|"ml.c5.xlarge"|"ml.c5.2xlarge"|"ml.c5.4xlarge"|"ml.c5.9xlarge"|"ml.c5.18xlarge"|"ml.m5.large"|"ml.m5.xlarge"|"ml.m5.2xlarge"|"ml.m5.4xlarge"|"ml.m5.12xlarge"|"ml.m5.24xlarge"
#'     ),
#'     SupportedRealtimeInferenceInstanceTypes = list(
#'       "ml.t2.medium"|"ml.t2.large"|"ml.t2.xlarge"|"ml.t2.2xlarge"|"ml.m4.xlarge"|"ml.m4.2xlarge"|"ml.m4.4xlarge"|"ml.m4.10xlarge"|"ml.m4.16xlarge"|"ml.m5.large"|"ml.m5.xlarge"|"ml.m5.2xlarge"|"ml.m5.4xlarge"|"ml.m5.12xlarge"|"ml.m5.24xlarge"|"ml.m5d.large"|"ml.m5d.xlarge"|"ml.m5d.2xlarge"|"ml.m5d.4xlarge"|"ml.m5d.12xlarge"|"ml.m5d.24xlarge"|"ml.c4.large"|"ml.c4.xlarge"|"ml.c4.2xlarge"|"ml.c4.4xlarge"|"ml.c4.8xlarge"|"ml.p2.xlarge"|"ml.p2.8xlarge"|"ml.p2.16xlarge"|"ml.p3.2xlarge"|"ml.p3.8xlarge"|"ml.p3.16xlarge"|"ml.c5.large"|"ml.c5.xlarge"|"ml.c5.2xlarge"|"ml.c5.4xlarge"|"ml.c5.9xlarge"|"ml.c5.18xlarge"|"ml.c5d.large"|"ml.c5d.xlarge"|"ml.c5d.2xlarge"|"ml.c5d.4xlarge"|"ml.c5d.9xlarge"|"ml.c5d.18xlarge"|"ml.g4dn.xlarge"|"ml.g4dn.2xlarge"|"ml.g4dn.4xlarge"|"ml.g4dn.8xlarge"|"ml.g4dn.12xlarge"|"ml.g4dn.16xlarge"|"ml.r5.large"|"ml.r5.xlarge"|"ml.r5.2xlarge"|"ml.r5.4xlarge"|"ml.r5.12xlarge"|"ml.r5.24xlarge"|"ml.r5d.large"|"ml.r5d.xlarge"|"ml.r5d.2xlarge"|"ml.r5d.4xlarge"|"ml.r5d.12xlarge"|"ml.r5d.24xlarge"|"ml.inf1.xlarge"|"ml.inf1.2xlarge"|"ml.inf1.6xlarge"|"ml.inf1.24xlarge"
#'     ),
#'     SupportedContentTypes = list(
#'       "string"
#'     ),
#'     SupportedResponseMIMETypes = list(
#'       "string"
#'     )
#'   ),
#'   ValidationSpecification = list(
#'     ValidationRole = "string",
#'     ValidationProfiles = list(
#'       list(
#'         ProfileName = "string",
#'         TransformJobDefinition = list(
#'           MaxConcurrentTransforms = 123,
#'           MaxPayloadInMB = 123,
#'           BatchStrategy = "MultiRecord"|"SingleRecord",
#'           Environment = list(
#'             "string"
#'           ),
#'           TransformInput = list(
#'             DataSource = list(
#'               S3DataSource = list(
#'                 S3DataType = "ManifestFile"|"S3Prefix"|"AugmentedManifestFile",
#'                 S3Uri = "string"
#'               )
#'             ),
#'             ContentType = "string",
#'             CompressionType = "None"|"Gzip",
#'             SplitType = "None"|"Line"|"RecordIO"|"TFRecord"
#'           ),
#'           TransformOutput = list(
#'             S3OutputPath = "string",
#'             Accept = "string",
#'             AssembleWith = "None"|"Line",
#'             KmsKeyId = "string"
#'           ),
#'           TransformResources = list(
#'             InstanceType = "ml.m4.xlarge"|"ml.m4.2xlarge"|"ml.m4.4xlarge"|"ml.m4.10xlarge"|"ml.m4.16xlarge"|"ml.c4.xlarge"|"ml.c4.2xlarge"|"ml.c4.4xlarge"|"ml.c4.8xlarge"|"ml.p2.xlarge"|"ml.p2.8xlarge"|"ml.p2.16xlarge"|"ml.p3.2xlarge"|"ml.p3.8xlarge"|"ml.p3.16xlarge"|"ml.c5.xlarge"|"ml.c5.2xlarge"|"ml.c5.4xlarge"|"ml.c5.9xlarge"|"ml.c5.18xlarge"|"ml.m5.large"|"ml.m5.xlarge"|"ml.m5.2xlarge"|"ml.m5.4xlarge"|"ml.m5.12xlarge"|"ml.m5.24xlarge",
#'             InstanceCount = 123,
#'             VolumeKmsKeyId = "string"
#'           )
#'         )
#'       )
#'     )
#'   ),
#'   SourceAlgorithmSpecification = list(
#'     SourceAlgorithms = list(
#'       list(
#'         ModelDataUrl = "string",
#'         AlgorithmName = "string"
#'       )
#'     )
#'   ),
#'   CertifyForMarketplace = TRUE|FALSE,
#'   Tags = list(
#'     list(
#'       Key = "string",
#'       Value = "string"
#'     )
#'   ),
#'   ModelApprovalStatus = "Approved"|"Rejected"|"PendingManualApproval",
#'   MetadataProperties = list(
#'     CommitId = "string",
#'     Repository = "string",
#'     GeneratedBy = "string",
#'     ProjectId = "string"
#'   ),
#'   ModelMetrics = list(
#'     ModelQuality = list(
#'       Statistics = list(
#'         ContentType = "string",
#'         ContentDigest = "string",
#'         S3Uri = "string"
#'       ),
#'       Constraints = list(
#'         ContentType = "string",
#'         ContentDigest = "string",
#'         S3Uri = "string"
#'       )
#'     ),
#'     ModelDataQuality = list(
#'       Statistics = list(
#'         ContentType = "string",
#'         ContentDigest = "string",
#'         S3Uri = "string"
#'       ),
#'       Constraints = list(
#'         ContentType = "string",
#'         ContentDigest = "string",
#'         S3Uri = "string"
#'       )
#'     ),
#'     Bias = list(
#'       Report = list(
#'         ContentType = "string",
#'         ContentDigest = "string",
#'         S3Uri = "string"
#'       )
#'     ),
#'     Explainability = list(
#'       Report = list(
#'         ContentType = "string",
#'         ContentDigest = "string",
#'         S3Uri = "string"
#'       )
#'     )
#'   ),
#'   ClientToken = "string"
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname sagemaker_create_model_package
sagemaker_create_model_package <- function(ModelPackageName = NULL, ModelPackageGroupName = NULL, ModelPackageDescription = NULL, InferenceSpecification = NULL, ValidationSpecification = NULL, SourceAlgorithmSpecification = NULL, CertifyForMarketplace = NULL, Tags = NULL, ModelApprovalStatus = NULL, MetadataProperties = NULL, ModelMetrics = NULL, ClientToken = NULL) {
  op <- new_operation(
    name = "CreateModelPackage",
    http_method = "POST",
    http_path = "/",
    paginator = list()
  )
  input <- .sagemaker$create_model_package_input(ModelPackageName = ModelPackageName, ModelPackageGroupName = ModelPackageGroupName, ModelPackageDescription = ModelPackageDescription, InferenceSpecification = InferenceSpecification, ValidationSpecification = ValidationSpecification, SourceAlgorithmSpecification = SourceAlgorithmSpecification, CertifyForMarketplace = CertifyForMarketplace, Tags = Tags, ModelApprovalStatus = ModelApprovalStatus, MetadataProperties = MetadataProperties, ModelMetrics = ModelMetrics, ClientToken = ClientToken)
  output <- .sagemaker$create_model_package_output()
  config <- get_config()
  svc <- .sagemaker$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.sagemaker$operations$create_model_package <- sagemaker_create_model_package

#' Creates a model group
#'
#' @description
#' Creates a model group. A model group contains a group of model versions.
#'
#' @usage
#' sagemaker_create_model_package_group(ModelPackageGroupName,
#'   ModelPackageGroupDescription, Tags)
#'
#' @param ModelPackageGroupName &#91;required&#93; The name of the model group.
#' @param ModelPackageGroupDescription A description for the model group.
#' @param Tags A list of key value pairs associated with the model group. For more
#' information, see [Tagging AWS
#' resources](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html)
#' in the *AWS General Reference Guide*.
#'
#' @return
#' A list with the following syntax:
#' ```
#' list(
#'   ModelPackageGroupArn = "string"
#' )
#' ```
#'
#' @section Request syntax:
#' ```
#' svc$create_model_package_group(
#'   ModelPackageGroupName = "string",
#'   ModelPackageGroupDescription = "string",
#'   Tags = list(
#'     list(
#'       Key = "string",
#'       Value = "string"
#'     )
#'   )
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname sagemaker_create_model_package_group
sagemaker_create_model_package_group <- function(ModelPackageGroupName, ModelPackageGroupDescription = NULL, Tags = NULL) {
  op <- new_operation(
    name = "CreateModelPackageGroup",
    http_method = "POST",
    http_path = "/",
    paginator = list()
  )
  input <- .sagemaker$create_model_package_group_input(ModelPackageGroupName = ModelPackageGroupName, ModelPackageGroupDescription = ModelPackageGroupDescription, Tags = Tags)
  output <- .sagemaker$create_model_package_group_output()
  config <- get_config()
  svc <- .sagemaker$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.sagemaker$operations$create_model_package_group <- sagemaker_create_model_package_group

#' Creates a definition for a job that monitors model quality and drift
#'
#' @description
#' Creates a definition for a job that monitors model quality and drift.
#' For information about model monitor, see [Amazon SageMaker Model
#' Monitor](https://docs.aws.amazon.com/sagemaker/latest/dg/model-monitor.html).
#'
#' @usage
#' sagemaker_create_model_quality_job_definition(JobDefinitionName,
#'   ModelQualityBaselineConfig, ModelQualityAppSpecification,
#'   ModelQualityJobInput, ModelQualityJobOutputConfig, JobResources,
#'   NetworkConfig, RoleArn, StoppingCondition, Tags)
#'
#' @param JobDefinitionName &#91;required&#93; The name of the monitoring job definition.
#' @param ModelQualityBaselineConfig Specifies the constraints and baselines for the monitoring job.
#' @param ModelQualityAppSpecification &#91;required&#93; The container that runs the monitoring job.
#' @param ModelQualityJobInput &#91;required&#93; A list of the inputs that are monitored. Currently endpoints are
#' supported.
#' @param ModelQualityJobOutputConfig &#91;required&#93; 
#' @param JobResources &#91;required&#93; 
#' @param NetworkConfig Specifies the network configuration for the monitoring job.
#' @param RoleArn &#91;required&#93; The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker can
#' assume to perform tasks on your behalf.
#' @param StoppingCondition 
#' @param 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 *AWS Billing and Cost Management User Guide*.
#'
#' @return
#' A list with the following syntax:
#' ```
#' list(
#'   JobDefinitionArn = "string"
#' )
#' ```
#'
#' @section Request syntax:
#' ```
#' svc$create_model_quality_job_definition(
#'   JobDefinitionName = "string",
#'   ModelQualityBaselineConfig = list(
#'     BaseliningJobName = "string",
#'     ConstraintsResource = list(
#'       S3Uri = "string"
#'     )
#'   ),
#'   ModelQualityAppSpecification = list(
#'     ImageUri = "string",
#'     ContainerEntrypoint = list(
#'       "string"
#'     ),
#'     ContainerArguments = list(
#'       "string"
#'     ),
#'     RecordPreprocessorSourceUri = "string",
#'     PostAnalyticsProcessorSourceUri = "string",
#'     ProblemType = "BinaryClassification"|"MulticlassClassification"|"Regression",
#'     Environment = list(
#'       "string"
#'     )
#'   ),
#'   ModelQualityJobInput = list(
#'     EndpointInput = list(
#'       EndpointName = "string",
#'       LocalPath = "string",
#'       S3InputMode = "Pipe"|"File",
#'       S3DataDistributionType = "FullyReplicated"|"ShardedByS3Key",
#'       FeaturesAttribute = "string",
#'       InferenceAttribute = "string",
#'       ProbabilityAttribute = "string",
#'       ProbabilityThresholdAttribute = 123.0,
#'       StartTimeOffset = "string",
#'       EndTimeOffset = "string"
#'     ),
#'     GroundTruthS3Input = list(
#'       S3Uri = "string"
#'     )
#'   ),
#'   ModelQualityJobOutputConfig = list(
#'     MonitoringOutputs = list(
#'       list(
#'         S3Output = list(
#'           S3Uri = "string",
#'           LocalPath = "string",
#'           S3UploadMode = "Continuous"|"EndOfJob"
#'         )
#'       )
#'     ),
#'     KmsKeyId = "string"
#'   ),
#'   JobResources = list(
#'     ClusterConfig = list(
#'       InstanceCount = 123,
#'       InstanceType = "ml.t3.medium"|"ml.t3.large"|"ml.t3.xlarge"|"ml.t3.2xlarge"|"ml.m4.xlarge"|"ml.m4.2xlarge"|"ml.m4.4xlarge"|"ml.m4.10xlarge"|"ml.m4.16xlarge"|"ml.c4.xlarge"|"ml.c4.2xlarge"|"ml.c4.4xlarge"|"ml.c4.8xlarge"|"ml.p2.xlarge"|"ml.p2.8xlarge"|"ml.p2.16xlarge"|"ml.p3.2xlarge"|"ml.p3.8xlarge"|"ml.p3.16xlarge"|"ml.c5.xlarge"|"ml.c5.2xlarge"|"ml.c5.4xlarge"|"ml.c5.9xlarge"|"ml.c5.18xlarge"|"ml.m5.large"|"ml.m5.xlarge"|"ml.m5.2xlarge"|"ml.m5.4xlarge"|"ml.m5.12xlarge"|"ml.m5.24xlarge"|"ml.r5.large"|"ml.r5.xlarge"|"ml.r5.2xlarge"|"ml.r5.4xlarge"|"ml.r5.8xlarge"|"ml.r5.12xlarge"|"ml.r5.16xlarge"|"ml.r5.24xlarge",
#'       VolumeSizeInGB = 123,
#'       VolumeKmsKeyId = "string"
#'     )
#'   ),
#'   NetworkConfig = list(
#'     EnableInterContainerTrafficEncryption = TRUE|FALSE,
#'     EnableNetworkIsolation = TRUE|FALSE,
#'     VpcConfig = list(
#'       SecurityGroupIds = list(
#'         "string"
#'       ),
#'       Subnets = list(
#'         "string"
#'       )
#'     )
#'   ),
#'   RoleArn = "string",
#'   StoppingCondition = list(
#'     MaxRuntimeInSeconds = 123
#'   ),
#'   Tags = list(
#'     list(
#'       Key = "string",
#'       Value = "string"
#'     )
#'   )
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname sagemaker_create_model_quality_job_definition
sagemaker_create_model_quality_job_definition <- function(JobDefinitionName, ModelQualityBaselineConfig = NULL, ModelQualityAppSpecification, ModelQualityJobInput, ModelQualityJobOutputConfig, JobResources, NetworkConfig = NULL, RoleArn, StoppingCondition = NULL, Tags = NULL) {
  op <- new_operation(
    name = "CreateModelQualityJobDefinition",
    http_method = "POST",
    http_path = "/",
    paginator = list()
  )
  input <- .sagemaker$create_model_quality_job_definition_input(JobDefinitionName = JobDefinitionName, ModelQualityBaselineConfig = ModelQualityBaselineConfig, ModelQualityAppSpecification = ModelQualityAppSpecification, ModelQualityJobInput = ModelQualityJobInput, ModelQualityJobOutputConfig = ModelQualityJobOutputConfig, JobResources = JobResources, NetworkConfig = NetworkConfig, RoleArn = RoleArn, StoppingCondition = StoppingCondition, Tags = Tags)
  output <- .sagemaker$create_model_quality_job_definition_output()
  config <- get_config()
  svc <- .sagemaker$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.sagemaker$operations$create_model_quality_job_definition <- sagemaker_create_model_quality_job_definition

#' Creates a schedule that regularly starts Amazon SageMaker Processing
#' Jobs to monitor the data captured for an Amazon SageMaker Endoint
#'
#' @description
#' Creates a schedule that regularly starts Amazon SageMaker Processing
#' Jobs to monitor the data captured for an Amazon SageMaker Endoint.
#'
#' @usage
#' sagemaker_create_monitoring_schedule(MonitoringScheduleName,
#'   MonitoringScheduleConfig, Tags)
#'
#' @param MonitoringScheduleName &#91;required&#93; The name of the monitoring schedule. The name must be unique within an
#' AWS Region within an AWS account.
#' @param MonitoringScheduleConfig &#91;required&#93; The configuration object that specifies the monitoring schedule and
#' defines the monitoring job.
#' @param Tags (Optional) An array of key-value pairs. For more information, see Using
#' Cost Allocation Tags in the *AWS Billing and Cost Management User
#' Guide*.
#'
#' @return
#' A list with the following syntax:
#' ```
#' list(
#'   MonitoringScheduleArn = "string"
#' )
#' ```
#'
#' @section Request syntax:
#' ```
#' svc$create_monitoring_schedule(
#'   MonitoringScheduleName = "string",
#'   MonitoringScheduleConfig = list(
#'     ScheduleConfig = list(
#'       ScheduleExpression = "string"
#'     ),
#'     MonitoringJobDefinition = list(
#'       BaselineConfig = list(
#'         BaseliningJobName = "string",
#'         ConstraintsResource = list(
#'           S3Uri = "string"
#'         ),
#'         StatisticsResource = list(
#'           S3Uri = "string"
#'         )
#'       ),
#'       MonitoringInputs = list(
#'         list(
#'           EndpointInput = list(
#'             EndpointName = "string",
#'             LocalPath = "string",
#'             S3InputMode = "Pipe"|"File",
#'             S3DataDistributionType = "FullyReplicated"|"ShardedByS3Key",
#'             FeaturesAttribute = "string",
#'             InferenceAttribute = "string",
#'             ProbabilityAttribute = "string",
#'             ProbabilityThresholdAttribute = 123.0,
#'             StartTimeOffset = "string",
#'             EndTimeOffset = "string"
#'           )
#'         )
#'       ),
#'       MonitoringOutputConfig = list(
#'         MonitoringOutputs = list(
#'           list(
#'             S3Output = list(
#'               S3Uri = "string",
#'               LocalPath = "string",
#'               S3UploadMode = "Continuous"|"EndOfJob"
#'             )
#'           )
#'         ),
#'         KmsKeyId = "string"
#'       ),
#'       MonitoringResources = list(
#'         ClusterConfig = list(
#'           InstanceCount = 123,
#'           InstanceType = "ml.t3.medium"|"ml.t3.large"|"ml.t3.xlarge"|"ml.t3.2xlarge"|"ml.m4.xlarge"|"ml.m4.2xlarge"|"ml.m4.4xlarge"|"ml.m4.10xlarge"|"ml.m4.16xlarge"|"ml.c4.xlarge"|"ml.c4.2xlarge"|"ml.c4.4xlarge"|"ml.c4.8xlarge"|"ml.p2.xlarge"|"ml.p2.8xlarge"|"ml.p2.16xlarge"|"ml.p3.2xlarge"|"ml.p3.8xlarge"|"ml.p3.16xlarge"|"ml.c5.xlarge"|"ml.c5.2xlarge"|"ml.c5.4xlarge"|"ml.c5.9xlarge"|"ml.c5.18xlarge"|"ml.m5.large"|"ml.m5.xlarge"|"ml.m5.2xlarge"|"ml.m5.4xlarge"|"ml.m5.12xlarge"|"ml.m5.24xlarge"|"ml.r5.large"|"ml.r5.xlarge"|"ml.r5.2xlarge"|"ml.r5.4xlarge"|"ml.r5.8xlarge"|"ml.r5.12xlarge"|"ml.r5.16xlarge"|"ml.r5.24xlarge",
#'           VolumeSizeInGB = 123,
#'           VolumeKmsKeyId = "string"
#'         )
#'       ),
#'       MonitoringAppSpecification = list(
#'         ImageUri = "string",
#'         ContainerEntrypoint = list(
#'           "string"
#'         ),
#'         ContainerArguments = list(
#'           "string"
#'         ),
#'         RecordPreprocessorSourceUri = "string",
#'         PostAnalyticsProcessorSourceUri = "string"
#'       ),
#'       StoppingCondition = list(
#'         MaxRuntimeInSeconds = 123
#'       ),
#'       Environment = list(
#'         "string"
#'       ),
#'       NetworkConfig = list(
#'         EnableInterContainerTrafficEncryption = TRUE|FALSE,
#'         EnableNetworkIsolation = TRUE|FALSE,
#'         VpcConfig = list(
#'           SecurityGroupIds = list(
#'             "string"
#'           ),
#'           Subnets = list(
#'             "string"
#'           )
#'         )
#'       ),
#'       RoleArn = "string"
#'     ),
#'     MonitoringJobDefinitionName = "string",
#'     MonitoringType = "DataQuality"|"ModelQuality"|"ModelBias"|"ModelExplainability"
#'   ),
#'   Tags = list(
#'     list(
#'       Key = "string",
#'       Value = "string"
#'     )
#'   )
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname sagemaker_create_monitoring_schedule
sagemaker_create_monitoring_schedule <- function(MonitoringScheduleName, MonitoringScheduleConfig, Tags = NULL) {
  op <- new_operation(
    name = "CreateMonitoringSchedule",
    http_method = "POST",
    http_path = "/",
    paginator = list()
  )
  input <- .sagemaker$create_monitoring_schedule_input(MonitoringScheduleName = MonitoringScheduleName, MonitoringScheduleConfig = MonitoringScheduleConfig, Tags = Tags)
  output <- .sagemaker$create_monitoring_schedule_output()
  config <- get_config()
  svc <- .sagemaker$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.sagemaker$operations$create_monitoring_schedule <- sagemaker_create_monitoring_schedule

#' Creates an Amazon SageMaker notebook instance
#'
#' @description
#' Creates an Amazon SageMaker notebook instance. A notebook instance is a
#' machine learning (ML) compute instance running on a Jupyter notebook.
#' 
#' In a [`create_notebook_instance`][sagemaker_create_notebook_instance]
#' request, specify the type of ML compute instance that you want to run.
#' Amazon SageMaker launches the instance, installs common libraries that
#' you can use to explore datasets for model training, and attaches an ML
#' storage volume to the notebook instance.
#' 
#' Amazon SageMaker also provides a set of example notebooks. Each notebook
#' demonstrates how to use Amazon SageMaker with a specific algorithm or
#' with a machine learning framework.
#' 
#' After receiving the request, Amazon SageMaker does the following:
#' 
#' 1.  Creates a network interface in the Amazon SageMaker VPC.
#' 
#' 2.  (Option) If you specified `SubnetId`, Amazon SageMaker creates a
#'     network interface in your own VPC, which is inferred from the subnet
#'     ID that you provide in the input. When creating this network
#'     interface, Amazon SageMaker attaches the security group that you
#'     specified in the request to the network interface that it creates in
#'     your VPC.
#' 
#' 3.  Launches an EC2 instance of the type specified in the request in the
#'     Amazon SageMaker VPC. If you specified `SubnetId` of your VPC,
#'     Amazon SageMaker specifies both network interfaces when launching
#'     this instance. This enables inbound traffic from your own VPC to the
#'     notebook instance, assuming that the security groups allow it.
#' 
#' After creating the notebook instance, Amazon SageMaker returns its
#' Amazon Resource Name (ARN). You can't change the name of a notebook
#' instance after you create it.
#' 
#' After Amazon SageMaker creates the notebook instance, you can connect to
#' the Jupyter server and work in Jupyter notebooks. For example, you can
#' write code to explore a dataset that you can use for model training,
#' train a model, host models by creating Amazon SageMaker endpoints, and
#' validate hosted models.
#' 
#' For more information, see [How It
#' Works](https://docs.aws.amazon.com/sagemaker/latest/dg/).
#'
#' @usage
#' sagemaker_create_notebook_instance(NotebookInstanceName, InstanceType,
#'   SubnetId, SecurityGroupIds, RoleArn, KmsKeyId, Tags,
#'   LifecycleConfigName, DirectInternetAccess, VolumeSizeInGB,
#'   AcceleratorTypes, DefaultCodeRepository, AdditionalCodeRepositories,
#'   RootAccess)
#'
#' @param NotebookInstanceName &#91;required&#93; The name of the new notebook instance.
#' @param InstanceType &#91;required&#93; The type of ML compute instance to launch for the notebook instance.
#' @param SubnetId The ID of the subnet in a VPC to which you would like to have a
#' connectivity from your ML compute instance.
#' @param SecurityGroupIds The VPC security group IDs, in the form sg-xxxxxxxx. The security groups
#' must be for the same VPC as specified in the subnet.
#' @param RoleArn &#91;required&#93; When you send any requests to AWS resources from the notebook instance,
#' Amazon SageMaker assumes this role to perform tasks on your behalf. You
#' must grant this role necessary permissions so Amazon SageMaker can
#' perform these tasks. The policy must allow the Amazon SageMaker service
#' principal (sagemaker.amazonaws.com) permissions to assume this role. For
#' more information, see [Amazon SageMaker
#' Roles](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html).
#' 
#' To be able to pass this role to Amazon SageMaker, the caller of this API
#' must have the `iam:PassRole` permission.
#' @param KmsKeyId The Amazon Resource Name (ARN) of a AWS Key Management Service key that
#' Amazon 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](https://docs.aws.amazon.com/kms/latest/developerguide/enabling-keys.html)
#' in the *AWS Key Management Service Developer Guide*.
#' @param Tags An array of key-value pairs. You can use tags to categorize your AWS
#' resources in different ways, for example, by purpose, owner, or
#' environment. For more information, see [Tagging AWS
#' Resources](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html).
#' @param LifecycleConfigName 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](https://docs.aws.amazon.com/sagemaker/latest/dg/notebook-lifecycle-config.html).
#' @param DirectInternetAccess Sets whether Amazon SageMaker provides internet access to the notebook
#' instance. If you set this to `Disabled` this notebook instance will be
#' able to access resources only in your VPC, and will not be able to
#' connect to Amazon SageMaker training and endpoint services unless your
#' configure a NAT Gateway in your VPC.
#' 
#' For more information, see [Notebook Instances Are Internet-Enabled by
#' Default](https://docs.aws.amazon.com/sagemaker/latest/dg/notebook-interface-endpoint.html#appendix-notebook-and-internet-access).
#' You can set the value of this parameter to `Disabled` only if you set a
#' value for the `SubnetId` parameter.
#' @param VolumeSizeInGB The size, in GB, of the ML storage volume to attach to the notebook
#' instance. The default value is 5 GB.
#' @param AcceleratorTypes 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](https://docs.aws.amazon.com/sagemaker/latest/dg/ei.html).
#' @param DefaultCodeRepository 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 [AWS
#' CodeCommit](https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html)
#' 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 Amazon SageMaker
#' Notebook
#' Instances](https://docs.aws.amazon.com/sagemaker/latest/dg/nbi-git-repo.html).
#' @param AdditionalCodeRepositories 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 [AWS
#' CodeCommit](https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html)
#' 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 Amazon SageMaker
#' Notebook
#' Instances](https://docs.aws.amazon.com/sagemaker/latest/dg/nbi-git-repo.html).
#' @param RootAccess Whether root access is enabled or disabled for users of the notebook
#' instance. The default value is `Enabled`.
#' 
#' 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.
#'
#' @return
#' A list with the following syntax:
#' ```
#' list(
#'   NotebookInstanceArn = "string"
#' )
#' ```
#'
#' @section Request syntax:
#' ```
#' svc$create_notebook_instance(
#'   NotebookInstanceName = "string",
#'   InstanceType = "ml.t2.medium"|"ml.t2.large"|"ml.t2.xlarge"|"ml.t2.2xlarge"|"ml.t3.medium"|"ml.t3.large"|"ml.t3.xlarge"|"ml.t3.2xlarge"|"ml.m4.xlarge"|"ml.m4.2xlarge"|"ml.m4.4xlarge"|"ml.m4.10xlarge"|"ml.m4.16xlarge"|"ml.m5.xlarge"|"ml.m5.2xlarge"|"ml.m5.4xlarge"|"ml.m5.12xlarge"|"ml.m5.24xlarge"|"ml.c4.xlarge"|"ml.c4.2xlarge"|"ml.c4.4xlarge"|"ml.c4.8xlarge"|"ml.c5.xlarge"|"ml.c5.2xlarge"|"ml.c5.4xlarge"|"ml.c5.9xlarge"|"ml.c5.18xlarge"|"ml.c5d.xlarge"|"ml.c5d.2xlarge"|"ml.c5d.4xlarge"|"ml.c5d.9xlarge"|"ml.c5d.18xlarge"|"ml.p2.xlarge"|"ml.p2.8xlarge"|"ml.p2.16xlarge"|"ml.p3.2xlarge"|"ml.p3.8xlarge"|"ml.p3.16xlarge",
#'   SubnetId = "string",
#'   SecurityGroupIds = list(
#'     "string"
#'   ),
#'   RoleArn = "string",
#'   KmsKeyId = "string",
#'   Tags = list(
#'     list(
#'       Key = "string",
#'       Value = "string"
#'     )
#'   ),
#'   LifecycleConfigName = "string",
#'   DirectInternetAccess = "Enabled"|"Disabled",
#'   VolumeSizeInGB = 123,
#'   AcceleratorTypes = list(
#'     "ml.eia1.medium"|"ml.eia1.large"|"ml.eia1.xlarge"|"ml.eia2.medium"|"ml.eia2.large"|"ml.eia2.xlarge"
#'   ),
#'   DefaultCodeRepository = "string",
#'   AdditionalCodeRepositories = list(
#'     "string"
#'   ),
#'   RootAccess = "Enabled"|"Disabled"
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname sagemaker_create_notebook_instance
sagemaker_create_notebook_instance <- function(NotebookInstanceName, InstanceType, SubnetId = NULL, SecurityGroupIds = NULL, RoleArn, KmsKeyId = NULL, Tags = NULL, LifecycleConfigName = NULL, DirectInternetAccess = NULL, VolumeSizeInGB = NULL, AcceleratorTypes = NULL, DefaultCodeRepository = NULL, AdditionalCodeRepositories = NULL, RootAccess = NULL) {
  op <- new_operation(
    name = "CreateNotebookInstance",
    http_method = "POST",
    http_path = "/",
    paginator = list()
  )
  input <- .sagemaker$create_notebook_instance_input(NotebookInstanceName = NotebookInstanceName, InstanceType = InstanceType, SubnetId = SubnetId, SecurityGroupIds = SecurityGroupIds, RoleArn = RoleArn, KmsKeyId = KmsKeyId, Tags = Tags, LifecycleConfigName = LifecycleConfigName, DirectInternetAccess = DirectInternetAccess, VolumeSizeInGB = VolumeSizeInGB, AcceleratorTypes = AcceleratorTypes, DefaultCodeRepository = DefaultCodeRepository, AdditionalCodeRepositories = AdditionalCodeRepositories, RootAccess = RootAccess)
  output <- .sagemaker$create_notebook_instance_output()
  config <- get_config()
  svc <- .sagemaker$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.sagemaker$operations$create_notebook_instance <- sagemaker_create_notebook_instance

#' Creates a lifecycle configuration that you can associate with a notebook
#' instance
#'
#' @description
#' Creates a lifecycle configuration that you can associate with a notebook
#' instance. A *lifecycle configuration* is a collection of shell scripts
#' that run when you create or start a notebook instance.
#' 
#' 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](https://docs.aws.amazon.com/sagemaker/latest/dg/notebook-lifecycle-config.html).
#'
#' @usage
#' sagemaker_create_notebook_instance_lifecycle_config(
#'   NotebookInstanceLifecycleConfigName, OnCreate, OnStart)
#'
#' @param NotebookInstanceLifecycleConfigName &#91;required&#93; The name of the lifecycle configuration.
#' @param OnCreate A shell script that runs only once, when you create a notebook instance.
#' The shell script must be a base64-encoded string.
#' @param OnStart 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
#' A list with the following syntax:
#' ```
#' list(
#'   NotebookInstanceLifecycleConfigArn = "string"
#' )
#' ```
#'
#' @section Request syntax:
#' ```
#' svc$create_notebook_instance_lifecycle_config(
#'   NotebookInstanceLifecycleConfigName = "string",
#'   OnCreate = list(
#'     list(
#'       Content = "string"
#'     )
#'   ),
#'   OnStart = list(
#'     list(
#'       Content = "string"
#'     )
#'   )
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname sagemaker_create_notebook_instance_lifecycle_config
sagemaker_create_notebook_instance_lifecycle_config <- function(NotebookInstanceLifecycleConfigName, OnCreate = NULL, OnStart = NULL) {
  op <- new_operation(
    name = "CreateNotebookInstanceLifecycleConfig",
    http_method = "POST",
    http_path = "/",
    paginator = list()
  )
  input <- .sagemaker$create_notebook_instance_lifecycle_config_input(NotebookInstanceLifecycleConfigName = NotebookInstanceLifecycleConfigName, OnCreate = OnCreate, OnStart = OnStart)
  output <- .sagemaker$create_notebook_instance_lifecycle_config_output()
  config <- get_config()
  svc <- .sagemaker$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.sagemaker$operations$create_notebook_instance_lifecycle_config <- sagemaker_create_notebook_instance_lifecycle_config

#' Creates a pipeline using a JSON pipeline definition
#'
#' @description
#' Creates a pipeline using a JSON pipeline definition.
#'
#' @usage
#' sagemaker_create_pipeline(PipelineName, PipelineDisplayName,
#'   PipelineDefinition, PipelineDescription, ClientRequestToken, RoleArn,
#'   Tags)
#'
#' @param PipelineName &#91;required&#93; The name of the pipeline.
#' @param PipelineDisplayName The display name of the pipeline.
#' @param PipelineDefinition &#91;required&#93; The JSON pipeline definition of the pipeline.
#' @param PipelineDescription A description of the pipeline.
#' @param ClientRequestToken &#91;required&#93; A unique, case-sensitive identifier that you provide to ensure the
#' idempotency of the operation. An idempotent operation completes no more
#' than one time.
#' @param RoleArn &#91;required&#93; The Amazon Resource Name (ARN) of the role used by the pipeline to
#' access and create resources.
#' @param Tags A list of tags to apply to the created pipeline.
#'
#' @return
#' A list with the following syntax:
#' ```
#' list(
#'   PipelineArn = "string"
#' )
#' ```
#'
#' @section Request syntax:
#' ```
#' svc$create_pipeline(
#'   PipelineName = "string",
#'   PipelineDisplayName = "string",
#'   PipelineDefinition = "string",
#'   PipelineDescription = "string",
#'   ClientRequestToken = "string",
#'   RoleArn = "string",
#'   Tags = list(
#'     list(
#'       Key = "string",
#'       Value = "string"
#'     )
#'   )
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname sagemaker_create_pipeline
sagemaker_create_pipeline <- function(PipelineName, PipelineDisplayName = NULL, PipelineDefinition, PipelineDescription = NULL, ClientRequestToken, RoleArn, Tags = NULL) {
  op <- new_operation(
    name = "CreatePipeline",
    http_method = "POST",
    http_path = "/",
    paginator = list()
  )
  input <- .sagemaker$create_pipeline_input(PipelineName = PipelineName, PipelineDisplayName = PipelineDisplayName, PipelineDefinition = PipelineDefinition, PipelineDescription = PipelineDescription, ClientRequestToken = ClientRequestToken, RoleArn = RoleArn, Tags = Tags)
  output <- .sagemaker$create_pipeline_output()
  config <- get_config()
  svc <- .sagemaker$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.sagemaker$operations$create_pipeline <- sagemaker_create_pipeline

#' Creates a URL for a specified UserProfile in a Domain
#'
#' @description
#' Creates a URL for a specified UserProfile in a Domain. When accessed in
#' a web browser, the user will be automatically signed in to Amazon
#' SageMaker Studio, and granted access to all of the Apps and files
#' associated with the Domain's Amazon Elastic File System (EFS) volume.
#' This operation can only be called when the authentication mode equals
#' IAM.
#' 
#' The URL that you get from a call to
#' [`create_presigned_domain_url`][sagemaker_create_presigned_domain_url]
#' is valid only for 5 minutes. If you try to use the URL after the
#' 5-minute limit expires, you are directed to the AWS console sign-in
#' page.
#'
#' @usage
#' sagemaker_create_presigned_domain_url(DomainId, UserProfileName,
#'   SessionExpirationDurationInSeconds)
#'
#' @param DomainId &#91;required&#93; The domain ID.
#' @param UserProfileName &#91;required&#93; The name of the UserProfile to sign-in as.
#' @param SessionExpirationDurationInSeconds The session expiration duration in seconds.
#'
#' @return
#' A list with the following syntax:
#' ```
#' list(
#'   AuthorizedUrl = "string"
#' )
#' ```
#'
#' @section Request syntax:
#' ```
#' svc$create_presigned_domain_url(
#'   DomainId = "string",
#'   UserProfileName = "string",
#'   SessionExpirationDurationInSeconds = 123
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname sagemaker_create_presigned_domain_url
sagemaker_create_presigned_domain_url <- function(DomainId, UserProfileName, SessionExpirationDurationInSeconds = NULL) {
  op <- new_operation(
    name = "CreatePresignedDomainUrl",
    http_method = "POST",
    http_path = "/",
    paginator = list()
  )
  input <- .sagemaker$create_presigned_domain_url_input(DomainId = DomainId, UserProfileName = UserProfileName, SessionExpirationDurationInSeconds = SessionExpirationDurationInSeconds)
  output <- .sagemaker$create_presigned_domain_url_output()
  config <- get_config()
  svc <- .sagemaker$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.sagemaker$operations$create_presigned_domain_url <- sagemaker_create_presigned_domain_url

#' Returns a URL that you can use to connect to the Jupyter server from a
#' notebook instance
#'
#' @description
#' Returns a URL that you can use to connect to the Jupyter server from a
#' notebook instance. In the Amazon SageMaker console, when you choose
#' `Open` next to a notebook instance, Amazon SageMaker opens a new tab
#' showing the Jupyter server home page from the notebook instance. The
#' console uses this API to get the URL and show the page.
#' 
#' The IAM role or user used to call this API defines the permissions to
#' access the notebook instance. Once the presigned URL is created, no
#' additional permission is required to access this URL. IAM authorization
#' policies for this API are also enforced for every HTTP request and
#' WebSocket frame that attempts to connect to the notebook instance.
#' 
#' You can restrict access to this API and to the URL that it returns to a
#' list of IP addresses that you specify. Use the `NotIpAddress` condition
#' operator and the `aws:SourceIP` condition context key to specify the
#' list of IP addresses that you want to have access to the notebook
#' instance. For more information, see [Limit Access to a Notebook Instance
#' by IP
#' Address](https://docs.aws.amazon.com/sagemaker/latest/dg/security_iam_id-based-policy-examples.html#nbi-ip-filter).
#' 
#' The URL that you get from a call to
#' [`create_presigned_notebook_instance_url`][sagemaker_create_presigned_notebook_instance_url]
#' is valid only for 5 minutes. If you try to use the URL after the
#' 5-minute limit expires, you are directed to the AWS console sign-in
#' page.
#'
#' @usage
#' sagemaker_create_presigned_notebook_instance_url(NotebookInstanceName,
#'   SessionExpirationDurationInSeconds)
#'
#' @param NotebookInstanceName &#91;required&#93; The name of the notebook instance.
#' @param SessionExpirationDurationInSeconds The duration of the session, in seconds. The default is 12 hours.
#'
#' @return
#' A list with the following syntax:
#' ```
#' list(
#'   AuthorizedUrl = "string"
#' )
#' ```
#'
#' @section Request syntax:
#' ```
#' svc$create_presigned_notebook_instance_url(
#'   NotebookInstanceName = "string",
#'   SessionExpirationDurationInSeconds = 123
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname sagemaker_create_presigned_notebook_instance_url
sagemaker_create_presigned_notebook_instance_url <- function(NotebookInstanceName, SessionExpirationDurationInSeconds = NULL) {
  op <- new_operation(
    name = "CreatePresignedNotebookInstanceUrl",
    http_method = "POST",
    http_path = "/",
    paginator = list()
  )
  input <- .sagemaker$create_presigned_notebook_instance_url_input(NotebookInstanceName = NotebookInstanceName, SessionExpirationDurationInSeconds = SessionExpirationDurationInSeconds)
  output <- .sagemaker$create_presigned_notebook_instance_url_output()
  config <- get_config()
  svc <- .sagemaker$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.sagemaker$operations$create_presigned_notebook_instance_url <- sagemaker_create_presigned_notebook_instance_url

#' Creates a processing job
#'
#' @description
#' Creates a processing job.
#'
#' @usage
#' sagemaker_create_processing_job(ProcessingInputs,
#'   ProcessingOutputConfig, ProcessingJobName, ProcessingResources,
#'   StoppingCondition, AppSpecification, Environment, NetworkConfig,
#'   RoleArn, Tags, ExperimentConfig)
#'
#' @param ProcessingInputs List of input configurations for the processing job.
#' @param ProcessingOutputConfig Output configuration for the processing job.
#' @param ProcessingJobName &#91;required&#93; The name of the processing job. The name must be unique within an AWS
#' Region in the AWS account.
#' @param ProcessingResources &#91;required&#93; 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.
#' @param StoppingCondition The time limit for how long the processing job is allowed to run.
#' @param AppSpecification &#91;required&#93; Configures the processing job to run a specified Docker container image.
#' @param Environment Sets the environment variables in the Docker container.
#' @param NetworkConfig Networking options for a processing job.
#' @param RoleArn &#91;required&#93; The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker can
#' assume to perform tasks on your behalf.
#' @param 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 *AWS Billing and Cost Management User Guide*.
#' @param ExperimentConfig 
#'
#' @return
#' A list with the following syntax:
#' ```
#' list(
#'   ProcessingJobArn = "string"
#' )
#' ```
#'
#' @section Request syntax:
#' ```
#' svc$create_processing_job(
#'   ProcessingInputs = list(
#'     list(
#'       InputName = "string",
#'       AppManaged = TRUE|FALSE,
#'       S3Input = list(
#'         S3Uri = "string",
#'         LocalPath = "string",
#'         S3DataType = "ManifestFile"|"S3Prefix",
#'         S3InputMode = "Pipe"|"File",
#'         S3DataDistributionType = "FullyReplicated"|"ShardedByS3Key",
#'         S3CompressionType = "None"|"Gzip"
#'       ),
#'       DatasetDefinition = list(
#'         AthenaDatasetDefinition = list(
#'           Catalog = "string",
#'           Database = "string",
#'           QueryString = "string",
#'           WorkGroup = "string",
#'           OutputS3Uri = "string",
#'           KmsKeyId = "string",
#'           OutputFormat = "PARQUET"|"ORC"|"AVRO"|"JSON"|"TEXTFILE",
#'           OutputCompression = "GZIP"|"SNAPPY"|"ZLIB"
#'         ),
#'         RedshiftDatasetDefinition = list(
#'           ClusterId = "string",
#'           Database = "string",
#'           DbUser = "string",
#'           QueryString = "string",
#'           ClusterRoleArn = "string",
#'           OutputS3Uri = "string",
#'           KmsKeyId = "string",
#'           OutputFormat = "PARQUET"|"CSV",
#'           OutputCompression = "None"|"GZIP"|"BZIP2"|"ZSTD"|"SNAPPY"
#'         ),
#'         LocalPath = "string",
#'         DataDistributionType = "FullyReplicated"|"ShardedByS3Key",
#'         InputMode = "Pipe"|"File"
#'       )
#'     )
#'   ),
#'   ProcessingOutputConfig = list(
#'     Outputs = list(
#'       list(
#'         OutputName = "string",
#'         S3Output = list(
#'           S3Uri = "string",
#'           LocalPath = "string",
#'           S3UploadMode = "Continuous"|"EndOfJob"
#'         ),
#'         FeatureStoreOutput = list(
#'           FeatureGroupName = "string"
#'         ),
#'         AppManaged = TRUE|FALSE
#'       )
#'     ),
#'     KmsKeyId = "string"
#'   ),
#'   ProcessingJobName = "string",
#'   ProcessingResources = list(
#'     ClusterConfig = list(
#'       InstanceCount = 123,
#'       InstanceType = "ml.t3.medium"|"ml.t3.large"|"ml.t3.xlarge"|"ml.t3.2xlarge"|"ml.m4.xlarge"|"ml.m4.2xlarge"|"ml.m4.4xlarge"|"ml.m4.10xlarge"|"ml.m4.16xlarge"|"ml.c4.xlarge"|"ml.c4.2xlarge"|"ml.c4.4xlarge"|"ml.c4.8xlarge"|"ml.p2.xlarge"|"ml.p2.8xlarge"|"ml.p2.16xlarge"|"ml.p3.2xlarge"|"ml.p3.8xlarge"|"ml.p3.16xlarge"|"ml.c5.xlarge"|"ml.c5.2xlarge"|"ml.c5.4xlarge"|"ml.c5.9xlarge"|"ml.c5.18xlarge"|"ml.m5.large"|"ml.m5.xlarge"|"ml.m5.2xlarge"|"ml.m5.4xlarge"|"ml.m5.12xlarge"|"ml.m5.24xlarge"|"ml.r5.large"|"ml.r5.xlarge"|"ml.r5.2xlarge"|"ml.r5.4xlarge"|"ml.r5.8xlarge"|"ml.r5.12xlarge"|"ml.r5.16xlarge"|"ml.r5.24xlarge",
#'       VolumeSizeInGB = 123,
#'       VolumeKmsKeyId = "string"
#'     )
#'   ),
#'   StoppingCondition = list(
#'     MaxRuntimeInSeconds = 123
#'   ),
#'   AppSpecification = list(
#'     ImageUri = "string",
#'     ContainerEntrypoint = list(
#'       "string"
#'     ),
#'     ContainerArguments = list(
#'       "string"
#'     )
#'   ),
#'   Environment = list(
#'     "string"
#'   ),
#'   NetworkConfig = list(
#'     EnableInterContainerTrafficEncryption = TRUE|FALSE,
#'     EnableNetworkIsolation = TRUE|FALSE,
#'     VpcConfig = list(
#'       SecurityGroupIds = list(
#'         "string"
#'       ),
#'       Subnets = list(
#'         "string"
#'       )
#'     )
#'   ),
#'   RoleArn = "string",
#'   Tags = list(
#'     list(
#'       Key = "string",
#'       Value = "string"
#'     )
#'   ),
#'   ExperimentConfig = list(
#'     ExperimentName = "string",
#'     TrialName = "string",
#'     TrialComponentDisplayName = "string"
#'   )
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname sagemaker_create_processing_job
sagemaker_create_processing_job <- function(ProcessingInputs = NULL, ProcessingOutputConfig = NULL, ProcessingJobName, ProcessingResources, StoppingCondition = NULL, AppSpecification, Environment = NULL, NetworkConfig = NULL, RoleArn, Tags = NULL, ExperimentConfig = NULL) {
  op <- new_operation(
    name = "CreateProcessingJob",
    http_method = "POST",
    http_path = "/",
    paginator = list()
  )
  input <- .sagemaker$create_processing_job_input(ProcessingInputs = ProcessingInputs, ProcessingOutputConfig = ProcessingOutputConfig, ProcessingJobName = ProcessingJobName, ProcessingResources = ProcessingResources, StoppingCondition = StoppingCondition, AppSpecification = AppSpecification, Environment = Environment, NetworkConfig = NetworkConfig, RoleArn = RoleArn, Tags = Tags, ExperimentConfig = ExperimentConfig)
  output <- .sagemaker$create_processing_job_output()
  config <- get_config()
  svc <- .sagemaker$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.sagemaker$operations$create_processing_job <- sagemaker_create_processing_job

#' Creates a machine learning (ML) project that can contain one or more
#' templates that set up an ML pipeline from training to deploying an
#' approved model
#'
#' @description
#' Creates a machine learning (ML) project that can contain one or more
#' templates that set up an ML pipeline from training to deploying an
#' approved model.
#'
#' @usage
#' sagemaker_create_project(ProjectName, ProjectDescription,
#'   ServiceCatalogProvisioningDetails, Tags)
#'
#' @param ProjectName &#91;required&#93; The name of the project.
#' @param ProjectDescription A description for the project.
#' @param ServiceCatalogProvisioningDetails &#91;required&#93; The product ID and provisioning artifact ID to provision a service
#' catalog. For information, see [What is AWS Service
#' Catalog](https://docs.aws.amazon.com/servicecatalog/latest/adminguide/introduction.html).
#' @param Tags An array of key-value pairs that you want to use to organize and track
#' your AWS resource costs. For more information, see [Tagging AWS
#' resources](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html)
#' in the *AWS General Reference Guide*.
#'
#' @return
#' A list with the following syntax:
#' ```
#' list(
#'   ProjectArn = "string",
#'   ProjectId = "string"
#' )
#' ```
#'
#' @section Request syntax:
#' ```
#' svc$create_project(
#'   ProjectName = "string",
#'   ProjectDescription = "string",
#'   ServiceCatalogProvisioningDetails = list(
#'     ProductId = "string",
#'     ProvisioningArtifactId = "string",
#'     PathId = "string",
#'     ProvisioningParameters = list(
#'       list(
#'         Key = "string",
#'         Value = "string"
#'       )
#'     )
#'   ),
#'   Tags = list(
#'     list(
#'       Key = "string",
#'       Value = "string"
#'     )
#'   )
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname sagemaker_create_project
sagemaker_create_project <- function(ProjectName, ProjectDescription = NULL, ServiceCatalogProvisioningDetails, Tags = NULL) {
  op <- new_operation(
    name = "CreateProject",
    http_method = "POST",
    http_path = "/",
    paginator = list()
  )
  input <- .sagemaker$create_project_input(ProjectName = ProjectName, ProjectDescription = ProjectDescription, ServiceCatalogProvisioningDetails = ServiceCatalogProvisioningDetails, Tags = Tags)
  output <- .sagemaker$create_project_output()
  config <- get_config()
  svc <- .sagemaker$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.sagemaker$operations$create_project <- sagemaker_create_project

#' Starts a model training job
#'
#' @description
#' Starts a model training job. After training completes, Amazon SageMaker
#' saves the resulting model artifacts to an Amazon S3 location that you
#' specify.
#' 
#' If you choose to host your model using Amazon SageMaker hosting
#' services, you can use the resulting model artifacts as part of the
#' model. You can also use the artifacts in a machine learning service
#' other than Amazon SageMaker, provided that you know how to use them for
#' inference.
#' 
#' In the request body, you provide the following:
#' 
#' -   `AlgorithmSpecification` - Identifies the training algorithm to use.
#' 
#' -   `HyperParameters` - Specify these algorithm-specific parameters to
#'     enable the estimation of model parameters during training.
#'     Hyperparameters can be tuned to optimize this learning process. For
#'     a list of hyperparameters for each training algorithm provided by
#'     Amazon SageMaker, see
#'     [Algorithms](https://docs.aws.amazon.com/sagemaker/latest/dg/algos.html).
#' 
#' -   `InputDataConfig` - Describes the training dataset and the Amazon
#'     S3, EFS, or FSx location where it is stored.
#' 
#' -   `OutputDataConfig` - Identifies the Amazon S3 bucket where you want
#'     Amazon SageMaker to save the results of model training.
#' 
#' -   `ResourceConfig` - Identifies the resources, ML compute instances,
#'     and ML storage volumes to deploy for model training. In distributed
#'     training, you specify more than one instance.
#' 
#' -   `EnableManagedSpotTraining` - Optimize the cost of training machine
#'     learning models by up to 80% by using Amazon EC2 Spot instances. For
#'     more information, see [Managed Spot
#'     Training](https://docs.aws.amazon.com/sagemaker/latest/dg/model-managed-spot-training.html).
#' 
#' -   `RoleArn` - The Amazon Resource Number (ARN) that Amazon SageMaker
#'     assumes to perform tasks on your behalf during model training. You
#'     must grant this role the necessary permissions so that Amazon
#'     SageMaker can successfully complete model training.
#' 
#' -   `StoppingCondition` - To help cap training costs, use
#'     `MaxRuntimeInSeconds` to set a time limit for training. Use
#'     `MaxWaitTimeInSeconds` to specify how long you are willing to wait
#'     for a managed spot training job to complete.
#' 
#' For more information about Amazon SageMaker, see [How It
#' Works](https://docs.aws.amazon.com/sagemaker/latest/dg/).
#'
#' @usage
#' sagemaker_create_training_job(TrainingJobName, HyperParameters,
#'   AlgorithmSpecification, RoleArn, InputDataConfig, OutputDataConfig,
#'   ResourceConfig, VpcConfig, StoppingCondition, Tags,
#'   EnableNetworkIsolation, EnableInterContainerTrafficEncryption,
#'   EnableManagedSpotTraining, CheckpointConfig, DebugHookConfig,
#'   DebugRuleConfigurations, TensorBoardOutputConfig, ExperimentConfig,
#'   ProfilerConfig, ProfilerRuleConfigurations)
#'
#' @param TrainingJobName &#91;required&#93; The name of the training job. The name must be unique within an AWS
#' Region in an AWS account.
#' @param HyperParameters 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 Amazon
#' SageMaker, see
#' [Algorithms](https://docs.aws.amazon.com/sagemaker/latest/dg/algos.html).
#' 
#' 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`.
#' @param AlgorithmSpecification &#91;required&#93; 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 Amazon SageMaker, see
#' [Algorithms](https://docs.aws.amazon.com/sagemaker/latest/dg/algos.html).
#' For information about providing your own algorithms, see [Using Your Own
#' Algorithms with Amazon
#' SageMaker](https://docs.aws.amazon.com/sagemaker/latest/dg/docker-containers.html).
#' @param RoleArn &#91;required&#93; The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker can
#' assume to perform tasks on your behalf.
#' 
#' During model training, Amazon 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 [Amazon SageMaker
#' Roles](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html).
#' 
#' To be able to pass this role to Amazon SageMaker, the caller of this API
#' must have the `iam:PassRole` permission.
#' @param InputDataConfig 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, Amazon
#' 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
#' will be made available as input streams. They do not need to be
#' downloaded.
#' @param OutputDataConfig &#91;required&#93; Specifies the path to the S3 location where you want to store model
#' artifacts. Amazon SageMaker creates subfolders for the artifacts.
#' @param ResourceConfig &#91;required&#93; 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 Amazon 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.
#' @param VpcConfig A VpcConfig 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](https://docs.aws.amazon.com/sagemaker/latest/dg/train-vpc.html).
#' @param StoppingCondition &#91;required&#93; Specifies a limit to how long a model training job can run. When the job
#' reaches the time limit, Amazon SageMaker ends the training job. Use this
#' API to cap model training costs.
#' 
#' To stop a job, Amazon 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.
#' @param Tags An array of key-value pairs. You can use tags to categorize your AWS
#' resources in different ways, for example, by purpose, owner, or
#' environment. For more information, see [Tagging AWS
#' Resources](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html).
#' @param EnableNetworkIsolation 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, Amazon SageMaker downloads and
#' uploads customer data and model artifacts through the specified VPC, but
#' the training container does not have network access.
#' @param EnableInterContainerTrafficEncryption 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](https://docs.aws.amazon.com/sagemaker/latest/dg/train-encrypt.html).
#' @param EnableManagedSpotTraining 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.
#' @param CheckpointConfig Contains information about the output location for managed spot training
#' checkpoint data.
#' @param DebugHookConfig 
#' @param DebugRuleConfigurations Configuration information for Debugger rules for debugging output
#' tensors.
#' @param TensorBoardOutputConfig 
#' @param ExperimentConfig 
#' @param ProfilerConfig 
#' @param ProfilerRuleConfigurations Configuration information for Debugger rules for profiling system and
#' framework metrics.
#'
#' @return
#' A list with the following syntax:
#' ```
#' list(
#'   TrainingJobArn = "string"
#' )
#' ```
#'
#' @section Request syntax:
#' ```
#' svc$create_training_job(
#'   TrainingJobName = "string",
#'   HyperParameters = list(
#'     "string"
#'   ),
#'   AlgorithmSpecification = list(
#'     TrainingImage = "string",
#'     AlgorithmName = "string",
#'     TrainingInputMode = "Pipe"|"File",
#'     MetricDefinitions = list(
#'       list(
#'         Name = "string",
#'         Regex = "string"
#'       )
#'     ),
#'     EnableSageMakerMetricsTimeSeries = TRUE|FALSE
#'   ),
#'   RoleArn = "string",
#'   InputDataConfig = list(
#'     list(
#'       ChannelName = "string",
#'       DataSource = list(
#'         S3DataSource = list(
#'           S3DataType = "ManifestFile"|"S3Prefix"|"AugmentedManifestFile",
#'           S3Uri = "string",
#'           S3DataDistributionType = "FullyReplicated"|"ShardedByS3Key",
#'           AttributeNames = list(
#'             "string"
#'           )
#'         ),
#'         FileSystemDataSource = list(
#'           FileSystemId = "string",
#'           FileSystemAccessMode = "rw"|"ro",
#'           FileSystemType = "EFS"|"FSxLustre",
#'           DirectoryPath = "string"
#'         )
#'       ),
#'       ContentType = "string",
#'       CompressionType = "None"|"Gzip",
#'       RecordWrapperType = "None"|"RecordIO",
#'       InputMode = "Pipe"|"File",
#'       ShuffleConfig = list(
#'         Seed = 123
#'       )
#'     )
#'   ),
#'   OutputDataConfig = list(
#'     KmsKeyId = "string",
#'     S3OutputPath = "string"
#'   ),
#'   ResourceConfig = list(
#'     InstanceType = "ml.m4.xlarge"|"ml.m4.2xlarge"|"ml.m4.4xlarge"|"ml.m4.10xlarge"|"ml.m4.16xlarge"|"ml.g4dn.xlarge"|"ml.g4dn.2xlarge"|"ml.g4dn.4xlarge"|"ml.g4dn.8xlarge"|"ml.g4dn.12xlarge"|"ml.g4dn.16xlarge"|"ml.m5.large"|"ml.m5.xlarge"|"ml.m5.2xlarge"|"ml.m5.4xlarge"|"ml.m5.12xlarge"|"ml.m5.24xlarge"|"ml.c4.xlarge"|"ml.c4.2xlarge"|"ml.c4.4xlarge"|"ml.c4.8xlarge"|"ml.p2.xlarge"|"ml.p2.8xlarge"|"ml.p2.16xlarge"|"ml.p3.2xlarge"|"ml.p3.8xlarge"|"ml.p3.16xlarge"|"ml.p3dn.24xlarge"|"ml.p4d.24xlarge"|"ml.c5.xlarge"|"ml.c5.2xlarge"|"ml.c5.4xlarge"|"ml.c5.9xlarge"|"ml.c5.18xlarge"|"ml.c5n.xlarge"|"ml.c5n.2xlarge"|"ml.c5n.4xlarge"|"ml.c5n.9xlarge"|"ml.c5n.18xlarge",
#'     InstanceCount = 123,
#'     VolumeSizeInGB = 123,
#'     VolumeKmsKeyId = "string"
#'   ),
#'   VpcConfig = list(
#'     SecurityGroupIds = list(
#'       "string"
#'     ),
#'     Subnets = list(
#'       "string"
#'     )
#'   ),
#'   StoppingCondition = list(
#'     MaxRuntimeInSeconds = 123,
#'     MaxWaitTimeInSeconds = 123
#'   ),
#'   Tags = list(
#'     list(
#'       Key = "string",
#'       Value = "string"
#'     )
#'   ),
#'   EnableNetworkIsolation = TRUE|FALSE,
#'   EnableInterContainerTrafficEncryption = TRUE|FALSE,
#'   EnableManagedSpotTraining = TRUE|FALSE,
#'   CheckpointConfig = list(
#'     S3Uri = "string",
#'     LocalPath = "string"
#'   ),
#'   DebugHookConfig = list(
#'     LocalPath = "string",
#'     S3OutputPath = "string",
#'     HookParameters = list(
#'       "string"
#'     ),
#'     CollectionConfigurations = list(
#'       list(
#'         CollectionName = "string",
#'         CollectionParameters = list(
#'           "string"
#'         )
#'       )
#'     )
#'   ),
#'   DebugRuleConfigurations = list(
#'     list(
#'       RuleConfigurationName = "string",
#'       LocalPath = "string",
#'       S3OutputPath = "string",
#'       RuleEvaluatorImage = "string",
#'       InstanceType = "ml.t3.medium"|"ml.t3.large"|"ml.t3.xlarge"|"ml.t3.2xlarge"|"ml.m4.xlarge"|"ml.m4.2xlarge"|"ml.m4.4xlarge"|"ml.m4.10xlarge"|"ml.m4.16xlarge"|"ml.c4.xlarge"|"ml.c4.2xlarge"|"ml.c4.4xlarge"|"ml.c4.8xlarge"|"ml.p2.xlarge"|"ml.p2.8xlarge"|"ml.p2.16xlarge"|"ml.p3.2xlarge"|"ml.p3.8xlarge"|"ml.p3.16xlarge"|"ml.c5.xlarge"|"ml.c5.2xlarge"|"ml.c5.4xlarge"|"ml.c5.9xlarge"|"ml.c5.18xlarge"|"ml.m5.large"|"ml.m5.xlarge"|"ml.m5.2xlarge"|"ml.m5.4xlarge"|"ml.m5.12xlarge"|"ml.m5.24xlarge"|"ml.r5.large"|"ml.r5.xlarge"|"ml.r5.2xlarge"|"ml.r5.4xlarge"|"ml.r5.8xlarge"|"ml.r5.12xlarge"|"ml.r5.16xlarge"|"ml.r5.24xlarge",
#'       VolumeSizeInGB = 123,
#'       RuleParameters = list(
#'         "string"
#'       )
#'     )
#'   ),
#'   TensorBoardOutputConfig = list(
#'     LocalPath = "string",
#'     S3OutputPath = "string"
#'   ),
#'   ExperimentConfig = list(
#'     ExperimentName = "string",
#'     TrialName = "string",
#'     TrialComponentDisplayName = "string"
#'   ),
#'   ProfilerConfig = list(
#'     S3OutputPath = "string",
#'     ProfilingIntervalInMilliseconds = 123,
#'     ProfilingParameters = list(
#'       "string"
#'     )
#'   ),
#'   ProfilerRuleConfigurations = list(
#'     list(
#'       RuleConfigurationName = "string",
#'       LocalPath = "string",
#'       S3OutputPath = "string",
#'       RuleEvaluatorImage = "string",
#'       InstanceType = "ml.t3.medium"|"ml.t3.large"|"ml.t3.xlarge"|"ml.t3.2xlarge"|"ml.m4.xlarge"|"ml.m4.2xlarge"|"ml.m4.4xlarge"|"ml.m4.10xlarge"|"ml.m4.16xlarge"|"ml.c4.xlarge"|"ml.c4.2xlarge"|"ml.c4.4xlarge"|"ml.c4.8xlarge"|"ml.p2.xlarge"|"ml.p2.8xlarge"|"ml.p2.16xlarge"|"ml.p3.2xlarge"|"ml.p3.8xlarge"|"ml.p3.16xlarge"|"ml.c5.xlarge"|"ml.c5.2xlarge"|"ml.c5.4xlarge"|"ml.c5.9xlarge"|"ml.c5.18xlarge"|"ml.m5.large"|"ml.m5.xlarge"|"ml.m5.2xlarge"|"ml.m5.4xlarge"|"ml.m5.12xlarge"|"ml.m5.24xlarge"|"ml.r5.large"|"ml.r5.xlarge"|"ml.r5.2xlarge"|"ml.r5.4xlarge"|"ml.r5.8xlarge"|"ml.r5.12xlarge"|"ml.r5.16xlarge"|"ml.r5.24xlarge",
#'       VolumeSizeInGB = 123,
#'       RuleParameters = list(
#'         "string"
#'       )
#'     )
#'   )
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname sagemaker_create_training_job
sagemaker_create_training_job <- function(TrainingJobName, HyperParameters = NULL, AlgorithmSpecification, RoleArn, InputDataConfig = NULL, OutputDataConfig, ResourceConfig, VpcConfig = NULL, StoppingCondition, Tags = NULL, EnableNetworkIsolation = NULL, EnableInterContainerTrafficEncryption = NULL, EnableManagedSpotTraining = NULL, CheckpointConfig = NULL, DebugHookConfig = NULL, DebugRuleConfigurations = NULL, TensorBoardOutputConfig = NULL, ExperimentConfig = NULL, ProfilerConfig = NULL, ProfilerRuleConfigurations = NULL) {
  op <- new_operation(
    name = "CreateTrainingJob",
    http_method = "POST",
    http_path = "/",
    paginator = list()
  )
  input <- .sagemaker$create_training_job_input(TrainingJobName = TrainingJobName, HyperParameters = HyperParameters, AlgorithmSpecification = AlgorithmSpecification, RoleArn = RoleArn, InputDataConfig = InputDataConfig, OutputDataConfig = OutputDataConfig, ResourceConfig = ResourceConfig, VpcConfig = VpcConfig, StoppingCondition = StoppingCondition, Tags = Tags, EnableNetworkIsolation = EnableNetworkIsolation, EnableInterContainerTrafficEncryption = EnableInterContainerTrafficEncryption, EnableManagedSpotTraining = EnableManagedSpotTraining, CheckpointConfig = CheckpointConfig, DebugHookConfig = DebugHookConfig, DebugRuleConfigurations = DebugRuleConfigurations, TensorBoardOutputConfig = TensorBoardOutputConfig, ExperimentConfig = ExperimentConfig, ProfilerConfig = ProfilerConfig, ProfilerRuleConfigurations = ProfilerRuleConfigurations)
  output <- .sagemaker$create_training_job_output()
  config <- get_config()
  svc <- .sagemaker$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.sagemaker$operations$create_training_job <- sagemaker_create_training_job

#' Starts a transform job
#'
#' @description
#' Starts a transform job. A transform job uses a trained model to get
#' inferences on a dataset and saves these results to an Amazon S3 location
#' that you specify.
#' 
#' To perform batch transformations, you create a transform job and use the
#' data that you have readily available.
#' 
#' In the request body, you provide the following:
#' 
#' -   `TransformJobName` - Identifies the transform job. The name must be
#'     unique within an AWS Region in an AWS account.
#' 
#' -   `ModelName` - Identifies the model to use. `ModelName` must be the
#'     name of an existing Amazon SageMaker model in the same AWS Region
#'     and AWS account. For information on creating a model, see
#'     [`create_model`][sagemaker_create_model].
#' 
#' -   `TransformInput` - Describes the dataset to be transformed and the
#'     Amazon S3 location where it is stored.
#' 
#' -   `TransformOutput` - Identifies the Amazon S3 location where you want
#'     Amazon SageMaker to save the results from the transform job.
#' 
#' -   `TransformResources` - Identifies the ML compute instances for the
#'     transform job.
#' 
#' For more information about how batch transformation works, see [Batch
#' Transform](https://docs.aws.amazon.com/sagemaker/latest/dg/batch-transform.html).
#'
#' @usage
#' sagemaker_create_transform_job(TransformJobName, ModelName,
#'   MaxConcurrentTransforms, ModelClientConfig, MaxPayloadInMB,
#'   BatchStrategy, Environment, TransformInput, TransformOutput,
#'   TransformResources, DataProcessing, Tags, ExperimentConfig)
#'
#' @param TransformJobName &#91;required&#93; The name of the transform job. The name must be unique within an AWS
#' Region in an AWS account.
#' @param ModelName &#91;required&#93; 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 AWS Region in an AWS account.
#' @param MaxConcurrentTransforms 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](https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms-batch-code.html#your-algorithms-batch-code-how-containe-serves-requests).
#' For built-in algorithms, you don't need to set a value for
#' `MaxConcurrentTransforms`.
#' @param ModelClientConfig Configures the timeout and maximum number of retries for processing a
#' transform job invocation.
#' @param MaxPayloadInMB 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, Amazon SageMaker
#' built-in algorithms do not support HTTP chunked encoding.
#' @param BatchStrategy 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`.
#' @param Environment The environment variables to set in the Docker container. We support up
#' to 16 key and values entries in the map.
#' @param TransformInput &#91;required&#93; Describes the input source and the way the transform job consumes it.
#' @param TransformOutput &#91;required&#93; Describes the results of the transform job.
#' @param TransformResources &#91;required&#93; Describes the resources, including ML instance types and ML instance
#' count, to use for the transform job.
#' @param DataProcessing 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](https://docs.aws.amazon.com/sagemaker/latest/dg/batch-transform-data-processing.html).
#' @param 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-what)
#' in the *AWS Billing and Cost Management User Guide*.
#' @param ExperimentConfig 
#'
#' @return
#' A list with the following syntax:
#' ```
#' list(
#'   TransformJobArn = "string"
#' )
#' ```
#'
#' @section Request syntax:
#' ```
#' svc$create_transform_job(
#'   TransformJobName = "string",
#'   ModelName = "string",
#'   MaxConcurrentTransforms = 123,
#'   ModelClientConfig = list(
#'     InvocationsTimeoutInSeconds = 123,
#'     InvocationsMaxRetries = 123
#'   ),
#'   MaxPayloadInMB = 123,
#'   BatchStrategy = "MultiRecord"|"SingleRecord",
#'   Environment = list(
#'     "string"
#'   ),
#'   TransformInput = list(
#'     DataSource = list(
#'       S3DataSource = list(
#'         S3DataType = "ManifestFile"|"S3Prefix"|"AugmentedManifestFile",
#'         S3Uri = "string"
#'       )
#'     ),
#'     ContentType = "string",
#'     CompressionType = "None"|"Gzip",
#'     SplitType = "None"|"Line"|"RecordIO"|"TFRecord"
#'   ),
#'   TransformOutput = list(
#'     S3OutputPath = "string",
#'     Accept = "string",
#'     AssembleWith = "None"|"Line",
#'     KmsKeyId = "string"
#'   ),
#'   TransformResources = list(
#'     InstanceType = "ml.m4.xlarge"|"ml.m4.2xlarge"|"ml.m4.4xlarge"|"ml.m4.10xlarge"|"ml.m4.16xlarge"|"ml.c4.xlarge"|"ml.c4.2xlarge"|"ml.c4.4xlarge"|"ml.c4.8xlarge"|"ml.p2.xlarge"|"ml.p2.8xlarge"|"ml.p2.16xlarge"|"ml.p3.2xlarge"|"ml.p3.8xlarge"|"ml.p3.16xlarge"|"ml.c5.xlarge"|"ml.c5.2xlarge"|"ml.c5.4xlarge"|"ml.c5.9xlarge"|"ml.c5.18xlarge"|"ml.m5.large"|"ml.m5.xlarge"|"ml.m5.2xlarge"|"ml.m5.4xlarge"|"ml.m5.12xlarge"|"ml.m5.24xlarge",
#'     InstanceCount = 123,
#'     VolumeKmsKeyId = "string"
#'   ),
#'   DataProcessing = list(
#'     InputFilter = "string",
#'     OutputFilter = "string",
#'     JoinSource = "Input"|"None"
#'   ),
#'   Tags = list(
#'     list(
#'       Key = "string",
#'       Value = "string"
#'     )
#'   ),
#'   ExperimentConfig = list(
#'     ExperimentName = "string",
#'     TrialName = "string",
#'     TrialComponentDisplayName = "string"
#'   )
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname sagemaker_create_transform_job
sagemaker_create_transform_job <- function(TransformJobName, ModelName, MaxConcurrentTransforms = NULL, ModelClientConfig = NULL, MaxPayloadInMB = NULL, BatchStrategy = NULL, Environment = NULL, TransformInput, TransformOutput, TransformResources, DataProcessing = NULL, Tags = NULL, ExperimentConfig = NULL) {
  op <- new_operation(
    name = "CreateTransformJob",
    http_method = "POST",
    http_path = "/",
    paginator = list()
  )
  input <- .sagemaker$create_transform_job_input(TransformJobName = TransformJobName, ModelName = ModelName, MaxConcurrentTransforms = MaxConcurrentTransforms, ModelClientConfig = ModelClientConfig, MaxPayloadInMB = MaxPayloadInMB, BatchStrategy = BatchStrategy, Environment = Environment, TransformInput = TransformInput, TransformOutput = TransformOutput, TransformResources = TransformResources, DataProcessing = DataProcessing, Tags = Tags, ExperimentConfig = ExperimentConfig)
  output <- .sagemaker$create_transform_job_output()
  config <- get_config()
  svc <- .sagemaker$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.sagemaker$operations$create_transform_job <- sagemaker_create_transform_job

#' Creates an Amazon SageMaker trial
#'
#' @description
#' Creates an Amazon SageMaker *trial*. A trial is a set of steps called
#' *trial components* that produce a machine learning model. A trial is
#' part of a single Amazon SageMaker *experiment*.
#' 
#' When you use Amazon SageMaker Studio or the Amazon SageMaker Python SDK,
#' all experiments, trials, and trial components are automatically tracked,
#' logged, and indexed. When you use the AWS SDK for Python (Boto), you
#' must use the logging APIs provided by the SDK.
#' 
#' You can add tags to a trial and then use the
#' [`search`][sagemaker_search] API to search for the tags.
#' 
#' To get a list of all your trials, call the
#' [`list_trials`][sagemaker_list_trials] API. To view a trial's
#' properties, call the [`describe_trial`][sagemaker_describe_trial] API.
#' To create a trial component, call the
#' [`create_trial_component`][sagemaker_create_trial_component] API.
#'
#' @usage
#' sagemaker_create_trial(TrialName, DisplayName, ExperimentName,
#'   MetadataProperties, Tags)
#'
#' @param TrialName &#91;required&#93; The name of the trial. The name must be unique in your AWS account and
#' is not case-sensitive.
#' @param DisplayName The name of the trial as displayed. The name doesn't need to be unique.
#' If `DisplayName` isn't specified, `TrialName` is displayed.
#' @param ExperimentName &#91;required&#93; The name of the experiment to associate the trial with.
#' @param MetadataProperties 
#' @param Tags A list of tags to associate with the trial. You can use
#' [`search`][sagemaker_search] API to search on the tags.
#'
#' @return
#' A list with the following syntax:
#' ```
#' list(
#'   TrialArn = "string"
#' )
#' ```
#'
#' @section Request syntax:
#' ```
#' svc$create_trial(
#'   TrialName = "string",
#'   DisplayName = "string",
#'   ExperimentName = "string",
#'   MetadataProperties = list(
#'     CommitId = "string",
#'     Repository = "string",
#'     GeneratedBy = "string",
#'     ProjectId = "string"
#'   ),
#'   Tags = list(
#'     list(
#'       Key = "string",
#'       Value = "string"
#'     )
#'   )
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname sagemaker_create_trial
sagemaker_create_trial <- function(TrialName, DisplayName = NULL, ExperimentName, MetadataProperties = NULL, Tags = NULL) {
  op <- new_operation(
    name = "CreateTrial",
    http_method = "POST",
    http_path = "/",
    paginator = list()
  )
  input <- .sagemaker$create_trial_input(TrialName = TrialName, DisplayName = DisplayName, ExperimentName = ExperimentName, MetadataProperties = MetadataProperties, Tags = Tags)
  output <- .sagemaker$create_trial_output()
  config <- get_config()
  svc <- .sagemaker$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.sagemaker$operations$create_trial <- sagemaker_create_trial

#' Creates a trial component, which is a stage of a machine learning trial
#'
#' @description
#' Creates a *trial component*, which is a stage of a machine learning
#' *trial*. A trial is composed of one or more trial components. A trial
#' component can be used in multiple trials.
#' 
#' Trial components include pre-processing jobs, training jobs, and batch
#' transform jobs.
#' 
#' When you use Amazon SageMaker Studio or the Amazon SageMaker Python SDK,
#' all experiments, trials, and trial components are automatically tracked,
#' logged, and indexed. When you use the AWS SDK for Python (Boto), you
#' must use the logging APIs provided by the SDK.
#' 
#' You can add tags to a trial component and then use the
#' [`search`][sagemaker_search] API to search for the tags.
#' 
#' [`create_trial_component`][sagemaker_create_trial_component] can only be
#' invoked from within an Amazon SageMaker managed environment. This
#' includes Amazon SageMaker training jobs, processing jobs, transform
#' jobs, and Amazon SageMaker notebooks. A call to
#' [`create_trial_component`][sagemaker_create_trial_component] from
#' outside one of these environments results in an error.
#'
#' @usage
#' sagemaker_create_trial_component(TrialComponentName, DisplayName,
#'   Status, StartTime, EndTime, Parameters, InputArtifacts, OutputArtifacts,
#'   MetadataProperties, Tags)
#'
#' @param TrialComponentName &#91;required&#93; The name of the component. The name must be unique in your AWS account
#' and is not case-sensitive.
#' @param DisplayName The name of the component as displayed. The name doesn't need to be
#' unique. If `DisplayName` isn't specified, `TrialComponentName` is
#' displayed.
#' @param Status The status of the component. States include:
#' 
#' -   InProgress
#' 
#' -   Completed
#' 
#' -   Failed
#' @param StartTime When the component started.
#' @param EndTime When the component ended.
#' @param Parameters The hyperparameters for the component.
#' @param InputArtifacts The input artifacts for the component. Examples of input artifacts are
#' datasets, algorithms, hyperparameters, source code, and instance types.
#' @param OutputArtifacts The output artifacts for the component. Examples of output artifacts are
#' metrics, snapshots, logs, and images.
#' @param MetadataProperties 
#' @param Tags A list of tags to associate with the component. You can use
#' [`search`][sagemaker_search] API to search on the tags.
#'
#' @return
#' A list with the following syntax:
#' ```
#' list(
#'   TrialComponentArn = "string"
#' )
#' ```
#'
#' @section Request syntax:
#' ```
#' svc$create_trial_component(
#'   TrialComponentName = "string",
#'   DisplayName = "string",
#'   Status = list(
#'     PrimaryStatus = "InProgress"|"Completed"|"Failed"|"Stopping"|"Stopped",
#'     Message = "string"
#'   ),
#'   StartTime = as.POSIXct(
#'     "2015-01-01"
#'   ),
#'   EndTime = as.POSIXct(
#'     "2015-01-01"
#'   ),
#'   Parameters = list(
#'     list(
#'       StringValue = "string",
#'       NumberValue = 123.0
#'     )
#'   ),
#'   InputArtifacts = list(
#'     list(
#'       MediaType = "string",
#'       Value = "string"
#'     )
#'   ),
#'   OutputArtifacts = list(
#'     list(
#'       MediaType = "string",
#'       Value = "string"
#'     )
#'   ),
#'   MetadataProperties = list(
#'     CommitId = "string",
#'     Repository = "string",
#'     GeneratedBy = "string",
#'     ProjectId = "string"
#'   ),
#'   Tags = list(
#'     list(
#'       Key = "string",
#'       Value = "string"
#'     )
#'   )
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname sagemaker_create_trial_component
sagemaker_create_trial_component <- function(TrialComponentName, DisplayName = NULL, Status = NULL, StartTime = NULL, EndTime = NULL, Parameters = NULL, InputArtifacts = NULL, OutputArtifacts = NULL, MetadataProperties = NULL, Tags = NULL) {
  op <- new_operation(
    name = "CreateTrialComponent",
    http_method = "POST",
    http_path = "/",
    paginator = list()
  )
  input <- .sagemaker$create_trial_component_input(TrialComponentName = TrialComponentName, DisplayName = DisplayName, Status = Status, StartTime = StartTime, EndTime = EndTime, Parameters = Parameters, InputArtifacts = InputArtifacts, OutputArtifacts = OutputArtifacts, MetadataProperties = MetadataProperties, Tags = Tags)
  output <- .sagemaker$create_trial_component_output()
  config <- get_config()
  svc <- .sagemaker$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.sagemaker$operations$create_trial_component <- sagemaker_create_trial_component

#' Creates a user profile
#'
#' @description
#' Creates a user profile. A user profile represents a single user within a
#' domain, and is the main way to reference a "person" for the purposes of
#' sharing, reporting, and other user-oriented features. This entity is
#' created when a user onboards to Amazon SageMaker Studio. If an
#' administrator invites a person by email or imports them from SSO, a user
#' profile is automatically created. A user profile is the primary holder
#' of settings for an individual user and has a reference to the user's
#' private Amazon Elastic File System (EFS) home directory.
#'
#' @usage
#' sagemaker_create_user_profile(DomainId, UserProfileName,
#'   SingleSignOnUserIdentifier, SingleSignOnUserValue, Tags, UserSettings)
#'
#' @param DomainId &#91;required&#93; The ID of the associated Domain.
#' @param UserProfileName &#91;required&#93; A name for the UserProfile.
#' @param SingleSignOnUserIdentifier A specifier for the type of value specified in SingleSignOnUserValue.
#' Currently, the only supported value is "UserName". If the Domain's
#' AuthMode is SSO, this field is required. If the Domain's AuthMode is not
#' SSO, this field cannot be specified.
#' @param SingleSignOnUserValue The username of the associated AWS Single Sign-On User for this
#' UserProfile. If the Domain's AuthMode is SSO, this field is required,
#' and must match a valid username of a user in your directory. If the
#' Domain's AuthMode is not SSO, this field cannot be specified.
#' @param Tags Each tag consists of a key and an optional value. Tag keys must be
#' unique per resource.
#' @param UserSettings A collection of settings.
#'
#' @return
#' A list with the following syntax:
#' ```
#' list(
#'   UserProfileArn = "string"
#' )
#' ```
#'
#' @section Request syntax:
#' ```
#' svc$create_user_profile(
#'   DomainId = "string",
#'   UserProfileName = "string",
#'   SingleSignOnUserIdentifier = "string",
#'   SingleSignOnUserValue = "string",
#'   Tags = list(
#'     list(
#'       Key = "string",
#'       Value = "string"
#'     )
#'   ),
#'   UserSettings = list(
#'     ExecutionRole = "string",
#'     SecurityGroups = list(
#'       "string"
#'     ),
#'     SharingSettings = list(
#'       NotebookOutputOption = "Allowed"|"Disabled",
#'       S3OutputPath = "string",
#'       S3KmsKeyId = "string"
#'     ),
#'     JupyterServerAppSettings = list(
#'       DefaultResourceSpec = list(
#'         SageMakerImageArn = "string",
#'         SageMakerImageVersionArn = "string",
#'         InstanceType = "system"|"ml.t3.micro"|"ml.t3.small"|"ml.t3.medium"|"ml.t3.large"|"ml.t3.xlarge"|"ml.t3.2xlarge"|"ml.m5.large"|"ml.m5.xlarge"|"ml.m5.2xlarge"|"ml.m5.4xlarge"|"ml.m5.8xlarge"|"ml.m5.12xlarge"|"ml.m5.16xlarge"|"ml.m5.24xlarge"|"ml.c5.large"|"ml.c5.xlarge"|"ml.c5.2xlarge"|"ml.c5.4xlarge"|"ml.c5.9xlarge"|"ml.c5.12xlarge"|"ml.c5.18xlarge"|"ml.c5.24xlarge"|"ml.p3.2xlarge"|"ml.p3.8xlarge"|"ml.p3.16xlarge"|"ml.g4dn.xlarge"|"ml.g4dn.2xlarge"|"ml.g4dn.4xlarge"|"ml.g4dn.8xlarge"|"ml.g4dn.12xlarge"|"ml.g4dn.16xlarge"
#'       )
#'     ),
#'     KernelGatewayAppSettings = list(
#'       DefaultResourceSpec = list(
#'         SageMakerImageArn = "string",
#'         SageMakerImageVersionArn = "string",
#'         InstanceType = "system"|"ml.t3.micro"|"ml.t3.small"|"ml.t3.medium"|"ml.t3.large"|"ml.t3.xlarge"|"ml.t3.2xlarge"|"ml.m5.large"|"ml.m5.xlarge"|"ml.m5.2xlarge"|"ml.m5.4xlarge"|"ml.m5.8xlarge"|"ml.m5.12xlarge"|"ml.m5.16xlarge"|"ml.m5.24xlarge"|"ml.c5.large"|"ml.c5.xlarge"|"ml.c5.2xlarge"|"ml.c5.4xlarge"|"ml.c5.9xlarge"|"ml.c5.12xlarge"|"ml.c5.18xlarge"|"ml.c5.24xlarge"|"ml.p3.2xlarge"|"ml.p3.8xlarge"|"ml.p3.16xlarge"|"ml.g4dn.xlarge"|"ml.g4dn.2xlarge"|"ml.g4dn.4xlarge"|"ml.g4dn.8xlarge"|"ml.g4dn.12xlarge"|"ml.g4dn.16xlarge"
#'       ),
#'       CustomImages = list(
#'         list(
#'           ImageName = "string",
#'           ImageVersionNumber = 123,
#'           AppImageConfigName = "string"
#'         )
#'       )
#'     ),
#'     TensorBoardAppSettings = list(
#'       DefaultResourceSpec = list(
#'         SageMakerImageArn = "string",
#'         SageMakerImageVersionArn = "string",
#'         InstanceType = "system"|"ml.t3.micro"|"ml.t3.small"|"ml.t3.medium"|"ml.t3.large"|"ml.t3.xlarge"|"ml.t3.2xlarge"|"ml.m5.large"|"ml.m5.xlarge"|"ml.m5.2xlarge"|"ml.m5.4xlarge"|"ml.m5.8xlarge"|"ml.m5.12xlarge"|"ml.m5.16xlarge"|"ml.m5.24xlarge"|"ml.c5.large"|"ml.c5.xlarge"|"ml.c5.2xlarge"|"ml.c5.4xlarge"|"ml.c5.9xlarge"|"ml.c5.12xlarge"|"ml.c5.18xlarge"|"ml.c5.24xlarge"|"ml.p3.2xlarge"|"ml.p3.8xlarge"|"ml.p3.16xlarge"|"ml.g4dn.xlarge"|"ml.g4dn.2xlarge"|"ml.g4dn.4xlarge"|"ml.g4dn.8xlarge"|"ml.g4dn.12xlarge"|"ml.g4dn.16xlarge"
#'       )
#'     )
#'   )
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname sagemaker_create_user_profile
sagemaker_create_user_profile <- function(DomainId, UserProfileName, SingleSignOnUserIdentifier = NULL, SingleSignOnUserValue = NULL, Tags = NULL, UserSettings = NULL) {
  op <- new_operation(
    name = "CreateUserProfile",
    http_method = "POST",
    http_path = "/",
    paginator = list()
  )
  input <- .sagemaker$create_user_profile_input(DomainId = DomainId, UserProfileName = UserProfileName, SingleSignOnUserIdentifier = SingleSignOnUserIdentifier, SingleSignOnUserValue = SingleSignOnUserValue, Tags = Tags, UserSettings = UserSettings)
  output <- .sagemaker$create_user_profile_output()
  config <- get_config()
  svc <- .sagemaker$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.sagemaker$operations$create_user_profile <- sagemaker_create_user_profile

#' Use this operation to create a workforce
#'
#' @description
#' Use this operation to create a workforce. This operation will return an
#' error if a workforce already exists in the AWS Region that you specify.
#' You can only create one workforce in each AWS Region per AWS account.
#' 
#' If you want to create a new workforce in an AWS Region where a workforce
#' already exists, use the API operation to delete the existing workforce
#' and then use [`create_workforce`][sagemaker_create_workforce] to create
#' a new workforce.
#' 
#' To create a private workforce using Amazon Cognito, you must specify a
#' Cognito user pool in `CognitoConfig`. You can also create an Amazon
#' Cognito workforce using the Amazon SageMaker console. For more
#' information, see [Create a Private Workforce (Amazon
#' Cognito)](https://docs.aws.amazon.com/sagemaker/latest/dg/sms-workforce-create-private.html).
#' 
#' To create a private workforce using your own OIDC Identity Provider
#' (IdP), specify your IdP configuration in `OidcConfig`. Your OIDC IdP
#' must support *groups* because groups are used by Ground Truth and Amazon
#' A2I to create work teams. For more information, see [Create a Private
#' Workforce (OIDC
#' IdP)](https://docs.aws.amazon.com/sagemaker/latest/dg/sms-workforce-create-private-oidc.html).
#'
#' @usage
#' sagemaker_create_workforce(CognitoConfig, OidcConfig, SourceIpConfig,
#'   WorkforceName, Tags)
#'
#' @param CognitoConfig 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](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools.html).
#' 
#' Do not use `OidcConfig` if you specify values for `CognitoConfig`.
#' @param OidcConfig Use this parameter to configure a private workforce using your own OIDC
#' Identity Provider.
#' 
#' Do not use `CognitoConfig` if you specify values for `OidcConfig`.
#' @param SourceIpConfig 
#' @param WorkforceName &#91;required&#93; The name of the private workforce.
#' @param 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
#' A list with the following syntax:
#' ```
#' list(
#'   WorkforceArn = "string"
#' )
#' ```
#'
#' @section Request syntax:
#' ```
#' svc$create_workforce(
#'   CognitoConfig = list(
#'     UserPool = "string",
#'     ClientId = "string"
#'   ),
#'   OidcConfig = list(
#'     ClientId = "string",
#'     ClientSecret = "string",
#'     Issuer = "string",
#'     AuthorizationEndpoint = "string",
#'     TokenEndpoint = "string",
#'     UserInfoEndpoint = "string",
#'     LogoutEndpoint = "string",
#'     JwksUri = "string"
#'   ),
#'   SourceIpConfig = list(
#'     Cidrs = list(
#'       "string"
#'     )
#'   ),
#'   WorkforceName = "string",
#'   Tags = list(
#'     list(
#'       Key = "string",
#'       Value = "string"
#'     )
#'   )
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname sagemaker_create_workforce
sagemaker_create_workforce <- function(CognitoConfig = NULL, OidcConfig = NULL, SourceIpConfig = NULL, WorkforceName, Tags = NULL) {
  op <- new_operation(
    name = "CreateWorkforce",
    http_method = "POST",
    http_path = "/",
    paginator = list()
  )
  input <- .sagemaker$create_workforce_input(CognitoConfig = CognitoConfig, OidcConfig = OidcConfig, SourceIpConfig = SourceIpConfig, WorkforceName = WorkforceName, Tags = Tags)
  output <- .sagemaker$create_workforce_output()
  config <- get_config()
  svc <- .sagemaker$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.sagemaker$operations$create_workforce <- sagemaker_create_workforce

#' Creates a new work team for labeling your data
#'
#' @description
#' Creates a new work team for labeling your data. A work team is defined
#' by one or more Amazon Cognito user pools. You must first create the user
#' pools before you can create a work team.
#' 
#' You cannot create more than 25 work teams in an account and region.
#'
#' @usage
#' sagemaker_create_workteam(WorkteamName, WorkforceName,
#'   MemberDefinitions, Description, NotificationConfiguration, Tags)
#'
#' @param WorkteamName &#91;required&#93; The name of the work team. Use this name to identify the work team.
#' @param WorkforceName The name of the workforce.
#' @param MemberDefinitions &#91;required&#93; 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](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools.html).
#' 
#' 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`.
#' @param Description &#91;required&#93; A description of the work team.
#' @param NotificationConfiguration Configures notification of workers regarding available or expiring work
#' items.
#' @param Tags An array of key-value pairs.
#' 
#' For more information, see [Resource
#' Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)
#' and [Using Cost Allocation
#' Tags](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html#allocation-what)
#' in the *AWS Billing and Cost Management User Guide*.
#'
#' @return
#' A list with the following syntax:
#' ```
#' list(
#'   WorkteamArn = "string"
#' )
#' ```
#'
#' @section Request syntax:
#' ```
#' svc$create_workteam(
#'   WorkteamName = "string",
#'   WorkforceName = "string",
#'   MemberDefinitions = list(
#'     list(
#'       CognitoMemberDefinition = list(
#'         UserPool = "string",
#'         UserGroup = "string",
#'         ClientId = "string"
#'       ),
#'       OidcMemberDefinition = list(
#'         Groups = list(
#'           "string"
#'         )
#'       )
#'     )
#'   ),
#'   Description = "string",
#'   NotificationConfiguration = list(
#'     NotificationTopicArn = "string"
#'   ),
#'   Tags = list(
#'     list(
#'       Key = "string",
#'       Value = "string"
#'     )
#'   )
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname sagemaker_create_workteam
sagemaker_create_workteam <- function(WorkteamName, WorkforceName = NULL, MemberDefinitions, Description, NotificationConfiguration = NULL, Tags = NULL) {
  op <- new_operation(
    name = "CreateWorkteam",
    http_method = "POST",
    http_path = "/",
    paginator = list()
  )
  input <- .sagemaker$create_workteam_input(WorkteamName = WorkteamName, WorkforceName = WorkforceName, MemberDefinitions = MemberDefinitions, Description = Description, NotificationConfiguration = NotificationConfiguration, Tags = Tags)
  output <- .sagemaker$create_workteam_output()
  config <- get_config()
  svc <- .sagemaker$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.sagemaker$operations$create_workteam <- sagemaker_create_workteam

#' Deletes an action
#'
#' @description
#' Deletes an action.
#'
#' @usage
#' sagemaker_delete_action(ActionName)
#'
#' @param ActionName &#91;required&#93; The name of the action to delete.
#'
#' @return
#' A list with the following syntax:
#' ```
#' list(
#'   ActionArn = "string"
#' )
#' ```
#'
#' @section Request syntax:
#' ```
#' svc$delete_action(
#'   ActionName = "string"
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname sagemaker_delete_action
sagemaker_delete_action <- function(ActionName) {
  op <- new_operation(
    name = "DeleteAction",
    http_method = "POST",
    http_path = "/",
    paginator = list()
  )
  input <- .sagemaker$delete_action_input(ActionName = ActionName)
  output <- .sagemaker$delete_action_output()
  config <- get_config()
  svc <- .sagemaker$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.sagemaker$operations$delete_action <- sagemaker_delete_action

#' Removes the specified algorithm from your account
#'
#' @description
#' Removes the specified algorithm from your account.
#'
#' @usage
#' sagemaker_delete_algorithm(AlgorithmName)
#'
#' @param AlgorithmName &#91;required&#93; The name of the algorithm to delete.
#'
#' @return
#' An empty list.
#'
#' @section Request syntax:
#' ```
#' svc$delete_algorithm(
#'   AlgorithmName = "string"
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname sagemaker_delete_algorithm
sagemaker_delete_algorithm <- function(AlgorithmName) {
  op <- new_operation(
    name = "DeleteAlgorithm",
    http_method = "POST",
    http_path = "/",
    paginator = list()
  )
  input <- .sagemaker$delete_algorithm_input(AlgorithmName = AlgorithmName)
  output <- .sagemaker$delete_algorithm_output()
  config <- get_config()
  svc <- .sagemaker$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.sagemaker$operations$delete_algorithm <- sagemaker_delete_algorithm

#' Used to stop and delete an app
#'
#' @description
#' Used to stop and delete an app.
#'
#' @usage
#' sagemaker_delete_app(DomainId, UserProfileName, AppType, AppName)
#'
#' @param DomainId &#91;required&#93; The domain ID.
#' @param UserProfileName &#91;required&#93; The user profile name.
#' @param AppType &#91;required&#93; The type of app.
#' @param AppName &#91;required&#93; The name of the app.
#'
#' @return
#' An empty list.
#'
#' @section Request syntax:
#' ```
#' svc$delete_app(
#'   DomainId = "string",
#'   UserProfileName = "string",
#'   AppType = "JupyterServer"|"KernelGateway"|"TensorBoard",
#'   AppName = "string"
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname sagemaker_delete_app
sagemaker_delete_app <- function(DomainId, UserProfileName, AppType, AppName) {
  op <- new_operation(
    name = "DeleteApp",
    http_method = "POST",
    http_path = "/",
    paginator = list()
  )
  input <- .sagemaker$delete_app_input(DomainId = DomainId, UserProfileName = UserProfileName, AppType = AppType, AppName = AppName)
  output <- .sagemaker$delete_app_output()
  config <- get_config()
  svc <- .sagemaker$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.sagemaker$operations$delete_app <- sagemaker_delete_app

#' Deletes an AppImageConfig
#'
#' @description
#' Deletes an AppImageConfig.
#'
#' @usage
#' sagemaker_delete_app_image_config(AppImageConfigName)
#'
#' @param AppImageConfigName &#91;required&#93; The name of the AppImageConfig to delete.
#'
#' @return
#' An empty list.
#'
#' @section Request syntax:
#' ```
#' svc$delete_app_image_config(
#'   AppImageConfigName = "string"
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname sagemaker_delete_app_image_config
sagemaker_delete_app_image_config <- function(AppImageConfigName) {
  op <- new_operation(
    name = "DeleteAppImageConfig",
    http_method = "POST",
    http_path = "/",
    paginator = list()
  )
  input <- .sagemaker$delete_app_image_config_input(AppImageConfigName = AppImageConfigName)
  output <- .sagemaker$delete_app_image_config_output()
  config <- get_config()
  svc <- .sagemaker$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.sagemaker$operations$delete_app_image_config <- sagemaker_delete_app_image_config

#' Deletes an artifact
#'
#' @description
#' Deletes an artifact. Either `ArtifactArn` or `Source` must be specified.
#'
#' @usage
#' sagemaker_delete_artifact(ArtifactArn, Source)
#'
#' @param ArtifactArn The Amazon Resource Name (ARN) of the artifact to delete.
#' @param Source The URI of the source.
#'
#' @return
#' A list with the following syntax:
#' ```
#' list(
#'   ArtifactArn = "string"
#' )
#' ```
#'
#' @section Request syntax:
#' ```
#' svc$delete_artifact(
#'   ArtifactArn = "string",
#'   Source = list(
#'     SourceUri = "string",
#'     SourceTypes = list(
#'       list(
#'         SourceIdType = "MD5Hash"|"S3ETag"|"S3Version"|"Custom",
#'         Value = "string"
#'       )
#'     )
#'   )
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname sagemaker_delete_artifact
sagemaker_delete_artifact <- function(ArtifactArn = NULL, Source = NULL) {
  op <- new_operation(
    name = "DeleteArtifact",
    http_method = "POST",
    http_path = "/",
    paginator = list()
  )
  input <- .sagemaker$delete_artifact_input(ArtifactArn = ArtifactArn, Source = Source)
  output <- .sagemaker$delete_artifact_output()
  config <- get_config()
  svc <- .sagemaker$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.sagemaker$operations$delete_artifact <- sagemaker_delete_artifact

#' Deletes an association
#'
#' @description
#' Deletes an association.
#'
#' @usage
#' sagemaker_delete_association(SourceArn, DestinationArn)
#'
#' @param SourceArn &#91;required&#93; The ARN of the source.
#' @param DestinationArn &#91;required&#93; The Amazon Resource Name (ARN) of the destination.
#'
#' @return
#' A list with the following syntax:
#' ```
#' list(
#'   SourceArn = "string",
#'   DestinationArn = "string"
#' )
#' ```
#'
#' @section Request syntax:
#' ```
#' svc$delete_association(
#'   SourceArn = "string",
#'   DestinationArn = "string"
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname sagemaker_delete_association
sagemaker_delete_association <- function(SourceArn, DestinationArn) {
  op <- new_operation(
    name = "DeleteAssociation",
    http_method = "POST",
    http_path = "/",
    paginator = list()
  )
  input <- .sagemaker$delete_association_input(SourceArn = SourceArn, DestinationArn = DestinationArn)
  output <- .sagemaker$delete_association_output()
  config <- get_config()
  svc <- .sagemaker$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.sagemaker$operations$delete_association <- sagemaker_delete_association

#' Deletes the specified Git repository from your account
#'
#' @description
#' Deletes the specified Git repository from your account.
#'
#' @usage
#' sagemaker_delete_code_repository(CodeRepositoryName)
#'
#' @param CodeRepositoryName &#91;required&#93; The name of the Git repository to delete.
#'
#' @return
#' An empty list.
#'
#' @section Request syntax:
#' ```
#' svc$delete_code_repository(
#'   CodeRepositoryName = "string"
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname sagemaker_delete_code_repository
sagemaker_delete_code_repository <- function(CodeRepositoryName) {
  op <- new_operation(
    name = "DeleteCodeRepository",
    http_method = "POST",
    http_path = "/",
    paginator = list()
  )
  input <- .sagemaker$delete_code_repository_input(CodeRepositoryName = CodeRepositoryName)
  output <- .sagemaker$delete_code_repository_output()
  config <- get_config()
  svc <- .sagemaker$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.sagemaker$operations$delete_code_repository <- sagemaker_delete_code_repository

#' Deletes an context
#'
#' @description
#' Deletes an context.
#'
#' @usage
#' sagemaker_delete_context(ContextName)
#'
#' @param ContextName &#91;required&#93; The name of the context to delete.
#'
#' @return
#' A list with the following syntax:
#' ```
#' list(
#'   ContextArn = "string"
#' )
#' ```
#'
#' @section Request syntax:
#' ```
#' svc$delete_context(
#'   ContextName = "string"
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname sagemaker_delete_context
sagemaker_delete_context <- function(ContextName) {
  op <- new_operation(
    name = "DeleteContext",
    http_method = "POST",
    http_path = "/",
    paginator = list()
  )
  input <- .sagemaker$delete_context_input(ContextName = ContextName)
  output <- .sagemaker$delete_context_output()
  config <- get_config()
  svc <- .sagemaker$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.sagemaker$operations$delete_context <- sagemaker_delete_context

#' Deletes a data quality monitoring job definition
#'
#' @description
#' Deletes a data quality monitoring job definition.
#'
#' @usage
#' sagemaker_delete_data_quality_job_definition(JobDefinitionName)
#'
#' @param JobDefinitionName &#91;required&#93; The name of the data quality monitoring job definition to delete.
#'
#' @return
#' An empty list.
#'
#' @section Request syntax:
#' ```
#' svc$delete_data_quality_job_definition(
#'   JobDefinitionName = "string"
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname sagemaker_delete_data_quality_job_definition
sagemaker_delete_data_quality_job_definition <- function(JobDefinitionName) {
  op <- new_operation(
    name = "DeleteDataQualityJobDefinition",
    http_method = "POST",
    http_path = "/",
    paginator = list()
  )
  input <- .sagemaker$delete_data_quality_job_definition_input(JobDefinitionName = JobDefinitionName)
  output <- .sagemaker$delete_data_quality_job_definition_output()
  config <- get_config()
  svc <- .sagemaker$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.sagemaker$operations$delete_data_quality_job_definition <- sagemaker_delete_data_quality_job_definition

#' Deletes a fleet
#'
#' @description
#' Deletes a fleet.
#'
#' @usage
#' sagemaker_delete_device_fleet(DeviceFleetName)
#'
#' @param DeviceFleetName &#91;required&#93; The name of the fleet to delete.
#'
#' @return
#' An empty list.
#'
#' @section Request syntax:
#' ```
#' svc$delete_device_fleet(
#'   DeviceFleetName = "string"
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname sagemaker_delete_device_fleet
sagemaker_delete_device_fleet <- function(DeviceFleetName) {
  op <- new_operation(
    name = "DeleteDeviceFleet",
    http_method = "POST",
    http_path = "/",
    paginator = list()
  )
  input <- .sagemaker$delete_device_fleet_input(DeviceFleetName = DeviceFleetName)
  output <- .sagemaker$delete_device_fleet_output()
  config <- get_config()
  svc <- .sagemaker$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.sagemaker$operations$delete_device_fleet <- sagemaker_delete_device_fleet

#' Used to delete a domain
#'
#' @description
#' Used to delete a domain. If you onboarded with IAM mode, you will need
#' to delete your domain to onboard again using SSO. Use with caution. All
#' of the members of the domain will lose access to their EFS volume,
#' including data, notebooks, and other artifacts.
#'
#' @usage
#' sagemaker_delete_domain(DomainId, RetentionPolicy)
#'
#' @param DomainId &#91;required&#93; The domain ID.
#' @param RetentionPolicy 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
#' An empty list.
#'
#' @section Request syntax:
#' ```
#' svc$delete_domain(
#'   DomainId = "string",
#'   RetentionPolicy = list(
#'     HomeEfsFileSystem = "Retain"|"Delete"
#'   )
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname sagemaker_delete_domain
sagemaker_delete_domain <- function(DomainId, RetentionPolicy = NULL) {
  op <- new_operation(
    name = "DeleteDomain",
    http_method = "POST",
    http_path = "/",
    paginator = list()
  )
  input <- .sagemaker$delete_domain_input(DomainId = DomainId, RetentionPolicy = RetentionPolicy)
  output <- .sagemaker$delete_domain_output()
  config <- get_config()
  svc <- .sagemaker$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.sagemaker$operations$delete_domain <- sagemaker_delete_domain

#' Deletes an endpoint
#'
#' @description
#' Deletes an endpoint. Amazon SageMaker frees up all of the resources that
#' were deployed when the endpoint was created.
#' 
#' Amazon SageMaker retires any custom KMS key grants associated with the
#' endpoint, meaning you don't need to use the
#' [RevokeGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_RevokeGrant.html)
#' API call.
#'
#' @usage
#' sagemaker_delete_endpoint(EndpointName)
#'
#' @param EndpointName &#91;required&#93; The name of the endpoint that you want to delete.
#'
#' @return
#' An empty list.
#'
#' @section Request syntax:
#' ```
#' svc$delete_endpoint(
#'   EndpointName = "string"
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname sagemaker_delete_endpoint
sagemaker_delete_endpoint <- function(EndpointName) {
  op <- new_operation(
    name = "DeleteEndpoint",
    http_method = "POST",
    http_path = "/",
    paginator = list()
  )
  input <- .sagemaker$delete_endpoint_input(EndpointName = EndpointName)
  output <- .sagemaker$delete_endpoint_output()
  config <- get_config()
  svc <- .sagemaker$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.sagemaker$operations$delete_endpoint <- sagemaker_delete_endpoint

#' Deletes an endpoint configuration
#'
#' @description
#' Deletes an endpoint configuration. The
#' [`delete_endpoint_config`][sagemaker_delete_endpoint_config] API deletes
#' only the specified configuration. It does not delete endpoints created
#' using the configuration.
#' 
#' You must not delete an `EndpointConfig` in use by an endpoint that is
#' live or while the [`update_endpoint`][sagemaker_update_endpoint] or
#' [`create_endpoint`][sagemaker_create_endpoint] operations are being
#' performed on the endpoint. If you delete the `EndpointConfig` of an
#' endpoint that is active or being created or updated you may lose
#' visibility into the instance type the endpoint is using. The endpoint
#' must be deleted in order to stop incurring charges.
#'
#' @usage
#' sagemaker_delete_endpoint_config(EndpointConfigName)
#'
#' @param EndpointConfigName &#91;required&#93; The name of the endpoint configuration that you want to delete.
#'
#' @return
#' An empty list.
#'
#' @section Request syntax:
#' ```
#' svc$delete_endpoint_config(
#'   EndpointConfigName = "string"
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname sagemaker_delete_endpoint_config
sagemaker_delete_endpoint_config <- function(EndpointConfigName) {
  op <- new_operation(
    name = "DeleteEndpointConfig",
    http_method = "POST",
    http_path = "/",
    paginator = list()
  )
  input <- .sagemaker$delete_endpoint_config_input(EndpointConfigName = EndpointConfigName)
  output <- .sagemaker$delete_endpoint_config_output()
  config <- get_config()
  svc <- .sagemaker$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.sagemaker$operations$delete_endpoint_config <- sagemaker_delete_endpoint_config

#' Deletes an Amazon SageMaker experiment
#'
#' @description
#' Deletes an Amazon SageMaker experiment. All trials associated with the
#' experiment must be deleted first. Use the
#' [`list_trials`][sagemaker_list_trials] API to get a list of the trials
#' associated with the experiment.
#'
#' @usage
#' sagemaker_delete_experiment(ExperimentName)
#'
#' @param ExperimentName &#91;required&#93; The name of the experiment to delete.
#'
#' @return
#' A list with the following syntax:
#' ```
#' list(
#'   ExperimentArn = "string"
#' )
#' ```
#'
#' @section Request syntax:
#' ```
#' svc$delete_experiment(
#'   ExperimentName = "string"
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname sagemaker_delete_experiment
sagemaker_delete_experiment <- function(ExperimentName) {
  op <- new_operation(
    name = "DeleteExperiment",
    http_method = "POST",
    http_path = "/",
    paginator = list()
  )
  input <- .sagemaker$delete_experiment_input(ExperimentName = ExperimentName)
  output <- .sagemaker$delete_experiment_output()
  config <- get_config()
  svc <- .sagemaker$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.sagemaker$operations$delete_experiment <- sagemaker_delete_experiment

#' Delete the FeatureGroup and any data that was written to the OnlineStore
#' of the FeatureGroup
#'
#' @description
#' Delete the `FeatureGroup` and any data that was written to the
#' `OnlineStore` of the `FeatureGroup`. Data cannot be accessed from the
#' `OnlineStore` immediately after
#' [`delete_feature_group`][sagemaker_delete_feature_group] is called.
#' 
#' Data written into the `OfflineStore` will not be deleted. The AWS Glue
#' database and tables that are automatically created for your
#' `OfflineStore` are not deleted.
#'
#' @usage
#' sagemaker_delete_feature_group(FeatureGroupName)
#'
#' @param FeatureGroupName &#91;required&#93; The name of the `FeatureGroup` you want to delete. The name must be
#' unique within an AWS Region in an AWS account.
#'
#' @return
#' An empty list.
#'
#' @section Request syntax:
#' ```
#' svc$delete_feature_group(
#'   FeatureGroupName = "string"
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname sagemaker_delete_feature_group
sagemaker_delete_feature_group <- function(FeatureGroupName) {
  op <- new_operation(
    name = "DeleteFeatureGroup",
    http_method = "POST",
    http_path = "/",
    paginator = list()
  )
  input <- .sagemaker$delete_feature_group_input(FeatureGroupName = FeatureGroupName)
  output <- .sagemaker$delete_feature_group_output()
  config <- get_config()
  svc <- .sagemaker$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.sagemaker$operations$delete_feature_group <- sagemaker_delete_feature_group

#' Deletes the specified flow definition
#'
#' @description
#' Deletes the specified flow definition.
#'
#' @usage
#' sagemaker_delete_flow_definition(FlowDefinitionName)
#'
#' @param FlowDefinitionName &#91;required&#93; The name of the flow definition you are deleting.
#'
#' @return
#' An empty list.
#'
#' @section Request syntax:
#' ```
#' svc$delete_flow_definition(
#'   FlowDefinitionName = "string"
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname sagemaker_delete_flow_definition
sagemaker_delete_flow_definition <- function(FlowDefinitionName) {
  op <- new_operation(
    name = "DeleteFlowDefinition",
    http_method = "POST",
    http_path = "/",
    paginator = list()
  )
  input <- .sagemaker$delete_flow_definition_input(FlowDefinitionName = FlowDefinitionName)
  output <- .sagemaker$delete_flow_definition_output()
  config <- get_config()
  svc <- .sagemaker$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.sagemaker$operations$delete_flow_definition <- sagemaker_delete_flow_definition

#' Use this operation to delete a human task user interface (worker task
#' template)
#'
#' @description
#' Use this operation to delete a human task user interface (worker task
#' template).
#' 
#' To see a list of human task user interfaces (work task templates) in
#' your account, use . When you delete a worker task template, it no longer
#' appears when you call
#' [`list_human_task_uis`][sagemaker_list_human_task_uis].
#'
#' @usage
#' sagemaker_delete_human_task_ui(HumanTaskUiName)
#'
#' @param HumanTaskUiName &#91;required&#93; The name of the human task user interface (work task template) you want
#' to delete.
#'
#' @return
#' An empty list.
#'
#' @section Request syntax:
#' ```
#' svc$delete_human_task_ui(
#'   HumanTaskUiName = "string"
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname sagemaker_delete_human_task_ui
sagemaker_delete_human_task_ui <- function(HumanTaskUiName) {
  op <- new_operation(
    name = "DeleteHumanTaskUi",
    http_method = "POST",
    http_path = "/",
    paginator = list()
  )
  input <- .sagemaker$delete_human_task_ui_input(HumanTaskUiName = HumanTaskUiName)
  output <- .sagemaker$delete_human_task_ui_output()
  config <- get_config()
  svc <- .sagemaker$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.sagemaker$operations$delete_human_task_ui <- sagemaker_delete_human_task_ui

#' Deletes a SageMaker image and all versions of the image
#'
#' @description
#' Deletes a SageMaker image and all versions of the image. The container
#' images aren't deleted.
#'
#' @usage
#' sagemaker_delete_image(ImageName)
#'
#' @param ImageName &#91;required&#93; The name of the image to delete.
#'
#' @return
#' An empty list.
#'
#' @section Request syntax:
#' ```
#' svc$delete_image(
#'   ImageName = "string"
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname sagemaker_delete_image
sagemaker_delete_image <- function(ImageName) {
  op <- new_operation(
    name = "DeleteImage",
    http_method = "POST",
    http_path = "/",
    paginator = list()
  )
  input <- .sagemaker$delete_image_input(ImageName = ImageName)
  output <- .sagemaker$delete_image_output()
  config <- get_config()
  svc <- .sagemaker$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.sagemaker$operations$delete_image <- sagemaker_delete_image

#' Deletes a version of a SageMaker image
#'
#' @description
#' Deletes a version of a SageMaker image. The container image the version
#' represents isn't deleted.
#'
#' @usage
#' sagemaker_delete_image_version(ImageName, Version)
#'
#' @param ImageName &#91;required&#93; The name of the image.
#' @param Version &#91;required&#93; The version to delete.
#'
#' @return
#' An empty list.
#'
#' @section Request syntax:
#' ```
#' svc$delete_image_version(
#'   ImageName = "string",
#'   Version = 123
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname sagemaker_delete_image_version
sagemaker_delete_image_version <- function(ImageName, Version) {
  op <- new_operation(
    name = "DeleteImageVersion",
    http_method = "POST",
    http_path = "/",
    paginator = list()
  )
  input <- .sagemaker$delete_image_version_input(ImageName = ImageName, Version = Version)
  output <- .sagemaker$delete_image_version_output()
  config <- get_config()
  svc <- .sagemaker$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.sagemaker$operations$delete_image_version <- sagemaker_delete_image_version

#' Deletes a model
#'
#' @description
#' Deletes a model. The [`delete_model`][sagemaker_delete_model] API
#' deletes only the model entry that was created in Amazon SageMaker when
#' you called the [`create_model`][sagemaker_create_model] API. It does not
#' delete model artifacts, inference code, or the IAM role that you
#' specified when creating the model.
#'
#' @usage
#' sagemaker_delete_model(ModelName)
#'
#' @param ModelName &#91;required&#93; The name of the model to delete.
#'
#' @return
#' An empty list.
#'
#' @section Request syntax:
#' ```
#' svc$delete_model(
#'   ModelName = "string"
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname sagemaker_delete_model
sagemaker_delete_model <- function(ModelName) {
  op <- new_operation(
    name = "DeleteModel",
    http_method = "POST",
    http_path = "/",
    paginator = list()
  )
  input <- .sagemaker$delete_model_input(ModelName = ModelName)
  output <- .sagemaker$delete_model_output()
  config <- get_config()
  svc <- .sagemaker$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.sagemaker$operations$delete_model <- sagemaker_delete_model

#' Deletes an Amazon SageMaker model bias job definition
#'
#' @description
#' Deletes an Amazon SageMaker model bias job definition.
#'
#' @usage
#' sagemaker_delete_model_bias_job_definition(JobDefinitionName)
#'
#' @param JobDefinitionName &#91;required&#93; The name of the model bias job definition to delete.
#'
#' @return
#' An empty list.
#'
#' @section Request syntax:
#' ```
#' svc$delete_model_bias_job_definition(
#'   JobDefinitionName = "string"
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname sagemaker_delete_model_bias_job_definition
sagemaker_delete_model_bias_job_definition <- function(JobDefinitionName) {
  op <- new_operation(
    name = "DeleteModelBiasJobDefinition",
    http_method = "POST",
    http_path = "/",
    paginator = list()
  )
  input <- .sagemaker$delete_model_bias_job_definition_input(JobDefinitionName = JobDefinitionName)
  output <- .sagemaker$delete_model_bias_job_definition_output()
  config <- get_config()
  svc <- .sagemaker$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.sagemaker$operations$delete_model_bias_job_definition <- sagemaker_delete_model_bias_job_definition

#' Deletes an Amazon SageMaker model explainability job definition
#'
#' @description
#' Deletes an Amazon SageMaker model explainability job definition.
#'
#' @usage
#' sagemaker_delete_model_explainability_job_definition(JobDefinitionName)
#'
#' @param JobDefinitionName &#91;required&#93; The name of the model explainability job definition to delete.
#'
#' @return
#' An empty list.
#'
#' @section Request syntax:
#' ```
#' svc$delete_model_explainability_job_definition(
#'   JobDefinitionName = "string"
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname sagemaker_delete_model_explainability_job_definition
sagemaker_delete_model_explainability_job_definition <- function(JobDefinitionName) {
  op <- new_operation(
    name = "DeleteModelExplainabilityJobDefinition",
    http_method = "POST",
    http_path = "/",
    paginator = list()
  )
  input <- .sagemaker$delete_model_explainability_job_definition_input(JobDefinitionName = JobDefinitionName)
  output <- .sagemaker$delete_model_explainability_job_definition_output()
  config <- get_config()
  svc <- .sagemaker$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.sagemaker$operations$delete_model_explainability_job_definition <- sagemaker_delete_model_explainability_job_definition

#' Deletes a model package
#'
#' @description
#' Deletes a model package.
#' 
#' A model package is used to create Amazon SageMaker models or list on AWS
#' Marketplace. Buyers can subscribe to model packages listed on AWS
#' Marketplace to create models in Amazon SageMaker.
#'
#' @usage
#' sagemaker_delete_model_package(ModelPackageName)
#'
#' @param ModelPackageName &#91;required&#93; 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).
#'
#' @return
#' An empty list.
#'
#' @section Request syntax:
#' ```
#' svc$delete_model_package(
#'   ModelPackageName = "string"
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname sagemaker_delete_model_package
sagemaker_delete_model_package <- function(ModelPackageName) {
  op <- new_operation(
    name = "DeleteModelPackage",
    http_method = "POST",
    http_path = "/",
    paginator = list()
  )
  input <- .sagemaker$delete_model_package_input(ModelPackageName = ModelPackageName)
  output <- .sagemaker$delete_model_package_output()
  config <- get_config()
  svc <- .sagemaker$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.sagemaker$operations$delete_model_package <- sagemaker_delete_model_package

#' Deletes the specified model group
#'
#' @description
#' Deletes the specified model group.
#'
#' @usage
#' sagemaker_delete_model_package_group(ModelPackageGroupName)
#'
#' @param ModelPackageGroupName &#91;required&#93; The name of the model group to delete.
#'
#' @return
#' An empty list.
#'
#' @section Request syntax:
#' ```
#' svc$delete_model_package_group(
#'   ModelPackageGroupName = "string"
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname sagemaker_delete_model_package_group
sagemaker_delete_model_package_group <- function(ModelPackageGroupName) {
  op <- new_operation(
    name = "DeleteModelPackageGroup",
    http_method = "POST",
    http_path = "/",
    paginator = list()
  )
  input <- .sagemaker$delete_model_package_group_input(ModelPackageGroupName = ModelPackageGroupName)
  output <- .sagemaker$delete_model_package_group_output()
  config <- get_config()
  svc <- .sagemaker$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.sagemaker$operations$delete_model_package_group <- sagemaker_delete_model_package_group

#' Deletes a model group resource policy
#'
#' @description
#' Deletes a model group resource policy.
#'
#' @usage
#' sagemaker_delete_model_package_group_policy(ModelPackageGroupName)
#'
#' @param ModelPackageGroupName &#91;required&#93; The name of the model group for which to delete the policy.
#'
#' @return
#' An empty list.
#'
#' @section Request syntax:
#' ```
#' svc$delete_model_package_group_policy(
#'   ModelPackageGroupName = "string"
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname sagemaker_delete_model_package_group_policy
sagemaker_delete_model_package_group_policy <- function(ModelPackageGroupName) {
  op <- new_operation(
    name = "DeleteModelPackageGroupPolicy",
    http_method = "POST",
    http_path = "/",
    paginator = list()
  )
  input <- .sagemaker$delete_model_package_group_policy_input(ModelPackageGroupName = ModelPackageGroupName)
  output <- .sagemaker$delete_model_package_group_policy_output()
  config <- get_config()
  svc <- .sagemaker$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.sagemaker$operations$delete_model_package_group_policy <- sagemaker_delete_model_package_group_policy

#' Deletes the secified model quality monitoring job definition
#'
#' @description
#' Deletes the secified model quality monitoring job definition.
#'
#' @usage
#' sagemaker_delete_model_quality_job_definition(JobDefinitionName)
#'
#' @param JobDefinitionName &#91;required&#93; The name of the model quality monitoring job definition to delete.
#'
#' @return
#' An empty list.
#'
#' @section Request syntax:
#' ```
#' svc$delete_model_quality_job_definition(
#'   JobDefinitionName = "string"
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname sagemaker_delete_model_quality_job_definition
sagemaker_delete_model_quality_job_definition <- function(JobDefinitionName) {
  op <- new_operation(
    name = "DeleteModelQualityJobDefinition",
    http_method = "POST",
    http_path = "/",
    paginator = list()
  )
  input <- .sagemaker$delete_model_quality_job_definition_input(JobDefinitionName = JobDefinitionName)
  output <- .sagemaker$delete_model_quality_job_definition_output()
  config <- get_config()
  svc <- .sagemaker$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.sagemaker$operations$delete_model_quality_job_definition <- sagemaker_delete_model_quality_job_definition

#' Deletes a monitoring schedule
#'
#' @description
#' Deletes a monitoring schedule. Also stops the schedule had not already
#' been stopped. This does not delete the job execution history of the
#' monitoring schedule.
#'
#' @usage
#' sagemaker_delete_monitoring_schedule(MonitoringScheduleName)
#'
#' @param MonitoringScheduleName &#91;required&#93; The name of the monitoring schedule to delete.
#'
#' @return
#' An empty list.
#'
#' @section Request syntax:
#' ```
#' svc$delete_monitoring_schedule(
#'   MonitoringScheduleName = "string"
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname sagemaker_delete_monitoring_schedule
sagemaker_delete_monitoring_schedule <- function(MonitoringScheduleName) {
  op <- new_operation(
    name = "DeleteMonitoringSchedule",
    http_method = "POST",
    http_path = "/",
    paginator = list()
  )
  input <- .sagemaker$delete_monitoring_schedule_input(MonitoringScheduleName = MonitoringScheduleName)
  output <- .sagemaker$delete_monitoring_schedule_output()
  config <- get_config()
  svc <- .sagemaker$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.sagemaker$operations$delete_monitoring_schedule <- sagemaker_delete_monitoring_schedule

#' Deletes an Amazon SageMaker notebook instance
#'
#' @description
#' Deletes an Amazon SageMaker notebook instance. Before you can delete a
#' notebook instance, you must call the
#' [`stop_notebook_instance`][sagemaker_stop_notebook_instance] API.
#' 
#' When you delete a notebook instance, you lose all of your data. Amazon
#' SageMaker removes the ML compute instance, and deletes the ML storage
#' volume and the network interface associated with the notebook instance.
#'
#' @usage
#' sagemaker_delete_notebook_instance(NotebookInstanceName)
#'
#' @param NotebookInstanceName &#91;required&#93; The name of the Amazon SageMaker notebook instance to delete.
#'
#' @return
#' An empty list.
#'
#' @section Request syntax:
#' ```
#' svc$delete_notebook_instance(
#'   NotebookInstanceName = "string"
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname sagemaker_delete_notebook_instance
sagemaker_delete_notebook_instance <- function(NotebookInstanceName) {
  op <- new_operation(
    name = "DeleteNotebookInstance",
    http_method = "POST",
    http_path = "/",
    paginator = list()
  )
  input <- .sagemaker$delete_notebook_instance_input(NotebookInstanceName = NotebookInstanceName)
  output <- .sagemaker$delete_notebook_instance_output()
  config <- get_config()
  svc <- .sagemaker$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.sagemaker$operations$delete_notebook_instance <- sagemaker_delete_notebook_instance

#' Deletes a notebook instance lifecycle configuration
#'
#' @description
#' Deletes a notebook instance lifecycle configuration.
#'
#' @usage
#' sagemaker_delete_notebook_instance_lifecycle_config(
#'   NotebookInstanceLifecycleConfigName)
#'
#' @param NotebookInstanceLifecycleConfigName &#91;required&#93; The name of the lifecycle configuration to delete.
#'
#' @return
#' An empty list.
#'
#' @section Request syntax:
#' ```
#' svc$delete_notebook_instance_lifecycle_config(
#'   NotebookInstanceLifecycleConfigName = "string"
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname sagemaker_delete_notebook_instance_lifecycle_config
sagemaker_delete_notebook_instance_lifecycle_config <- function(NotebookInstanceLifecycleConfigName) {
  op <- new_operation(
    name = "DeleteNotebookInstanceLifecycleConfig",
    http_method = "POST",
    http_path = "/",
    paginator = list()
  )
  input <- .sagemaker$delete_notebook_instance_lifecycle_config_input(NotebookInstanceLifecycleConfigName = NotebookInstanceLifecycleConfigName)
  output <- .sagemaker$delete_notebook_instance_lifecycle_config_output()
  config <- get_config()
  svc <- .sagemaker$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.sagemaker$operations$delete_notebook_instance_lifecycle_config <- sagemaker_delete_notebook_instance_lifecycle_config

#' Deletes a pipeline if there are no in-progress executions
#'
#' @description
#' Deletes a pipeline if there are no in-progress executions.
#'
#' @usage
#' sagemaker_delete_pipeline(PipelineName, ClientRequestToken)
#'
#' @param PipelineName &#91;required&#93; The name of the pipeline to delete.
#' @param ClientRequestToken &#91;required&#93; A unique, case-sensitive identifier that you provide to ensure the
#' idempotency of the operation. An idempotent operation completes no more
#' than one time.
#'
#' @return
#' A list with the following syntax:
#' ```
#' list(
#'   PipelineArn = "string"
#' )
#' ```
#'
#' @section Request syntax:
#' ```
#' svc$delete_pipeline(
#'   PipelineName = "string",
#'   ClientRequestToken = "string"
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname sagemaker_delete_pipeline
sagemaker_delete_pipeline <- function(PipelineName, ClientRequestToken) {
  op <- new_operation(
    name = "DeletePipeline",
    http_method = "POST",
    http_path = "/",
    paginator = list()
  )
  input <- .sagemaker$delete_pipeline_input(PipelineName = PipelineName, ClientRequestToken = ClientRequestToken)
  output <- .sagemaker$delete_pipeline_output()
  config <- get_config()
  svc <- .sagemaker$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.sagemaker$operations$delete_pipeline <- sagemaker_delete_pipeline

#' Delete the specified project
#'
#' @description
#' Delete the specified project.
#'
#' @usage
#' sagemaker_delete_project(ProjectName)
#'
#' @param ProjectName &#91;required&#93; The name of the project to delete.
#'
#' @return
#' An empty list.
#'
#' @section Request syntax:
#' ```
#' svc$delete_project(
#'   ProjectName = "string"
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname sagemaker_delete_project
sagemaker_delete_project <- function(ProjectName) {
  op <- new_operation(
    name = "DeleteProject",
    http_method = "POST",
    http_path = "/",
    paginator = list()
  )
  input <- .sagemaker$delete_project_input(ProjectName = ProjectName)
  output <- .sagemaker$delete_project_output()
  config <- get_config()
  svc <- .sagemaker$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.sagemaker$operations$delete_project <- sagemaker_delete_project

#' Deletes the specified tags from an Amazon SageMaker resource
#'
#' @description
#' Deletes the specified tags from an Amazon SageMaker resource.
#' 
#' To list a resource's tags, use the [`list_tags`][sagemaker_list_tags]
#' API.
#' 
#' When you call this API to delete tags from a hyperparameter tuning job,
#' the deleted tags are not removed from training jobs that the
#' hyperparameter tuning job launched before you called this API.
#'
#' @usage
#' sagemaker_delete_tags(ResourceArn, TagKeys)
#'
#' @param ResourceArn &#91;required&#93; The Amazon Resource Name (ARN) of the resource whose tags you want to
#' delete.
#' @param TagKeys &#91;required&#93; An array or one or more tag keys to delete.
#'
#' @return
#' An empty list.
#'
#' @section Request syntax:
#' ```
#' svc$delete_tags(
#'   ResourceArn = "string",
#'   TagKeys = list(
#'     "string"
#'   )
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname sagemaker_delete_tags
sagemaker_delete_tags <- function(ResourceArn, TagKeys) {
  op <- new_operation(
    name = "DeleteTags",
    http_method = "POST",
    http_path = "/",
    paginator = list()
  )
  input <- .sagemaker$delete_tags_input(ResourceArn = ResourceArn, TagKeys = TagKeys)
  output <- .sagemaker$delete_tags_output()
  config <- get_config()
  svc <- .sagemaker$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.sagemaker$operations$delete_tags <- sagemaker_delete_tags

#' Deletes the specified trial
#'
#' @description
#' Deletes the specified trial. All trial components that make up the trial
#' must be deleted first. Use the
#' [`describe_trial_component`][sagemaker_describe_trial_component] API to
#' get the list of trial components.
#'
#' @usage
#' sagemaker_delete_trial(TrialName)
#'
#' @param TrialName &#91;required&#93; The name of the trial to delete.
#'
#' @return
#' A list with the following syntax:
#' ```
#' list(
#'   TrialArn = "string"
#' )
#' ```
#'
#' @section Request syntax:
#' ```
#' svc$delete_trial(
#'   TrialName = "string"
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname sagemaker_delete_trial
sagemaker_delete_trial <- function(TrialName) {
  op <- new_operation(
    name = "DeleteTrial",
    http_method = "POST",
    http_path = "/",
    paginator = list()
  )
  input <- .sagemaker$delete_trial_input(TrialName = TrialName)
  output <- .sagemaker$delete_trial_output()
  config <- get_config()
  svc <- .sagemaker$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.sagemaker$operations$delete_trial <- sagemaker_delete_trial

#' Deletes the specified trial component
#'
#' @description
#' Deletes the specified trial component. A trial component must be
#' disassociated from all trials before the trial component can be deleted.
#' To disassociate a trial component from a trial, call the
#' [`disassociate_trial_component`][sagemaker_disassociate_trial_component]
#' API.
#'
#' @usage
#' sagemaker_delete_trial_component(TrialComponentName)
#'
#' @param TrialComponentName &#91;required&#93; The name of the component to delete.
#'
#' @return
#' A list with the following syntax:
#' ```
#' list(
#'   TrialComponentArn = "string"
#' )
#' ```
#'
#' @section Request syntax:
#' ```
#' svc$delete_trial_component(
#'   TrialComponentName = "string"
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname sagemaker_delete_trial_component
sagemaker_delete_trial_component <- function(TrialComponentName) {
  op <- new_operation(
    name = "DeleteTrialComponent",
    http_method = "POST",
    http_path = "/",
    paginator = list()
  )
  input <- .sagemaker$delete_trial_component_input(TrialComponentName = TrialComponentName)
  output <- .sagemaker$delete_trial_component_output()
  config <- get_config()
  svc <- .sagemaker$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.sagemaker$operations$delete_trial_component <- sagemaker_delete_trial_component

#' Deletes a user profile
#'
#' @description
#' Deletes a user profile. When a user profile is deleted, the user loses
#' access to their EFS volume, including data, notebooks, and other
#' artifacts.
#'
#' @usage
#' sagemaker_delete_user_profile(DomainId, UserProfileName)
#'
#' @param DomainId &#91;required&#93; The domain ID.
#' @param UserProfileName &#91;required&#93; The user profile name.
#'
#' @return
#' An empty list.
#'
#' @section Request syntax:
#' ```
#' svc$delete_user_profile(
#'   DomainId = "string",
#'   UserProfileName = "string"
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname sagemaker_delete_user_profile
sagemaker_delete_user_profile <- function(DomainId, UserProfileName) {
  op <- new_operation(
    name = "DeleteUserProfile",
    http_method = "POST",
    http_path = "/",
    paginator = list()
  )
  input <- .sagemaker$delete_user_profile_input(DomainId = DomainId, UserProfileName = UserProfileName)
  output <- .sagemaker$delete_user_profile_output()
  config <- get_config()
  svc <- .sagemaker$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.sagemaker$operations$delete_user_profile <- sagemaker_delete_user_profile

#' Use this operation to delete a workforce
#'
#' @description
#' Use this operation to delete a workforce.
#' 
#' If you want to create a new workforce in an AWS Region where a workforce
#' already exists, use this operation to delete the existing workforce and
#' then use to create a new workforce.
#' 
#' If a private workforce contains one or more work teams, you must use the
#' operation to delete all work teams before you delete the workforce. If
#' you try to delete a workforce that contains one or more work teams, you
#' will recieve a `ResourceInUse` error.
#'
#' @usage
#' sagemaker_delete_workforce(WorkforceName)
#'
#' @param WorkforceName &#91;required&#93; The name of the workforce.
#'
#' @return
#' An empty list.
#'
#' @section Request syntax:
#' ```
#' svc$delete_workforce(
#'   WorkforceName = "string"
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname sagemaker_delete_workforce
sagemaker_delete_workforce <- function(WorkforceName) {
  op <- new_operation(
    name = "DeleteWorkforce",
    http_method = "POST",
    http_path = "/",
    paginator = list()
  )
  input <- .sagemaker$delete_workforce_input(WorkforceName = WorkforceName)
  output <- .sagemaker$delete_workforce_output()
  config <- get_config()
  svc <- .sagemaker$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.sagemaker$operations$delete_workforce <- sagemaker_delete_workforce

#' Deletes an existing work team
#'
#' @description
#' Deletes an existing work team. This operation can't be undone.
#'
#' @usage
#' sagemaker_delete_workteam(WorkteamName)
#'
#' @param WorkteamName &#91;required&#93; The name of the work team to delete.
#'
#' @return
#' A list with the following syntax:
#' ```
#' list(
#'   Success = TRUE|FALSE
#' )
#' ```
#'
#' @section Request syntax:
#' ```
#' svc$delete_workteam(
#'   WorkteamName = "string"
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname sagemaker_delete_workteam
sagemaker_delete_workteam <- function(WorkteamName) {
  op <- new_operation(
    name = "DeleteWorkteam",
    http_method = "POST",
    http_path = "/",
    paginator = list()
  )
  input <- .sagemaker$delete_workteam_input(WorkteamName = WorkteamName)
  output <- .sagemaker$delete_workteam_output()
  config <- get_config()
  svc <- .sagemaker$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.sagemaker$operations$delete_workteam <- sagemaker_delete_workteam

#' Deregisters the specified devices
#'
#' @description
#' Deregisters the specified devices. After you deregister a device, you
#' will need to re-register the devices.
#'
#' @usage
#' sagemaker_deregister_devices(DeviceFleetName, DeviceNames)
#'
#' @param DeviceFleetName &#91;required&#93; The name of the fleet the devices belong to.
#' @param DeviceNames &#91;required&#93; The unique IDs of the devices.
#'
#' @return
#' An empty list.
#'
#' @section Request syntax:
#' ```
#' svc$deregister_devices(
#'   DeviceFleetName = "string",
#'   DeviceNames = list(
#'     "string"
#'   )
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname sagemaker_deregister_devices
sagemaker_deregister_devices <- function(DeviceFleetName, DeviceNames) {
  op <- new_operation(
    name = "DeregisterDevices",
    http_method = "POST",
    http_path = "/",
    paginator = list()
  )
  input <- .sagemaker$deregister_devices_input(DeviceFleetName = DeviceFleetName, DeviceNames = DeviceNames)
  output <- .sagemaker$deregister_devices_output()
  config <- get_config()
  svc <- .sagemaker$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.sagemaker$operations$deregister_devices <- sagemaker_deregister_devices

#' Describes an action
#'
#' @description
#' Describes an action.
#'
#' @usage
#' sagemaker_describe_action(ActionName)
#'
#' @param ActionName &#91;required&#93; The name of the action to describe.
#'
#' @return
#' A list with the following syntax:
#' ```
#' list(
#'   ActionName = "string",
#'   ActionArn = "string",
#'   Source = list(
#'     SourceUri = "string",
#'     SourceType = "string",
#'     SourceId = "string"
#'   ),
#'   ActionType = "string",
#'   Description = "string",
#'   Status = "Unknown"|"InProgress"|"Completed"|"Failed"|"Stopping"|"Stopped",
#'   Properties = list(
#'     "string"
#'   ),
#'   CreationTime = as.POSIXct(
#'     "2015-01-01"
#'   ),
#'   CreatedBy = list(
#'     UserProfileArn = "string",
#'     UserProfileName = "string",
#'     DomainId = "string"
#'   ),
#'   LastModifiedTime = as.POSIXct(
#'     "2015-01-01"
#'   ),
#'   LastModifiedBy = list(
#'     UserProfileArn = "string",
#'     UserProfileName = "string",
#'     DomainId = "string"
#'   ),
#'   MetadataProperties = list(
#'     CommitId = "string",
#'     Repository = "string",
#'     GeneratedBy = "string",
#'     ProjectId = "string"
#'   )
#' )
#' ```
#'
#' @section Request syntax:
#' ```
#' svc$describe_action(
#'   ActionName = "string"
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname sagemaker_describe_action
sagemaker_describe_action <- function(ActionName) {
  op <- new_operation(
    name = "DescribeAction",
    http_method = "POST",
    http_path = "/",
    paginator = list()
  )
  input <- .sagemaker$describe_action_input(ActionName = ActionName)
  output <- .sagemaker$describe_action_output()
  config <- get_config()
  svc <- .sagemaker$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.sagemaker$operations$describe_action <- sagemaker_describe_action

#' Returns a description of the specified algorithm that is in your account
#'
#' @description
#' Returns a description of the specified algorithm that is in your
#' account.
#'
#' @usage
#' sagemaker_describe_algorithm(AlgorithmName)
#'
#' @param AlgorithmName &#91;required&#93; The name of the algorithm to describe.
#'
#' @return
#' A list with the following syntax:
#' ```
#' list(
#'   AlgorithmName = "string",
#'   AlgorithmArn = "string",
#'   AlgorithmDescription = "string",
#'   CreationTime = as.POSIXct(
#'     "2015-01-01"
#'   ),
#'   TrainingSpecification = list(
#'     TrainingImage = "string",
#'     TrainingImageDigest = "string",
#'     SupportedHyperParameters = list(
#'       list(
#'         Name = "string",
#'         Description = "string",
#'         Type = "Integer"|"Continuous"|"Categorical"|"FreeText",
#'         Range = list(
#'           IntegerParameterRangeSpecification = list(
#'             MinValue = "string",
#'             MaxValue = "string"
#'           ),
#'           ContinuousParameterRangeSpecification = list(
#'             MinValue = "string",
#'             MaxValue = "string"
#'           ),
#'           CategoricalParameterRangeSpecification = list(
#'             Values = list(
#'               "string"
#'             )
#'           )
#'         ),
#'         IsTunable = TRUE|FALSE,
#'         IsRequired = TRUE|FALSE,
#'         DefaultValue = "string"
#'       )
#'     ),
#'     SupportedTrainingInstanceTypes = list(
#'       "ml.m4.xlarge"|"ml.m4.2xlarge"|"ml.m4.4xlarge"|"ml.m4.10xlarge"|"ml.m4.16xlarge"|"ml.g4dn.xlarge"|"ml.g4dn.2xlarge"|"ml.g4dn.4xlarge"|"ml.g4dn.8xlarge"|"ml.g4dn.12xlarge"|"ml.g4dn.16xlarge"|"ml.m5.large"|"ml.m5.xlarge"|"ml.m5.2xlarge"|"ml.m5.4xlarge"|"ml.m5.12xlarge"|"ml.m5.24xlarge"|"ml.c4.xlarge"|"ml.c4.2xlarge"|"ml.c4.4xlarge"|"ml.c4.8xlarge"|"ml.p2.xlarge"|"ml.p2.8xlarge"|"ml.p2.16xlarge"|"ml.p3.2xlarge"|"ml.p3.8xlarge"|"ml.p3.16xlarge"|"ml.p3dn.24xlarge"|"ml.p4d.24xlarge"|"ml.c5.xlarge"|"ml.c5.2xlarge"|"ml.c5.4xlarge"|"ml.c5.9xlarge"|"ml.c5.18xlarge"|"ml.c5n.xlarge"|"ml.c5n.2xlarge"|"ml.c5n.4xlarge"|"ml.c5n.9xlarge"|"ml.c5n.18xlarge"
#'     ),
#'     SupportsDistributedTraining = TRUE|FALSE,
#'     MetricDefinitions = list(
#'       list(
#'         Name = "string",
#'         Regex = "string"
#'       )
#'     ),
#'     TrainingChannels = list(
#'       list(
#'         Name = "string",
#'         Description = "string",
#'         IsRequired = TRUE|FALSE,
#'         SupportedContentTypes = list(
#'           "string"
#'         ),
#'         SupportedCompressionTypes = list(
#'           "None"|"Gzip"
#'         ),
#'         SupportedInputModes = list(
#'           "Pipe"|"File"
#'         )
#'       )
#'     ),
#'     SupportedTuningJobObjectiveMetrics = list(
#'       list(
#'         Type = "Maximize"|"Minimize",
#'         MetricName = "string"
#'       )
#'     )
#'   ),
#'   InferenceSpecification = list(
#'     Containers = list(
#'       list(
#'         ContainerHostname = "string",
#'         Image = "string",
#'         ImageDigest = "string",
#'         ModelDataUrl = "string",
#'         ProductId = "string"
#'       )
#'     ),
#'     SupportedTransformInstanceTypes = list(
#'       "ml.m4.xlarge"|"ml.m4.2xlarge"|"ml.m4.4xlarge"|"ml.m4.10xlarge"|"ml.m4.16xlarge"|"ml.c4.xlarge"|"ml.c4.2xlarge"|"ml.c4.4xlarge"|"ml.c4.8xlarge"|"ml.p2.xlarge"|"ml.p2.8xlarge"|"ml.p2.16xlarge"|"ml.p3.2xlarge"|"ml.p3.8xlarge"|"ml.p3.16xlarge"|"ml.c5.xlarge"|"ml.c5.2xlarge"|"ml.c5.4xlarge"|"ml.c5.9xlarge"|"ml.c5.18xlarge"|"ml.m5.large"|"ml.m5.xlarge"|"ml.m5.2xlarge"|"ml.m5.4xlarge"|"ml.m5.12xlarge"|"ml.m5.24xlarge"
#'     ),
#'     SupportedRealtimeInferenceInstanceTypes = list(
#'       "ml.t2.medium"|"ml.t2.large"|"ml.t2.xlarge"|"ml.t2.2xlarge"|"ml.m4.xlarge"|"ml.m4.2xlarge"|"ml.m4.4xlarge"|"ml.m4.10xlarge"|"ml.m4.16xlarge"|"ml.m5.large"|"ml.m5.xlarge"|"ml.m5.2xlarge"|"ml.m5.4xlarge"|"ml.m5.12xlarge"|"ml.m5.24xlarge"|"ml.m5d.large"|"ml.m5d.xlarge"|"ml.m5d.2xlarge"|"ml.m5d.4xlarge"|"ml.m5d.12xlarge"|"ml.m5d.24xlarge"|"ml.c4.large"|"ml.c4.xlarge"|"ml.c4.2xlarge"|"ml.c4.4xlarge"|"ml.c4.8xlarge"|"ml.p2.xlarge"|"ml.p2.8xlarge"|"ml.p2.16xlarge"|"ml.p3.2xlarge"|"ml.p3.8xlarge"|"ml.p3.16xlarge"|"ml.c5.large"|"ml.c5.xlarge"|"ml.c5.2xlarge"|"ml.c5.4xlarge"|"ml.c5.9xlarge"|"ml.c5.18xlarge"|"ml.c5d.large"|"ml.c5d.xlarge"|"ml.c5d.2xlarge"|"ml.c5d.4xlarge"|"ml.c5d.9xlarge"|"ml.c5d.18xlarge"|"ml.g4dn.xlarge"|"ml.g4dn.2xlarge"|"ml.g4dn.4xlarge"|"ml.g4dn.8xlarge"|"ml.g4dn.12xlarge"|"ml.g4dn.16xlarge"|"ml.r5.large"|"ml.r5.xlarge"|"ml.r5.2xlarge"|"ml.r5.4xlarge"|"ml.r5.12xlarge"|"ml.r5.24xlarge"|"ml.r5d.large"|"ml.r5d.xlarge"|"ml.r5d.2xlarge"|"ml.r5d.4xlarge"|"ml.r5d.12xlarge"|"ml.r5d.24xlarge"|"ml.inf1.xlarge"|"ml.inf1.2xlarge"|"ml.inf1.6xlarge"|"ml.inf1.24xlarge"
#'     ),
#'     SupportedContentTypes = list(
#'       "string"
#'     ),
#'     SupportedResponseMIMETypes = list(
#'       "string"
#'     )
#'   ),
#'   ValidationSpecification = list(
#'     ValidationRole = "string",
#'     ValidationProfiles = list(
#'       list(
#'         ProfileName = "string",
#'         TrainingJobDefinition = list(
#'           TrainingInputMode = "Pipe"|"File",
#'           HyperParameters = list(
#'             "string"
#'           ),
#'           InputDataConfig = list(
#'             list(
#'               ChannelName = "string",
#'               DataSource = list(
#'                 S3DataSource = list(
#'                   S3DataType = "ManifestFile"|"S3Prefix"|"AugmentedManifestFile",
#'                   S3Uri = "string",
#'                   S3DataDistributionType = "FullyReplicated"|"ShardedByS3Key",
#'                   AttributeNames = list(
#'                     "string"
#'                   )
#'                 ),
#'                 FileSystemDataSource = list(
#'                   FileSystemId = "string",
#'                   FileSystemAccessMode = "rw"|"ro",
#'                   FileSystemType = "EFS"|"FSxLustre",
#'                   DirectoryPath = "string"
#'                 )
#'               ),
#'               ContentType = "string",
#'               CompressionType = "None"|"Gzip",
#'               RecordWrapperType = "None"|"RecordIO",
#'               InputMode = "Pipe"|"File",
#'               ShuffleConfig = list(
#'                 Seed = 123
#'               )
#'             )
#'           ),
#'           OutputDataConfig = list(
#'             KmsKeyId = "string",
#'             S3OutputPath = "string"
#'           ),
#'           ResourceConfig = list(
#'             InstanceType = "ml.m4.xlarge"|"ml.m4.2xlarge"|"ml.m4.4xlarge"|"ml.m4.10xlarge"|"ml.m4.16xlarge"|"ml.g4dn.xlarge"|"ml.g4dn.2xlarge"|"ml.g4dn.4xlarge"|"ml.g4dn.8xlarge"|"ml.g4dn.12xlarge"|"ml.g4dn.16xlarge"|"ml.m5.large"|"ml.m5.xlarge"|"ml.m5.2xlarge"|"ml.m5.4xlarge"|"ml.m5.12xlarge"|"ml.m5.24xlarge"|"ml.c4.xlarge"|"ml.c4.2xlarge"|"ml.c4.4xlarge"|"ml.c4.8xlarge"|"ml.p2.xlarge"|"ml.p2.8xlarge"|"ml.p2.16xlarge"|"ml.p3.2xlarge"|"ml.p3.8xlarge"|"ml.p3.16xlarge"|"ml.p3dn.24xlarge"|"ml.p4d.24xlarge"|"ml.c5.xlarge"|"ml.c5.2xlarge"|"ml.c5.4xlarge"|"ml.c5.9xlarge"|"ml.c5.18xlarge"|"ml.c5n.xlarge"|"ml.c5n.2xlarge"|"ml.c5n.4xlarge"|"ml.c5n.9xlarge"|"ml.c5n.18xlarge",
#'             InstanceCount = 123,
#'             VolumeSizeInGB = 123,
#'             VolumeKmsKeyId = "string"
#'           ),
#'           StoppingCondition = list(
#'             MaxRuntimeInSeconds = 123,
#'             MaxWaitTimeInSeconds = 123
#'           )
#'         ),
#'         TransformJobDefinition = list(
#'           MaxConcurrentTransforms = 123,
#'           MaxPayloadInMB = 123,
#'           BatchStrategy = "MultiRecord"|"SingleRecord",
#'           Environment = list(
#'             "string"
#'           ),
#'           TransformInput = list(
#'             DataSource = list(
#'               S3DataSource = list(
#'                 S3DataType = "ManifestFile"|"S3Prefix"|"AugmentedManifestFile",
#'                 S3Uri = "string"
#'               )
#'             ),
#'             ContentType = "string",
#'             CompressionType = "None"|"Gzip",
#'             SplitType = "None"|"Line"|"RecordIO"|"TFRecord"
#'           ),
#'           TransformOutput = list(
#'             S3OutputPath = "string",
#'             Accept = "string",
#'             AssembleWith = "None"|"Line",
#'             KmsKeyId = "string"
#'           ),
#'           TransformResources = list(
#'             InstanceType = "ml.m4.xlarge"|"ml.m4.2xlarge"|"ml.m4.4xlarge"|"ml.m4.10xlarge"|"ml.m4.16xlarge"|"ml.c4.xlarge"|"ml.c4.2xlarge"|"ml.c4.4xlarge"|"ml.c4.8xlarge"|"ml.p2.xlarge"|"ml.p2.8xlarge"|"ml.p2.16xlarge"|"ml.p3.2xlarge"|"ml.p3.8xlarge"|"ml.p3.16xlarge"|"ml.c5.xlarge"|"ml.c5.2xlarge"|"ml.c5.4xlarge"|"ml.c5.9xlarge"|"ml.c5.18xlarge"|"ml.m5.large"|"ml.m5.xlarge"|"ml.m5.2xlarge"|"ml.m5.4xlarge"|"ml.m5.12xlarge"|"ml.m5.24xlarge",
#'             InstanceCount = 123,
#'             VolumeKmsKeyId = "string"
#'           )
#'         )
#'       )
#'     )
#'   ),
#'   AlgorithmStatus = "Pending"|"InProgress"|"Completed"|"Failed"|"Deleting",
#'   AlgorithmStatusDetails = list(
#'     ValidationStatuses = list(
#'       list(
#'         Name = "string",
#'         Status = "NotStarted"|"InProgress"|"Completed"|"Failed",
#'         FailureReason = "string"
#'       )
#'     ),
#'     ImageScanStatuses = list(
#'       list(
#'         Name = "string",
#'         Status = "NotStarted"|"InProgress"|"Completed"|"Failed",
#'         FailureReason = "string"
#'       )
#'     )
#'   ),
#'   ProductId = "string",
#'   CertifyForMarketplace = TRUE|FALSE
#' )
#' ```
#'
#' @section Request syntax:
#' ```
#' svc$describe_algorithm(
#'   AlgorithmName = "string"
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname sagemaker_describe_algorithm
sagemaker_describe_algorithm <- function(AlgorithmName) {
  op <- new_operation(
    name = "DescribeAlgorithm",
    http_method = "POST",
    http_path = "/",
    paginator = list()
  )
  input <- .sagemaker$describe_algorithm_input(AlgorithmName = AlgorithmName)
  output <- .sagemaker$describe_algorithm_output()
  config <- get_config()
  svc <- .sagemaker$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.sagemaker$operations$describe_algorithm <- sagemaker_describe_algorithm

#' Describes the app
#'
#' @description
#' Describes the app.
#'
#' @usage
#' sagemaker_describe_app(DomainId, UserProfileName, AppType, AppName)
#'
#' @param DomainId &#91;required&#93; The domain ID.
#' @param UserProfileName &#91;required&#93; The user profile name.
#' @param AppType &#91;required&#93; The type of app.
#' @param AppName &#91;required&#93; The name of the app.
#'
#' @return
#' A list with the following syntax:
#' ```
#' list(
#'   AppArn = "string",
#'   AppType = "JupyterServer"|"KernelGateway"|"TensorBoard",
#'   AppName = "string",
#'   DomainId = "string",
#'   UserProfileName = "string",
#'   Status = "Deleted"|"Deleting"|"Failed"|"InService"|"Pending",
#'   LastHealthCheckTimestamp = as.POSIXct(
#'     "2015-01-01"
#'   ),
#'   LastUserActivityTimestamp = as.POSIXct(
#'     "2015-01-01"
#'   ),
#'   CreationTime = as.POSIXct(
#'     "2015-01-01"
#'   ),
#'   FailureReason = "string",
#'   ResourceSpec = list(
#'     SageMakerImageArn = "string",
#'     SageMakerImageVersionArn = "string",
#'     InstanceType = "system"|"ml.t3.micro"|"ml.t3.small"|"ml.t3.medium"|"ml.t3.large"|"ml.t3.xlarge"|"ml.t3.2xlarge"|"ml.m5.large"|"ml.m5.xlarge"|"ml.m5.2xlarge"|"ml.m5.4xlarge"|"ml.m5.8xlarge"|"ml.m5.12xlarge"|"ml.m5.16xlarge"|"ml.m5.24xlarge"|"ml.c5.large"|"ml.c5.xlarge"|"ml.c5.2xlarge"|"ml.c5.4xlarge"|"ml.c5.9xlarge"|"ml.c5.12xlarge"|"ml.c5.18xlarge"|"ml.c5.24xlarge"|"ml.p3.2xlarge"|"ml.p3.8xlarge"|"ml.p3.16xlarge"|"ml.g4dn.xlarge"|"ml.g4dn.2xlarge"|"ml.g4dn.4xlarge"|"ml.g4dn.8xlarge"|"ml.g4dn.12xlarge"|"ml.g4dn.16xlarge"
#'   )
#' )
#' ```
#'
#' @section Request syntax:
#' ```
#' svc$describe_app(
#'   DomainId = "string",
#'   UserProfileName = "string",
#'   AppType = "JupyterServer"|"KernelGateway"|"TensorBoard",
#'   AppName = "string"
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname sagemaker_describe_app
sagemaker_describe_app <- function(DomainId, UserProfileName, AppType, AppName) {
  op <- new_operation(
    name = "DescribeApp",
    http_method = "POST",
    http_path = "/",
    paginator = list()
  )
  input <- .sagemaker$describe_app_input(DomainId = DomainId, UserProfileName = UserProfileName, AppType = AppType, AppName = AppName)
  output <- .sagemaker$describe_app_output()
  config <- get_config()
  svc <- .sagemaker$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.sagemaker$operations$describe_app <- sagemaker_describe_app

#' Describes an AppImageConfig
#'
#' @description
#' Describes an AppImageConfig.
#'
#' @usage
#' sagemaker_describe_app_image_config(AppImageConfigName)
#'
#' @param AppImageConfigName &#91;required&#93; The name of the AppImageConfig to describe.
#'
#' @return
#' A list with the following syntax:
#' ```
#' list(
#'   AppImageConfigArn = "string",
#'   AppImageConfigName = "string",
#'   CreationTime = as.POSIXct(
#'     "2015-01-01"
#'   ),
#'   LastModifiedTime = as.POSIXct(
#'     "2015-01-01"
#'   ),
#'   KernelGatewayImageConfig = list(
#'     KernelSpecs = list(
#'       list(
#'         Name = "string",
#'         DisplayName = "string"
#'       )
#'     ),
#'     FileSystemConfig = list(
#'       MountPath = "string",
#'       DefaultUid = 123,
#'       DefaultGid = 123
#'     )
#'   )
#' )
#' ```
#'
#' @section Request syntax:
#' ```
#' svc$describe_app_image_config(
#'   AppImageConfigName = "string"
#' )
#' ```
#'
#' @keywords internal
#'
#' @rdname sagemaker_describe_app_image_config
sagemaker_describe_app_image_config <- function(AppImageConfigName) {
  op <- new_operation(
    name = "DescribeAppImageConfig",
    http_method = "POST",
    http_path = "/",
    paginator = list()
  )
  input <- .sagemaker$describe_app_image_config_input(AppImageConfigName = AppImageConfigName)
  output <- .sagemaker$describe_app_image_config_output()
  config <- get_config()
  svc <- .sagemaker$service(config)
  request <- new_request(svc, op, input, output)
  response <- send_request(request)
  return(response)
}
.sagemaker$operations$describe_app_image_config <- sagemaker_describe_app_image_config

#' Describes an artifact
#'
#' @description
#' Describes an artifact.
#'
#' @usage
#' sagemaker_describe_artifact(ArtifactArn)
#'
#' @param ArtifactArn &#91;required&#93; The Amazon Resource Name (ARN) of the artifact to describe.
#'
#' @return
#' A list with the following syntax:
#' ```
#' list(
#'   ArtifactName = "string",
#'   ArtifactArn = "string",
#'   Source = list(
#'     SourceUri = "string",
#'     SourceTypes = list(
#'       list(
#'         SourceIdType = "MD5Hash"|"S3ETag"|"S3Version"|"Custom",
#'         Value = "string"
#'       )
#'     )
#'   ),
#'   ArtifactType = "string",
#'   Properties = list(
#'     "string"
#'   ),
#'   CreationTime = as.POSIXct(
#'     "2015-01-01"
#'   ),
#'   CreatedBy = list(
#'     UserProfileArn = "string",
#'     UserProfileName = "string",
#'     DomainId = "string"
#'   ),
#'   LastModifiedTime = as.POSIXct(
#'     "2015-01-01"
#'   ),
#'   LastModifiedBy = list(
#'     UserProfileArn = "string",
#'     UserProfileName = "string",
#'     DomainId = "string"
#'   ),
#'   MetadataProperties = list(
#'     CommitId = "string",
#'     Repository = "string",
#'     GeneratedBy = "string",
#'     ProjectId = "string"
#'   )
#' )
#' ```
#'
#' @section Request syntax:
#' ```
#' svc$des