diff --git a/sample/sagemaker-runtime/2017-05-13/service-2.json b/sample/sagemaker-runtime/2017-05-13/service-2.json index 0af24e9..6d1ed99 100644 --- a/sample/sagemaker-runtime/2017-05-13/service-2.json +++ b/sample/sagemaker-runtime/2017-05-13/service-2.json @@ -91,6 +91,12 @@ "pattern":"^[a-zA-Z0-9](-*[a-zA-Z0-9])*" }, "ErrorCode":{"type":"string"}, + "FilenameHeader":{ + "type":"string", + "max":32, + "min":1, + "pattern":"^(?!.*\\..*\\.)[a-zA-Z0-9][a-zA-Z0-9-_\\.]*$" + }, "Header":{ "type":"string", "max":1024, @@ -193,6 +199,18 @@ "location":"header", "locationName":"X-Amzn-SageMaker-InputLocation" }, + "S3OutputPathExtension":{ + "shape":"S3OutputPathExtensionHeader", + "documentation":"
The path extension that is appended to the Amazon S3 output path where the inference response payload is stored.
", + "location":"header", + "locationName":"X-Amzn-SageMaker-S3OutputPathExtension" + }, + "Filename":{ + "shape":"FilenameHeader", + "documentation":"The filename for the inference response payload stored in Amazon S3. If not specified, Amazon SageMaker AI generates a filename based on the inference ID.
", + "location":"header", + "locationName":"X-Amzn-SageMaker-Filename" + }, "RequestTTLSeconds":{ "shape":"RequestTTLSecondsHeader", "documentation":"Maximum age in seconds a request can be in the queue before it is marked as expired. The default is 6 hours, or 21,600 seconds.
", @@ -537,6 +555,12 @@ "documentation":"A stream of payload parts. Each part contains a portion of the response for a streaming inference request.
", "eventstream":true }, + "S3OutputPathExtensionHeader":{ + "type":"string", + "max":512, + "min":1, + "pattern":"^(?!s3:|https:)[a-zA-Z0-9!_.*'()/-]+$" + }, "ServiceUnavailable":{ "type":"structure", "members":{ diff --git a/sample/sagemaker/2017-07-24/service-2.json b/sample/sagemaker/2017-07-24/service-2.json index 192acc3..ec617f0 100644 --- a/sample/sagemaker/2017-07-24/service-2.json +++ b/sample/sagemaker/2017-07-24/service-2.json @@ -2548,6 +2548,19 @@ ], "documentation":"Retrieves detailed information about a specific training plan.
" }, + "DescribeTrainingPlanExtensionHistory":{ + "name":"DescribeTrainingPlanExtensionHistory", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeTrainingPlanExtensionHistoryRequest"}, + "output":{"shape":"DescribeTrainingPlanExtensionHistoryResponse"}, + "errors":[ + {"shape":"ResourceNotFound"} + ], + "documentation":"Retrieves the extension history for a specified training plan. The response includes details about each extension, such as the offering ID, start and end dates, status, payment status, and cost information.
" + }, "DescribeTransformJob":{ "name":"DescribeTransformJob", "http":{ @@ -2667,6 +2680,19 @@ "output":{"shape":"EnableSagemakerServicecatalogPortfolioOutput"}, "documentation":"Enables using Service Catalog in SageMaker. Service Catalog is used to create SageMaker projects.
" }, + "ExtendTrainingPlan":{ + "name":"ExtendTrainingPlan", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ExtendTrainingPlanRequest"}, + "output":{"shape":"ExtendTrainingPlanResponse"}, + "errors":[ + {"shape":"ResourceNotFound"} + ], + "documentation":"Extends an existing training plan by purchasing an extension offering. This allows you to add additional compute capacity time to your training plan without creating a new plan or reconfiguring your workloads.
To find available extension offerings, use the SearchTrainingPlanOfferings API with the TrainingPlanArn parameter.
To view the history of extensions for a training plan, use the DescribeTrainingPlanExtensionHistory API.
Tags consisting of key-value pairs used to manage metadata for the tracking server.
" + }, + "S3BucketOwnerAccountId":{ + "shape":"AccountId", + "documentation":"Expected Amazon Web Services account ID that owns the Amazon S3 bucket for artifact storage. Defaults to caller's account ID if not provided.
" + }, + "S3BucketOwnerVerification":{ + "shape":"Boolean", + "documentation":"Enable Amazon S3 Ownership checks when interacting with Amazon S3 buckets from a SageMaker Managed MLflow Tracking Server. Defaults to True if not provided.
The timestamp of when the described MLflow Tracking Server was last modified.
" }, - "LastModifiedBy":{"shape":"UserContext"} + "LastModifiedBy":{"shape":"UserContext"}, + "S3BucketOwnerAccountId":{ + "shape":"AccountId", + "documentation":"Expected Amazon Web Services account ID that owns the Amazon S3 bucket for artifact storage.
" + }, + "S3BucketOwnerVerification":{ + "shape":"Boolean", + "documentation":"Whether Amazon S3 Bucket Ownership checks are enabled whenever the tracking server interacts with Amazon Amazon S3.
", + "box":true + } } }, "DescribeModelBiasJobDefinitionRequest":{ @@ -20645,6 +20703,38 @@ } } }, + "DescribeTrainingPlanExtensionHistoryRequest":{ + "type":"structure", + "required":["TrainingPlanArn"], + "members":{ + "TrainingPlanArn":{ + "shape":"TrainingPlanArn", + "documentation":"The Amazon Resource Name (ARN); of the training plan to retrieve extension history for.
" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"A token to continue pagination if more results are available.
" + }, + "MaxResults":{ + "shape":"MaxResults", + "documentation":"The maximum number of extensions to return in the response.
" + } + } + }, + "DescribeTrainingPlanExtensionHistoryResponse":{ + "type":"structure", + "required":["TrainingPlanExtensions"], + "members":{ + "TrainingPlanExtensions":{ + "shape":"TrainingPlanExtensions", + "documentation":"A list of extensions for the specified training plan.
" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"A token to continue pagination if more results are available.
" + } + } + }, "DescribeTrainingPlanRequest":{ "type":"structure", "required":["TrainingPlanName"], @@ -23136,6 +23226,26 @@ }, "documentation":"A parameter to activate explainers.
" }, + "ExtendTrainingPlanRequest":{ + "type":"structure", + "required":["TrainingPlanExtensionOfferingId"], + "members":{ + "TrainingPlanExtensionOfferingId":{ + "shape":"TrainingPlanExtensionOfferingId", + "documentation":"The unique identifier of the extension offering to purchase. You can retrieve this ID from the TrainingPlanExtensionOfferings in the response of the SearchTrainingPlanOfferings API.
The list of extensions for the training plan, including the newly created extension.
" + } + } + }, "FSxLustreConfig":{ "type":"structure", "required":[ @@ -24290,7 +24400,7 @@ }, "HubContentDocument":{ "type":"string", - "max":170391, + "max":327680, "min":0, "pattern":".*" }, @@ -25860,6 +25970,21 @@ "max":2048, "min":20 }, + "InferenceComponentAvailabilityZoneBalance":{ + "type":"structure", + "required":["EnforcementMode"], + "members":{ + "EnforcementMode":{ + "shape":"AvailabilityZoneBalanceEnforcementMode", + "documentation":"Determines how strictly the Availability Zone balance constraint is enforced.
The endpoint attempts to balance copies across Availability Zones but proceeds with scheduling even if balance can't be achieved due to available capacity or instance distribution across Availability Zones.
The maximum allowed difference in the number of inference component copies between any two Availability Zones. This parameter applies only when the endpoint has instances across two or more Availability Zones. A copy placement is allowed if it reduces imbalance or the resulting imbalance is within this value.
Default value: 0.
Configuration for balancing inference component copies across Availability Zones.
" + }, "InferenceComponentCapacitySize":{ "type":"structure", "required":[ @@ -26004,6 +26129,13 @@ "min":0, "pattern":"[a-zA-Z0-9-]+" }, + "InferenceComponentPlacementStrategy":{ + "type":"string", + "enum":[ + "SPREAD", + "BINPACK" + ] + }, "InferenceComponentRollingUpdatePolicy":{ "type":"structure", "required":[ @@ -26055,6 +26187,21 @@ }, "documentation":"Details about the runtime settings for the model that is deployed with the inference component.
" }, + "InferenceComponentSchedulingConfig":{ + "type":"structure", + "required":["PlacementStrategy"], + "members":{ + "PlacementStrategy":{ + "shape":"InferenceComponentPlacementStrategy", + "documentation":"The strategy for placing inference component copies across available instances. If you also set AvailabilityZoneBalance, this strategy applies to placement within each Availability Zone.
Distributes copies evenly across available instances for better resilience.
Packs copies onto fewer instances to optimize resource utilization.
Configuration for balancing inference component copies across Availability Zones.
" + } + }, + "documentation":"The scheduling configuration that determines how inference component copies are placed across available instances when copies are added or removed.
" + }, "InferenceComponentSortKey":{ "type":"string", "enum":[ @@ -26089,6 +26236,10 @@ "DataCacheConfig":{ "shape":"InferenceComponentDataCacheConfig", "documentation":"Settings that affect how the inference component caches data.
" + }, + "SchedulingConfig":{ + "shape":"InferenceComponentSchedulingConfig", + "documentation":"The scheduling configuration that determines how inference component copies are placed across available instances when copies are added or removed.
" } }, "documentation":"Details about the resources to deploy with this inference component, including the model, container, and compute resources.
" @@ -26119,6 +26270,10 @@ "DataCacheConfig":{ "shape":"InferenceComponentDataCacheConfigSummary", "documentation":"Settings that affect how the inference component caches data.
" + }, + "SchedulingConfig":{ + "shape":"InferenceComponentSchedulingConfig", + "documentation":"The scheduling configuration that determines how inference component copies are placed across available instances when copies are added or removed.
" } }, "documentation":"Details about the resources that are deployed with this inference component.
" @@ -32219,16 +32374,35 @@ "min":0, "pattern":"\\d+\\.\\d+" }, + "ManagedInstanceScalingCooldownInMinutes":{ + "type":"integer", + "box":true, + "max":1440, + "min":5 + }, "ManagedInstanceScalingMaxInstanceCount":{ "type":"integer", "box":true, "min":1 }, + "ManagedInstanceScalingMaximumStepSize":{ + "type":"integer", + "box":true, + "max":100, + "min":1 + }, "ManagedInstanceScalingMinInstanceCount":{ "type":"integer", "box":true, "min":0 }, + "ManagedInstanceScalingScaleInStrategy":{ + "type":"string", + "enum":[ + "IDLE_RELEASE", + "CONSOLIDATION" + ] + }, "ManagedInstanceScalingStatus":{ "type":"string", "enum":[ @@ -38041,7 +38215,7 @@ }, "InferenceAmiVersion":{ "shape":"ProductionVariantInferenceAmiVersion", - "documentation":"Specifies an option from a collection of preconfigured Amazon Machine Image (AMI) images. Each image is configured by Amazon Web Services with a set of software and driver versions. Amazon Web Services optimizes these configurations for different machine learning workloads.
By selecting an AMI version, you can ensure that your inference environment is compatible with specific software requirements, such as CUDA driver versions, Linux kernel versions, or Amazon Web Services Neuron driver versions.
The AMI version names, and their configurations, are the following:
Accelerator: GPU
NVIDIA driver version: 535
CUDA version: 12.2
Accelerator: GPU
NVIDIA driver version: 535
CUDA version: 12.2
NVIDIA Container Toolkit with disabled CUDA-compat mounting
Accelerator: GPU
NVIDIA driver version: 550
CUDA version: 12.4
NVIDIA Container Toolkit with disabled CUDA-compat mounting
Accelerator: Inferentia2 and Trainium
Neuron driver version: 2.19
Specifies an option from a collection of preconfigured Amazon Machine Image (AMI) images. Each image is configured by Amazon Web Services with a set of software and driver versions. Amazon Web Services optimizes these configurations for different machine learning workloads.
By selecting an AMI version, you can ensure that your inference environment is compatible with specific software requirements, such as CUDA driver versions, Linux kernel versions, or Amazon Web Services Neuron driver versions.
The AMI version names, and their configurations, are the following:
Accelerator: GPU
NVIDIA driver version: 535
CUDA version: 12.2
Accelerator: GPU
NVIDIA driver version: 535
CUDA version: 12.2
NVIDIA Container Toolkit with disabled CUDA-compat mounting
Accelerator: GPU
NVIDIA driver version: 550
CUDA version: 12.4
NVIDIA Container Toolkit with disabled CUDA-compat mounting
Accelerator: GPU
NVIDIA driver version: 580
CUDA version: 13.0
NVIDIA Container Toolkit with disabled CUDA-compat mounting
Accelerator: Inferentia2 and Trainium
Neuron driver version: 2.19
The maximum number of instances that the endpoint can provision when it scales up to accommodate an increase in traffic.
" + }, + "ScaleInPolicy":{ + "shape":"ProductionVariantManagedInstanceScalingScaleInPolicy", + "documentation":"Configures the scale-in behavior for managed instance scaling.
" } }, "documentation":"Settings that control the range in the number of instances that the endpoint provisions as it scales up or down to accommodate traffic.
" }, + "ProductionVariantManagedInstanceScalingScaleInPolicy":{ + "type":"structure", + "required":["Strategy"], + "members":{ + "Strategy":{ + "shape":"ManagedInstanceScalingScaleInStrategy", + "documentation":"The strategy for scaling in instances.
Releases instances that have no hosted inference component copies.
Consolidates inference component copies onto fewer instances to release more instances. Consolidation honors the scheduling configuration of each inference component. For example, if an inference component specifies Availability Zone balance, consolidation only proceeds when the resulting distribution does not increase the imbalance.
The maximum number of instances that the endpoint can terminate at a time during a consolidation scale-in operation.
Default value: 1.
The cooldown period, in minutes, after the last endpoint operation before the endpoint evaluates consolidation scale-in opportunities.
Default value: 20.
Configures the scale-in behavior for managed instance scaling.
" + }, "ProductionVariantModelDataDownloadTimeoutInSeconds":{ "type":"integer", "box":true, @@ -39998,6 +40203,14 @@ "EndTime":{ "shape":"Timestamp", "documentation":"The end time of the reserved capacity offering.
" + }, + "ExtensionStartTime":{ + "shape":"Timestamp", + "documentation":"The start time of the extension for the reserved capacity offering.
" + }, + "ExtensionEndTime":{ + "shape":"Timestamp", + "documentation":"The end time of the extension for the reserved capacity offering.
" } }, "documentation":"Details about a reserved capacity offering for a training plan offering.
For more information about how to reserve GPU capacity for your SageMaker HyperPod clusters using Amazon SageMaker Training Plan, see CreateTrainingPlan .
The target resources (e.g., SageMaker Training Jobs, SageMaker HyperPod, SageMaker Endpoints) to search for in the offerings.
Training plans are specific to their target resource.
A training plan designed for SageMaker training jobs can only be used to schedule and run training jobs.
A training plan for HyperPod clusters can be used exclusively to provide compute resources to a cluster's instance group.
A training plan for SageMaker endpoints can be used exclusively to provide compute resources to SageMaker endpoints for model deployment.
The Amazon Resource Name (ARN); of an existing training plan to search for extension offerings. When specified, the API returns extension offerings that can be used to extend the specified training plan.
" } } }, @@ -41111,6 +41328,10 @@ "TrainingPlanOfferings":{ "shape":"TrainingPlanOfferings", "documentation":"A list of training plan offerings that match the search criteria.
" + }, + "TrainingPlanExtensionOfferings":{ + "shape":"TrainingPlanExtensionOfferings", + "documentation":"A list of extension offerings available for the specified training plan. These offerings can be used with the ExtendTrainingPlan API to extend an existing training plan.
The unique identifier of the extension offering that was used to create this extension.
" + }, + "ExtendedAt":{ + "shape":"Timestamp", + "documentation":"The timestamp when the extension was created.
" + }, + "StartDate":{ + "shape":"Timestamp", + "documentation":"The start date of the extension period.
" + }, + "EndDate":{ + "shape":"Timestamp", + "documentation":"The end date of the extension period.
" + }, + "Status":{ + "shape":"String256", + "documentation":"The current status of the extension (e.g., Pending, Active, Scheduled, Failed, Expired).
" + }, + "PaymentStatus":{ + "shape":"String256", + "documentation":"The payment processing status of the extension.
" + }, + "AvailabilityZone":{ + "shape":"String256", + "documentation":"The Availability Zone of the extension.
" + }, + "AvailabilityZoneId":{ + "shape":"AvailabilityZoneId", + "documentation":"The Availability Zone ID of the extension.
" + }, + "DurationHours":{ + "shape":"TrainingPlanExtensionDurationHours", + "documentation":"The duration of the extension in hours.
" + }, + "UpfrontFee":{ + "shape":"String256", + "documentation":"The upfront fee for the extension.
" + }, + "CurrencyCode":{ + "shape":"CurrencyCode", + "documentation":"The currency code for the upfront fee (e.g., USD).
" + } + }, + "documentation":"Details about an extension to a training plan, including the offering ID, dates, status, and cost information.
" + }, + "TrainingPlanExtensionDurationHours":{ + "type":"integer", + "box":true, + "max":4368, + "min":0 + }, + "TrainingPlanExtensionOffering":{ + "type":"structure", + "required":["TrainingPlanExtensionOfferingId"], + "members":{ + "TrainingPlanExtensionOfferingId":{ + "shape":"TrainingPlanExtensionOfferingId", + "documentation":"The unique identifier for this extension offering.
" + }, + "AvailabilityZone":{ + "shape":"String256", + "documentation":"The Availability Zone for this extension offering.
" + }, + "StartDate":{ + "shape":"Timestamp", + "documentation":"The start date of this extension offering.
" + }, + "EndDate":{ + "shape":"Timestamp", + "documentation":"The end date of this extension offering.
" + }, + "DurationHours":{ + "shape":"TrainingPlanExtensionDurationHours", + "documentation":"The duration of this extension offering in hours.
" + }, + "UpfrontFee":{ + "shape":"String256", + "documentation":"The upfront fee for this extension offering.
" + }, + "CurrencyCode":{ + "shape":"CurrencyCode", + "documentation":"The currency code for the upfront fee (e.g., USD).
" + } + }, + "documentation":"Details about an available extension offering for a training plan. Use the offering ID with the ExtendTrainingPlan API to extend a training plan.
The new weekly maintenance window start day and time to update. The maintenance window day and time should be in Coordinated Universal Time (UTC) 24-hour standard time. For example: TUE:03:30.
" + }, + "S3BucketOwnerAccountId":{ + "shape":"AccountId", + "documentation":"The new expected Amazon Web Services account ID that owns the Amazon S3 bucket for artifact storage.
" + }, + "S3BucketOwnerVerification":{ + "shape":"Boolean", + "documentation":"Whether to enable or disable Amazon S3 Bucket Owenrship Verifaction whenever the MLflow Tracking Server interacts with Amazon Amazon S3.
", + "box":true } } }, diff --git a/src/sagemaker_core/main/code_injection/shape_dag.py b/src/sagemaker_core/main/code_injection/shape_dag.py index 5a7273b..96dbfa8 100644 --- a/src/sagemaker_core/main/code_injection/shape_dag.py +++ b/src/sagemaker_core/main/code_injection/shape_dag.py @@ -3210,6 +3210,8 @@ "type": "string", }, {"name": "Tags", "shape": "TagList", "type": "list"}, + {"name": "S3BucketOwnerAccountId", "shape": "AccountId", "type": "string"}, + {"name": "S3BucketOwnerVerification", "shape": "Boolean", "type": "boolean"}, ], "type": "structure", }, @@ -6001,6 +6003,8 @@ {"name": "CreatedBy", "shape": "UserContext", "type": "structure"}, {"name": "LastModifiedTime", "shape": "Timestamp", "type": "timestamp"}, {"name": "LastModifiedBy", "shape": "UserContext", "type": "structure"}, + {"name": "S3BucketOwnerAccountId", "shape": "AccountId", "type": "string"}, + {"name": "S3BucketOwnerVerification", "shape": "Boolean", "type": "boolean"}, ], "type": "structure", }, @@ -6830,6 +6834,21 @@ ], "type": "structure", }, + "DescribeTrainingPlanExtensionHistoryRequest": { + "members": [ + {"name": "TrainingPlanArn", "shape": "TrainingPlanArn", "type": "string"}, + {"name": "NextToken", "shape": "NextToken", "type": "string"}, + {"name": "MaxResults", "shape": "MaxResults", "type": "integer"}, + ], + "type": "structure", + }, + "DescribeTrainingPlanExtensionHistoryResponse": { + "members": [ + {"name": "TrainingPlanExtensions", "shape": "TrainingPlanExtensions", "type": "list"}, + {"name": "NextToken", "shape": "NextToken", "type": "string"}, + ], + "type": "structure", + }, "DescribeTrainingPlanRequest": { "members": [{"name": "TrainingPlanName", "shape": "TrainingPlanName", "type": "string"}], "type": "structure", @@ -7741,6 +7760,22 @@ ], "type": "structure", }, + "ExtendTrainingPlanRequest": { + "members": [ + { + "name": "TrainingPlanExtensionOfferingId", + "shape": "TrainingPlanExtensionOfferingId", + "type": "string", + } + ], + "type": "structure", + }, + "ExtendTrainingPlanResponse": { + "members": [ + {"name": "TrainingPlanExtensions", "shape": "TrainingPlanExtensions", "type": "list"} + ], + "type": "structure", + }, "FSxLustreConfig": { "members": [ {"name": "SizeInGiB", "shape": "FSxLustreSizeInGiB", "type": "integer"}, @@ -8812,6 +8847,21 @@ ], "type": "structure", }, + "InferenceComponentAvailabilityZoneBalance": { + "members": [ + { + "name": "EnforcementMode", + "shape": "AvailabilityZoneBalanceEnforcementMode", + "type": "string", + }, + { + "name": "MaxImbalance", + "shape": "AvailabilityZoneBalanceMaxImbalance", + "type": "integer", + }, + ], + "type": "structure", + }, "InferenceComponentCapacitySize": { "members": [ {"name": "Type", "shape": "InferenceComponentCapacitySizeType", "type": "string"}, @@ -8909,6 +8959,21 @@ ], "type": "structure", }, + "InferenceComponentSchedulingConfig": { + "members": [ + { + "name": "PlacementStrategy", + "shape": "InferenceComponentPlacementStrategy", + "type": "string", + }, + { + "name": "AvailabilityZoneBalance", + "shape": "InferenceComponentAvailabilityZoneBalance", + "type": "structure", + }, + ], + "type": "structure", + }, "InferenceComponentSpecification": { "members": [ {"name": "ModelName", "shape": "ModelName", "type": "string"}, @@ -8937,6 +9002,11 @@ "shape": "InferenceComponentDataCacheConfig", "type": "structure", }, + { + "name": "SchedulingConfig", + "shape": "InferenceComponentSchedulingConfig", + "type": "structure", + }, ], "type": "structure", }, @@ -8968,6 +9038,11 @@ "shape": "InferenceComponentDataCacheConfigSummary", "type": "structure", }, + { + "name": "SchedulingConfig", + "shape": "InferenceComponentSchedulingConfig", + "type": "structure", + }, ], "type": "structure", }, @@ -9255,6 +9330,12 @@ {"name": "CustomAttributes", "shape": "CustomAttributesHeader", "type": "string"}, {"name": "InferenceId", "shape": "InferenceId", "type": "string"}, {"name": "InputLocation", "shape": "InputLocationHeader", "type": "string"}, + { + "name": "S3OutputPathExtension", + "shape": "S3OutputPathExtensionHeader", + "type": "string", + }, + {"name": "Filename", "shape": "FilenameHeader", "type": "string"}, {"name": "RequestTTLSeconds", "shape": "RequestTTLSecondsHeader", "type": "integer"}, { "name": "InvocationTimeoutSeconds", @@ -13921,6 +14002,31 @@ "shape": "ManagedInstanceScalingMaxInstanceCount", "type": "integer", }, + { + "name": "ScaleInPolicy", + "shape": "ProductionVariantManagedInstanceScalingScaleInPolicy", + "type": "structure", + }, + ], + "type": "structure", + }, + "ProductionVariantManagedInstanceScalingScaleInPolicy": { + "members": [ + { + "name": "Strategy", + "shape": "ManagedInstanceScalingScaleInStrategy", + "type": "string", + }, + { + "name": "MaximumStepSize", + "shape": "ManagedInstanceScalingMaximumStepSize", + "type": "integer", + }, + { + "name": "CooldownInMinutes", + "shape": "ManagedInstanceScalingCooldownInMinutes", + "type": "integer", + }, ], "type": "structure", }, @@ -14574,6 +14680,8 @@ {"name": "DurationMinutes", "shape": "ReservedCapacityDurationMinutes", "type": "long"}, {"name": "StartTime", "shape": "Timestamp", "type": "timestamp"}, {"name": "EndTime", "shape": "Timestamp", "type": "timestamp"}, + {"name": "ExtensionStartTime", "shape": "Timestamp", "type": "timestamp"}, + {"name": "ExtensionEndTime", "shape": "Timestamp", "type": "timestamp"}, ], "type": "structure", }, @@ -14994,12 +15102,18 @@ {"name": "EndTimeBefore", "shape": "Timestamp", "type": "timestamp"}, {"name": "DurationHours", "shape": "TrainingPlanDurationHoursInput", "type": "long"}, {"name": "TargetResources", "shape": "SageMakerResourceNames", "type": "list"}, + {"name": "TrainingPlanArn", "shape": "String", "type": "string"}, ], "type": "structure", }, "SearchTrainingPlanOfferingsResponse": { "members": [ - {"name": "TrainingPlanOfferings", "shape": "TrainingPlanOfferings", "type": "list"} + {"name": "TrainingPlanOfferings", "shape": "TrainingPlanOfferings", "type": "list"}, + { + "name": "TrainingPlanExtensionOfferings", + "shape": "TrainingPlanExtensionOfferings", + "type": "list", + }, ], "type": "structure", }, @@ -15978,6 +16092,60 @@ "member_type": "string", "type": "list", }, + "TrainingPlanExtension": { + "members": [ + { + "name": "TrainingPlanExtensionOfferingId", + "shape": "TrainingPlanExtensionOfferingId", + "type": "string", + }, + {"name": "ExtendedAt", "shape": "Timestamp", "type": "timestamp"}, + {"name": "StartDate", "shape": "Timestamp", "type": "timestamp"}, + {"name": "EndDate", "shape": "Timestamp", "type": "timestamp"}, + {"name": "Status", "shape": "String256", "type": "string"}, + {"name": "PaymentStatus", "shape": "String256", "type": "string"}, + {"name": "AvailabilityZone", "shape": "String256", "type": "string"}, + {"name": "AvailabilityZoneId", "shape": "AvailabilityZoneId", "type": "string"}, + { + "name": "DurationHours", + "shape": "TrainingPlanExtensionDurationHours", + "type": "integer", + }, + {"name": "UpfrontFee", "shape": "String256", "type": "string"}, + {"name": "CurrencyCode", "shape": "CurrencyCode", "type": "string"}, + ], + "type": "structure", + }, + "TrainingPlanExtensionOffering": { + "members": [ + { + "name": "TrainingPlanExtensionOfferingId", + "shape": "TrainingPlanExtensionOfferingId", + "type": "string", + }, + {"name": "AvailabilityZone", "shape": "String256", "type": "string"}, + {"name": "StartDate", "shape": "Timestamp", "type": "timestamp"}, + {"name": "EndDate", "shape": "Timestamp", "type": "timestamp"}, + { + "name": "DurationHours", + "shape": "TrainingPlanExtensionDurationHours", + "type": "integer", + }, + {"name": "UpfrontFee", "shape": "String256", "type": "string"}, + {"name": "CurrencyCode", "shape": "CurrencyCode", "type": "string"}, + ], + "type": "structure", + }, + "TrainingPlanExtensionOfferings": { + "member_shape": "TrainingPlanExtensionOffering", + "member_type": "structure", + "type": "list", + }, + "TrainingPlanExtensions": { + "member_shape": "TrainingPlanExtension", + "member_type": "structure", + "type": "list", + }, "TrainingPlanFilter": { "members": [ {"name": "Name", "shape": "TrainingPlanFilterName", "type": "string"}, @@ -17024,6 +17192,8 @@ "shape": "WeeklyMaintenanceWindowStart", "type": "string", }, + {"name": "S3BucketOwnerAccountId", "shape": "AccountId", "type": "string"}, + {"name": "S3BucketOwnerVerification", "shape": "Boolean", "type": "boolean"}, ], "type": "structure", }, diff --git a/src/sagemaker_core/main/config_schema.py b/src/sagemaker_core/main/config_schema.py index d22001a..47fa38e 100644 --- a/src/sagemaker_core/main/config_schema.py +++ b/src/sagemaker_core/main/config_schema.py @@ -467,7 +467,11 @@ }, "MlflowTrackingServer": { "type": "object", - "properties": {"role_arn": {"type": "string"}}, + "properties": { + "role_arn": {"type": "string"}, + "s3_bucket_owner_account_id": {"type": "string"}, + "s3_bucket_owner_verification": {"type": "boolean"}, + }, }, "Model": { "type": "object", diff --git a/src/sagemaker_core/main/resources.py b/src/sagemaker_core/main/resources.py index e4384bf..4315562 100644 --- a/src/sagemaker_core/main/resources.py +++ b/src/sagemaker_core/main/resources.py @@ -9533,6 +9533,8 @@ def invoke_async( accept: Optional[str] = Unassigned(), custom_attributes: Optional[str] = Unassigned(), inference_id: Optional[str] = Unassigned(), + s3_output_path_extension: Optional[str] = Unassigned(), + filename: Optional[str] = Unassigned(), request_ttl_seconds: Optional[int] = Unassigned(), invocation_timeout_seconds: Optional[int] = Unassigned(), session: Optional[Session] = None, @@ -9547,6 +9549,8 @@ def invoke_async( accept: The desired MIME type of the inference response from the model container. custom_attributes: Provides additional information about a request for an inference submitted to a model hosted at an Amazon SageMaker AI endpoint. The information is an opaque value that is forwarded verbatim. You could use this value, for example, to provide an ID that you can use to track a request or to provide other metadata that a service endpoint was programmed to process. The value must consist of no more than 1024 visible US-ASCII characters as specified in Section 3.3.6. Field Value Components of the Hypertext Transfer Protocol (HTTP/1.1). The code in your model is responsible for setting or updating any custom attributes in the response. If your code does not set this value in the response, an empty value is returned. For example, if a custom attribute represents the trace ID, your model can prepend the custom attribute with Trace ID: in your post-processing function. This feature is currently supported in the Amazon Web Services SDKs but not in the Amazon SageMaker AI Python SDK. inference_id: The identifier for the inference request. Amazon SageMaker AI will generate an identifier for you if none is specified. + s3_output_path_extension: The path extension that is appended to the Amazon S3 output path where the inference response payload is stored. + filename: The filename for the inference response payload stored in Amazon S3. If not specified, Amazon SageMaker AI generates a filename based on the inference ID. request_ttl_seconds: Maximum age in seconds a request can be in the queue before it is marked as expired. The default is 6 hours, or 21,600 seconds. invocation_timeout_seconds: Maximum amount of time in seconds a request can be processed before it is marked as expired. The default is 15 minutes, or 900 seconds. session: Boto3 session. @@ -9577,6 +9581,8 @@ def invoke_async( "CustomAttributes": custom_attributes, "InferenceId": inference_id, "InputLocation": input_location, + "S3OutputPathExtension": s3_output_path_extension, + "Filename": filename, "RequestTTLSeconds": request_ttl_seconds, "InvocationTimeoutSeconds": invocation_timeout_seconds, } @@ -15381,8 +15387,8 @@ def create( cls, inference_component_name: str, endpoint_name: Union[str, object], - specification: shapes.InferenceComponentSpecification, variant_name: Optional[str] = Unassigned(), + specification: Optional[shapes.InferenceComponentSpecification] = Unassigned(), runtime_config: Optional[shapes.InferenceComponentRuntimeConfig] = Unassigned(), tags: Optional[List[shapes.Tag]] = Unassigned(), session: Optional[Session] = None, @@ -15394,8 +15400,8 @@ def create( Parameters: inference_component_name: A unique name to assign to the inference component. endpoint_name: The name of an existing endpoint where you host the inference component. - specification: Details about the resources to deploy with this inference component, including the model, container, and compute resources. variant_name: The name of an existing production variant where you host the inference component. + specification: Details about the resources to deploy with this inference component, including the model, container, and compute resources. runtime_config: Runtime settings for a model that is deployed with an inference component. tags: A list of key-value pairs associated with the model. For more information, see Tagging Amazon Web Services resources in the Amazon Web Services General Reference. session: Boto3 session. @@ -18160,6 +18166,8 @@ class MlflowTrackingServer(Base): created_by: last_modified_time: The timestamp of when the described MLflow Tracking Server was last modified. last_modified_by: + s3_bucket_owner_account_id: Expected Amazon Web Services account ID that owns the Amazon S3 bucket for artifact storage. + s3_bucket_owner_verification: Whether Amazon S3 Bucket Ownership checks are enabled whenever the tracking server interacts with Amazon Amazon S3. """ @@ -18179,6 +18187,8 @@ class MlflowTrackingServer(Base): created_by: Optional[shapes.UserContext] = Unassigned() last_modified_time: Optional[datetime.datetime] = Unassigned() last_modified_by: Optional[shapes.UserContext] = Unassigned() + s3_bucket_owner_account_id: Optional[str] = Unassigned() + s3_bucket_owner_verification: Optional[bool] = Unassigned() def get_name(self) -> str: attributes = vars(self) @@ -18222,6 +18232,8 @@ def create( automatic_model_registration: Optional[bool] = Unassigned(), weekly_maintenance_window_start: Optional[str] = Unassigned(), tags: Optional[List[shapes.Tag]] = Unassigned(), + s3_bucket_owner_account_id: Optional[str] = Unassigned(), + s3_bucket_owner_verification: Optional[bool] = Unassigned(), session: Optional[Session] = None, region: Optional[str] = None, ) -> Optional["MlflowTrackingServer"]: @@ -18237,6 +18249,8 @@ def create( automatic_model_registration: Whether to enable or disable automatic registration of new MLflow models to the SageMaker Model Registry. To enable automatic model registration, set this value to True. To disable automatic model registration, set this value to False. If not specified, AutomaticModelRegistration defaults to False. weekly_maintenance_window_start: The day and time of the week in Coordinated Universal Time (UTC) 24-hour standard time that weekly maintenance updates are scheduled. For example: TUE:03:30. tags: Tags consisting of key-value pairs used to manage metadata for the tracking server. + s3_bucket_owner_account_id: Expected Amazon Web Services account ID that owns the Amazon S3 bucket for artifact storage. Defaults to caller's account ID if not provided. + s3_bucket_owner_verification: Enable Amazon S3 Ownership checks when interacting with Amazon S3 buckets from a SageMaker Managed MLflow Tracking Server. Defaults to True if not provided. session: Boto3 session. region: Region name. @@ -18273,6 +18287,8 @@ def create( "AutomaticModelRegistration": automatic_model_registration, "WeeklyMaintenanceWindowStart": weekly_maintenance_window_start, "Tags": tags, + "S3BucketOwnerAccountId": s3_bucket_owner_account_id, + "S3BucketOwnerVerification": s3_bucket_owner_verification, } operation_input_args = Base.populate_chained_attributes( @@ -18386,6 +18402,8 @@ def update( tracking_server_size: Optional[str] = Unassigned(), automatic_model_registration: Optional[bool] = Unassigned(), weekly_maintenance_window_start: Optional[str] = Unassigned(), + s3_bucket_owner_account_id: Optional[str] = Unassigned(), + s3_bucket_owner_verification: Optional[bool] = Unassigned(), ) -> Optional["MlflowTrackingServer"]: """ Update a MlflowTrackingServer resource @@ -18417,6 +18435,8 @@ def update( "TrackingServerSize": tracking_server_size, "AutomaticModelRegistration": automatic_model_registration, "WeeklyMaintenanceWindowStart": weekly_maintenance_window_start, + "S3BucketOwnerAccountId": s3_bucket_owner_account_id, + "S3BucketOwnerVerification": s3_bucket_owner_verification, } logger.debug(f"Input request: {operation_input_args}") # serialize the input request diff --git a/src/sagemaker_core/main/shapes.py b/src/sagemaker_core/main/shapes.py index e29ae51..863a94e 100644 --- a/src/sagemaker_core/main/shapes.py +++ b/src/sagemaker_core/main/shapes.py @@ -6044,6 +6044,23 @@ class ProductionVariantServerlessConfig(Base): provisioned_concurrency: Optional[int] = Unassigned() +class ProductionVariantManagedInstanceScalingScaleInPolicy(Base): + """ + ProductionVariantManagedInstanceScalingScaleInPolicy + Configures the scale-in behavior for managed instance scaling. + + Attributes + ---------------------- + strategy: The strategy for scaling in instances. IDLE_RELEASE Releases instances that have no hosted inference component copies. CONSOLIDATION Consolidates inference component copies onto fewer instances to release more instances. Consolidation honors the scheduling configuration of each inference component. For example, if an inference component specifies Availability Zone balance, consolidation only proceeds when the resulting distribution does not increase the imbalance. + maximum_step_size: The maximum number of instances that the endpoint can terminate at a time during a consolidation scale-in operation. Default value: 1. + cooldown_in_minutes: The cooldown period, in minutes, after the last endpoint operation before the endpoint evaluates consolidation scale-in opportunities. Default value: 20. + """ + + strategy: str + maximum_step_size: Optional[int] = Unassigned() + cooldown_in_minutes: Optional[int] = Unassigned() + + class ProductionVariantManagedInstanceScaling(Base): """ ProductionVariantManagedInstanceScaling @@ -6054,11 +6071,13 @@ class ProductionVariantManagedInstanceScaling(Base): status: Indicates whether managed instance scaling is enabled. min_instance_count: The minimum number of instances that the endpoint must retain when it scales down to accommodate a decrease in traffic. max_instance_count: The maximum number of instances that the endpoint can provision when it scales up to accommodate an increase in traffic. + scale_in_policy: Configures the scale-in behavior for managed instance scaling. """ status: Optional[str] = Unassigned() min_instance_count: Optional[int] = Unassigned() max_instance_count: Optional[int] = Unassigned() + scale_in_policy: Optional[ProductionVariantManagedInstanceScalingScaleInPolicy] = Unassigned() class ProductionVariantRoutingConfig(Base): @@ -6110,7 +6129,7 @@ class ProductionVariant(Base): enable_ssm_access: You can use this parameter to turn on native Amazon Web Services Systems Manager (SSM) access for a production variant behind an endpoint. By default, SSM access is disabled for all production variants behind an endpoint. You can turn on or turn off SSM access for a production variant behind an existing endpoint by creating a new endpoint configuration and calling UpdateEndpoint. managed_instance_scaling: Settings that control the range in the number of instances that the endpoint provisions as it scales up or down to accommodate traffic. routing_config: Settings that control how the endpoint routes incoming traffic to the instances that the endpoint hosts. - inference_ami_version: Specifies an option from a collection of preconfigured Amazon Machine Image (AMI) images. Each image is configured by Amazon Web Services with a set of software and driver versions. Amazon Web Services optimizes these configurations for different machine learning workloads. By selecting an AMI version, you can ensure that your inference environment is compatible with specific software requirements, such as CUDA driver versions, Linux kernel versions, or Amazon Web Services Neuron driver versions. The AMI version names, and their configurations, are the following: al2-ami-sagemaker-inference-gpu-2 Accelerator: GPU NVIDIA driver version: 535 CUDA version: 12.2 al2-ami-sagemaker-inference-gpu-2-1 Accelerator: GPU NVIDIA driver version: 535 CUDA version: 12.2 NVIDIA Container Toolkit with disabled CUDA-compat mounting al2-ami-sagemaker-inference-gpu-3-1 Accelerator: GPU NVIDIA driver version: 550 CUDA version: 12.4 NVIDIA Container Toolkit with disabled CUDA-compat mounting al2-ami-sagemaker-inference-neuron-2 Accelerator: Inferentia2 and Trainium Neuron driver version: 2.19 + inference_ami_version: Specifies an option from a collection of preconfigured Amazon Machine Image (AMI) images. Each image is configured by Amazon Web Services with a set of software and driver versions. Amazon Web Services optimizes these configurations for different machine learning workloads. By selecting an AMI version, you can ensure that your inference environment is compatible with specific software requirements, such as CUDA driver versions, Linux kernel versions, or Amazon Web Services Neuron driver versions. The AMI version names, and their configurations, are the following: al2-ami-sagemaker-inference-gpu-2 Accelerator: GPU NVIDIA driver version: 535 CUDA version: 12.2 al2-ami-sagemaker-inference-gpu-2-1 Accelerator: GPU NVIDIA driver version: 535 CUDA version: 12.2 NVIDIA Container Toolkit with disabled CUDA-compat mounting al2-ami-sagemaker-inference-gpu-3-1 Accelerator: GPU NVIDIA driver version: 550 CUDA version: 12.4 NVIDIA Container Toolkit with disabled CUDA-compat mounting al2023-ami-sagemaker-inference-gpu-4-1 Accelerator: GPU NVIDIA driver version: 580 CUDA version: 13.0 NVIDIA Container Toolkit with disabled CUDA-compat mounting al2-ami-sagemaker-inference-neuron-2 Accelerator: Inferentia2 and Trainium Neuron driver version: 2.19 capacity_reservation_config: Settings for the capacity reservation for the compute instances that SageMaker AI reserves for an endpoint. """ @@ -6834,6 +6853,36 @@ class InferenceComponentDataCacheConfig(Base): enable_caching: bool +class InferenceComponentAvailabilityZoneBalance(Base): + """ + InferenceComponentAvailabilityZoneBalance + Configuration for balancing inference component copies across Availability Zones. + + Attributes + ---------------------- + enforcement_mode: Determines how strictly the Availability Zone balance constraint is enforced. PERMISSIVE The endpoint attempts to balance copies across Availability Zones but proceeds with scheduling even if balance can't be achieved due to available capacity or instance distribution across Availability Zones. + max_imbalance: The maximum allowed difference in the number of inference component copies between any two Availability Zones. This parameter applies only when the endpoint has instances across two or more Availability Zones. A copy placement is allowed if it reduces imbalance or the resulting imbalance is within this value. Default value: 0. + """ + + enforcement_mode: str + max_imbalance: Optional[int] = Unassigned() + + +class InferenceComponentSchedulingConfig(Base): + """ + InferenceComponentSchedulingConfig + The scheduling configuration that determines how inference component copies are placed across available instances when copies are added or removed. + + Attributes + ---------------------- + placement_strategy: The strategy for placing inference component copies across available instances. If you also set AvailabilityZoneBalance, this strategy applies to placement within each Availability Zone. SPREAD Distributes copies evenly across available instances for better resilience. BINPACK Packs copies onto fewer instances to optimize resource utilization. + availability_zone_balance: Configuration for balancing inference component copies across Availability Zones. + """ + + placement_strategy: str + availability_zone_balance: Optional[InferenceComponentAvailabilityZoneBalance] = Unassigned() + + class InferenceComponentSpecification(Base): """ InferenceComponentSpecification @@ -6847,6 +6896,7 @@ class InferenceComponentSpecification(Base): compute_resource_requirements: The compute resources allocated to run the model, plus any adapter models, that you assign to the inference component. Omit this parameter if your request is meant to create an adapter inference component. An adapter inference component is loaded by a base inference component, and it uses the compute resources of the base inference component. base_inference_component_name: The name of an existing inference component that is to contain the inference component that you're creating with your request. Specify this parameter only if your request is meant to create an adapter inference component. An adapter inference component contains the path to an adapter model. The purpose of the adapter model is to tailor the inference output of a base foundation model, which is hosted by the base inference component. The adapter inference component uses the compute resources that you assigned to the base inference component. When you create an adapter inference component, use the Container parameter to specify the location of the adapter artifacts. In the parameter value, use the ArtifactUrl parameter of the InferenceComponentContainerSpecification data type. Before you can create an adapter inference component, you must have an existing inference component that contains the foundation model that you want to adapt. data_cache_config: Settings that affect how the inference component caches data. + scheduling_config: The scheduling configuration that determines how inference component copies are placed across available instances when copies are added or removed. """ model_name: Optional[Union[str, object]] = Unassigned() @@ -6857,6 +6907,7 @@ class InferenceComponentSpecification(Base): ) base_inference_component_name: Optional[str] = Unassigned() data_cache_config: Optional[InferenceComponentDataCacheConfig] = Unassigned() + scheduling_config: Optional[InferenceComponentSchedulingConfig] = Unassigned() class InferenceComponentRuntimeConfig(Base): @@ -9894,6 +9945,7 @@ class InferenceComponentSpecificationSummary(Base): compute_resource_requirements: The compute resources allocated to run the model, plus any adapter models, that you assign to the inference component. base_inference_component_name: The name of the base inference component that contains this inference component. data_cache_config: Settings that affect how the inference component caches data. + scheduling_config: The scheduling configuration that determines how inference component copies are placed across available instances when copies are added or removed. """ model_name: Optional[Union[str, object]] = Unassigned() @@ -9904,6 +9956,7 @@ class InferenceComponentSpecificationSummary(Base): ) base_inference_component_name: Optional[str] = Unassigned() data_cache_config: Optional[InferenceComponentDataCacheConfigSummary] = Unassigned() + scheduling_config: Optional[InferenceComponentSchedulingConfig] = Unassigned() class InferenceComponentRuntimeConfigSummary(Base): @@ -10531,6 +10584,39 @@ class TrainingProgressInfo(Base): max_epoch: Optional[int] = Unassigned() +class TrainingPlanExtension(Base): + """ + TrainingPlanExtension + Details about an extension to a training plan, including the offering ID, dates, status, and cost information. + + Attributes + ---------------------- + training_plan_extension_offering_id: The unique identifier of the extension offering that was used to create this extension. + extended_at: The timestamp when the extension was created. + start_date: The start date of the extension period. + end_date: The end date of the extension period. + status: The current status of the extension (e.g., Pending, Active, Scheduled, Failed, Expired). + payment_status: The payment processing status of the extension. + availability_zone: The Availability Zone of the extension. + availability_zone_id: The Availability Zone ID of the extension. + duration_hours: The duration of the extension in hours. + upfront_fee: The upfront fee for the extension. + currency_code: The currency code for the upfront fee (e.g., USD). + """ + + training_plan_extension_offering_id: str + extended_at: Optional[datetime.datetime] = Unassigned() + start_date: Optional[datetime.datetime] = Unassigned() + end_date: Optional[datetime.datetime] = Unassigned() + status: Optional[str] = Unassigned() + payment_status: Optional[str] = Unassigned() + availability_zone: Optional[str] = Unassigned() + availability_zone_id: Optional[str] = Unassigned() + duration_hours: Optional[int] = Unassigned() + upfront_fee: Optional[str] = Unassigned() + currency_code: Optional[str] = Unassigned() + + class ReservedCapacitySummary(Base): """ ReservedCapacitySummary @@ -13958,6 +14044,8 @@ class ReservedCapacityOffering(Base): duration_minutes: The additional minutes beyond whole hours in the total duration for this reserved capacity offering. start_time: The start time of the reserved capacity offering. end_time: The end time of the reserved capacity offering. + extension_start_time: The start time of the extension for the reserved capacity offering. + extension_end_time: The end time of the extension for the reserved capacity offering. """ instance_type: str @@ -13970,6 +14058,8 @@ class ReservedCapacityOffering(Base): duration_minutes: Optional[int] = Unassigned() start_time: Optional[datetime.datetime] = Unassigned() end_time: Optional[datetime.datetime] = Unassigned() + extension_start_time: Optional[datetime.datetime] = Unassigned() + extension_end_time: Optional[datetime.datetime] = Unassigned() class ResourceConfigForUpdate(Base): @@ -14367,6 +14457,31 @@ class TrainingPlanOffering(Base): reserved_capacity_offerings: Optional[List[ReservedCapacityOffering]] = Unassigned() +class TrainingPlanExtensionOffering(Base): + """ + TrainingPlanExtensionOffering + Details about an available extension offering for a training plan. Use the offering ID with the ExtendTrainingPlan API to extend a training plan. + + Attributes + ---------------------- + training_plan_extension_offering_id: The unique identifier for this extension offering. + availability_zone: The Availability Zone for this extension offering. + start_date: The start date of this extension offering. + end_date: The end date of this extension offering. + duration_hours: The duration of this extension offering in hours. + upfront_fee: The upfront fee for this extension offering. + currency_code: The currency code for the upfront fee (e.g., USD). + """ + + training_plan_extension_offering_id: str + availability_zone: Optional[str] = Unassigned() + start_date: Optional[datetime.datetime] = Unassigned() + end_date: Optional[datetime.datetime] = Unassigned() + duration_hours: Optional[int] = Unassigned() + upfront_fee: Optional[str] = Unassigned() + currency_code: Optional[str] = Unassigned() + + class ServiceCatalogProvisioningUpdateDetails(Base): """ ServiceCatalogProvisioningUpdateDetails diff --git a/src/sagemaker_core/tools/api_coverage.json b/src/sagemaker_core/tools/api_coverage.json index 1f2a774..b2b6a32 100644 --- a/src/sagemaker_core/tools/api_coverage.json +++ b/src/sagemaker_core/tools/api_coverage.json @@ -1 +1 @@ -{"SupportedAPIs": 372, "UnsupportedAPIs": 16} \ No newline at end of file +{"SupportedAPIs": 373, "UnsupportedAPIs": 17} \ No newline at end of file