92
92
SESSION = "Session"
93
93
DEFAULT_S3_BUCKET = "DefaultS3Bucket"
94
94
DEFAULT_S3_OBJECT_KEY_PREFIX = "DefaultS3ObjectKeyPrefix"
95
+ ENVIRONMENT = "Environment"
96
+ CONTAINERS = "Containers"
97
+ PRIMARY_CONTAINER = "PrimaryContainer"
98
+ INFERENCE_SPECIFICATION = "InferenceSpecification"
95
99
96
100
97
101
def _simple_path (* args : str ):
@@ -106,6 +110,7 @@ def _simple_path(*args: str):
106
110
)
107
111
COMPILATION_JOB_OUTPUT_CONFIG_PATH = _simple_path (SAGEMAKER , COMPILATION_JOB , OUTPUT_CONFIG )
108
112
COMPILATION_JOB_ROLE_ARN_PATH = _simple_path (SAGEMAKER , COMPILATION_JOB , ROLE_ARN )
113
+ TRAINING_JOB_ENVIRONMENT_PATH = _simple_path (SAGEMAKER , TRAINING_JOB , ENVIRONMENT )
109
114
TRAINING_JOB_ENABLE_NETWORK_ISOLATION_PATH = _simple_path (
110
115
SAGEMAKER , TRAINING_JOB , ENABLE_NETWORK_ISOLATION
111
116
)
@@ -164,6 +169,7 @@ def _simple_path(*args: str):
164
169
MONITORING_JOB_DEFINITION_PREFIX = _simple_path (
165
170
SAGEMAKER , MONITORING_SCHEDULE , MONITORING_SCHEDULE_CONFIG , MONITORING_JOB_DEFINITION
166
171
)
172
+ MONITORING_JOB_ENVIRONMENT_PATH = _simple_path (MONITORING_JOB_DEFINITION_PREFIX , ENVIRONMENT )
167
173
MONITORING_JOB_OUTPUT_KMS_KEY_ID_PATH = _simple_path (
168
174
MONITORING_JOB_DEFINITION_PREFIX , MONITORING_OUTPUT_CONFIG , KMS_KEY_ID
169
175
)
@@ -184,6 +190,7 @@ def _simple_path(*args: str):
184
190
MONITORING_JOB_ROLE_ARN_PATH = _simple_path (MONITORING_JOB_DEFINITION_PREFIX , ROLE_ARN )
185
191
PIPELINE_ROLE_ARN_PATH = _simple_path (SAGEMAKER , PIPELINE , ROLE_ARN )
186
192
PIPELINE_TAGS_PATH = _simple_path (SAGEMAKER , PIPELINE , TAGS )
193
+ TRANSFORM_JOB_ENVIRONMENT_PATH = _simple_path (SAGEMAKER , TRANSFORM_JOB , ENVIRONMENT )
187
194
TRANSFORM_OUTPUT_KMS_KEY_ID_PATH = _simple_path (
188
195
SAGEMAKER , TRANSFORM_JOB , TRANSFORM_OUTPUT , KMS_KEY_ID
189
196
)
@@ -196,9 +203,12 @@ def _simple_path(*args: str):
196
203
TRANSFORM_JOB_VOLUME_KMS_KEY_ID_PATH = _simple_path (
197
204
SAGEMAKER , TRANSFORM_JOB , TRANSFORM_RESOURCES , VOLUME_KMS_KEY_ID
198
205
)
206
+ MODEL_CONTAINERS_PATH = _simple_path (SAGEMAKER , MODEL , CONTAINERS )
199
207
MODEL_VPC_CONFIG_PATH = _simple_path (SAGEMAKER , MODEL , VPC_CONFIG )
200
208
MODEL_ENABLE_NETWORK_ISOLATION_PATH = _simple_path (SAGEMAKER , MODEL , ENABLE_NETWORK_ISOLATION )
201
209
MODEL_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 )
202
212
PROCESSING_JOB_ENABLE_NETWORK_ISOLATION_PATH = _simple_path (
203
213
SAGEMAKER , PROCESSING_JOB , NETWORK_CONFIG , ENABLE_NETWORK_ISOLATION
204
214
)
@@ -229,6 +239,9 @@ def _simple_path(*args: str):
229
239
SAGEMAKER , PROCESSING_JOB , PROCESSING_RESOURCES , CLUSTER_CONFIG , VOLUME_KMS_KEY_ID
230
240
)
231
241
PROCESSING_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
+ )
232
245
MODEL_PACKAGE_VALIDATION_ROLE_PATH = _simple_path (
233
246
SAGEMAKER , MODEL_PACKAGE , VALIDATION_SPECIFICATION , VALIDATION_ROLE
234
247
)
@@ -292,6 +305,7 @@ def _simple_path(*args: str):
292
305
SECURITY_CONFIG ,
293
306
ENABLE_INTER_CONTAINER_TRAFFIC_ENCRYPTION ,
294
307
)
308
+ PROCESSING_JOB_ENVIRONMENT_PATH = _simple_path (SAGEMAKER , PROCESSING_JOB , ENVIRONMENT )
295
309
PROCESSING_JOB_INTER_CONTAINER_ENCRYPTION_PATH = _simple_path (
296
310
SAGEMAKER , PROCESSING_JOB , NETWORK_CONFIG , ENABLE_INTER_CONTAINER_TRAFFIC_ENCRYPTION
297
311
)
@@ -373,6 +387,9 @@ def _simple_path(*args: str):
373
387
TYPE : OBJECT ,
374
388
ADDITIONAL_PROPERTIES : False ,
375
389
PROPERTIES : {
390
+ ENVIRONMENT : {
391
+ "$ref" : "#/definitions/environment-Length10240-Properties16" ,
392
+ },
376
393
TRANSFORM_OUTPUT : {
377
394
TYPE : OBJECT ,
378
395
ADDITIONAL_PROPERTIES : False ,
@@ -463,6 +480,94 @@ def _simple_path(*args: str):
463
480
"minLength" : 3 ,
464
481
"maxLength" : 63 ,
465
482
},
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
+ },
466
571
},
467
572
PROPERTIES : {
468
573
SCHEMA_VERSION : {
@@ -595,6 +700,11 @@ def _simple_path(*args: str):
595
700
TYPE : OBJECT ,
596
701
ADDITIONAL_PROPERTIES : False ,
597
702
PROPERTIES : {
703
+ ENVIRONMENT : {
704
+ "$ref" : (
705
+ "#/definitions/environment-Length256-Properties50"
706
+ ),
707
+ },
598
708
MONITORING_OUTPUT_CONFIG : {
599
709
TYPE : OBJECT ,
600
710
ADDITIONAL_PROPERTIES : False ,
@@ -710,6 +820,7 @@ def _simple_path(*args: str):
710
820
ADDITIONAL_PROPERTIES : False ,
711
821
PROPERTIES : {KMS_KEY_ID : {"$ref" : "#/definitions/kmsKeyId" }},
712
822
},
823
+ ENVIRONMENT : {"$ref" : "#/definitions/environment-Length10240-Properties16" },
713
824
TRANSFORM_OUTPUT : {
714
825
TYPE : OBJECT ,
715
826
ADDITIONAL_PROPERTIES : False ,
@@ -752,22 +863,38 @@ def _simple_path(*args: str):
752
863
},
753
864
# Model
754
865
# 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.
755
869
MODEL : {
756
870
TYPE : OBJECT ,
757
871
ADDITIONAL_PROPERTIES : False ,
758
872
PROPERTIES : {
873
+ CONTAINERS : {"$ref" : "#/definitions/containers" },
759
874
ENABLE_NETWORK_ISOLATION : {TYPE : "boolean" },
760
875
EXECUTION_ROLE_ARN : {"$ref" : "#/definitions/roleArn" },
876
+ PRIMARY_CONTAINER : {"$ref" : "#/definitions/container" },
761
877
VPC_CONFIG : {"$ref" : "#/definitions/vpcConfig" },
762
878
TAGS : {"$ref" : "#/definitions/tags" },
763
879
},
764
880
},
765
881
# 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.
767
887
MODEL_PACKAGE : {
768
888
TYPE : OBJECT ,
769
889
ADDITIONAL_PROPERTIES : False ,
770
890
PROPERTIES : {
891
+ INFERENCE_SPECIFICATION : {
892
+ TYPE : OBJECT ,
893
+ ADDITIONAL_PROPERTIES : False ,
894
+ PROPERTIES : {
895
+ CONTAINERS : {"$ref" : "#/definitions/modelPackageContainers" }
896
+ },
897
+ },
771
898
VALIDATION_SPECIFICATION : {
772
899
TYPE : OBJECT ,
773
900
ADDITIONAL_PROPERTIES : False ,
@@ -792,6 +919,7 @@ def _simple_path(*args: str):
792
919
TYPE : OBJECT ,
793
920
ADDITIONAL_PROPERTIES : False ,
794
921
PROPERTIES : {
922
+ ENVIRONMENT : {"$ref" : "#/definitions/environment-Length256-Properties100" },
795
923
NETWORK_CONFIG : {
796
924
TYPE : OBJECT ,
797
925
ADDITIONAL_PROPERTIES : False ,
@@ -837,6 +965,7 @@ def _simple_path(*args: str):
837
965
PROPERTIES : {
838
966
ENABLE_INTER_CONTAINER_TRAFFIC_ENCRYPTION : {TYPE : "boolean" },
839
967
ENABLE_NETWORK_ISOLATION : {TYPE : "boolean" },
968
+ ENVIRONMENT : {"$ref" : "#/definitions/environment-Length512-Properties48" },
840
969
OUTPUT_DATA_CONFIG : {
841
970
TYPE : OBJECT ,
842
971
ADDITIONAL_PROPERTIES : False ,
0 commit comments