diff --git a/src/__tests__/resolvers.test.ts b/src/__tests__/resolvers.test.ts index 55439d64..c2af4724 100644 --- a/src/__tests__/resolvers.test.ts +++ b/src/__tests__/resolvers.test.ts @@ -164,6 +164,7 @@ describe('Resolvers', () => { "FieldName": "user", "Kind": "UNIT", "MaxBatchSize": undefined, + "MetricsConfig": "DISABLED", "RequestMappingTemplate": "Content of path/to/mappingTemplates/Query.user.request.vtl", "ResponseMappingTemplate": "Content of path/to/mappingTemplates/Query.user.response.vtl", "TypeName": "Query", @@ -218,6 +219,7 @@ describe('Resolvers', () => { "FieldName": "user", "Kind": "UNIT", "MaxBatchSize": undefined, + "MetricsConfig": "DISABLED", "Runtime": Object { "Name": "APPSYNC_JS", "RuntimeVersion": "1.0.0", @@ -272,6 +274,7 @@ describe('Resolvers', () => { "FieldName": "user", "Kind": "UNIT", "MaxBatchSize": undefined, + "MetricsConfig": "DISABLED", "TypeName": "Query", }, "Type": "AWS::AppSync::Resolver", @@ -323,6 +326,7 @@ describe('Resolvers', () => { "FieldName": "user", "Kind": "UNIT", "MaxBatchSize": 200, + "MetricsConfig": "DISABLED", "TypeName": "Query", }, "Type": "AWS::AppSync::Resolver", @@ -380,6 +384,7 @@ describe('Resolvers', () => { "FieldName": "user", "Kind": "UNIT", "MaxBatchSize": undefined, + "MetricsConfig": "DISABLED", "SyncConfig": Object { "ConflictDetection": "VERSION", "ConflictHandler": "LAMBDA", @@ -478,6 +483,7 @@ describe('Resolvers', () => { ", "FieldName": "user", "Kind": "PIPELINE", + "MetricsConfig": "DISABLED", "PipelineConfig": Object { "Functions": Array [ Object { @@ -547,6 +553,7 @@ describe('Resolvers', () => { }, "FieldName": "user", "Kind": "PIPELINE", + "MetricsConfig": "DISABLED", "PipelineConfig": Object { "Functions": Array [ Object { @@ -615,6 +622,7 @@ describe('Resolvers', () => { "Code": "Bundled content of resolvers/getUserFunction.js", "FieldName": "user", "Kind": "PIPELINE", + "MetricsConfig": "DISABLED", "PipelineConfig": Object { "Functions": Array [ Object { @@ -1006,6 +1014,7 @@ describe('Resolvers', () => { "FieldName": "user", "Kind": "UNIT", "MaxBatchSize": undefined, + "MetricsConfig": "DISABLED", "TypeName": "Query", }, "Type": "AWS::AppSync::Resolver", @@ -1070,6 +1079,7 @@ describe('Resolvers', () => { "FieldName": "user", "Kind": "UNIT", "MaxBatchSize": undefined, + "MetricsConfig": "DISABLED", "TypeName": "Query", }, "Type": "AWS::AppSync::Resolver", @@ -1134,6 +1144,7 @@ describe('Resolvers', () => { "FieldName": "user", "Kind": "UNIT", "MaxBatchSize": undefined, + "MetricsConfig": "DISABLED", "TypeName": "Query", }, "Type": "AWS::AppSync::Resolver", diff --git a/src/validation.ts b/src/validation.ts index 4cc292e0..05c1d9e5 100644 --- a/src/validation.ts +++ b/src/validation.ts @@ -810,6 +810,21 @@ export const appSyncSchema = { }, required: ['level'], }, + enhancedMetrics: { + type: 'object', + properties: { + DataSourceLevelMetricsBehavior: { + type: 'string', + enum: ['FULL_REQUEST_DATA_SOURCE_METRICS', 'PER_DATA_SOURCE_METRICS'], + errorMessage: "must be 'FULL_REQUEST_DATA_SOURCE_METRICS' or 'PER_DATA_SOURCE_METRICS'", + }, + OperationLevelMetricsConfig: { + type: 'string', + enum: ['ENABLED', ' DISABLED'], + errorMessage: "must be 'ENABLED' or ' DISABLED'", + }, + } + }, dataSources: { oneOf: [ {