aws-sdk-sagemaker 1.8.0 → 1.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -112,6 +112,32 @@ module Aws::SageMaker
112
112
  include Aws::Structure
113
113
  end
114
114
 
115
+ # A list of categorical hyperparameters to tune.
116
+ #
117
+ # @note When making an API call, you may pass CategoricalParameterRange
118
+ # data as a hash:
119
+ #
120
+ # {
121
+ # name: "ParameterKey", # required
122
+ # values: ["ParameterValue"], # required
123
+ # }
124
+ #
125
+ # @!attribute [rw] name
126
+ # The name of the categorical hyperparameter to tune.
127
+ # @return [String]
128
+ #
129
+ # @!attribute [rw] values
130
+ # A list of the categories for the hyperparameter.
131
+ # @return [Array<String>]
132
+ #
133
+ # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CategoricalParameterRange AWS API Documentation
134
+ #
135
+ class CategoricalParameterRange < Struct.new(
136
+ :name,
137
+ :values)
138
+ include Aws::Structure
139
+ end
140
+
115
141
  # A channel is a named input source that training algorithms can
116
142
  # consume.
117
143
  #
@@ -146,14 +172,14 @@ module Aws::SageMaker
146
172
  #
147
173
  # @!attribute [rw] compression_type
148
174
  # If training data is compressed, the compression type. The default
149
- # value is `None`. `CompressionType` is used only in PIPE input mode.
150
- # In FILE mode, leave this field unset or set it to None.
175
+ # value is `None`. `CompressionType` is used only in Pipe input mode.
176
+ # In File mode, leave this field unset or set it to None.
151
177
  # @return [String]
152
178
  #
153
179
  # @!attribute [rw] record_wrapper_type
154
180
  # Specify RecordIO as the value when input data is in raw format but
155
- # the training algorithm requires the RecordIO format, in which
156
- # caseAmazon SageMaker wraps each individual S3 object in a RecordIO
181
+ # the training algorithm requires the RecordIO format, in which case,
182
+ # Amazon SageMaker wraps each individual S3 object in a RecordIO
157
183
  # record. If the input data is already in RecordIO format, you don't
158
184
  # need to set this attribute. For more information, see [Create a
159
185
  # Dataset Using RecordIO][1].
@@ -231,6 +257,41 @@ module Aws::SageMaker
231
257
  include Aws::Structure
232
258
  end
233
259
 
260
+ # A list of continuous hyperparameters to tune.
261
+ #
262
+ # @note When making an API call, you may pass ContinuousParameterRange
263
+ # data as a hash:
264
+ #
265
+ # {
266
+ # name: "ParameterKey", # required
267
+ # min_value: "ParameterValue", # required
268
+ # max_value: "ParameterValue", # required
269
+ # }
270
+ #
271
+ # @!attribute [rw] name
272
+ # The name of the continuous hyperparameter to tune.
273
+ # @return [String]
274
+ #
275
+ # @!attribute [rw] min_value
276
+ # The minimum value for the hyperparameter. The tuning job uses
277
+ # floating-point values between this value and `MaxValue`for tuning.
278
+ # @return [String]
279
+ #
280
+ # @!attribute [rw] max_value
281
+ # The maximum value for the hyperparameter. The tuning job uses
282
+ # floating-point values between `MinValue` value and this value for
283
+ # tuning.
284
+ # @return [String]
285
+ #
286
+ # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ContinuousParameterRange AWS API Documentation
287
+ #
288
+ class ContinuousParameterRange < Struct.new(
289
+ :name,
290
+ :min_value,
291
+ :max_value)
292
+ include Aws::Structure
293
+ end
294
+
234
295
  # @note When making an API call, you may pass CreateEndpointConfigInput
235
296
  # data as a hash:
236
297
  #
@@ -363,6 +424,152 @@ module Aws::SageMaker
363
424
  include Aws::Structure
364
425
  end
365
426
 
427
+ # @note When making an API call, you may pass CreateHyperParameterTuningJobRequest
428
+ # data as a hash:
429
+ #
430
+ # {
431
+ # hyper_parameter_tuning_job_name: "HyperParameterTuningJobName", # required
432
+ # hyper_parameter_tuning_job_config: { # required
433
+ # strategy: "Bayesian", # required, accepts Bayesian
434
+ # hyper_parameter_tuning_job_objective: { # required
435
+ # type: "Maximize", # required, accepts Maximize, Minimize
436
+ # metric_name: "MetricName", # required
437
+ # },
438
+ # resource_limits: { # required
439
+ # max_number_of_training_jobs: 1, # required
440
+ # max_parallel_training_jobs: 1, # required
441
+ # },
442
+ # parameter_ranges: { # required
443
+ # integer_parameter_ranges: [
444
+ # {
445
+ # name: "ParameterKey", # required
446
+ # min_value: "ParameterValue", # required
447
+ # max_value: "ParameterValue", # required
448
+ # },
449
+ # ],
450
+ # continuous_parameter_ranges: [
451
+ # {
452
+ # name: "ParameterKey", # required
453
+ # min_value: "ParameterValue", # required
454
+ # max_value: "ParameterValue", # required
455
+ # },
456
+ # ],
457
+ # categorical_parameter_ranges: [
458
+ # {
459
+ # name: "ParameterKey", # required
460
+ # values: ["ParameterValue"], # required
461
+ # },
462
+ # ],
463
+ # },
464
+ # },
465
+ # training_job_definition: { # required
466
+ # static_hyper_parameters: {
467
+ # "ParameterKey" => "ParameterValue",
468
+ # },
469
+ # algorithm_specification: { # required
470
+ # training_image: "AlgorithmImage", # required
471
+ # training_input_mode: "Pipe", # required, accepts Pipe, File
472
+ # metric_definitions: [
473
+ # {
474
+ # name: "MetricName", # required
475
+ # regex: "MetricRegex", # required
476
+ # },
477
+ # ],
478
+ # },
479
+ # role_arn: "RoleArn", # required
480
+ # input_data_config: [ # required
481
+ # {
482
+ # channel_name: "ChannelName", # required
483
+ # data_source: { # required
484
+ # s3_data_source: { # required
485
+ # s3_data_type: "ManifestFile", # required, accepts ManifestFile, S3Prefix
486
+ # s3_uri: "S3Uri", # required
487
+ # s3_data_distribution_type: "FullyReplicated", # accepts FullyReplicated, ShardedByS3Key
488
+ # },
489
+ # },
490
+ # content_type: "ContentType",
491
+ # compression_type: "None", # accepts None, Gzip
492
+ # record_wrapper_type: "None", # accepts None, RecordIO
493
+ # },
494
+ # ],
495
+ # vpc_config: {
496
+ # security_group_ids: ["SecurityGroupId"], # required
497
+ # subnets: ["SubnetId"], # required
498
+ # },
499
+ # output_data_config: { # required
500
+ # kms_key_id: "KmsKeyId",
501
+ # s3_output_path: "S3Uri", # required
502
+ # },
503
+ # resource_config: { # required
504
+ # instance_type: "ml.m4.xlarge", # required, accepts 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.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
505
+ # instance_count: 1, # required
506
+ # volume_size_in_gb: 1, # required
507
+ # volume_kms_key_id: "KmsKeyId",
508
+ # },
509
+ # stopping_condition: { # required
510
+ # max_runtime_in_seconds: 1,
511
+ # },
512
+ # },
513
+ # tags: [
514
+ # {
515
+ # key: "TagKey", # required
516
+ # value: "TagValue", # required
517
+ # },
518
+ # ],
519
+ # }
520
+ #
521
+ # @!attribute [rw] hyper_parameter_tuning_job_name
522
+ # The name of the tuning job. This name is the prefix for the names of
523
+ # all training jobs that this tuning job launches. The name must be
524
+ # unique within the same AWS account and AWS Region. Names are not
525
+ # case sensitive, and must be between 1-32 characters.
526
+ # @return [String]
527
+ #
528
+ # @!attribute [rw] hyper_parameter_tuning_job_config
529
+ # The object that describes the tuning job, including the search
530
+ # strategy, metric used to evaluate training jobs, ranges of
531
+ # parameters to search, and resource limits for the tuning job.
532
+ # @return [Types::HyperParameterTuningJobConfig]
533
+ #
534
+ # @!attribute [rw] training_job_definition
535
+ # The object that describes the training jobs that this tuning job
536
+ # launches, including static hyperparameters, input data
537
+ # configuration, output data configuration, resource configuration,
538
+ # and stopping condition.
539
+ # @return [Types::HyperParameterTrainingJobDefinition]
540
+ #
541
+ # @!attribute [rw] tags
542
+ # An array of key-value pairs. You can use tags to categorize your AWS
543
+ # resources in different ways, for example, by purpose, owner, or
544
+ # environment. For more information, see [Using Cost Allocation
545
+ # Tags][1] in the *AWS Billing and Cost Management User Guide*.
546
+ #
547
+ #
548
+ #
549
+ # [1]: http://docs.aws.amazon.com//awsaccountbilling/latest/aboutv2/cost-alloc-tags.html#allocation-what
550
+ # @return [Array<Types::Tag>]
551
+ #
552
+ # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateHyperParameterTuningJobRequest AWS API Documentation
553
+ #
554
+ class CreateHyperParameterTuningJobRequest < Struct.new(
555
+ :hyper_parameter_tuning_job_name,
556
+ :hyper_parameter_tuning_job_config,
557
+ :training_job_definition,
558
+ :tags)
559
+ include Aws::Structure
560
+ end
561
+
562
+ # @!attribute [rw] hyper_parameter_tuning_job_arn
563
+ # The Amazon Resource Name (ARN) of the tuning job.
564
+ # @return [String]
565
+ #
566
+ # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateHyperParameterTuningJobResponse AWS API Documentation
567
+ #
568
+ class CreateHyperParameterTuningJobResponse < Struct.new(
569
+ :hyper_parameter_tuning_job_arn)
570
+ include Aws::Structure
571
+ end
572
+
366
573
  # @note When making an API call, you may pass CreateModelInput
