9292SESSION = "Session"
9393DEFAULT_S3_BUCKET = "DefaultS3Bucket"
9494DEFAULT_S3_OBJECT_KEY_PREFIX = "DefaultS3ObjectKeyPrefix"
95+ ENVIRONMENT = "Environment"
96+ CONTAINERS = "Containers"
97+ PRIMARY_CONTAINER = "PrimaryContainer"
98+ INFERENCE_SPECIFICATION = "InferenceSpecification"
9599
96100
97101def _simple_path (* args : str ):
@@ -106,6 +110,7 @@ def _simple_path(*args: str):
106110)
107111COMPILATION_JOB_OUTPUT_CONFIG_PATH = _simple_path (SAGEMAKER , COMPILATION_JOB , OUTPUT_CONFIG )
108112COMPILATION_JOB_ROLE_ARN_PATH = _simple_path (SAGEMAKER , COMPILATION_JOB , ROLE_ARN )
113+ TRAINING_JOB_ENVIRONMENT_PATH = _simple_path (SAGEMAKER , TRAINING_JOB , ENVIRONMENT )
109114TRAINING_JOB_ENABLE_NETWORK_ISOLATION_PATH = _simple_path (
110115 SAGEMAKER , TRAINING_JOB , ENABLE_NETWORK_ISOLATION
111116)
@@ -164,6 +169,7 @@ def _simple_path(*args: str):
164169MONITORING_JOB_DEFINITION_PREFIX = _simple_path (
165170 SAGEMAKER , MONITORING_SCHEDULE , MONITORING_SCHEDULE_CONFIG , MONITORING_JOB_DEFINITION
166171)
172+ MONITORING_JOB_ENVIRONMENT_PATH = _simple_path (MONITORING_JOB_DEFINITION_PREFIX , ENVIRONMENT )
167173MONITORING_JOB_OUTPUT_KMS_KEY_ID_PATH = _simple_path (
168174 MONITORING_JOB_DEFINITION_PREFIX , MONITORING_OUTPUT_CONFIG , KMS_KEY_ID
169175)
@@ -184,6 +190,7 @@ def _simple_path(*args: str):
184190MONITORING_JOB_ROLE_ARN_PATH = _simple_path (MONITORING_JOB_DEFINITION_PREFIX , ROLE_ARN )
185191PIPELINE_ROLE_ARN_PATH = _simple_path (SAGEMAKER , PIPELINE , ROLE_ARN )
186192PIPELINE_TAGS_PATH = _simple_path (SAGEMAKER , PIPELINE , TAGS )
193+ TRANSFORM_JOB_ENVIRONMENT_PATH = _simple_path (SAGEMAKER , TRANSFORM_JOB , ENVIRONMENT )
187194TRANSFORM_OUTPUT_KMS_KEY_ID_PATH = _simple_path (
188195 SAGEMAKER , TRANSFORM_JOB , TRANSFORM_OUTPUT , KMS_KEY_ID
189196)
@@ -196,9 +203,12 @@ def _simple_path(*args: str):
196203TRANSFORM_JOB_VOLUME_KMS_KEY_ID_PATH = _simple_path (
197204 SAGEMAKER , TRANSFORM_JOB , TRANSFORM_RESOURCES , VOLUME_KMS_KEY_ID
198205)
206+ MODEL_CONTAINERS_PATH = _simple_path (SAGEMAKER , MODEL , CONTAINERS )
199207MODEL_VPC_CONFIG_PATH = _simple_path (SAGEMAKER , MODEL , VPC_CONFIG )
200208MODEL_ENABLE_NETWORK_ISOLATION_PATH = _simple_path (SAGEMAKER , MODEL , ENABLE_NETWORK_ISOLATION )
201209MODEL_EXECUTION_ROLE_ARN_PATH = _simple_path (SAGEMAKER , MODEL , EXECUTION_ROLE_ARN )
210+ MODEL_PRIMARY_CONTAINER_PATH = _simple_path (SAGEMAKER , MODEL , PRIMARY_CONTAINER )
211+ MODEL_PRIMARY_CONTAINER_ENVIRONMENT_PATH = _simple_path (MODEL_PRIMARY_CONTAINER_PATH , ENVIRONMENT )
202212PROCESSING_JOB_ENABLE_NETWORK_ISOLATION_PATH = _simple_path (
203213 SAGEMAKER , PROCESSING_JOB , NETWORK_CONFIG , ENABLE_NETWORK_ISOLATION
204214)
@@ -229,6 +239,9 @@ def _simple_path(*args: str):
229239 SAGEMAKER , PROCESSING_JOB , PROCESSING_RESOURCES , CLUSTER_CONFIG , VOLUME_KMS_KEY_ID
230240)
231241PROCESSING_JOB_ROLE_ARN_PATH = _simple_path (SAGEMAKER , PROCESSING_JOB , ROLE_ARN )
242+ MODEL_PACKAGE_INFERENCE_SPECIFICATION_CONTAINERS_PATH = _simple_path (
243+ SAGEMAKER , MODEL_PACKAGE , INFERENCE_SPECIFICATION , CONTAINERS
244+ )
232245MODEL_PACKAGE_VALIDATION_ROLE_PATH = _simple_path (
233246 SAGEMAKER , MODEL_PACKAGE , VALIDATION_SPECIFICATION , VALIDATION_ROLE
234247)
@@ -292,6 +305,7 @@ def _simple_path(*args: str):
292305 SECURITY_CONFIG ,
293306 ENABLE_INTER_CONTAINER_TRAFFIC_ENCRYPTION ,
294307)
308+ PROCESSING_JOB_ENVIRONMENT_PATH = _simple_path (SAGEMAKER , PROCESSING_JOB , ENVIRONMENT )
295309PROCESSING_JOB_INTER_CONTAINER_ENCRYPTION_PATH = _simple_path (
296310 SAGEMAKER , PROCESSING_JOB , NETWORK_CONFIG , ENABLE_INTER_CONTAINER_TRAFFIC_ENCRYPTION
297311)
@@ -373,6 +387,9 @@ def _simple_path(*args: str):
373387 TYPE : OBJECT ,
374388 ADDITIONAL_PROPERTIES : False ,
375389 PROPERTIES : {
390+ ENVIRONMENT : {
391+ "$ref" : "#/definitions/environment-Length10240-Properties16" ,
392+ },
376393 TRANSFORM_OUTPUT : {
377394 TYPE : OBJECT ,
378395 ADDITIONAL_PROPERTIES : False ,
@@ -463,6 +480,94 @@ def _simple_path(*args: str):
463480 "minLength" : 3 ,
464481 "maxLength" : 63 ,
465482 },
483+ # Regex is taken from https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_MonitoringJobDefinition.html#sagemaker-Type-MonitoringJobDefinition-Environment
484+ "environment-Length256-Properties50" : {
485+ TYPE : OBJECT ,
486+ ADDITIONAL_PROPERTIES : False ,
487+ PATTERN_PROPERTIES : {
488+ r"([a-zA-Z_][a-zA-Z0-9_]*){1,256}" : {
489+ TYPE : "string" ,
490+ "pattern" : r"[\S\s]*" ,
491+ "maxLength" : 256 ,
492+ }
493+ },
494+ "maxProperties" : 50 ,
495+ },
496+ # Regex is taken from https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html#sagemaker-CreateTransformJob-request-Environment
497+ "environment-Length10240-Properties16" : {
498+ TYPE : OBJECT ,
499+ ADDITIONAL_PROPERTIES : False ,
500+ PATTERN_PROPERTIES : {
501+ r"[a-zA-Z_][a-zA-Z0-9_]{0,1023}" : {
502+ TYPE : "string" ,
503+ "pattern" : r"[\S\s]*" ,
504+ "maxLength" : 10240 ,
505+ }
506+ },
507+ "maxProperties" : 16 ,
508+ },
509+ # Regex is taken from https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ContainerDefinition.html#sagemaker-Type-ContainerDefinition-Environment
510+ "environment-Length1024-Properties16" : {
511+ TYPE : OBJECT ,
512+ ADDITIONAL_PROPERTIES : False ,
513+ PATTERN_PROPERTIES : {
514+ r"([a-zA-Z_][a-zA-Z0-9_]*){1,1024}" : {
515+ TYPE : "string" ,
516+ "pattern" : r"[\S\s]*" ,
517+ "maxLength" : 1024 ,
518+ }
519+ },
520+ "maxProperties" : 16 ,
521+ },
522+ # Regex is taken from https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateProcessingJob.html#sagemaker-CreateProcessingJob-request-Environment
523+ "environment-Length256-Properties100" : {
524+ TYPE : OBJECT ,
525+ ADDITIONAL_PROPERTIES : False ,
526+ PATTERN_PROPERTIES : {
527+ r"([a-zA-Z_][a-zA-Z0-9_]*){1,256}" : {
528+ TYPE : "string" ,
529+ "pattern" : r"[\S\s]*" ,
530+ "maxLength" : 256 ,
531+ }
532+ },
533+ "maxProperties" : 100 ,
534+ },
535+ # Regex is taken from https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html#sagemaker-CreateTrainingJob-request-Environment
536+ "environment-Length512-Properties48" : {
537+ TYPE : OBJECT ,
538+ ADDITIONAL_PROPERTIES : False ,
539+ PATTERN_PROPERTIES : {
540+ r"([a-zA-Z_][a-zA-Z0-9_]*){1,512}" : {
541+ TYPE : "string" ,
542+ "pattern" : r"[\S\s]*" ,
543+ "maxLength" : 512 ,
544+ }
545+ },
546+ "maxProperties" : 48 ,
547+ },
548+ "container" : {
549+ TYPE : OBJECT ,
550+ ADDITIONAL_PROPERTIES : False ,
551+ PROPERTIES : {
552+ ENVIRONMENT : {"$ref" : "#/definitions/environment-Length1024-Properties16" },
553+ },
554+ },
555+ "containers" : {
556+ TYPE : "array" ,
557+ "items" : {"$ref" : "#/definitions/container" },
558+ # https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ContainerDefinition.html
559+ # According to the API docs, the array can have maximum of 15 items.
560+ "minItems" : 0 ,
561+ "maxItems" : 15 ,
562+ },
563+ "modelPackageContainers" : {
564+ TYPE : "array" ,
565+ "items" : {"$ref" : "#/definitions/container" },
566+ # https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ModelPackageContainerDefinition.html
567+ # According to the API docs, the array can have minimum of 1 and maximum of 15 items.
568+ "minItems" : 1 ,
569+ "maxItems" : 15 ,
570+ },
466571 },
467572 PROPERTIES : {
468573 SCHEMA_VERSION : {
@@ -595,6 +700,11 @@ def _simple_path(*args: str):
595700 TYPE : OBJECT ,
596701 ADDITIONAL_PROPERTIES : False ,
597702 PROPERTIES : {
703+ ENVIRONMENT : {
704+ "$ref" : (
705+ "#/definitions/environment-Length256-Properties50"
706+ ),
707+ },
598708 MONITORING_OUTPUT_CONFIG : {
599709 TYPE : OBJECT ,
600710 ADDITIONAL_PROPERTIES : False ,
@@ -710,6 +820,7 @@ def _simple_path(*args: str):
710820 ADDITIONAL_PROPERTIES : False ,
711821 PROPERTIES : {KMS_KEY_ID : {"$ref" : "#/definitions/kmsKeyId" }},
712822 },
823+ ENVIRONMENT : {"$ref" : "#/definitions/environment-Length10240-Properties16" },
713824 TRANSFORM_OUTPUT : {
714825 TYPE : OBJECT ,
715826 ADDITIONAL_PROPERTIES : False ,
@@ -752,22 +863,38 @@ def _simple_path(*args: str):
752863 },
753864 # Model
754865 # https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateModel.html
866+ # Note: It is recommended that customers should use either of
867+ # [Containers] or [PrimaryContainer] but not both
868+ # Since SDK will throw a ValueError as both can't be passed in.
755869 MODEL : {
756870 TYPE : OBJECT ,
757871 ADDITIONAL_PROPERTIES : False ,
758872 PROPERTIES : {
873+ CONTAINERS : {"$ref" : "#/definitions/containers" },
759874 ENABLE_NETWORK_ISOLATION : {TYPE : "boolean" },
760875 EXECUTION_ROLE_ARN : {"$ref" : "#/definitions/roleArn" },
876+ PRIMARY_CONTAINER : {"$ref" : "#/definitions/container" },
761877 VPC_CONFIG : {"$ref" : "#/definitions/vpcConfig" },
762878 TAGS : {"$ref" : "#/definitions/tags" },
763879 },
764880 },
765881 # Model Package
766- # https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateModelPackage.html
882+ # https://docs.aws.amazon.com/sagemaker/latest
883+ # /APIReference/API_CreateModelPackage.html
884+ # At present, we are not supporting [Environment] defaults for
885+ # [AdditionalInfereceSpecifcations] Since this parameter is not supported
886+ # in the SDK, we are not adding it to the config schema as well.
767887 MODEL_PACKAGE : {
768888 TYPE : OBJECT ,
769889 ADDITIONAL_PROPERTIES : False ,
770890 PROPERTIES : {
891+ INFERENCE_SPECIFICATION : {
892+ TYPE : OBJECT ,
893+ ADDITIONAL_PROPERTIES : False ,
894+ PROPERTIES : {
895+ CONTAINERS : {"$ref" : "#/definitions/modelPackageContainers" }
896+ },
897+ },
771898 VALIDATION_SPECIFICATION : {
772899 TYPE : OBJECT ,
773900 ADDITIONAL_PROPERTIES : False ,
@@ -792,6 +919,7 @@ def _simple_path(*args: str):
792919 TYPE : OBJECT ,
793920 ADDITIONAL_PROPERTIES : False ,
794921 PROPERTIES : {
922+ ENVIRONMENT : {"$ref" : "#/definitions/environment-Length256-Properties100" },
795923 NETWORK_CONFIG : {
796924 TYPE : OBJECT ,
797925 ADDITIONAL_PROPERTIES : False ,
@@ -837,6 +965,7 @@ def _simple_path(*args: str):
837965 PROPERTIES : {
838966 ENABLE_INTER_CONTAINER_TRAFFIC_ENCRYPTION : {TYPE : "boolean" },
839967 ENABLE_NETWORK_ISOLATION : {TYPE : "boolean" },
968+ ENVIRONMENT : {"$ref" : "#/definitions/environment-Length512-Properties48" },
840969 OUTPUT_DATA_CONFIG : {
841970 TYPE : OBJECT ,
842971 ADDITIONAL_PROPERTIES : False ,
0 commit comments