diff --git a/lib/plugins/aws/provider.js b/lib/plugins/aws/provider.js index 2ece54fd9..33d084ca8 100644 --- a/lib/plugins/aws/provider.js +++ b/lib/plugins/aws/provider.js @@ -353,6 +353,16 @@ class AwsProvider { required: ['Fn::GetAtt'], additionalProperties: false, }, + awsCfGetAZs: { + type: 'object', + properties: { + 'Fn::GetAZs': { + oneOf: [{ type: 'string', minLength: 1 }, { $ref: '#/definitions/awsCfRef' }], + }, + }, + required: ['Fn::GetAZs'], + additionalProperties: false, + }, awsCfImport: { type: 'object', properties: { @@ -399,6 +409,31 @@ class AwsProvider { required: ['Fn::Join'], additionalProperties: false, }, + awsCfSelect: { + type: 'object', + properties: { + 'Fn::Select': { + type: 'array', + minItems: 2, + maxItems: 2, + items: { + anyOf: [ + { type: 'number' }, + { type: 'string' }, + { type: 'array' }, + { $ref: '#/definitions/awsCfFindInMap' }, + { $ref: '#/definitions/awsCfGetAtt' }, + { $ref: '#/definitions/awsCfGetAZs' }, + { $ref: '#/definitions/awsCfIf' }, + { $ref: '#/definitions/awsCfSplit' }, + { $ref: '#/definitions/awsCfRef' }, + ], + }, + }, + }, + required: ['Fn::Select'], + additionalProperties: false, + }, awsCfRef: { type: 'object', properties: { @@ -531,6 +566,7 @@ class AwsProvider { { const: '' }, { $ref: '#/definitions/awsCfInstruction' }, { $ref: '#/definitions/awsCfIf' }, + { $ref: '#/definitions/awsCfSelect' }, ], }, },