367
574
  # data as a hash:
368
575
  #
@@ -406,6 +613,11 @@ module Aws::SageMaker
406
613
  # of model hosting. For more information, see [Amazon SageMaker
407
614
  # Roles][1].
408
615
  #
616
+ # <note markdown="1"> To be able to pass this role to Amazon SageMaker, the caller of this
617
+ # API must have the `iam:PassRole` permission.
618
+ #
619
+ # </note>
620
+ #
409
621
  #
410
622
  #
411
623
  # [1]: http://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html
@@ -423,8 +635,8 @@ module Aws::SageMaker
423
635
  #
424
636
  # @!attribute [rw] vpc_config
425
637
  # A object that specifies the VPC that you want your model to connect
426
- # to. Control access to and from your training container by
427
- # configuring the VPC. For more information, see host-vpc.
638
+ # to. Control access to and from your model container by configuring
639
+ # the VPC. For more information, see host-vpc.
428
640
  # @return [Types::VpcConfig]
429
641
  #
430
642
  # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateModelInput AWS API Documentation
@@ -496,6 +708,11 @@ module Aws::SageMaker
496
708
  # permissions to assume this role. For more information, see [Amazon
497
709
  # SageMaker Roles][1].
498
710
  #
711
+ # <note markdown="1"> To be able to pass this role to Amazon SageMaker, the caller of this
712
+ # API must have the `iam:PassRole` permission.
713
+ #
714
+ # </note>
715
+ #
499
716
  #
500
717
  #
501
718
  # [1]: http://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html
@@ -702,9 +919,9 @@ module Aws::SageMaker
702
919
  # @return [String]
703
920
  #
704
921
  # @!attribute [rw] hyper_parameters
705
- # Algorithm-specific parameters. You set hyperparameters before you
706
- # start the learning process. Hyperparameters influence the quality of
707
- # the model. For a list of hyperparameters for each training algorithm
922
+ # Algorithm-specific parameters that influence the quality of the
923
+ # model. You set hyperparameters before you start the learning
924
+ # process. For a list of hyperparameters for each training algorithm
708
925
  # provided by Amazon SageMaker, see [Algorithms][1].
709
926
  #
710
927
  # You can specify a maximum of 100 hyperparameters. Each
@@ -739,6 +956,11 @@ module Aws::SageMaker
739
956
  # CloudWatch. You grant permissions for all of these tasks to an IAM
740
957
  # role. For more information, see [Amazon SageMaker Roles][1].
741
958
  #
959
+ # <note markdown="1"> To be able to pass this role to Amazon SageMaker, the caller of this
960
+ # API must have the `iam:PassRole` permission.
961
+ #
962
+ # </note>
963
+ #
742
964
  #
743
965
  #
744
966
  # [1]: http://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html
@@ -1097,6 +1319,96 @@ module Aws::SageMaker
1097
1319
  include Aws::Structure
1098
1320
  end
1099
1321
 
1322
+ # @note When making an API call, you may pass DescribeHyperParameterTuningJobRequest
1323
+ # data as a hash:
1324
+ #
1325
+ # {
1326
+ # hyper_parameter_tuning_job_name: "HyperParameterTuningJobName", # required
1327
+ # }
1328
+ #
1329
+ # @!attribute [rw] hyper_parameter_tuning_job_name
1330
+ # The name of the tuning job to describe.
1331
+ # @return [String]
1332
+ #
1333
+ # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeHyperParameterTuningJobRequest AWS API Documentation
1334
+ #
1335
+ class DescribeHyperParameterTuningJobRequest < Struct.new(
1336
+ :hyper_parameter_tuning_job_name)
1337
+ include Aws::Structure
1338
+ end
1339
+
1340
+ # @!attribute [rw] hyper_parameter_tuning_job_name
1341
+ # The name of the tuning job.
1342
+ # @return [String]
1343
+ #
1344
+ # @!attribute [rw] hyper_parameter_tuning_job_arn
1345
+ # The Amazon Resource Name (ARN) of the tuning job.
1346
+ # @return [String]
1347
+ #
1348
+ # @!attribute [rw] hyper_parameter_tuning_job_config
1349
+ # The object that specifies the configuration of the tuning job.
1350
+ # @return [Types::HyperParameterTuningJobConfig]
1351
+ #
1352
+ # @!attribute [rw] training_job_definition
1353
+ # The object that specifies the definition of the training jobs that
1354
+ # this tuning job launches.
1355
+ # @return [Types::HyperParameterTrainingJobDefinition]
1356
+ #
1357
+ # @!attribute [rw] hyper_parameter_tuning_job_status
1358
+ # The status of the tuning job: InProgress, Completed, Failed,
1359
+ # Stopping, or Stopped.
1360
+ # @return [String]
1361
+ #
1362
+ # @!attribute [rw] creation_time
1363
+ # The date and time that the tuning job started.
1364
+ # @return [Time]
1365
+ #
1366
+ # @!attribute [rw] hyper_parameter_tuning_end_time
1367
+ # The date and time that the tuning job ended.
1368
+ # @return [Time]
1369
+ #
1370
+ # @!attribute [rw] last_modified_time
1371
+ # The date and time that the status of the tuning job was modified.
1372
+ # @return [Time]
1373
+ #
1374
+ # @!attribute [rw] training_job_status_counters
1375
+ # The object that specifies the number of training jobs, categorized
1376
+ # by status, that this tuning job launched.
1377
+ # @return [Types::TrainingJobStatusCounters]
1378
+ #
1379
+ # @!attribute [rw] objective_status_counters
1380
+ # The object that specifies the number of training jobs, categorized
1381
+ # by the status of their final objective metric, that this tuning job
1382
+ # launched.
1383
+ # @return [Types::ObjectiveStatusCounters]
1384
+ #
1385
+ # @!attribute [rw] best_training_job
1386
+ # A object that describes the training job that completed with the
1387
+ # best current .
1388
+ # @return [Types::HyperParameterTrainingJobSummary]
1389
+ #
1390
+ # @!attribute [rw] failure_reason
1391
+ # If the tuning job failed, the reason it failed.
1392
+ # @return [String]
1393
+ #
1394
+ # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeHyperParameterTuningJobResponse AWS API Documentation
1395
+ #
1396
+ class DescribeHyperParameterTuningJobResponse < Struct.new(
1397
+ :hyper_parameter_tuning_job_name,
1398
+ :hyper_parameter_tuning_job_arn,
1399
+ :hyper_parameter_tuning_job_config,
1400
+ :training_job_definition,
1401
+ :hyper_parameter_tuning_job_status,
1402
+ :creation_time,
1403
+ :hyper_parameter_tuning_end_time,
1404
+ :last_modified_time,
1405
+ :training_job_status_counters,
1406
+ :objective_status_counters,
1407
+ :best_training_job,
1408
+ :failure_reason)
1409
+ include Aws::Structure
1410
+ end
1411
+
1100
1412
  # @note When making an API call, you may pass DescribeModelInput
1101
1413
  # data as a hash:
1102
1414
  #
@@ -1351,6 +1663,12 @@ module Aws::SageMaker
1351
1663
  # The Amazon Resource Name (ARN) of the training job.
1352
1664
  # @return [String]
1353
1665
  #
1666
+ # @!attribute [rw] tuning_job_arn
1667
+ # The Amazon Resource Name (ARN) of the associated hyperparameter
1668
+ # tuning job if the training job was launched by a hyperparameter
1669
+ # tuning job.
1670
+ # @return [String]
1671
+ #
1354
1672
  # @!attribute [rw] model_artifacts
1355
1673
  # Information about the Amazon S3 location that is configured for
1356
1674
  # storing model artifacts.
@@ -1434,11 +1752,21 @@ module Aws::SageMaker
1434
1752
  # @return [Time]
1435
1753
  #
1436
1754
  # @!attribute [rw] training_start_time
