From 04da03abfe53e3349e4c152302c514fea27acf94 Mon Sep 17 00:00:00 2001 From: Chris Rehn Date: Fri, 18 Nov 2022 13:24:55 -0800 Subject: [PATCH] Add schema types to LayerVersion --- samtranslator/schema/schema.json | 39 ++++++++++++++++++++++++++++++-- samtranslator/schema/schema.py | 26 +++++++++++++-------- 2 files changed, 53 insertions(+), 12 deletions(-) diff --git a/samtranslator/schema/schema.json b/samtranslator/schema/schema.json index f26b4cbf8..8d69577b2 100644 --- a/samtranslator/schema/schema.json +++ b/samtranslator/schema/schema.json @@ -592,6 +592,22 @@ ], "additionalProperties": false }, + "LayerVersionContentUri": { + "title": "LayerVersionContentUri", + "type": "object", + "properties": { + "Bucket": { + "title": "Bucket" + }, + "Key": { + "title": "Key" + }, + "Version": { + "title": "Version" + } + }, + "additionalProperties": false + }, "LayerVersionProperties": { "title": "LayerVersionProperties", "type": "object", @@ -603,7 +619,15 @@ "title": "Compatibleruntimes" }, "ContentUri": { - "title": "Contenturi" + "title": "Contenturi", + "anyOf": [ + { + "type": "string" + }, + { + "$ref": "#/definitions/LayerVersionContentUri" + } + ] }, "Description": { "title": "Description" @@ -615,9 +639,20 @@ "title": "Licenseinfo" }, "RetentionPolicy": { - "title": "Retentionpolicy" + "title": "Retentionpolicy", + "anyOf": [ + { + "type": "string" + }, + { + "type": "object" + } + ] } }, + "required": [ + "ContentUri" + ], "additionalProperties": false }, "AwsServerlessLayerVersion": { diff --git a/samtranslator/schema/schema.py b/samtranslator/schema/schema.py index f030640f7..5a8d0820b 100644 --- a/samtranslator/schema/schema.py +++ b/samtranslator/schema/schema.py @@ -132,21 +132,27 @@ class AwsServerlessStateMachine(BaseModel): Condition: Unknown +class LayerVersionContentUri(BaseModel): + Bucket: PassThrough + Key: PassThrough + Version: Optional[PassThrough] + + class LayerVersionProperties(BaseModel): - CompatibleArchitectures: Unknown - CompatibleRuntimes: Unknown - ContentUri: Unknown - Description: Unknown - LayerName: Unknown - LicenseInfo: Unknown - RetentionPolicy: Unknown + CompatibleArchitectures: Optional[PassThrough] + CompatibleRuntimes: Optional[PassThrough] + ContentUri: Union[str, LayerVersionContentUri] + Description: Optional[PassThrough] + LayerName: Optional[PassThrough] + LicenseInfo: Optional[PassThrough] + RetentionPolicy: Optional[Union[str, SamIntrinsic]] class AwsServerlessLayerVersion(BaseModel): Type: Literal["AWS::Serverless::LayerVersion"] Properties: LayerVersionProperties - Condition: Unknown - DeletionPolicy: Unknown + Condition: Optional[PassThrough] + DeletionPolicy: Optional[PassThrough] class ApiProperties(BaseModel): @@ -228,7 +234,7 @@ class ApplicationProperties(BaseModel): class AwsServerlessApplication(BaseModel): Type: Literal["AWS::Serverless::Application"] Properties: ApplicationProperties - Condition: Unknown + Condition: Optional[PassThrough] # Match anything not containing Serverless