1437
- # A timestamp that indicates when training started.
1755
+ # Indicates the time when the training job starts on training
1756
+ # instances. You are billed for the time interval between this time
1757
+ # and the value of `TrainingEndTime`. The start time in CloudWatch
1758
+ # Logs might be later than this time. The difference is due to the
1759
+ # time it takes to download the training data and to the size of the
1760
+ # training container.
1438
1761
  # @return [Time]
1439
1762
  #
1440
1763
  # @!attribute [rw] training_end_time
1441
- # A timestamp that indicates when model training ended.
1764
+ # Indicates the time when the training job ends on training instances.
1765
+ # You are billed for the time interval between the value of
1766
+ # `TrainingStartTime` and this time. For successful jobs and stopped
1767
+ # jobs, this is the time after model artifacts are uploaded. For
1768
+ # failed jobs, this is the time when Amazon SageMaker detects a job
1769
+ # failure.
1442
1770
  # @return [Time]
1443
1771
  #
1444
1772
  # @!attribute [rw] last_modified_time
@@ -1451,6 +1779,7 @@ module Aws::SageMaker
1451
1779
  class DescribeTrainingJobResponse < Struct.new(
1452
1780
  :training_job_name,
1453
1781
  :training_job_arn,
1782
+ :tuning_job_arn,
1454
1783
  :model_artifacts,
1455
1784
  :training_job_status,
1456
1785
  :secondary_status,
@@ -1558,144 +1887,629 @@ module Aws::SageMaker
1558
1887
  include Aws::Structure
1559
1888
  end
1560
1889
 
1561
- # @note When making an API call, you may pass ListEndpointConfigsInput
1562
- # data as a hash:
1563
- #
1564
- # {
1565
- # sort_by: "Name", # accepts Name, CreationTime
1566
- # sort_order: "Ascending", # accepts Ascending, Descending
1567
- # next_token: "PaginationToken",
1568
- # max_results: 1,
1569
- # name_contains: "EndpointConfigNameContains",
1570
- # creation_time_before: Time.now,
1571
- # creation_time_after: Time.now,
1572
- # }
1573
- #
1574
- # @!attribute [rw] sort_by
1575
- # The field to sort results by. The default is `CreationTime`.
1576
- # @return [String]
1577
- #
1578
- # @!attribute [rw] sort_order
1579
- # The sort order for results. The default is `Ascending`.
1580
- # @return [String]
1890
+ # Shows the final value for the objective metric for a training job that
1891
+ # was launched by a hyperparameter tuning job. You define the objective
1892
+ # metric in the `HyperParameterTuningJobObjective` parameter of
1893
+ # HyperParameterTuningJobConfig.
1581
1894
  #
1582
- # @!attribute [rw] next_token
1583
- # If the result of the previous `ListEndpointConfig` request was
1584
- # truncated, the response includes a `NextToken`. To retrieve the next
1585
- # set of endpoint configurations, use the token in the next request.
1895
+ # @!attribute [rw] type
1896
+ # Whether to minimize or maximize the objective metric. Valid values
1897
+ # are Minimize and Maximize.
1586
1898
  # @return [String]
1587
1899
  #
1588
- # @!attribute [rw] max_results
1589
- # The maximum number of training jobs to return in the response.
1590
- # @return [Integer]
1591
- #
1592
- # @!attribute [rw] name_contains
1593
- # A string in the endpoint configuration name. This filter returns
1594
- # only endpoint configurations whose name contains the specified
1595
- # string.
1900
+ # @!attribute [rw] metric_name
1901
+ # The name of the objective metric.
1596
1902
  # @return [String]
1597
1903
  #
1598
- # @!attribute [rw] creation_time_before
1599
- # A filter that returns only endpoint configurations created before
1600
- # the specified time (timestamp).
1601
- # @return [Time]
1602
- #
1603
- # @!attribute [rw] creation_time_after
1604
- # A filter that returns only endpoint configurations created after the
1605
- # specified time (timestamp).
1606
- # @return [Time]
1904
+ # @!attribute [rw] value
1905
+ # The value of the objective metric.
1906
+ # @return [Float]
1607
1907
  #
1608
- # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListEndpointConfigsInput AWS API Documentation
1908
+ # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/FinalHyperParameterTuningJobObjectiveMetric AWS API Documentation
1609
1909
  #
1610
- class ListEndpointConfigsInput < Struct.new(
1611
- :sort_by,
1612
- :sort_order,
1613
- :next_token,
1614
- :max_results,
1615
- :name_contains,
1616
- :creation_time_before,
1617
- :creation_time_after)
1910
+ class FinalHyperParameterTuningJobObjectiveMetric < Struct.new(
1911
+ :type,
1912
+ :metric_name,
1913
+ :value)
1618
1914
  include Aws::Structure
1619
1915
  end
1620
1916
 
1621
- # @!attribute [rw] endpoint_configs
1622
- # An array of endpoint configurations.
1623
- # @return [Array<Types::EndpointConfigSummary>]
1624
- #
1625
- # @!attribute [rw] next_token
1626
- # If the response is truncated, Amazon SageMaker returns this token.
1627
- # To retrieve the next set of endpoint configurations, use it in the
1628
- # subsequent request
1629
- # @return [String]
1917
+ # Specifies which training algorithm to use for training jobs that a
1918
+ # hyperparameter tuning job launches and the metrics to monitor.
1630
1919
  #
1631
- # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListEndpointConfigsOutput AWS API Documentation
1632
- #
1633
- class ListEndpointConfigsOutput < Struct.new(
1634
- :endpoint_configs,
1635
- :next_token)
1636
- include Aws::Structure
1637
- end
1638
-
1639
- # @note When making an API call, you may pass ListEndpointsInput
1920
+ # @note When making an API call, you may pass HyperParameterAlgorithmSpecification
1640
1921
  # data as a hash:
1641
1922
  #
1642
1923
  # {
1643
- # sort_by: "Name", # accepts Name, CreationTime, Status
1644
- # sort_order: "Ascending", # accepts Ascending, Descending
1645
- # next_token: "PaginationToken",
1646
- # max_results: 1,
1647
- # name_contains: "EndpointNameContains",
1648
- # creation_time_before: Time.now,
1649
- # creation_time_after: Time.now,
1650
- # last_modified_time_before: Time.now,
1651
- # last_modified_time_after: Time.now,
1652
- # status_equals: "OutOfService", # accepts OutOfService, Creating, Updating, RollingBack, InService, Deleting, Failed
1924
+ # training_image: "AlgorithmImage", # required
1925
+ # training_input_mode: "Pipe", # required, accepts Pipe, File
1926
+ # metric_definitions: [
1927
+ # {
1928
+ # name: "MetricName", # required
1929
+ # regex: "MetricRegex", # required
1930
+ # },
1931
+ # ],
1653
1932
  # }
1654
1933
  #
1655
- # @!attribute [rw] sort_by
1656
- # Sorts the list of results. The default is `CreationTime`.
1934
+ # @!attribute [rw] training_image
1935
+ # The registry path of the Docker image that contains the training
1936
+ # algorithm. For information about Docker registry paths for built-in
1937
+ # algorithms, see sagemaker-algo-docker-registry-paths.
1657
1938
  # @return [String]
1658
1939
  #
1659
- # @!attribute [rw] sort_order
1660
- # The sort order for results. The default is `Ascending`.
1661
- # @return [String]
1940
+ # @!attribute [rw] training_input_mode
1941
+ # The input mode that the algorithm supports: File or Pipe. In File
1942
+ # input mode, Amazon SageMaker downloads the training data from Amazon
1943
+ # S3 to the storage volume that is attached to the training instance
1944
+ # and mounts the directory to the Docker volume for the training
1945
+ # container. In Pipe input mode, Amazon SageMaker streams data
1946
+ # directly from Amazon S3 to the container.
1662
1947
  #
1663
- # @!attribute [rw] next_token
1664
- # If the result of a `ListEndpoints` request was truncated, the
1665
- # response includes a `NextToken`. To retrieve the next set of
1666
- # endpoints, use the token in the next request.
1667
- # @return [String]
1948
+ # If you specify File mode, make sure that you provision the storage
1949
+ # volume that is attached to the training instance with enough
1950
+ # capacity to accommodate the training data downloaded from Amazon S3,
1951
+ # the model artifacts, and intermediate information.
1668
1952
  #
1669
- # @!attribute [rw] max_results
1670
- # The maximum number of endpoints to return in the response.
1671
- # @return [Integer]
1672
1953
  #
1673
- # @!attribute [rw] name_contains
1674
- # A string in endpoint names. This filter returns only endpoints whose
1675
- # name contains the specified string.
1676
- # @return [String]
1677
1954
  #
1678
- # @!attribute [rw] creation_time_before
1679
- # A filter that returns only endpoints that were created before the
1680
- # specified time (timestamp).
1681
- # @return [Time]
1955
+ # For more information about input modes, see [Algorithms][1].
1682
1956
  #
1683
- # @!attribute [rw] creation_time_after
1684
- # A filter that returns only endpoints that were created after the
1685
- # specified time (timestamp).
1686
- # @return [Time]
1687
1957
  #
1688
- # @!attribute [rw] last_modified_time_before
1689
- # A filter that returns only endpoints that were modified before the
1690
- # specified timestamp.
1691
- # @return [Time]
1692
1958
  #
1693
- # @!attribute [rw] last_modified_time_after
1694
- # A filter that returns only endpoints that were modified after the
1695
- # specified timestamp.
1696
- # @return [Time]
1959
+ # [1]: http://docs.aws.amazon.com/sagemaker/latest/dg/algos.html
1960
+ # @return [String]
1697
1961
  #
1698
- # @!attribute [rw] status_equals
1962
+ # @!attribute [rw] metric_definitions
1963
+ # An array of objects that specify the metrics that the algorithm
1964
+ # emits.
1965
+ # @return [Array<Types::MetricDefinition>]
1966
+ #
1967
+ # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/HyperParameterAlgorithmSpecification AWS API Documentation
1968
+ #
1969
+ class HyperParameterAlgorithmSpecification < Struct.new(
1970
+ :training_image,
1971
+ :training_input_mode,
1972
+ :metric_definitions)
1973
+ include Aws::Structure
1974
+ end
1975
+
1976
+ # Defines the training jobs launched by a hyperparameter tuning job.
1977
+ #
1978
+ # @note When making an API call, you may pass HyperParameterTrainingJobDefinition
1979
+ # data as a hash:
1980
+ #
1981
+ # {
1982
+ # static_hyper_parameters: {
1983
+ # "ParameterKey" => "ParameterValue",
1984
+ # },
1985
+ # algorithm_specification: { # required
1986
+ # training_image: "AlgorithmImage", # required
1987
+ # training_input_mode: "Pipe", # required, accepts Pipe, File
1988
+ # metric_definitions: [
1989
+ # {
1990
+ # name: "MetricName", # required
1991
+ # regex: "MetricRegex", # required
1992
+ # },
1993
+ # ],
1994
+ # },
1995
+ # role_arn: "RoleArn", # required
1996
+ # input_data_config: [ # required
1997
+ # {
1998
+ # channel_name: "ChannelName", # required
1999
+ # data_source: { # required
2000
+ # s3_data_source: { # required
2001
+ # s3_data_type: "ManifestFile", # required, accepts ManifestFile, S3Prefix
2002
+ # s3_uri: "S3Uri", # required
2003
+ # s3_data_distribution_type: "FullyReplicated", # accepts FullyReplicated, ShardedByS3Key
2004
+ # },
2005
+ # },
2006
+ # content_type: "ContentType",
2007
+ # compression_type: "None", # accepts None, Gzip
2008
+ # record_wrapper_type: "None", # accepts None, RecordIO
2009
+ # },
2010
+ # ],
2011
+ # vpc_config: {
2012
+ # security_group_ids: ["SecurityGroupId"], # required
2013
+ # subnets: ["SubnetId"], # required
2014
+ # },
2015
+ # output_data_config: { # required
2016
+ # kms_key_id: "KmsKeyId",
2017
+ # s3_output_path: "S3Uri", # required
2018
+ # },
2019
+ # resource_config: { # required
2020
+ # instance_type: "ml.m4.xlarge", # required, accepts 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.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
2021
+ # instance_count: 1, # required
2022
+ # volume_size_in_gb: 1, # required
2023
+ # volume_kms_key_id: "KmsKeyId",
2024
+ # },
2025
+ # stopping_condition: { # required
2026
+ # max_runtime_in_seconds: 1,
2027
+ # },
2028
+ # }
2029
+ #
2030
+ # @!attribute [rw] static_hyper_parameters
2031
+ # Specifies the values of hyperparameters that do not change for the
2032
+ # tuning job.
2033
+ # @return [Hash<String,String>]
2034
+ #
2035
+ # @!attribute [rw] algorithm_specification
2036
+ # The object that specifies the algorithm to use for the training jobs
2037
+ # that the tuning job launches.
2038
+ # @return [Types::HyperParameterAlgorithmSpecification]
2039
+ #
2040
+ # @!attribute [rw] role_arn
2041
+ # The Amazon Resource Name (ARN) of the IAM role associated with the
2042
+ # training jobs that the tuning job launches.
2043
+ # @return [String]
2044
+ #
2045
+ # @!attribute [rw] input_data_config
2046
+ # An array of objects that specify the input for the training jobs
2047
+ # that the tuning job launches.
2048
+ # @return [Array<Types::Channel>]
2049
+ #
2050
+ # @!attribute [rw] vpc_config
2051
+ # The object that specifies the VPC that you want the training jobs
2052
+ # that this hyperparameter tuning job launches to connect to. Control
2053
+ # access to and from your training container by configuring the VPC.
2054
+ # For more information, see train-vpc.
2055
+ # @return [Types::VpcConfig]
2056
+ #
2057
+ # @!attribute [rw] output_data_config
2058
+ # Specifies the path to the Amazon S3 bucket where you store model
2059
+ # artifacts from the training jobs that the tuning job launches.
2060
+ # @return [Types::OutputDataConfig]
2061
+ #
2062
+ # @!attribute [rw] resource_config
2063
+ # The resources, including the compute instances and storage volumes,
2064
+ # to use for the training jobs that the tuning job launches.
2065
+ #
2066
+ # Storage volumes store model artifacts and incremental states.
2067
+ # Training algorithms might also use storage volumes for scratch
2068
+ # space. If you want Amazon SageMaker to use the storage volume to
2069
+ # store the training data, choose `File` as the `TrainingInputMode` in
2070
+ # the algorithm specification. For distributed training algorithms,
2071
+ # specify an instance count greater than 1.
2072
+ # @return [Types::ResourceConfig]
2073
+ #
2074
+ # @!attribute [rw] stopping_condition
2075
+ # Sets a maximum duration for the training jobs that the tuning job
2076
+ # launches. Use this parameter to limit model training costs.
2077
+ #
2078
+ # To stop a job, Amazon SageMaker sends the algorithm the `SIGTERM`
2079
+ # signal. This delays job termination for 120 seconds. Algorithms
2080
+ # might use this 120-second window to save the model artifacts.
2081
+ #
2082
+ # When Amazon SageMaker terminates a job because the stopping
2083
+ # condition has been met, training algorithms provided by Amazon
2084
+ # SageMaker save the intermediate results of the job.
2085
+ # @return [Types::StoppingCondition]
2086
+ #
2087
+ # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/HyperParameterTrainingJobDefinition AWS API Documentation
2088
+ #
2089
+ class HyperParameterTrainingJobDefinition < Struct.new(
2090
+ :static_hyper_parameters,
2091
+ :algorithm_specification,
2092
+ :role_arn,
2093
+ :input_data_config,
2094
+ :vpc_config,
2095
+ :output_data_config,
2096
+ :resource_config,
2097
+ :stopping_condition)
2098
+ include Aws::Structure
2099
+ end
2100
+
2101
+ # Specifies summary information about a training job.
2102
+ #
2103
+ # @!attribute [rw] training_job_name
2104
+ # The name of the training job.
2105
+ # @return [String]
2106
+ #
2107
+ # @!attribute [rw] training_job_arn
2108
+ # The Amazon Resource Name (ARN) of the training job.
2109
+ # @return [String]
2110
+ #
2111
+ # @!attribute [rw] creation_time
2112
+ # The date and time that the training job was created.
2113
+ # @return [Time]
2114
+ #
2115
+ # @!attribute [rw] training_start_time
2116
+ # The date and time that the training job started.
2117
+ # @return [Time]
2118
+ #
2119
+ # @!attribute [rw] training_end_time
2120
+ # The date and time that the training job ended.
2121
+ # @return [Time]
2122
+ #
2123
+ # @!attribute [rw] training_job_status
2124
+ # The status of the training job.
2125
+ # @return [String]
2126
+ #
2127
+ # @!attribute [rw] tuned_hyper_parameters
2128
+ # A list of the hyperparameters for which you specified ranges to
2129
+ # search.
2130
+ # @return [Hash<String,String>]
2131
+ #
2132
+ # @!attribute [rw] failure_reason
2133
+ # The reason that the
2134
+ # @return [String]
2135
+ #
2136
+ # @!attribute [rw] final_hyper_parameter_tuning_job_objective_metric
2137
+ # The object that specifies the value of the objective metric of the
2138
+ # tuning job that launched this training job.
2139
+ # @return [Types::FinalHyperParameterTuningJobObjectiveMetric]
2140
+ #
2141
+ # @!attribute [rw] objective_status
2142
+ # The status of the objective metric for the training job:
2143
+ #
2144
+ # * Succeeded: The final objective metric for the training job was
2145
+ # evaluated by the hyperparameter tuning job and used in the
2146
+ # hyperparameter tuning process.
2147
+ #
2148
+ # ^
2149
+ # ^
2150
+ #
2151
+ # * Pending: The training job is in progress and evaluation of its
2152
+ # final objective metric is pending.
2153
+ #
2154
+ # ^
2155
+ # ^
2156
+ #
2157
+ # * Failed: The final objective metric for the training job was not
2158
+ # evaluated, and was not used in the hyperparameter tuning process.
2159
+ # This typically occurs when the training job failed or did not emit
2160
+ # an objective metric.
2161
+ #
2162
+ # ^
2163
+ # @return [String]
2164
+ #
2165
+ # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/HyperParameterTrainingJobSummary AWS API Documentation
2166
+ #
2167
+ class HyperParameterTrainingJobSummary < Struct.new(
2168
+ :training_job_name,
2169
+ :training_job_arn,
2170
+ :creation_time,
2171
+ :training_start_time,
2172
+ :training_end_time,
2173
+ :training_job_status,
2174
+ :tuned_hyper_parameters,
2175
+ :failure_reason,
2176
+ :final_hyper_parameter_tuning_job_objective_metric,
2177
+ :objective_status)
2178
+ include Aws::Structure
2179
+ end
2180
+
2181
+ # Configures a hyperparameter tuning job.
2182
+ #
2183
+ # @note When making an API call, you may pass HyperParameterTuningJobConfig
2184
+ # data as a hash:
2185
+ #
2186
+ # {
2187
+ # strategy: "Bayesian", # required, accepts Bayesian
2188
+ # hyper_parameter_tuning_job_objective: { # required
2189
+ # type: "Maximize", # required, accepts Maximize, Minimize
2190
+ # metric_name: "MetricName", # required
2191
+ # },
2192
+ # resource_limits: { # required
2193
+ # max_number_of_training_jobs: 1, # required
2194
+ # max_parallel_training_jobs: 1, # required
2195
+ # },
2196
+ # parameter_ranges: { # required
2197
+ # integer_parameter_ranges: [
2198
+ # {
2199
+ # name: "ParameterKey", # required
2200
+ # min_value: "ParameterValue", # required
2201
+ # max_value: "ParameterValue", # required
2202
+ # },
2203
+ # ],
2204
+ # continuous_parameter_ranges: [
2205
+ # {
2206
+ # name: "ParameterKey", # required
2207
+ # min_value: "ParameterValue", # required
2208
+ # max_value: "ParameterValue", # required
2209
+ # },
2210
+ # ],
2211
+ # categorical_parameter_ranges: [
2212
+ # {
2213
+ # name: "ParameterKey", # required
2214
+ # values: ["ParameterValue"], # required
2215
+ # },
2216
+ # ],
2217
+ # },
2218
+ # }
2219
+ #
2220
+ # @!attribute [rw] strategy
2221
+ # Specifies the search strategy for hyperparameters. Currently, the
2222
+ # only valid value is `Bayesian`.
2223
+ # @return [String]
2224
+ #
2225
+ # @!attribute [rw] hyper_parameter_tuning_job_objective
2226
+ # The object that specifies the objective metric for this tuning job.
2227
+ # @return [Types::HyperParameterTuningJobObjective]
2228
+ #
2229
+ # @!attribute [rw] resource_limits
2230
+ # The object that specifies the maximum number of training jobs and
2231
+ # parallel training jobs for this tuning job.
2232
+ # @return [Types::ResourceLimits]
2233
+ #
2234
+ # @!attribute [rw] parameter_ranges
2235
+ # The object that specifies the ranges of hyperparameters that this
2236
+ # tuning job searches.
2237
+ # @return [Types::ParameterRanges]
2238
+ #
2239
+ # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/HyperParameterTuningJobConfig AWS API Documentation
2240
+ #
2241
+ class HyperParameterTuningJobConfig < Struct.new(
2242
+ :strategy,
2243
+ :hyper_parameter_tuning_job_objective,
2244
+ :resource_limits,
2245
+ :parameter_ranges)
2246
+ include Aws::Structure
2247
+ end
2248
+
2249
+ # Defines the objective metric for a hyperparameter tuning job.
2250
+ # Hyperparameter tuning uses the value of this metric to evaluate the
2251
+ # training jobs it launches, and returns the training job that results
2252
+ # in either the highest or lowest value for this metric, depending on
2253
+ # the value you specify for the `Type` parameter.
2254
+ #
2255
+ # @note When making an API call, you may pass HyperParameterTuningJobObjective
2256
+ # data as a hash:
2257
+ #
2258
+ # {
2259
+ # type: "Maximize", # required, accepts Maximize, Minimize
2260
+ # metric_name: "MetricName", # required
2261
+ # }
2262
+ #
2263
+ # @!attribute [rw] type
2264
+ # Whether to minimize or maximize the objective metric.
2265
+ # @return [String]
2266
+ #
2267
+ # @!attribute [rw] metric_name
2268
+ # The name of the metric to use for the objective metric.
2269
+ # @return [String]
2270
+ #
2271
+ # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/HyperParameterTuningJobObjective AWS API Documentation
2272
+ #
2273
+ class HyperParameterTuningJobObjective < Struct.new(
2274
+ :type,
2275
+ :metric_name)
2276
+ include Aws::Structure
2277
+ end
2278
+
2279
+ # Provides summary information about a hyperparameter tuning job.
2280
+ #
2281
+ # @!attribute [rw] hyper_parameter_tuning_job_name
2282
+ # The name of the tuning job.
2283
+ # @return [String]
2284
+ #
2285
+ # @!attribute [rw] hyper_parameter_tuning_job_arn
2286
+ # The Amazon Resource Name (ARN) of the tuning job.
2287
+ # @return [String]
2288
+ #
2289
+ # @!attribute [rw] hyper_parameter_tuning_job_status
2290
+ # The status of the tuning job.
2291
+ # @return [String]
2292
+ #
2293
+ # @!attribute [rw] strategy
2294
+ # Specifies the search strategy hyperparameter tuning uses to choose
2295
+ # which hyperparameters to use for each iteration. Currently, the only
2296
+ # valid value is Bayesian.
2297
+ # @return [String]
2298
+ #
2299
+ # @!attribute [rw] creation_time
2300
+ # The date and time that the tuning job was created.
2301
+ # @return [Time]
2302
+ #
2303
+ # @!attribute [rw] hyper_parameter_tuning_end_time
2304
+ # The date and time that the tuning job ended.
2305
+ # @return [Time]
2306
+ #
2307
+ # @!attribute [rw] last_modified_time
2308
+ # The date and time that the tuning job was modified.
2309
+ # @return [Time]
2310
+ #
2311
+ # @!attribute [rw] training_job_status_counters
2312
+ # The object that specifies the numbers of training jobs, categorized
2313
+ # by status, that this tuning job launched.
2314
+ # @return [Types::TrainingJobStatusCounters]
2315
+ #
2316
+ # @!attribute [rw] objective_status_counters
2317
+ # The object that specifies the numbers of training jobs, categorized
2318
+ # by objective metric status, that this tuning job launched.
2319
+ # @return [Types::ObjectiveStatusCounters]
2320
+ #
2321
+ # @!attribute [rw] resource_limits
2322
+ # The object that specifies the maximum number of training jobs and
2323
+ # parallel training jobs allowed for this tuning job.
2324
+ # @return [Types::ResourceLimits]
2325
+ #
2326
+ # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/HyperParameterTuningJobSummary AWS API Documentation
2327
+ #
2328
+ class HyperParameterTuningJobSummary < Struct.new(
2329
+ :hyper_parameter_tuning_job_name,
2330
+ :hyper_parameter_tuning_job_arn,
2331
+ :hyper_parameter_tuning_job_status,
2332
+ :strategy,
2333
+ :creation_time,
2334
+ :hyper_parameter_tuning_end_time,
2335
+ :last_modified_time,
2336
+ :training_job_status_counters,
2337
+ :objective_status_counters,
2338
+ :resource_limits)
2339
+ include Aws::Structure
2340
+ end
2341
+
2342
+ # For a hyperparameter of the integer type, specifies the range that a
2343
+ # hyperparameter tuning job searches.
2344
+ #
2345
+ # @note When making an API call, you may pass IntegerParameterRange
2346
+ # data as a hash:
2347
+ #
2348
+ # {
2349
+ # name: "ParameterKey", # required
2350
+ # min_value: "ParameterValue", # required
2351
+ # max_value: "ParameterValue", # required
2352
+ # }
2353
+ #
2354
+ # @!attribute [rw] name
2355
+ # The name of the hyperparameter to search.
2356
+ # @return [String]
2357
+ #
2358
+ # @!attribute [rw] min_value
2359
+ # The minimum value of the hyperparameter to search.
2360
+ # @return [String]
2361
+ #
2362
+ # @!attribute [rw] max_value
2363
+ # The maximum value of the hyperparameter to search.
2364
+ # @return [String]
2365
+ #
2366
+ # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/IntegerParameterRange AWS API Documentation
2367
+ #
2368
+ class IntegerParameterRange < Struct.new(
2369
+ :name,
2370
+ :min_value,
2371
+ :max_value)
2372
+ include Aws::Structure
2373
+ end
2374
+
2375
+ # @note When making an API call, you may pass ListEndpointConfigsInput
2376
+ # data as a hash:
2377
+ #
2378
+ # {
2379
+ # sort_by: "Name", # accepts Name, CreationTime
2380
+ # sort_order: "Ascending", # accepts Ascending, Descending
2381
+ # next_token: "PaginationToken",
2382
+ # max_results: 1,
2383
+ # name_contains: "EndpointConfigNameContains",
2384
+ # creation_time_before: Time.now,
2385
+ # creation_time_after: Time.now,
2386
+ # }
2387
+ #
2388
+ # @!attribute [rw] sort_by
2389
+ # The field to sort results by. The default is `CreationTime`.
2390
+ # @return [String]
2391
+ #
2392
+ # @!attribute [rw] sort_order
2393
+ # The sort order for results. The default is `Ascending`.
2394
+ # @return [String]
2395
+ #
2396
+ # @!attribute [rw] next_token
2397
+ # If the result of the previous `ListEndpointConfig` request was
2398
+ # truncated, the response includes a `NextToken`. To retrieve the next
2399
+ # set of endpoint configurations, use the token in the next request.
2400
+ # @return [String]
2401
+ #
2402
+ # @!attribute [rw] max_results
2403
+ # The maximum number of training jobs to return in the response.
2404
+ # @return [Integer]
2405
+ #
2406
+ # @!attribute [rw] name_contains
2407
+ # A string in the endpoint configuration name. This filter returns
2408
+ # only endpoint configurations whose name contains the specified
2409
+ # string.
2410
+ # @return [String]
2411
+ #
2412
+ # @!attribute [rw] creation_time_before
2413
+ # A filter that returns only endpoint configurations created before
2414
+ # the specified time (timestamp).
2415
+ # @return [Time]
2416
+ #
2417
+ # @!attribute [rw] creation_time_after
2418
+ # A filter that returns only endpoint configurations created after the
2419
+ # specified time (timestamp).
2420
+ # @return [Time]
2421
+ #
2422
+ # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListEndpointConfigsInput AWS API Documentation
2423
+ #
2424
+ class ListEndpointConfigsInput < Struct.new(
2425
+ :sort_by,
2426
+ :sort_order,
2427
+ :next_token,
2428
+ :max_results,
2429
+ :name_contains,
2430
+ :creation_time_before,
2431
+ :creation_time_after)
2432
+ include Aws::Structure
2433
+ end
2434
+
2435
+ # @!attribute [rw] endpoint_configs
2436
+ # An array of endpoint configurations.
2437
+ # @return [Array<Types::EndpointConfigSummary>]
2438
+ #
2439
+ # @!attribute [rw] next_token
2440
+ # If the response is truncated, Amazon SageMaker returns this token.
2441
+ # To retrieve the next set of endpoint configurations, use it in the
2442
+ # subsequent request
2443
+ # @return [String]
2444
+ #
2445
+ # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListEndpointConfigsOutput AWS API Documentation
2446
+ #
2447
+ class ListEndpointConfigsOutput < Struct.new(
2448
+ :endpoint_configs,
2449
+ :next_token)
2450
+ include Aws::Structure
2451
+ end
2452
+
2453
+ # @note When making an API call, you may pass ListEndpointsInput
2454
+ # data as a hash:
2455
+ #
2456
+ # {
2457
+ # sort_by: "Name", # accepts Name, CreationTime, Status
2458
+ # sort_order: "Ascending", # accepts Ascending, Descending
2459
+ # next_token: "PaginationToken",
2460
+ # max_results: 1,
2461
+ # name_contains: "EndpointNameContains",
2462
+ # creation_time_before: Time.now,
2463
+ # creation_time_after: Time.now,
2464
+ # last_modified_time_before: Time.now,
2465
+ # last_modified_time_after: Time.now,
2466
+ # status_equals: "OutOfService", # accepts OutOfService, Creating, Updating, RollingBack, InService, Deleting, Failed
2467
+ # }
2468
+ #
2469
+ # @!attribute [rw] sort_by
2470
+ # Sorts the list of results. The default is `CreationTime`.
2471
+ # @return [String]
2472
+ #
2473
+ # @!attribute [rw] sort_order
2474
+ # The sort order for results. The default is `Ascending`.
2475
+ # @return [String]
2476
+ #
2477
+ # @!attribute [rw] next_token
2478
+ # If the result of a `ListEndpoints` request was truncated, the
2479
+ # response includes a `NextToken`. To retrieve the next set of
2480
+ # endpoints, use the token in the next request.
2481
+ # @return [String]
2482
+ #
2483
+ # @!attribute [rw] max_results
2484
+ # The maximum number of endpoints to return in the response.
2485
+ # @return [Integer]
2486
+ #
2487
+ # @!attribute [rw] name_contains
2488
+ # A string in endpoint names. This filter returns only endpoints whose
2489
+ # name contains the specified string.
2490
+ # @return [String]
2491
+ #
2492
+ # @!attribute [rw] creation_time_before
2493
+ # A filter that returns only endpoints that were created before the
2494
+ # specified time (timestamp).
2495
+ # @return [Time]
2496
+ #
2497
+ # @!attribute [rw] creation_time_after
2498
+ # A filter that returns only endpoints that were created after the
2499
+ # specified time (timestamp).
2500
+ # @return [Time]
2501
+ #
2502
+ # @!attribute [rw] last_modified_time_before
2503
+ # A filter that returns only endpoints that were modified before the
2504
+ # specified timestamp.
2505
+ # @return [Time]
2506
+ #
2507
+ # @!attribute [rw] last_modified_time_after
2508
+ # A filter that returns only endpoints that were modified after the
2509
+ # specified timestamp.
2510
+ # @return [Time]
2511
+ #
2512
+ # @!attribute [rw] status_equals
1699
2513
  # A filter that returns only endpoints with the specified status.
1700
2514
  # @return [String]
1701
2515
  #
@@ -1733,6 +2547,104 @@ module Aws::SageMaker
1733
2547
  include Aws::Structure
1734
2548
  end
1735
2549
 
2550
+ # @note When making an API call, you may pass ListHyperParameterTuningJobsRequest
2551
+ # data as a hash:
2552
+ #
2553
+ # {
2554
+ # next_token: "NextToken",
2555
+ # max_results: 1,
2556
+ # sort_by: "Name", # accepts Name, Status, CreationTime
2557
+ # sort_order: "Ascending", # accepts Ascending, Descending
2558
+ # name_contains: "NameContains",
2559
+ # creation_time_after: Time.now,
2560
+ # creation_time_before: Time.now,
2561
+ # last_modified_time_after: Time.now,
2562
+ # last_modified_time_before: Time.now,
2563
+ # status_equals: "Completed", # accepts Completed, InProgress, Failed, Stopped, Stopping
2564
+ # }
2565
+ #
2566
+ # @!attribute [rw] next_token
2567
+ # If the result of the previous `ListHyperParameterTuningJobs` request
2568
+ # was truncated, the response includes a `NextToken`. To retrieve the
2569
+ # next set of tuning jobs, use the token in the next request.
2570
+ # @return [String]
2571
+ #
2572
+ # @!attribute [rw] max_results
2573
+ # The maximum number of tuning jobs to return.
2574
+ # @return [Integer]
2575
+ #
2576
+ # @!attribute [rw] sort_by
2577
+ # The field to sort results by. The default is `Name`.
2578
+ # @return [String]
2579
+ #
2580
+ # @!attribute [rw] sort_order
2581
+ # The sort order for results. The default is `Ascending`.
2582
+ # @return [String]
2583
+ #
2584
+ # @!attribute [rw] name_contains
2585
+ # A string in the tuning job name. This filter returns only tuning
2586
+ # jobs whose name contains the specified string.
2587
+ # @return [String]
2588
+ #
2589
+ # @!attribute [rw] creation_time_after
2590
+ # A filter that returns only tuning jobs that were created after the
2591
+ # specified time.
2592
+ # @return [Time]
2593
+ #
2594
+ # @!attribute [rw] creation_time_before
2595
+ # A filter that returns only tuning jobs that were created before the
2596
+ # specified time.
2597
+ # @return [Time]
2598
+ #
2599
+ # @!attribute [rw] last_modified_time_after
2600
+ # A filter that returns only tuning jobs that were modified after the
2601
+ # specified time.
2602
+ # @return [Time]
2603
+ #
2604
+ # @!attribute [rw] last_modified_time_before
2605
+ # A filter that returns only tuning jobs that were modified before the
2606
+ # specified time.
2607
+ # @return [Time]
2608
+ #
2609
+ # @!attribute [rw] status_equals
2610
+ # A filter that returns only tuning jobs with the specified status.
2611
+ # @return [String]
2612
+ #
2613
+ # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListHyperParameterTuningJobsRequest AWS API Documentation
2614
+ #
2615
+ class ListHyperParameterTuningJobsRequest < Struct.new(
2616
+ :next_token,
2617
+ :max_results,
2618
+ :sort_by,
2619
+ :sort_order,
2620
+ :name_contains,
2621
+ :creation_time_after,
2622
+ :creation_time_before,
2623
+ :last_modified_time_after,
2624
+ :last_modified_time_before,
2625
+ :status_equals)
2626
+ include Aws::Structure
2627
+ end
2628
+
2629
+ # @!attribute [rw] hyper_parameter_tuning_job_summaries
2630
+ # A list of objects that describe the tuning jobs that the
2631
+ # `ListHyperParameterTuningJobs` request returned.
2632
+ # @return [Array<Types::HyperParameterTuningJobSummary>]
2633
+ #
2634
+ # @!attribute [rw] next_token
2635
+ # If the result of this `ListHyperParameterTuningJobs` request was
2636
+ # truncated, the response includes a `NextToken`. To retrieve the next
2637
+ # set of tuning jobs, use the token in the next request.
2638
+ # @return [String]
2639
+ #
2640
+ # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListHyperParameterTuningJobsResponse AWS API Documentation
2641
+ #
2642
+ class ListHyperParameterTuningJobsResponse < Struct.new(
2643
+ :hyper_parameter_tuning_job_summaries,
2644
+ :next_token)
2645
+ include Aws::Structure
2646
+ end
2647
+
1736
2648
  # @note When making an API call, you may pass ListModelsInput
1737
2649
  # data as a hash:
1738
2650
  #
@@ -2070,6 +2982,77 @@ module Aws::SageMaker
2070
2982
  include Aws::Structure
2071
2983
  end
2072
2984
 
2985
+ # @note When making an API call, you may pass ListTrainingJobsForHyperParameterTuningJobRequest
2986
+ # data as a hash:
2987
+ #
2988
+ # {
2989
+ # hyper_parameter_tuning_job_name: "HyperParameterTuningJobName", # required
2990
+ # next_token: "NextToken",
2991
+ # max_results: 1,
2992
+ # status_equals: "InProgress", # accepts InProgress, Completed, Failed, Stopping, Stopped
2993
+ # sort_by: "Name", # accepts Name, CreationTime, Status, FinalObjectiveMetricValue
2994
+ # sort_order: "Ascending", # accepts Ascending, Descending
2995
+ # }
2996
+ #
2997
+ # @!attribute [rw] hyper_parameter_tuning_job_name
2998
+ # The name of the tuning job whose training jobs you want to list.
2999
+ # @return [String]
3000
+ #
3001
+ # @!attribute [rw] next_token
3002
+ # If the result of the previous
3003
+ # `ListTrainingJobsForHyperParameterTuningJob` request was truncated,
3004
+ # the response includes a `NextToken`. To retrieve the next set of
3005
+ # training jobs, use the token in the next request.
3006
+ # @return [String]
3007
+ #
3008
+ # @!attribute [rw] max_results
3009
+ # The maximum number of training jobs to return.
3010
+ # @return [Integer]
3011
+ #
3012
+ # @!attribute [rw] status_equals
3013
+ # A filter that returns only training jobs with the specified status.
3014
+ # @return [String]
3015
+ #
3016
+ # @!attribute [rw] sort_by
3017
+ # The field to sort results by. The default is `Name`.
3018
+ # @return [String]
3019
+ #
3020
+ # @!attribute [rw] sort_order
3021
+ # The sort order for results. The default is `Ascending`.
3022
+ # @return [String]
3023
+ #
3024
+ # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListTrainingJobsForHyperParameterTuningJobRequest AWS API Documentation
3025
+ #
3026
+ class ListTrainingJobsForHyperParameterTuningJobRequest < Struct.new(
3027
+ :hyper_parameter_tuning_job_name,
3028
+ :next_token,
3029
+ :max_results,
3030
+ :status_equals,
3031
+ :sort_by,
3032
+ :sort_order)
3033
+ include Aws::Structure
3034
+ end
3035
+
3036
+ # @!attribute [rw] training_job_summaries
3037
+ # A list of objects that describe the training jobs that the
3038
+ # `ListTrainingJobsForHyperParameterTuningJob` request returned.
3039
+ # @return [Array<Types::HyperParameterTrainingJobSummary>]
3040
+ #
3041
+ # @!attribute [rw] next_token
3042
+ # If the result of this `ListTrainingJobsForHyperParameterTuningJob`
3043
+ # request was truncated, the response includes a `NextToken`. To
3044
+ # retrieve the next set of training jobs, use the token in the next
3045
+ # request.
3046
+ # @return [String]
3047
+ #
3048
+ # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListTrainingJobsForHyperParameterTuningJobResponse AWS API Documentation
3049
+ #
3050
+ class ListTrainingJobsForHyperParameterTuningJobResponse < Struct.new(
3051
+ :training_job_summaries,
3052
+ :next_token)
3053
+ include Aws::Structure
3054
+ end
3055
+
2073
3056
  # @note When making an API call, you may pass ListTrainingJobsRequest
2074
3057
  # data as a hash:
2075
3058
  #
@@ -2117,8 +3100,8 @@ module Aws::SageMaker
2117
3100
  # @return [Time]
2118
3101
  #
2119
3102
  # @!attribute [rw] name_contains
2120
- # A string in the training job name. This filter returns only models
2121
- # whose name contains the specified string.
3103
+ # A string in the training job name. This filter returns only training
3104
+ # jobs whose name contains the specified string.
2122
3105
  # @return [String]
2123
3106
  #
2124
3107
  # @!attribute [rw] status_equals
@@ -2168,6 +3151,37 @@ module Aws::SageMaker
2168
3151
  include Aws::Structure
2169
3152
  end
2170
3153
 
3154
+ # Specifies a metric that the training algorithm writes to `stderr` or
3155
+ # `stdout`. Amazon SageMakerHyperparamter tuning captures all defined
3156
+ # metrics. You specify one metric that a hyperparameter tuning job uses
3157
+ # as its objective metric to choose the best training job.
3158
+ #
3159
+ # @note When making an API call, you may pass MetricDefinition
3160
+ # data as a hash:
3161
+ #
3162
+ # {
3163
+ # name: "MetricName", # required
3164
+ # regex: "MetricRegex", # required
3165
+ # }
3166
+ #
3167
+ # @!attribute [rw] name
3168
+ # The name of the metric.
3169
+ # @return [String]
3170
+ #
3171
+ # @!attribute [rw] regex
3172
+ # A regular expression that searches the output of a training job and
3173
+ # gets the value of the metric. For more information about using
3174
+ # regular expressions to define metrics, see hpo-define-metrics.
3175
+ # @return [String]
3176
+ #
3177
+ # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/MetricDefinition AWS API Documentation
3178
+ #
3179
+ class MetricDefinition < Struct.new(
3180
+ :name,
3181
+ :regex)
3182
+ include Aws::Structure
3183
+ end
3184
+
2171
3185
  # Provides information about the location that is configured for storing
2172
3186
  # model artifacts.
2173
3187
  #
@@ -2327,6 +3341,39 @@ module Aws::SageMaker
2327
3341
  include Aws::Structure
2328
3342
  end
2329
3343
 
3344
+ # Specifies the number of training jobs that this hyperparameter tuning
3345
+ # job launched, categorized by the status of their objective metric. The
3346
+ # objective metric status shows whether the final objective metric for
3347
+ # the training job has been evaluated by the tuning job and used in the
3348
+ # hyperparameter tuning process.
3349
+ #
3350
+ # @!attribute [rw] succeeded
3351
+ # The number of training jobs whose final objective metric was
3352
+ # evaluated by the hyperparameter tuning job and used in the
3353
+ # hyperparameter tuning process.
3354
+ # @return [Integer]
3355
+ #
3356
+ # @!attribute [rw] pending
3357
+ # The number of training jobs that are in progress and pending
3358
+ # evaluation of their final objective metric.
3359
+ # @return [Integer]
3360
+ #
3361
+ # @!attribute [rw] failed
3362
+ # The number of training jobs whose final objective metric was not
3363
+ # evaluated and used in the hyperparameter tuning process. This
3364
+ # typically occurs when the training job failed or did not emit an
3365
+ # objective metric.
3366
+ # @return [Integer]
3367
+ #
3368
+ # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ObjectiveStatusCounters AWS API Documentation
3369
+ #
3370
+ class ObjectiveStatusCounters < Struct.new(
3371
+ :succeeded,
3372
+ :pending,
3373
+ :failed)
3374
+ include Aws::Structure
3375
+ end
3376
+
2330
3377
  # Provides information about how to store model training results (model
2331
3378
  # artifacts).
2332
3379
  #
@@ -2343,11 +3390,10 @@ module Aws::SageMaker
2343
3390
  # uses to encrypt the model artifacts at rest using Amazon S3
2344
3391
  # server-side encryption.
2345
3392
  #
2346
- # <note markdown="1"> If the configuration of the output S3 bucket requires server-side
2347
- # encryption for objects, and you don't provide the KMS key ID,
2348
- # Amazon SageMaker uses the default service key. For more information,
2349
- # see [KMS-Managed Encryption Keys][1] in Amazon Simple Storage
2350
- # Service developer guide.
3393
+ # <note markdown="1"> If you don't provide the KMS key ID, Amazon SageMaker uses the
3394
+ # default KMS key for Amazon S3 for your role's account. For more
3395
+ # information, see [KMS-Managed Encryption Keys][1] in Amazon Simple
3396
+ # Storage Service developer guide.
2351
3397
  #
2352
3398
  # </note>
2353
3399
  #
@@ -2376,6 +3422,61 @@ module Aws::SageMaker
2376
3422
  include Aws::Structure
2377
3423
  end
2378
3424
 
3425
+ # Specifies ranges of integer, continuous, and categorical
3426
+ # hyperparameters that a hyperparameter tuning job searches.
3427
+ #
3428
+ # @note When making an API call, you may pass ParameterRanges
3429
+ # data as a hash:
3430
+ #
3431
+ # {
3432
+ # integer_parameter_ranges: [
3433
+ # {
3434
+ # name: "ParameterKey", # required
3435
+ # min_value: "ParameterValue", # required
3436
+ # max_value: "ParameterValue", # required
3437
+ # },
3438
+ # ],
3439
+ # continuous_parameter_ranges: [
3440
+ # {
3441
+ # name: "ParameterKey", # required
3442
+ # min_value: "ParameterValue", # required
3443
+ # max_value: "ParameterValue", # required
3444
+ # },
3445
+ # ],
3446
+ # categorical_parameter_ranges: [
3447
+ # {
3448
+ # name: "ParameterKey", # required
3449
+ # values: ["ParameterValue"], # required
3450
+ # },
3451
+ # ],
3452
+ # }
3453
+ #
3454
+ # @!attribute [rw] integer_parameter_ranges
3455
+ # The array of IntegerParameterRange objects that specify ranges of
3456
+ # integer hyperparameters that a hyperparameter tuning job searches.
3457
+ # @return [Array<Types::IntegerParameterRange>]
3458
+ #
3459
+ # @!attribute [rw] continuous_parameter_ranges
3460
+ # The array of ContinuousParameterRange objects that specify ranges of
3461
+ # continuous hyperparameters that a hyperparameter tuning job
3462
+ # searches.
3463
+ # @return [Array<Types::ContinuousParameterRange>]
3464
+ #
3465
+ # @!attribute [rw] categorical_parameter_ranges
3466
+ # The array of CategoricalParameterRange objects that specify ranges
3467
+ # of categorical hyperparameters that a hyperparameter tuning job
3468
+ # searches.
3469
+ # @return [Array<Types::CategoricalParameterRange>]
3470
+ #
3471
+ # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ParameterRanges AWS API Documentation
3472
+ #
3473
+ class ParameterRanges < Struct.new(
3474
+ :integer_parameter_ranges,
3475
+ :continuous_parameter_ranges,
3476
+ :categorical_parameter_ranges)
3477
+ include Aws::Structure
3478
+ end
3479
+
2379
3480
  # Identifies a model that you want to host and the resources to deploy
2380
3481
  # for hosting it. If you are deploying multiple models, tell Amazon
2381
3482
  # SageMaker how to distribute traffic among the models by specifying
@@ -2521,6 +3622,35 @@ module Aws::SageMaker
2521
3622
  include Aws::Structure
2522
3623
  end
2523
3624
 
3625
+ # Specifies the maximum number of training jobs and parallel training
3626
+ # jobs that a hyperparameter tuning job can launch.
3627
+ #
3628
+ # @note When making an API call, you may pass ResourceLimits
3629
+ # data as a hash:
3630
+ #
3631
+ # {
3632
+ # max_number_of_training_jobs: 1, # required
3633
+ # max_parallel_training_jobs: 1, # required
3634
+ # }
3635
+ #
3636
+ # @!attribute [rw] max_number_of_training_jobs
3637
+ # The maximum number of training jobs that a hyperparameter tuning job
3638
+ # can launch.
3639
+ # @return [Integer]
3640
+ #
3641
+ # @!attribute [rw] max_parallel_training_jobs
3642
+ # The maximum number of concurrent training jobs that a hyperparameter
3643
+ # tuning job can launch.
3644
+ # @return [Integer]
3645
+ #
3646
+ # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ResourceLimits AWS API Documentation
3647
+ #
3648
+ class ResourceLimits < Struct.new(
3649
+ :max_number_of_training_jobs,
3650
+ :max_parallel_training_jobs)
3651
+ include Aws::Structure
3652
+ end
3653
+
2524
3654
  # Describes the S3 data source.
2525
3655
  #
2526
3656
  # @note When making an API call, you may pass S3DataSource
@@ -2633,6 +3763,24 @@ module Aws::SageMaker
2633
3763
  include Aws::Structure
2634
3764
  end
2635
3765
 
3766
+ # @note When making an API call, you may pass StopHyperParameterTuningJobRequest
3767
+ # data as a hash:
3768
+ #
3769
+ # {
3770
+ # hyper_parameter_tuning_job_name: "HyperParameterTuningJobName", # required
3771
+ # }
3772
+ #
3773
+ # @!attribute [rw] hyper_parameter_tuning_job_name
3774
+ # The name of the tuning job to stop.
3775
+ # @return [String]
3776
+ #
3777
+ # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/StopHyperParameterTuningJobRequest AWS API Documentation
3778
+ #
3779
+ class StopHyperParameterTuningJobRequest < Struct.new(
3780
+ :hyper_parameter_tuning_job_name)
3781
+ include Aws::Structure
3782
+ end
3783
+
2636
3784
  # @note When making an API call, you may pass StopNotebookInstanceInput
2637
3785
  # data as a hash:
2638
3786
  #
@@ -2731,6 +3879,47 @@ module Aws::SageMaker
2731
3879
  include Aws::Structure
2732
3880
  end
2733
3881
 
3882
+ # The numbers of training jobs launched by a hyperparameter tuning job,
3883
+ # categorized by status.
3884
+ #
3885
+ # @!attribute [rw] completed
3886
+ # The number of completed training jobs launched by a hyperparameter
3887
+ # tuning job.
3888
+ # @return [Integer]
3889
+ #
3890
+ # @!attribute [rw] in_progress
3891
+ # The number of in-progress training jobs launched by a hyperparameter
3892
+ # tuning job.
3893
+ # @return [Integer]
3894
+ #
3895
+ # @!attribute [rw] retryable_error
3896
+ # The number of training jobs that failed, but can be retried. A
3897
+ # failed training job can be retried only if it failed because an
3898
+ # internal service error occurred.
3899
+ # @return [Integer]
3900
+ #
3901
+ # @!attribute [rw] non_retryable_error
3902
+ # The number of training jobs that failed and can't be retried. A
3903
+ # failed training job can't be retried if it failed because a client
3904
+ # error occurred.
3905
+ # @return [Integer]
3906
+ #
3907
+ # @!attribute [rw] stopped
3908
+ # The number of training jobs launched by a hyperparameter tuning job
3909
+ # that were manually stopped.
3910
+ # @return [Integer]
3911
+ #
3912
+ # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/TrainingJobStatusCounters AWS API Documentation
3913
+ #
3914
+ class TrainingJobStatusCounters < Struct.new(
3915
+ :completed,
3916
+ :in_progress,
3917
+ :retryable_error,
3918
+ :non_retryable_error,
3919
+ :stopped)
3920
+ include Aws::Structure
3921
+ end
3922
+
2734
3923
  # Provides summary information about a training job.
2735
3924
  #
2736
3925
  # @!attribute [rw] training_job_name
@@ -2866,8 +4055,18 @@ module Aws::SageMaker
2866
4055
  # @return [String]
2867
4056
  #
2868
4057
  # @!attribute [rw] role_arn
2869
- # Amazon Resource Name (ARN) of the IAM role to associate with the
2870
- # instance.
4058
+ # The Amazon Resource Name (ARN) of the IAM role that Amazon SageMaker
4059
+ # can assume to access the notebook instance. For more information,
4060
+ # see [Amazon SageMaker Roles][1].
4061
+ #
4062
+ # <note markdown="1"> To be able to pass this role to Amazon SageMaker, the caller of this
4063
+ # API must have the `iam:PassRole` permission.
4064
+ #
4065
+ # </note>
4066
+ #
4067
+ #
4068
+ #
4069
+ # [1]: http://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html
2871
4070
  # @return [String]
2872
4071
  #
2873
4072
  # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateNotebookInstanceInput AWS API Documentation