diff --git a/src/services/account/schema.graphql b/src/services/account/schema.graphql index 3ab00c67..69424c84 100644 --- a/src/services/account/schema.graphql +++ b/src/services/account/schema.graphql @@ -1,5 +1,4 @@ -type awsAccount @key(fields: "id") { - id: String! @id @search(by: [hash]) +type awsAccount implements awsOptionalService @key(fields: "id") { regions: [String] @search(by: [hash]) albs: [awsAlb] apiGatewayResources: [awsApiGatewayResource] diff --git a/src/services/alb/schema.graphql b/src/services/alb/schema.graphql index d7141835..c6e167b8 100644 --- a/src/services/alb/schema.graphql +++ b/src/services/alb/schema.graphql @@ -1,9 +1,5 @@ -type awsAlb @key(fields: "arn") { - id: String! @id @search(by: [hash, regexp]) +type awsAlb implements awsBaseService @key(fields: "arn") { name: String @search(by: [hash, regexp]) - accountId: String! @search(by: [hash, regexp]) - arn: String! @id @search(by: [hash, regexp]) - region: String @search(by: [hash, regexp]) dnsName: String @search(by: [hash, regexp]) scheme: String @search(by: [hash, regexp]) type: String @search(by: [hash, regexp]) diff --git a/src/services/apiGatewayResource/schema.graphql b/src/services/apiGatewayResource/schema.graphql index 3c5eea56..c60f333d 100644 --- a/src/services/apiGatewayResource/schema.graphql +++ b/src/services/apiGatewayResource/schema.graphql @@ -6,12 +6,8 @@ type awsApiGatewayMethod @key(fields: "arn") { apiKeyRequired: Boolean @search } -type awsApiGatewayResource @key(fields: "arn") { - id: String! @search(by: [hash]) - accountId: String! @search(by: [hash]) - arn: String! @id @search(by: [hash, regexp]) - region: String @search(by: [hash, regexp]) +type awsApiGatewayResource implements awsBaseService @key(fields: "arn") { restApi: [awsApiGatewayRestApi] @hasInverse(field: resources) #change to plural path: String @search(by: [hash, regexp]) methods: [awsApiGatewayMethod] -} \ No newline at end of file +} diff --git a/src/services/apiGatewayRestApi/schema.graphql b/src/services/apiGatewayRestApi/schema.graphql index dd26f4e3..28dd29fb 100644 --- a/src/services/apiGatewayRestApi/schema.graphql +++ b/src/services/apiGatewayRestApi/schema.graphql @@ -4,11 +4,7 @@ type awsApiGatewayEndpointConfiguration { vpcEndpointIds: [String] @search(by: [hash]) } -type awsApiGatewayRestApi @key(fields: "arn") { - id: String! @id @search(by: [hash]) - accountId: String! @search(by: [hash]) - arn: String! @id @search(by: [hash, regexp]) - region: String @search(by: [hash, regexp]) +type awsApiGatewayRestApi implements awsBaseService @key(fields: "arn") { description: String @search(by: [hash, regexp, fulltext]) policy: awsIamJSONPolicy endpointConfiguration: awsApiGatewayEndpointConfiguration @@ -21,5 +17,3 @@ type awsApiGatewayRestApi @key(fields: "arn") { resources: [awsApiGatewayResource] @hasInverse(field: restApi) route53Record: [awsRoute53Record] @hasInverse(field: restApi) #change to plural } - - diff --git a/src/services/apiGatewayStage/schema.graphql b/src/services/apiGatewayStage/schema.graphql index 03c43369..5474d17b 100644 --- a/src/services/apiGatewayStage/schema.graphql +++ b/src/services/apiGatewayStage/schema.graphql @@ -20,11 +20,7 @@ type awsApiGatewayStageVariable value: String @search(by: [hash]) } -type awsApiGatewayStage @key(fields: "arn") { - id: String! @search(by: [hash]) - accountId: String! @search(by: [hash]) - arn: String! @id @search(by: [hash, regexp]) - region: String @search(by: [hash, regexp]) +type awsApiGatewayStage implements awsBaseService @key(fields: "arn") { name: String @search(by: [hash, regexp]) description: String @search(by: [hash, regexp, fulltext]) cacheCluster: Boolean @search diff --git a/src/services/appSync/schema.graphql b/src/services/appSync/schema.graphql index 64e8376f..e5d67743 100644 --- a/src/services/appSync/schema.graphql +++ b/src/services/appSync/schema.graphql @@ -4,10 +4,10 @@ type awsAppSyncApiKey mutation: { add: false, delete: false } subscription: false ) { - id: String! @id @search(by: [hash]) - description: String @search(by: [hash, regexp]) - expires: Int @search - } + id: String! @id @search(by: [hash]) + description: String @search(by: [hash, regexp]) + expires: Int @search +} type awsAppSyncDataSource @generate( @@ -15,33 +15,33 @@ type awsAppSyncDataSource mutation: { add: false, delete: false } subscription: false ) { - id: String! @id @search(by: [hash]) - arn: String! @search(by: [hash]) - name: String @search(by: [hash, regexp]) - description: String @search(by: [hash, regexp]) - type: String @search(by: [hash, regexp]) - serviceRoleArn: String @search(by: [hash, regexp]) - dynamodbTableName: String @search(by: [hash, regexp]) - dynamodbAwsRegion: String @search(by: [hash, regexp]) - dynamodbUseCallerCredentials: String @search(by: [hash, regexp]) - dynamodbDeltaSyncBaseTableTTL: Int @search - dynamodbDeltaSyncTableName: String @search(by: [hash, regexp]) - dynamodbDeltaSyncTableTTL: Int @search - dynamodbVersioned: String @search(by: [hash, regexp]) - lambdaFunctionArn: String @search(by: [hash, regexp]) - elasticsearchEndpoint: String @search(by: [hash, regexp]) - elasticsearchAwsRegion: String @search(by: [hash, regexp]) - httpEndpoint: String @search(by: [hash, regexp]) - httpAuthorizationType: String @search(by: [hash, regexp]) - httpAuthorizationIamSigningRegion: String @search(by: [hash, regexp]) - httpAuthorizationIamSigningServiceName: String @search(by: [hash, regexp]) - relationalDatabaseSourceType: String @search(by: [hash, regexp]) - relationalDatabaseAwsRegion: String @search(by: [hash, regexp]) - relationalDatabaseClusterIdentifier: String @search(by: [hash, regexp]) - relationalDatabaseName: String @search(by: [hash, regexp]) - relationalDatabaseSchema: String @search(by: [hash, regexp]) - relationalDatabaseAwsSecretStoreArn: String @search(by: [hash, regexp]) - } + id: String! @id @search(by: [hash]) + arn: String! @search(by: [hash]) + name: String @search(by: [hash, regexp]) + description: String @search(by: [hash, regexp]) + type: String @search(by: [hash, regexp]) + serviceRoleArn: String @search(by: [hash, regexp]) + dynamodbTableName: String @search(by: [hash, regexp]) + dynamodbAwsRegion: String @search(by: [hash, regexp]) + dynamodbUseCallerCredentials: String @search(by: [hash, regexp]) + dynamodbDeltaSyncBaseTableTTL: Int @search + dynamodbDeltaSyncTableName: String @search(by: [hash, regexp]) + dynamodbDeltaSyncTableTTL: Int @search + dynamodbVersioned: String @search(by: [hash, regexp]) + lambdaFunctionArn: String @search(by: [hash, regexp]) + elasticsearchEndpoint: String @search(by: [hash, regexp]) + elasticsearchAwsRegion: String @search(by: [hash, regexp]) + httpEndpoint: String @search(by: [hash, regexp]) + httpAuthorizationType: String @search(by: [hash, regexp]) + httpAuthorizationIamSigningRegion: String @search(by: [hash, regexp]) + httpAuthorizationIamSigningServiceName: String @search(by: [hash, regexp]) + relationalDatabaseSourceType: String @search(by: [hash, regexp]) + relationalDatabaseAwsRegion: String @search(by: [hash, regexp]) + relationalDatabaseClusterIdentifier: String @search(by: [hash, regexp]) + relationalDatabaseName: String @search(by: [hash, regexp]) + relationalDatabaseSchema: String @search(by: [hash, regexp]) + relationalDatabaseAwsSecretStoreArn: String @search(by: [hash, regexp]) +} type awsAppSyncResolver @generate( @@ -49,21 +49,21 @@ type awsAppSyncResolver mutation: { add: false, delete: false } subscription: false ) { - id: String! @id @search(by: [hash]) - arn: String! @search(by: [hash]) - typeName: String @search(by: [hash, regexp]) - fieldName: String @search(by: [hash, regexp]) - dataSourceName: String @search(by: [hash, regexp]) - requestMappingTemplate: String @search(by: [hash, regexp]) - responseMappingTemplate: String @search(by: [hash, regexp]) - kind: String @search(by: [hash, regexp]) - pipelineFunctionIds: [String] @search(by: [hash]) - syncConflictHandler: String @search(by: [hash, regexp]) - syncConflictDetection: String @search(by: [hash, regexp]) - syncLambdaConflictHandlerArn: String @search(by: [hash, regexp]) - cachingTTL: Int @search - cachingKeys: [String] @search(by: [hash]) - } + id: String! @id @search(by: [hash]) + arn: String! @search(by: [hash]) + typeName: String @search(by: [hash, regexp]) + fieldName: String @search(by: [hash, regexp]) + dataSourceName: String @search(by: [hash, regexp]) + requestMappingTemplate: String @search(by: [hash, regexp]) + responseMappingTemplate: String @search(by: [hash, regexp]) + kind: String @search(by: [hash, regexp]) + pipelineFunctionIds: [String] @search(by: [hash]) + syncConflictHandler: String @search(by: [hash, regexp]) + syncConflictDetection: String @search(by: [hash, regexp]) + syncLambdaConflictHandlerArn: String @search(by: [hash, regexp]) + cachingTTL: Int @search + cachingKeys: [String] @search(by: [hash]) +} type awsAppSyncFunction @generate( @@ -71,16 +71,16 @@ type awsAppSyncFunction mutation: { add: false, delete: false } subscription: false ) { - id: String! @id @search(by: [hash]) - arn: String! @search(by: [hash]) - name: String @search(by: [hash, regexp]) - description: String @search(by: [hash, regexp]) - dataSourceName: String @search(by: [hash, regexp]) - requestMappingTemplate: String @search(by: [hash, regexp]) - responseMappingTemplate: String @search(by: [hash, regexp]) - functionVersion: String @search(by: [hash, regexp]) - resolvers: [awsAppSyncResolver] - } + id: String! @id @search(by: [hash]) + arn: String! @search(by: [hash]) + name: String @search(by: [hash, regexp]) + description: String @search(by: [hash, regexp]) + dataSourceName: String @search(by: [hash, regexp]) + requestMappingTemplate: String @search(by: [hash, regexp]) + responseMappingTemplate: String @search(by: [hash, regexp]) + functionVersion: String @search(by: [hash, regexp]) + resolvers: [awsAppSyncResolver] +} type awsAppSyncType @generate( @@ -88,14 +88,14 @@ type awsAppSyncType mutation: { add: false, delete: false } subscription: false ) { - id: String! @id @search(by: [hash]) - arn: String! @search(by: [hash]) - name: String @search(by: [hash, regexp]) - description: String @search(by: [hash, regexp]) - definition: String @search(by: [hash, regexp]) - format: String @search(by: [hash, regexp]) - resolvers: [awsAppSyncResolver] - } + id: String! @id @search(by: [hash]) + arn: String! @search(by: [hash]) + name: String @search(by: [hash, regexp]) + description: String @search(by: [hash, regexp]) + definition: String @search(by: [hash, regexp]) + format: String @search(by: [hash, regexp]) + resolvers: [awsAppSyncResolver] +} type awsAppSyncGraphqlApiUris @generate( @@ -103,10 +103,10 @@ type awsAppSyncGraphqlApiUris mutation: { add: false, delete: false } subscription: false ) { - id: String! @id @search(by: [hash]) - key: String! @search(by: [hash, regexp]) - value: String! @search(by: [hash, regexp]) - } + id: String! @id @search(by: [hash]) + key: String! @search(by: [hash, regexp]) + value: String! @search(by: [hash, regexp]) +} type awsAdditionalAuthenticationProvider @generate( @@ -114,25 +114,21 @@ type awsAdditionalAuthenticationProvider mutation: { add: false, delete: false } subscription: false ) { - id: String! @id @search(by: [hash]) - authenticationType: String @search(by: [hash, regexp]) - openIDConnectIssuer: String @search(by: [hash, regexp]) - openIDConnectClientId: String @search(by: [hash, regexp]) - openIDConnectIatTTL: Int @search - openIDConnectAuthTTL: Int @search - userPoolId: String @search(by: [hash, regexp]) - userPoolAwsRegion: String @search(by: [hash, regexp]) - userPoolAppIdClientRegex: String @search(by: [hash, regexp]) - } + id: String! @id @search(by: [hash]) + authenticationType: String @search(by: [hash, regexp]) + openIDConnectIssuer: String @search(by: [hash, regexp]) + openIDConnectClientId: String @search(by: [hash, regexp]) + openIDConnectIatTTL: Int @search + openIDConnectAuthTTL: Int @search + userPoolId: String @search(by: [hash, regexp]) + userPoolAwsRegion: String @search(by: [hash, regexp]) + userPoolAppIdClientRegex: String @search(by: [hash, regexp]) +} # TODO: add iam role connection # TODO: waf web acl connection # TODO: add cloudwatchLog connection -type awsAppSync @key(fields: "arn") { - id: String! @id @search(by: [hash]) - accountId: String! @search(by: [hash]) - arn: String! @id @search(by: [hash, regexp]) - region: String! @search(by: [hash, regexp]) - name: String! @search(by: [hash, regexp]) +type awsAppSync implements awsBaseService @key(fields: "arn") { + name: String @search(by: [hash, regexp]) authenticationType: String @search(by: [hash, regexp]) logFieldLogLevel: String @search(by: [hash, regexp]) logCloudWatchLogsRoleArn: String @search(by: [hash, regexp]) @@ -145,14 +141,15 @@ type awsAppSync @key(fields: "arn") { openIDConnectClientId: String @search(by: [hash, regexp]) openIDConnectIatTTL: Int @search openIDConnectAuthTTL: Int @search - uris: [awsAppSyncGraphqlApiUris] + uris: [awsAppSyncGraphqlApiUris] tags: [awsRawTag] additionalAuthenticationProviders: [awsAdditionalAuthenticationProvider] xrayEnabled: String @search(by: [hash, regexp]) wafWebAclArn: String @search(by: [hash, regexp]) lambdaAuthorizerResultTtlInSeconds: Int @search lambdaAuthorizerUri: String @search(by: [hash, regexp]) - lambdaAuthorizerIdentityValidationExpression: String @search(by: [hash, regexp]) + lambdaAuthorizerIdentityValidationExpression: String + @search(by: [hash, regexp]) apiKeys: [awsAppSyncApiKey] dataSources: [awsAppSyncDataSource] functions: [awsAppSyncFunction] diff --git a/src/services/asg/schema.graphql b/src/services/asg/schema.graphql index 0190ca5f..2dea9b6c 100644 --- a/src/services/asg/schema.graphql +++ b/src/services/asg/schema.graphql @@ -4,17 +4,17 @@ type awsMixedInstancesPolicy mutation: { add: false, delete: false } subscription: false ) { - launchTemplateId: String @search(by: [hash, regexp]) - launchTemplateName: String @search(by: [hash, regexp]) - launchTemplateVersion: String @search(by: [hash, regexp]) - launchTemplateOverrides: [awsLaunchTemplateOverrides] - instDistrOnDemandAllocationStrategy: String @search(by: [hash, regexp]) - instDistrOnDemandBaseCapacity: Int - instDistrOnDemandPercentageAboveBaseCapacity: Int - instDistrSpotAllocationStrategy: String @search(by: [hash, regexp]) - instDistrSpotInstancePools: Int - instDistrSpotMaxPrice: String @search(by: [hash, regexp]) - } + launchTemplateId: String @search(by: [hash, regexp]) + launchTemplateName: String @search(by: [hash, regexp]) + launchTemplateVersion: String @search(by: [hash, regexp]) + launchTemplateOverrides: [awsLaunchTemplateOverrides] + instDistrOnDemandAllocationStrategy: String @search(by: [hash, regexp]) + instDistrOnDemandBaseCapacity: Int + instDistrOnDemandPercentageAboveBaseCapacity: Int + instDistrSpotAllocationStrategy: String @search(by: [hash, regexp]) + instDistrSpotInstancePools: Int + instDistrSpotMaxPrice: String @search(by: [hash, regexp]) +} type awsLaunchTemplateOverrides @generate( @@ -22,13 +22,13 @@ type awsLaunchTemplateOverrides mutation: { add: false, delete: false } subscription: false ) { - id: String! @id - instanceType: String - weightedCapacity: String - launchTemplateId: String @search(by: [hash, regexp]) - launchTemplateName: String @search(by: [hash, regexp]) - launchTemplateVersion: String @search(by: [hash, regexp]) - } + id: String! @id + instanceType: String + weightedCapacity: String + launchTemplateId: String @search(by: [hash, regexp]) + launchTemplateName: String @search(by: [hash, regexp]) + launchTemplateVersion: String @search(by: [hash, regexp]) +} type awsSuspendedProcess @generate( @@ -36,10 +36,10 @@ type awsSuspendedProcess mutation: { add: false, delete: false } subscription: false ) { - id: String! @id - processName: String! @search(by: [hash, regexp]) - suspensionReason: String @search(by: [hash, regexp]) - } + id: String! @id + processName: String! @search(by: [hash, regexp]) + suspensionReason: String @search(by: [hash, regexp]) +} type awsEnabledMetrics @generate( @@ -47,22 +47,22 @@ type awsEnabledMetrics mutation: { add: false, delete: false } subscription: false ) { - id: String! @id - metric: String! @search(by: [hash, regexp]) - granularity: String @search(by: [hash, regexp]) - } + id: String! @id + metric: String! @search(by: [hash, regexp]) + granularity: String @search(by: [hash, regexp]) +} -type awsLcBlockDeviceMapping +type awsLcBlockDeviceMapping @generate( query: { get: false, query: false, aggregate: false } mutation: { add: false, delete: false } subscription: false ) { - id: String! @id - virtualName: String @search(by: [hash, regexp]) - deviceName: String @search(by: [hash, regexp]) - noDevice: String @search(by: [hash, regexp]) - } + id: String! @id + virtualName: String @search(by: [hash, regexp]) + deviceName: String @search(by: [hash, regexp]) + noDevice: String @search(by: [hash, regexp]) +} type awsLaunchConfiguration @generate( @@ -70,35 +70,31 @@ type awsLaunchConfiguration mutation: { add: false, delete: false } subscription: false ) { - launchConfigurationName: String @search(by: [hash, regexp]) - launchConfigurationARN: String @search(by: [hash, regexp]) - imageId: String @search(by: [hash, regexp]) - keyName: String @search(by: [hash, regexp]) - securityGroups: [String] @search(by: [hash]) - classicLinkVPCId: String @search(by: [hash, regexp]) - classicLinkVPCSecurityGroups: [String] @search(by: [hash]) - userData: String @search(by: [hash, regexp]) - instanceType: String @search(by: [hash, regexp]) - kernelId: String @search(by: [hash, regexp]) - ramdiskId: String @search(by: [hash, regexp]) - blockDeviceMappings: [awsLcBlockDeviceMapping] - instanceMonitoring: String @search(by: [hash, regexp]) - spotPrice: String @search(by: [hash, regexp]) - iamInstanceProfile: String @search(by: [hash, regexp]) - ebsOptimized: String @search(by: [hash, regexp]) - associatePublicIpAddress: String @search(by: [hash, regexp]) - placementTenancy: String @search(by: [hash, regexp]) - metadataOptHttpTokens: String @search(by: [hash, regexp]) - metadataOptHttpPutResponseHopLimit: Int @search - metadataOptHttpEndpoint: String @search(by: [hash, regexp]) - } + launchConfigurationName: String @search(by: [hash, regexp]) + launchConfigurationARN: String @search(by: [hash, regexp]) + imageId: String @search(by: [hash, regexp]) + keyName: String @search(by: [hash, regexp]) + securityGroups: [String] @search(by: [hash]) + classicLinkVPCId: String @search(by: [hash, regexp]) + classicLinkVPCSecurityGroups: [String] @search(by: [hash]) + userData: String @search(by: [hash, regexp]) + instanceType: String @search(by: [hash, regexp]) + kernelId: String @search(by: [hash, regexp]) + ramdiskId: String @search(by: [hash, regexp]) + blockDeviceMappings: [awsLcBlockDeviceMapping] + instanceMonitoring: String @search(by: [hash, regexp]) + spotPrice: String @search(by: [hash, regexp]) + iamInstanceProfile: String @search(by: [hash, regexp]) + ebsOptimized: String @search(by: [hash, regexp]) + associatePublicIpAddress: String @search(by: [hash, regexp]) + placementTenancy: String @search(by: [hash, regexp]) + metadataOptHttpTokens: String @search(by: [hash, regexp]) + metadataOptHttpPutResponseHopLimit: Int @search + metadataOptHttpEndpoint: String @search(by: [hash, regexp]) +} #TODO: add iam role connection here -type awsAsg @key(fields: "arn") { - id: String! @search(by: [hash]) - accountId: String! @search(by: [hash]) - arn: String! @id @search(by: [hash, regexp]) - region: String! @search(by: [hash, regexp]) +type awsAsg implements awsBaseService @key(fields: "arn") { name: String @search(by: [hash, regexp]) launchConfigurationName: String @search(by: [hash, regexp]) launchTemplateId: String @search(by: [hash, regexp]) diff --git a/src/services/athenaDataCatalog/schema.graphql b/src/services/athenaDataCatalog/schema.graphql index 90bd2041..03ecddd0 100644 --- a/src/services/athenaDataCatalog/schema.graphql +++ b/src/services/athenaDataCatalog/schema.graphql @@ -1,9 +1,5 @@ -type awsAthenaDataCatalog @key(fields: "arn") { - id: String! @id @search(by: [hash, regexp]) - arn: String! @id @search(by: [hash, regexp]) +type awsAthenaDataCatalog implements awsBaseService @key(fields: "arn") { catalogName: String! @search(by: [hash, regexp]) - accountId: String! @search(by: [hash]) - region: String @search(by: [hash, regexp]) type: String @search(by: [hash, regexp]) databases: [awsAthenaDatabase] } diff --git a/src/services/base/schema.graphql b/src/services/base/schema.graphql new file mode 100644 index 00000000..73cc8749 --- /dev/null +++ b/src/services/base/schema.graphql @@ -0,0 +1,23 @@ +interface awsBaseService + @generate( + query: { get: true, query: true, aggregate: true } + mutation: { add: true, delete: false } + subscription: false + ) { + id: String! @id @search(by: [hash]) + arn: String! @id @search(by: [hash]) + accountId: String! @search(by: [hash, regexp]) + region: String @search(by: [hash, regexp]) +} + +interface awsOptionalService + @generate( + query: { get: true, query: true, aggregate: true } + mutation: { add: true, delete: false } + subscription: false + ) { + id: String! @id @search(by: [hash]) + arn: String @search(by: [hash]) + accountId: String @search(by: [hash, regexp]) + region: String @search(by: [hash, regexp]) +} diff --git a/src/services/clientVpnEndpoint/schema.graphql b/src/services/clientVpnEndpoint/schema.graphql index d6f1b303..cd21dedc 100644 --- a/src/services/clientVpnEndpoint/schema.graphql +++ b/src/services/clientVpnEndpoint/schema.graphql @@ -1,8 +1,4 @@ -type awsClientVpnEndpoint @key(fields: "arn") { - id: String! @id @search(by: [hash]) - accountId: String! @search(by: [hash]) - arn: String! @id @search(by: [hash, regexp]) - region: String @search(by: [hash, regexp]) +type awsClientVpnEndpoint implements awsBaseService @key(fields: "arn") { status: String @search(by: [hash, regexp]) creationTime: String @search(by: [hash, regexp]) description: String @search(by: [hash, regexp]) @@ -97,5 +93,3 @@ type awsClientConnectResponseOptions lambdaFunctionArn: String @search(by: [hash, regexp]) status: String @search(by: [hash, regexp]) } - - diff --git a/src/services/cloud9/schema.graphql b/src/services/cloud9/schema.graphql index f61fdfa8..6c022624 100644 --- a/src/services/cloud9/schema.graphql +++ b/src/services/cloud9/schema.graphql @@ -1,8 +1,4 @@ -type awsCloud9Environment @key(fields: "arn") { - id: String! @search(by: [hash, regexp]) - arn: String! @id @search(by: [hash, regexp]) - region: String! @search(by: [hash, regexp]) - accountId: String! @search(by: [hash, regexp]) +type awsCloud9Environment implements awsBaseService @key(fields: "arn") { name: String @search(by: [hash, regexp]) description: String @search(by: [hash, regexp]) type: String @search(by: [hash, regexp]) diff --git a/src/services/cloudFormationStack/schema.graphql b/src/services/cloudFormationStack/schema.graphql index 1672d74f..aed2bbb0 100644 --- a/src/services/cloudFormationStack/schema.graphql +++ b/src/services/cloudFormationStack/schema.graphql @@ -54,12 +54,8 @@ type awsCloudFormationStackDriftList { timestamp: String @search(by: [hash, regexp]) } -type awsCloudFormationStack @key(fields: "arn") { - id: String! @search(by: [hash]) - arn: String! @id @search(by: [hash, regexp]) - region: String! @search(by: [hash, regexp]) +type awsCloudFormationStack implements awsBaseService @key(fields: "arn") { name: String @search(by: [hash, regexp]) - accountId: String! @search(by: [hash, regexp]) changeSetId: String @search(by: [hash, regexp]) description: String @search(by: [hash, regexp]) parameters: [awsCloudFormationStackParameter] diff --git a/src/services/cloudFormationStackSet/format.ts b/src/services/cloudFormationStackSet/format.ts index e4e06844..ffd4a9af 100644 --- a/src/services/cloudFormationStackSet/format.ts +++ b/src/services/cloudFormationStackSet/format.ts @@ -1,15 +1,17 @@ -import cuid from 'cuid'; +import cuid from 'cuid' import t from '../../properties/translations' -import { AwsCloudFormationStackSet } from '../../types/generated'; +import { AwsCloudFormationStackSet } from '../../types/generated' -import { formatTagsFromMap } from '../../utils/format'; -import { RawAwsCloudFormationStackSet } from './data'; +import { formatTagsFromMap } from '../../utils/format' +import { RawAwsCloudFormationStackSet } from './data' export default ({ service: rawData, + account: accountId, region, }: { service: RawAwsCloudFormationStackSet + account: string region: string }): AwsCloudFormationStackSet => { const { @@ -30,25 +32,28 @@ export default ({ OrganizationalUnitIds: organizationalUnitIds, } = rawData - const parameterList = parameters.map(({ - ParameterKey: parameterKey, - ParameterValue: parameterValue, - UsePreviousValue: usePreviousValue, - ResolvedValue: resolvedValue, - }) => { - return { - id: cuid(), - parameterKey, - parameterValue, - usePreviousValue: usePreviousValue? t.yes : t.no, - resolvedValue, + const parameterList = parameters.map( + ({ + ParameterKey: parameterKey, + ParameterValue: parameterValue, + UsePreviousValue: usePreviousValue, + ResolvedValue: resolvedValue, + }) => { + return { + id: cuid(), + parameterKey, + parameterValue, + usePreviousValue: usePreviousValue ? t.yes : t.no, + resolvedValue, + } } - }) + ) return { id: stackSetId, arn: stackSetARN, name: stackSetName, + accountId, description, status, templateBody, @@ -60,18 +65,28 @@ export default ({ driftDetectionDetail: { id: cuid(), driftStatus: stackSetDriftDetectionDetails?.DriftStatus || '', - driftDetectionStatus: stackSetDriftDetectionDetails?.DriftDetectionStatus || '', - lastDriftCheckTimestamp: stackSetDriftDetectionDetails?.LastDriftCheckTimestamp?.toISOString() || '', - totalStackInstancesCount: stackSetDriftDetectionDetails?.TotalStackInstancesCount || 0, - driftedStackInstancesCount: stackSetDriftDetectionDetails?.DriftedStackInstancesCount || 0, - inSyncStackInstancesCount: stackSetDriftDetectionDetails?.InSyncStackInstancesCount || 0, - inProgressStackInstancesCount: stackSetDriftDetectionDetails?.InProgressStackInstancesCount || 0, - failedStackInstancesCount: stackSetDriftDetectionDetails?.FailedStackInstancesCount || 0, + driftDetectionStatus: + stackSetDriftDetectionDetails?.DriftDetectionStatus || '', + lastDriftCheckTimestamp: + stackSetDriftDetectionDetails?.LastDriftCheckTimestamp?.toISOString() || + '', + totalStackInstancesCount: + stackSetDriftDetectionDetails?.TotalStackInstancesCount || 0, + driftedStackInstancesCount: + stackSetDriftDetectionDetails?.DriftedStackInstancesCount || 0, + inSyncStackInstancesCount: + stackSetDriftDetectionDetails?.InSyncStackInstancesCount || 0, + inProgressStackInstancesCount: + stackSetDriftDetectionDetails?.InProgressStackInstancesCount || 0, + failedStackInstancesCount: + stackSetDriftDetectionDetails?.FailedStackInstancesCount || 0, }, autoDeploymentConfig: { enabled: autoDeployment?.Enabled ? t.yes : t.no, - retainStacksOnAccountRemoval: autoDeployment?.RetainStacksOnAccountRemoval ? t.yes : t.no, - }, + retainStacksOnAccountRemoval: autoDeployment?.RetainStacksOnAccountRemoval + ? t.yes + : t.no, + }, permissionModel, organizationalUnitIds, region, diff --git a/src/services/cloudFormationStackSet/schema.graphql b/src/services/cloudFormationStackSet/schema.graphql index 290f5f98..0edf1146 100644 --- a/src/services/cloudFormationStackSet/schema.graphql +++ b/src/services/cloudFormationStackSet/schema.graphql @@ -4,12 +4,12 @@ type awsCloudFormationStackSetParameter mutation: { add: false, delete: false } subscription: false ) { - id: String! @id @search(by: [hash]) - parameterKey: String @search(by: [hash, regexp]) - parameterValue: String @search(by: [hash, regexp]) - usePreviousValue: String @search(by: [hash, regexp]) - resolvedValue: String @search(by: [hash, regexp]) - } + id: String! @id @search(by: [hash]) + parameterKey: String @search(by: [hash, regexp]) + parameterValue: String @search(by: [hash, regexp]) + usePreviousValue: String @search(by: [hash, regexp]) + resolvedValue: String @search(by: [hash, regexp]) +} type awsCloudFormationStackSetDriftDetectionDetail @generate( @@ -17,12 +17,12 @@ type awsCloudFormationStackSetDriftDetectionDetail mutation: { add: false, delete: false } subscription: false ) { - id: String! @id @search(by: [hash]) - parameterKey: String @search(by: [hash, regexp]) - parameterValue: String @search(by: [hash, regexp]) - usePreviousValue: String @search(by: [hash, regexp]) - resolvedValue: String @search(by: [hash, regexp]) - } + id: String! @id @search(by: [hash]) + parameterKey: String @search(by: [hash, regexp]) + parameterValue: String @search(by: [hash, regexp]) + usePreviousValue: String @search(by: [hash, regexp]) + resolvedValue: String @search(by: [hash, regexp]) +} type awsCloudFormationStackSetDriftDetectionDetail { id: String! @search(by: [hash]) @@ -41,17 +41,14 @@ type awsCloudFormationStackAutoDeploymentConfig { retainStacksOnAccountRemoval: String @search(by: [hash, regexp]) } # TODO: add accountId to cloudFormationStackSet -type awsCloudFormationStackSet @key(fields: "arn") { - id: String! @search(by: [hash]) - arn: String! @id @search(by: [hash, regexp]) - region: String! @search(by: [hash, regexp]) +type awsCloudFormationStackSet implements awsBaseService @key(fields: "arn") { name: String @search(by: [hash, regexp]) description: String @search(by: [hash, regexp]) status: String @search(by: [hash, regexp]) templateBody: String @search(by: [hash, regexp]) parameters: [awsCloudFormationStackSetParameter] capabilities: [String] @search - tags: [awsRawTag] + tags: [awsRawTag] administrationRoleARN: String @search(by: [hash, regexp]) executionRoleName: String @search(by: [hash, regexp]) driftDetectionDetail: awsCloudFormationStackSetDriftDetectionDetail diff --git a/src/services/cloudfront/schema.graphql b/src/services/cloudfront/schema.graphql index 5ced77b9..522f2aeb 100644 --- a/src/services/cloudfront/schema.graphql +++ b/src/services/cloudfront/schema.graphql @@ -1,7 +1,4 @@ -type awsCloudfront @key(fields: "id") { - id: String! @id @search(by: [hash]) - accountId: String! @search(by: [hash]) - arn: String! @id @search(by: [hash, regexp]) +type awsCloudfront implements awsBaseService @key(fields: "id") { etag: String @search(by: [hash, regexp]) status: String @search(by: [hash]) enabled: String @search(by: [hash]) @@ -96,4 +93,4 @@ type awsCloudfrontLoggingConfig { includeCookies: Boolean @search bucket: String @search(by: [hash, regexp]) prefix: String @search(by: [hash, regexp]) -} \ No newline at end of file +} diff --git a/src/services/cloudtrail/connections.ts b/src/services/cloudtrail/connections.ts index 7061fd37..3d087b37 100644 --- a/src/services/cloudtrail/connections.ts +++ b/src/services/cloudtrail/connections.ts @@ -1,12 +1,11 @@ import isEmpty from 'lodash/isEmpty' import { ServiceConnection } from '@cloudgraph/sdk' -import { Trail } from 'aws-sdk/clients/cloudtrail' -import { TagMap } from '../../types' import { s3BucketArn } from '../../utils/generateArns' import { gets3BucketId } from '../../utils/ids' import { RawAwsLogGroup } from '../cloudwatchLogs/data' import { RawAwsCloudwatch } from '../cloudwatch/data' +import { RawAwsCloudTrail } from './data' import services from '../../enums/services' /** @@ -19,16 +18,13 @@ export default ({ region, }: { data: { name: string; data: { [property: string]: any[] } }[] - service: Trail & { - Tags: TagMap - region: string - } + service: RawAwsCloudTrail region: string }): { [key: string]: ServiceConnection[] } => { const connections: ServiceConnection[] = [] const { - TrailARN: id, + id, S3BucketName: s3BucketName, SnsTopicARN: snsTopicARN, KmsKeyId: kmsKeyId, diff --git a/src/services/cloudtrail/data.ts b/src/services/cloudtrail/data.ts index 134a8265..b02a81c5 100644 --- a/src/services/cloudtrail/data.ts +++ b/src/services/cloudtrail/data.ts @@ -6,6 +6,7 @@ import CloudTrail, { TrailInfo, } from 'aws-sdk/clients/cloudtrail' import { Config } from 'aws-sdk/lib/config' +import cuid from 'cuid' import groupBy from 'lodash/groupBy' import isEmpty from 'lodash/isEmpty' @@ -23,6 +24,7 @@ const endpoint = initTestEndpoint(serviceName) */ export interface RawAwsCloudTrail extends Trail { + id: string TrailStatus: GetTrailStatusResponse EventSelectors: EventSelector[] Tags: TagMap @@ -177,6 +179,7 @@ export default async ({ cloudTrailData.push({ ...trail, + id: cuid(), TrailStatus: trailStatus || {}, EventSelectors: trailEvents, Tags: convertAwsTagsToTagMap( diff --git a/src/services/cloudtrail/format.ts b/src/services/cloudtrail/format.ts index 47ba3486..e56cd819 100644 --- a/src/services/cloudtrail/format.ts +++ b/src/services/cloudtrail/format.ts @@ -15,6 +15,7 @@ export default ({ region: string }): AwsCloudtrail => { const { + id, Name: name, S3BucketName: s3BucketName, S3KeyPrefix: s3KeyPrefix, @@ -54,14 +55,18 @@ export default ({ id: cuid(), readWriteType: ReadWriteType, includeManagementEvents: IncludeManagementEvents, - dataResources: DataResources?.map(({ Type, Values }) => ({id: cuid(), type: Type, values : Values})) || [], + dataResources: + DataResources?.map(({ Type, Values }) => ({ + id: cuid(), + type: Type, + values: Values, + })) || [], }) ) } const cloudTrail = { - id: arn, - cgId: cuid(), + id, arn, accountId: account, name, diff --git a/src/services/cloudtrail/schema.graphql b/src/services/cloudtrail/schema.graphql index e1867bd3..250a16cb 100644 --- a/src/services/cloudtrail/schema.graphql +++ b/src/services/cloudtrail/schema.graphql @@ -1,9 +1,4 @@ -type awsCloudtrail @key(fields: "cgId") { - id: String! @search(by: [hash, regexp]) - cgId: String! @id @search(by: [hash, regexp]) - arn: String! @search(by: [hash, regexp]) - region: String @search(by: [hash, regexp]) - accountId: String! @search(by: [hash, regexp]) +type awsCloudtrail implements awsOptionalService @key(fields: "id") { name: String @search(by: [hash, regexp]) s3BucketName: String @search(by: [hash, regexp]) s3KeyPrefix: String @search(by: [hash, regexp]) diff --git a/src/services/cloudwatch/schema.graphql b/src/services/cloudwatch/schema.graphql index 1cf0f507..f9efbe59 100644 --- a/src/services/cloudwatch/schema.graphql +++ b/src/services/cloudwatch/schema.graphql @@ -1,8 +1,4 @@ -type awsCloudwatch @key(fields: "arn") { - id: String! @search(by: [hash]) - accountId: String! @search(by: [hash]) - arn: String! @id @search(by: [hash, regexp]) - region: String @search(by: [hash, regexp]) +type awsCloudwatch implements awsBaseService @key(fields: "arn") { metric: String @search(by: [hash]) namespace: String @search(by: [hash, regexp]) description: String @search(by: [hash, regexp, fulltext]) diff --git a/src/services/cloudwatchLogs/schema.graphql b/src/services/cloudwatchLogs/schema.graphql index 5f750d75..b18c4c68 100644 --- a/src/services/cloudwatchLogs/schema.graphql +++ b/src/services/cloudwatchLogs/schema.graphql @@ -3,6 +3,7 @@ type awsCloudwatchLog @key(fields: "arn") { accountId: String! @search(by: [hash]) arn: String! @id @search(by: [hash, regexp]) region: String @search(by: [hash, regexp]) + cgId: String @search(by: [hash, regexp]) creationTime: String @search(by: [hash]) retentionInDays: Int @search metricFilterCount: Int @search @@ -40,4 +41,4 @@ type awsMetricTransformation metricValue: String @search(by: [hash, regexp]) defaultValue: Int @search unit: String @search(by: [hash, regexp]) -} \ No newline at end of file +} diff --git a/src/services/codeBuild/schema.graphql b/src/services/codeBuild/schema.graphql index c0a6e20f..1dbe340c 100644 --- a/src/services/codeBuild/schema.graphql +++ b/src/services/codeBuild/schema.graphql @@ -1,5 +1,5 @@ type awsCodebuildLogsConfig { - cloudWatchLogs: awsCodebuildCloudWatchLogs, + cloudWatchLogs: awsCodebuildCloudWatchLogs s3Logs: awsCodebuildS3Logs } @@ -22,11 +22,11 @@ type awsCodebuildBadge { } type awsCodebuildEnvironment { - type: String @search(by: [hash, regexp]), - image: String @search(by: [hash, regexp]), - computeType: String @search(by: [hash, regexp]), - environmentVariables: [awsCodebuildEnvironmentVariables], - privilegedMode: Boolean @search, + type: String @search(by: [hash, regexp]) + image: String @search(by: [hash, regexp]) + computeType: String @search(by: [hash, regexp]) + environmentVariables: [awsCodebuildEnvironmentVariables] + privilegedMode: Boolean @search certificate: String @search(by: [hash, regexp]) registryCredential: awsCodebuildEnvRegistryCredentials imagePullCredentialsType: String @search(by: [hash, regexp]) @@ -39,8 +39,8 @@ type awsCodebuildEnvRegistryCredentials { type awsCodebuildEnvironmentVariables { id: String! @id - name: String @search(by: [hash, regexp]), - value: String @search(by: [hash, regexp]), + name: String @search(by: [hash, regexp]) + value: String @search(by: [hash, regexp]) type: String @search(by: [hash, regexp]) } @@ -48,18 +48,17 @@ type awsCodebuildCache { type: String @search(by: [hash, regexp]) location: String @search(by: [hash, regexp]) modes: [String] @search(by: [hash, regexp]) - } type awsCodebuildArtifacts { id: String! @id - type: String @search(by: [hash, regexp]), - location: String @search(by: [hash, regexp]), - path: String @search(by: [hash, regexp]), - namespaceType: String @search(by: [hash, regexp]), - name: String @search(by: [hash, regexp]), - packaging: String @search(by: [hash, regexp]), - overrideArtifactName: Boolean @search, + type: String @search(by: [hash, regexp]) + location: String @search(by: [hash, regexp]) + path: String @search(by: [hash, regexp]) + namespaceType: String @search(by: [hash, regexp]) + name: String @search(by: [hash, regexp]) + packaging: String @search(by: [hash, regexp]) + overrideArtifactName: Boolean @search encryptionDisabled: Boolean @search artifactIdentifier: String @search(by: [hash, regexp]) bucketOwnerAccess: String @search(by: [hash, regexp]) @@ -67,11 +66,11 @@ type awsCodebuildArtifacts { type awsCodebuildSource { id: String! @id - type: String @search(by: [hash, regexp]), - location: String @search(by: [hash, regexp]), - gitCloneDepth: Int @search, - gitSubmodulesConfig: awsCodebuildGitSubmodulesConfig, - buildspec: String @search(by: [hash, regexp]), + type: String @search(by: [hash, regexp]) + location: String @search(by: [hash, regexp]) + gitCloneDepth: Int @search + gitSubmodulesConfig: awsCodebuildGitSubmodulesConfig + buildspec: String @search(by: [hash, regexp]) auth: awsCodebuildSourceAuth reportBuildStatus: Boolean @search buildStatusConfig: awsCodebuildSourceStatusConfig @@ -148,17 +147,13 @@ type awsCodeBuildFilterGroup { excludeMatchedPattern: Boolean @search } -type awsCodebuild @key(fields: "arn") { - id: String! @id @search(by: [hash]) - arn: String! @id @search(by: [hash, regexp]) - accountId: String! @search(by: [hash]) - region: String @search(by: [hash, regexp]) +type awsCodebuild implements awsBaseService @key(fields: "arn") { name: String @search(by: [hash, regexp]) description: String @search(by: [hash, regexp]) source: awsCodebuildSource - secondarySources: [awsCodebuildSource], + secondarySources: [awsCodebuildSource] sourceVersion: String @search(by: [hash]) - secondarySourceVersions: [awsCodebuildSecondarySourceVersion], + secondarySourceVersions: [awsCodebuildSecondarySourceVersion] artifacts: awsCodebuildArtifacts secondaryArtifacts: [awsCodebuildArtifacts] cache: awsCodebuildCache @@ -185,4 +180,4 @@ type awsCodebuild @key(fields: "arn") { vpc: [awsVpc] @hasInverse(field: codebuilds) securityGroups: [awsSecurityGroup] @hasInverse(field: codebuilds) subnets: [awsSubnet] @hasInverse(field: codebuilds) - } \ No newline at end of file +} diff --git a/src/services/cognitoUserPool/schema.graphql b/src/services/cognitoUserPool/schema.graphql index ea3ce00a..5746d749 100644 --- a/src/services/cognitoUserPool/schema.graphql +++ b/src/services/cognitoUserPool/schema.graphql @@ -4,14 +4,14 @@ type awsCognitoUserPoolPasswordPolicy mutation: { add: false, delete: false } subscription: false ) { - id: String! @id @search(by: [hash]) - minimumLength: Int @search - requireUppercase: String @search(by: [hash, regexp]) - requireLowercase: String @search(by: [hash, regexp]) - requireNumbers: String @search(by: [hash, regexp]) - requireSymbols: String @search(by: [hash, regexp]) - temporaryPasswordValidityDays: Int @search - } + id: String! @id @search(by: [hash]) + minimumLength: Int @search + requireUppercase: String @search(by: [hash, regexp]) + requireLowercase: String @search(by: [hash, regexp]) + requireNumbers: String @search(by: [hash, regexp]) + requireSymbols: String @search(by: [hash, regexp]) + temporaryPasswordValidityDays: Int @search +} type awsCognitoUserPoolLambdaConfig @generate( @@ -19,41 +19,41 @@ type awsCognitoUserPoolLambdaConfig mutation: { add: false, delete: false } subscription: false ) { - id: String! @id @search(by: [hash]) - preSignUp: String @search(by: [hash, regexp]) - customMessage: String @search(by: [hash, regexp]) - postConfirmation: String @search(by: [hash, regexp]) - preAuthentication: String @search(by: [hash, regexp]) - postAuthentication: String @search(by: [hash, regexp]) - defineAuthChallenge: String @search(by: [hash, regexp]) - createAuthChallenge: String @search(by: [hash, regexp]) - verifyAuthChallengeResponse: String @search(by: [hash, regexp]) - preTokenGeneration: String @search(by: [hash, regexp]) - userMigration: String @search(by: [hash, regexp]) - customSMSSenderLambdaVersion: String @search(by: [hash, regexp]) - customSMSSenderLambdaArn: String @search(by: [hash, regexp]) - customEmailSenderLambdaVersion: String @search(by: [hash, regexp]) - customEmailSenderLambdaArn: String @search(by: [hash, regexp]) - kmsKeyID: String @search(by: [hash, regexp]) - } + id: String! @id @search(by: [hash]) + preSignUp: String @search(by: [hash, regexp]) + customMessage: String @search(by: [hash, regexp]) + postConfirmation: String @search(by: [hash, regexp]) + preAuthentication: String @search(by: [hash, regexp]) + postAuthentication: String @search(by: [hash, regexp]) + defineAuthChallenge: String @search(by: [hash, regexp]) + createAuthChallenge: String @search(by: [hash, regexp]) + verifyAuthChallengeResponse: String @search(by: [hash, regexp]) + preTokenGeneration: String @search(by: [hash, regexp]) + userMigration: String @search(by: [hash, regexp]) + customSMSSenderLambdaVersion: String @search(by: [hash, regexp]) + customSMSSenderLambdaArn: String @search(by: [hash, regexp]) + customEmailSenderLambdaVersion: String @search(by: [hash, regexp]) + customEmailSenderLambdaArn: String @search(by: [hash, regexp]) + kmsKeyID: String @search(by: [hash, regexp]) +} -type awsCognitoUserPoolSchemaAttribute +type awsCognitoUserPoolSchemaAttribute @generate( query: { get: false, query: true, aggregate: false } mutation: { add: false, delete: false } subscription: false ) { - id: String! @id @search(by: [hash]) - name: String @search(by: [hash, regexp]), - attributeDataType: String @search(by: [hash, regexp]), - developerOnlyAttribute: String @search(by: [hash, regexp]), - mutable: String @search(by: [hash, regexp]), - required: String @search(by: [hash, regexp]), - numberAttributeConstraintsMinValue: String @search(by: [hash, regexp]), - numberAttributeConstraintsMaxValue: String @search(by: [hash, regexp]), - stringAttributeConstraintsMinValue: String @search(by: [hash, regexp]), - stringAttributeConstraintsMaxValue: String @search(by: [hash, regexp]), - } + id: String! @id @search(by: [hash]) + name: String @search(by: [hash, regexp]) + attributeDataType: String @search(by: [hash, regexp]) + developerOnlyAttribute: String @search(by: [hash, regexp]) + mutable: String @search(by: [hash, regexp]) + required: String @search(by: [hash, regexp]) + numberAttributeConstraintsMinValue: String @search(by: [hash, regexp]) + numberAttributeConstraintsMaxValue: String @search(by: [hash, regexp]) + stringAttributeConstraintsMinValue: String @search(by: [hash, regexp]) + stringAttributeConstraintsMaxValue: String @search(by: [hash, regexp]) +} type awsAccountRecoverySetting @generate( @@ -61,16 +61,12 @@ type awsAccountRecoverySetting mutation: { add: false, delete: false } subscription: false ) { - id: String! @id @search(by: [hash]) - priority: Int @search - name: String @search(by: [hash, regexp]) - } - -type awsCognitoUserPool @key(fields: "id") { id: String! @id @search(by: [hash]) - accountId: String! @search(by: [hash]) - arn: String! @id @search(by: [hash, regexp]) - region: String @search(by: [hash, regexp]) + priority: Int @search + name: String @search(by: [hash, regexp]) +} + +type awsCognitoUserPool implements awsBaseService @key(fields: "id") { name: String @search(by: [hash, regexp]) policies: awsCognitoUserPoolPasswordPolicy lambdaConfig: awsCognitoUserPoolLambdaConfig @@ -87,13 +83,17 @@ type awsCognitoUserPool @key(fields: "id") { verificationMessageTemplateSmsMessage: String @search(by: [hash, regexp]) verificationMessageTemplateEmailMessage: String @search(by: [hash, regexp]) verificationMessageTemplateEmailSubject: String @search(by: [hash, regexp]) - verificationMessageTemplateEmailMessageByLink: String @search(by: [hash, regexp]) - verificationMessageTemplateEmailSubjectByLink: String @search(by: [hash, regexp]) - verificationMessageTemplateDefaultEmailOption: String @search(by: [hash, regexp]) + verificationMessageTemplateEmailMessageByLink: String + @search(by: [hash, regexp]) + verificationMessageTemplateEmailSubjectByLink: String + @search(by: [hash, regexp]) + verificationMessageTemplateDefaultEmailOption: String + @search(by: [hash, regexp]) smsAuthenticationMessage: String @search(by: [hash, regexp]) mfaConfiguration: String @search(by: [hash, regexp]) deviceConfigChallengeRequiredOnNewDevice: String @search(by: [hash, regexp]) - deviceConfigDeviceOnlyRememberedOnUserPrompt: String @search(by: [hash, regexp]) + deviceConfigDeviceOnlyRememberedOnUserPrompt: String + @search(by: [hash, regexp]) estimatedNumberOfUsers: Int @search emailConfigSourceArn: String @search(by: [hash, regexp]) emailConfigReplyToEmailAddress: String @search(by: [hash, regexp]) @@ -106,11 +106,15 @@ type awsCognitoUserPool @key(fields: "id") { emailConfigurationFailure: String @search(by: [hash, regexp]) domain: String @search(by: [hash, regexp]) customDomain: String @search(by: [hash, regexp]) - adminCreateUserConfigAllowAdminCreateUserOnly: String @search(by: [hash, regexp]) + adminCreateUserConfigAllowAdminCreateUserOnly: String + @search(by: [hash, regexp]) adminCreateUserConfigUnusedAccountValidityDays: Int @search - adminCreateUserConfigInviteMessageTemplateSMSMessage: String @search(by: [hash, regexp]) - adminCreateUserConfigInviteMessageTemplateEmailMessage: String @search(by: [hash, regexp]) - adminCreateUserConfigInviteMessageTemplateEmailSubject: String @search(by: [hash, regexp]) + adminCreateUserConfigInviteMessageTemplateSMSMessage: String + @search(by: [hash, regexp]) + adminCreateUserConfigInviteMessageTemplateEmailMessage: String + @search(by: [hash, regexp]) + adminCreateUserConfigInviteMessageTemplateEmailSubject: String + @search(by: [hash, regexp]) userPoolAddOnsAdvancedSecurityMode: String @search(by: [hash, regexp]) usernameConfigurationCaseSensitive: String @search(by: [hash, regexp]) accountRecoverySettings: [awsAccountRecoverySetting] diff --git a/src/services/configurationRecorder/schema.graphql b/src/services/configurationRecorder/schema.graphql index 4b2e3bab..99d3c394 100644 --- a/src/services/configurationRecorder/schema.graphql +++ b/src/services/configurationRecorder/schema.graphql @@ -1,8 +1,4 @@ -type awsConfigurationRecorder @key(fields: "arn") { - id: String! @id @search(by: [hash]) - accountId: String! @search(by: [hash]) - arn: String! @id @search(by: [hash, regexp]) - region: String @search(by: [hash, regexp]) +type awsConfigurationRecorder implements awsBaseService @key(fields: "arn") { name: String @search(by: [hash, regexp]) roleARN: String @search(by: [hash, regexp]) recordingGroup: awsRecordingGroup @@ -34,4 +30,3 @@ type awsRecorderStatus lastStartTime: String @search(by: [hash, regexp]) lastStopTime: String @search(by: [hash, regexp]) } - diff --git a/src/services/customerGateway/schema.graphql b/src/services/customerGateway/schema.graphql index 829bd75c..7f5d2229 100644 --- a/src/services/customerGateway/schema.graphql +++ b/src/services/customerGateway/schema.graphql @@ -1,8 +1,4 @@ -type awsCustomerGateway @key(fields: "arn") { - id: String! @id @search(by: [hash]) - accountId: String! @search(by: [hash]) - arn: String! @id @search(by: [hash, regexp]) - region: String @search(by: [hash, regexp]) +type awsCustomerGateway implements awsBaseService @key(fields: "arn") { type: String @search(by: [hash, regexp]) bgpAsn: String @search(by: [hash, regexp]) ipAddress: String @search(by: [hash, regexp]) diff --git a/src/services/dmsReplicationInstance/schema.graphql b/src/services/dmsReplicationInstance/schema.graphql index 2b9a9007..a93574a2 100644 --- a/src/services/dmsReplicationInstance/schema.graphql +++ b/src/services/dmsReplicationInstance/schema.graphql @@ -30,11 +30,7 @@ type AwsDmsReplicationInstanceVpcSecurityGroups { status: String @search(by: [hash, regexp]) } -type awsDmsReplicationInstance @key(fields: "arn") { - id: String! @id @search(by: [hash]) - arn: String! @id @search(by: [hash, regexp]) - accountId: String! @search(by: [hash]) - region: String @search(by: [hash, regexp]) +type awsDmsReplicationInstance implements awsBaseService @key(fields: "arn") { replicationInstanceIdentifier: String @search(by: [hash, regexp]) replicationInstanceClass: String @search(by: [hash, regexp]) replicationInstanceStatus: String @search(by: [hash, regexp]) diff --git a/src/services/dynamodb/schema.graphql b/src/services/dynamodb/schema.graphql index 7f9b2cc7..472d1526 100644 --- a/src/services/dynamodb/schema.graphql +++ b/src/services/dynamodb/schema.graphql @@ -146,11 +146,7 @@ type awsDynamoDbTableSseDescription inaccessibleEncryptionDateTime: String @search(by: [hash, regexp]) } -type awsDynamoDbTable @key(fields: "arn") { - id: String! @id @search(by: [hash, regexp]) - arn: String! @id @search(by: [hash, regexp]) - region: String @search(by: [hash, regexp]) - accountId: String! @search(by: [hash, regexp]) +type awsDynamoDbTable implements awsBaseService @key(fields: "arn") { attributes: [awsDynamoDbTableAttributes] billingModeSummary: awsDynamoDbTableBillingSummary creationDate: String! @search(by: [hash, regexp]) @@ -161,7 +157,7 @@ type awsDynamoDbTable @key(fields: "arn") { latestStreamArn: String @search(by: [hash, regexp]) latestStreamLabel: String @search(by: [hash, regexp]) localIndexes: [awsDynamoDbTableLocalSecondaryIndexDescription] - name: String! @search(by: [hash, regexp]) + name: String @search(by: [hash, regexp]) pointInTimeRecoveryEnabled: Boolean provisionedThroughput: awsDynamoDbTableProvisionedThroughputDescription replicas: [awsDynamoDbTableReplicaDescription] diff --git a/src/services/ebs/schema.graphql b/src/services/ebs/schema.graphql index f8bba677..3dfc042c 100644 --- a/src/services/ebs/schema.graphql +++ b/src/services/ebs/schema.graphql @@ -1,8 +1,4 @@ -type awsEbs @key(fields: "arn") { - id: String! @id @search(by: [hash]) - accountId: String! @search(by: [hash]) - arn: String! @id @search(by: [hash, regexp]) - region: String @search(by: [hash, regexp]) +type awsEbs implements awsBaseService @key(fields: "arn") { attachments: [awsEbsAttachment] iops: Int @search size: String @search(by: [hash, regexp]) diff --git a/src/services/ec2/schema.graphql b/src/services/ec2/schema.graphql index bbbb778a..200d096c 100644 --- a/src/services/ec2/schema.graphql +++ b/src/services/ec2/schema.graphql @@ -72,11 +72,7 @@ type awsEc2KeyPair { tags: [awsRawTag] } -type awsEc2 @key(fields: "arn") { - id: String! @id @search(by: [hash]) - accountId: String! @search(by: [hash]) - arn: String! @id @search(by: [hash, regexp]) - region: String @search(by: [hash, regexp]) +type awsEc2 implements awsBaseService @key(fields: "arn") { ami: String @search(by: [hash, regexp]) tenancy: String @search(by: [hash, regexp]) elasticIps: String @search(by: [hash, regexp]) @@ -119,5 +115,6 @@ type awsEc2 @key(fields: "arn") { subnet: [awsSubnet] @hasInverse(field: ec2Instance) #change to plural ecsContainer: [awsEcsContainer] @hasInverse(field: ec2Instance) #change to plural emrInstance: [awsEmrInstance] @hasInverse(field: ec2Instance) - systemsManagerInstance: [awsSystemsManagerInstance] @hasInverse(field: ec2Instance) + systemsManagerInstance: [awsSystemsManagerInstance] + @hasInverse(field: ec2Instance) } diff --git a/src/services/ecr/schema.graphql b/src/services/ecr/schema.graphql index 234c9e26..cfe8f704 100644 --- a/src/services/ecr/schema.graphql +++ b/src/services/ecr/schema.graphql @@ -1,9 +1,5 @@ -type awsEcr @key(fields: "arn") { - id: String! @id @search(by: [hash]) - arn: String! @id @search(by: [hash, regexp]) - accountId: String! @search(by: [hash, regexp]) - region: String @search(by: [hash, regexp]) - createdAt: String @search(by: [hash, regexp]) +type awsEcr implements awsBaseService @key(fields: "arn") { + createdAt: String @search(by: [hash, regexp]) encryptionConfig: awsEcrEncryptionConfiguration imageScanOnPush: Boolean @search imageTagMutability: String @search(by: [hash, regexp]) diff --git a/src/services/ecsCluster/schema.graphql b/src/services/ecsCluster/schema.graphql index fc61460f..70a8d77e 100644 --- a/src/services/ecsCluster/schema.graphql +++ b/src/services/ecsCluster/schema.graphql @@ -1,7 +1,4 @@ -type awsEcsCluster @key(fields: "arn") { - id: String! @id @search(by: [hash]) - arn: String! @id @search(by: [hash, regexp]) - accountId: String! @search(by: [hash, regexp]) +type awsEcsCluster implements awsBaseService @key(fields: "arn") { clusterName: String @search(by: [hash, regexp]) configuration: awsEcsClusterConfiguration status: String @search(by: [hash, regexp]) @@ -21,21 +18,21 @@ type awsEcsCluster @key(fields: "arn") { ecsTaskSet: [awsEcsTaskSet] @hasInverse(field: ecsCluster) } -#TODO: add connections to cloudwatchLog, s3, +#TODO: add connections to cloudwatchLog, s3, -type AwsEcsExecuteCommandLogConfiguration +type AwsEcsExecuteCommandLogConfiguration @generate( query: { get: false, query: true, aggregate: false } mutation: { add: false, delete: false } subscription: false ) { - id: String! @id @search(by: [hash]) - cloudWatchLogGroupName: String @search(by: [hash, regexp]) - cloudWatchEncryptionEnabled: Boolean @search - s3BucketName: String @search(by: [hash, regexp]) - s3EncryptionEnabled: Boolean @search - s3KeyPrefix: String @search(by: [hash, regexp]) - } + id: String! @id @search(by: [hash]) + cloudWatchLogGroupName: String @search(by: [hash, regexp]) + cloudWatchEncryptionEnabled: Boolean @search + s3BucketName: String @search(by: [hash, regexp]) + s3EncryptionEnabled: Boolean @search + s3KeyPrefix: String @search(by: [hash, regexp]) +} type awsEcsExecuteCommandConfiguration @generate( @@ -43,11 +40,11 @@ type awsEcsExecuteCommandConfiguration mutation: { add: false, delete: false } subscription: false ) { - id: String! @id @search(by: [hash]) - kmsKeyId: String @search(by: [hash]) - logging: String @search(by: [hash, regexp]) - logConfiguration: AwsEcsExecuteCommandLogConfiguration - } + id: String! @id @search(by: [hash]) + kmsKeyId: String @search(by: [hash]) + logging: String @search(by: [hash, regexp]) + logConfiguration: AwsEcsExecuteCommandLogConfiguration +} type awsEcsClusterConfiguration @generate( @@ -55,9 +52,9 @@ type awsEcsClusterConfiguration mutation: { add: false, delete: false } subscription: false ) { - id: String! @id @search(by: [hash]) - executeCommandConfiguration: awsEcsExecuteCommandConfiguration - } + id: String! @id @search(by: [hash]) + executeCommandConfiguration: awsEcsExecuteCommandConfiguration +} type awsEcsStatistics @generate( @@ -65,10 +62,10 @@ type awsEcsStatistics mutation: { add: false, delete: false } subscription: false ) { - id: String! @id @search(by: [hash]) - key: String @search(by: [hash, regexp]) - value: String @search(by: [hash, regexp]) - } + id: String! @id @search(by: [hash]) + key: String @search(by: [hash, regexp]) + value: String @search(by: [hash, regexp]) +} type awsEcsClusterSettings @generate( @@ -76,10 +73,10 @@ type awsEcsClusterSettings mutation: { add: false, delete: false } subscription: false ) { - id: String! @id @search(by: [hash]) - name: String @search(by: [hash, regexp]) - value: String @search(by: [hash, regexp]) - } + id: String! @id @search(by: [hash]) + name: String @search(by: [hash, regexp]) + value: String @search(by: [hash, regexp]) +} type awsEcsCapacityProviderStrategyItem @generate( @@ -87,11 +84,11 @@ type awsEcsCapacityProviderStrategyItem mutation: { add: false, delete: false } subscription: false ) { - id: String! @id @search(by: [hash]) - capacityProvider: String @search(by: [hash, regexp]) - weight: Int @search - base: Int @search - } + id: String! @id @search(by: [hash]) + capacityProvider: String @search(by: [hash, regexp]) + weight: Int @search + base: Int @search +} type awsEcsAttachmentDetail @generate( @@ -99,10 +96,10 @@ type awsEcsAttachmentDetail mutation: { add: false, delete: false } subscription: false ) { - id: String! @id @search(by: [hash]) - name: String @search(by: [hash, regexp]) - value: String @search(by: [hash, regexp]) - } + id: String! @id @search(by: [hash]) + name: String @search(by: [hash, regexp]) + value: String @search(by: [hash, regexp]) +} type awsEcsAttachment @generate( @@ -110,8 +107,8 @@ type awsEcsAttachment mutation: { add: false, delete: false } subscription: false ) { - id: String! @id @search(by: [hash]) - type: String @search(by: [hash, regexp]) - status: String @search(by: [hash, regexp]) - details: [awsEcsAttachmentDetail] - } + id: String! @id @search(by: [hash]) + type: String @search(by: [hash, regexp]) + status: String @search(by: [hash, regexp]) + details: [awsEcsAttachmentDetail] +} diff --git a/src/services/ecsContainer/schema.graphql b/src/services/ecsContainer/schema.graphql index fc44e88d..707fd9cc 100644 --- a/src/services/ecsContainer/schema.graphql +++ b/src/services/ecsContainer/schema.graphql @@ -1,7 +1,4 @@ -type awsEcsContainer @key(fields: "arn") { - id: String! @id @search(by: [hash]) - arn: String! @id @search(by: [hash, regexp]) - accountId: String! @search(by: [hash, regexp]) +type awsEcsContainer implements awsBaseService @key(fields: "arn") { ec2InstanceId: String @search(by: [hash]) capacityProviderName: String @search(by: [hash, regexp]) version: Int @search @@ -28,11 +25,11 @@ type awsEcsversionInfo mutation: { add: false, delete: false } subscription: false ) { - id: String! @id @search(by: [hash]) - agentVersion: String @search(by: [hash, regexp]) - agentHash: String @search(by: [hash, regexp]) - dockerVersion: String @search(by: [hash, regexp]) - } + id: String! @id @search(by: [hash]) + agentVersion: String @search(by: [hash, regexp]) + agentHash: String @search(by: [hash, regexp]) + dockerVersion: String @search(by: [hash, regexp]) +} type awsEcsResource @generate( @@ -40,14 +37,14 @@ type awsEcsResource mutation: { add: false, delete: false } subscription: false ) { - id: String! @id @search(by: [hash]) - name: String @search(by: [hash, regexp]) - type: String @search(by: [hash, regexp]) - doubleValue: Float @search - longValue: Int @search - integerValue: Int @search - stringSetValue: [String] @search(by: [hash]) - } + id: String! @id @search(by: [hash]) + name: String @search(by: [hash, regexp]) + type: String @search(by: [hash, regexp]) + doubleValue: Float @search + longValue: Int @search + integerValue: Int @search + stringSetValue: [String] @search(by: [hash]) +} type awsEcsAttachment @generate( @@ -55,8 +52,8 @@ type awsEcsAttachment mutation: { add: false, delete: false } subscription: false ) { - id: String! @id @search(by: [hash]) - type: String @search(by: [hash, regexp]) - status: String @search(by: [hash, regexp]) - details: [awsEcsAttachmentDetail] - } + id: String! @id @search(by: [hash]) + type: String @search(by: [hash, regexp]) + status: String @search(by: [hash, regexp]) + details: [awsEcsAttachmentDetail] +} diff --git a/src/services/ecsService/schema.graphql b/src/services/ecsService/schema.graphql index 9fa8dd9e..52addc82 100644 --- a/src/services/ecsService/schema.graphql +++ b/src/services/ecsService/schema.graphql @@ -1,7 +1,4 @@ -type awsEcsService @key(fields: "arn") { - id: String! @id @search(by: [hash]) - arn: String! @id @search(by: [hash, regexp]) - accountId: String! @search(by: [hash, regexp]) +type awsEcsService implements awsBaseService @key(fields: "arn") { serviceName: String @search(by: [hash, regexp]) loadBalancers: [awsEcsLoadBalancer] serviceRegistries: [awsEcsServiceRegistry] @@ -38,38 +35,38 @@ type awsEcsService @key(fields: "arn") { vpc: [awsVpc] @hasInverse(field: ecsService) } -type awsEcsDeployment +type awsEcsDeployment @generate( query: { get: false, query: true, aggregate: false } mutation: { add: false, delete: false } subscription: false ) { - id: String! @id @search(by: [hash]) - status: String @search(by: [hash, regexp]) - taskDefinition: String @search(by: [hash, regexp]) - desiredCount: Int @search - pendingCount: Int @search - runningCount: Int @search - failedTasks: Int @search - createdAt: String @search(by: [hash, regexp]) - updatedAt: String @search(by: [hash, regexp]) - capacityProviderStrategy: [awsEcsCapacityProviderStrategyItem] - launchType: String @search(by: [hash, regexp]) - platformVersion: String @search(by: [hash, regexp]) - networkConfiguration: awsEcsNetworkConfiguration - rolloutState: String @search(by: [hash, regexp]) - rolloutStateReason: String @search(by: [hash, regexp]) - } + id: String! @id @search(by: [hash]) + status: String @search(by: [hash, regexp]) + taskDefinition: String @search(by: [hash, regexp]) + desiredCount: Int @search + pendingCount: Int @search + runningCount: Int @search + failedTasks: Int @search + createdAt: String @search(by: [hash, regexp]) + updatedAt: String @search(by: [hash, regexp]) + capacityProviderStrategy: [awsEcsCapacityProviderStrategyItem] + launchType: String @search(by: [hash, regexp]) + platformVersion: String @search(by: [hash, regexp]) + networkConfiguration: awsEcsNetworkConfiguration + rolloutState: String @search(by: [hash, regexp]) + rolloutStateReason: String @search(by: [hash, regexp]) +} type awsEcsScale - @generate( + @generate( query: { get: false, query: true, aggregate: false } mutation: { add: false, delete: false } subscription: false ) { - value: Int @search - unit: String @search(by: [hash, regexp]) - } + value: Int @search + unit: String @search(by: [hash, regexp]) +} type awsEcsServiceEvent @generate( @@ -77,108 +74,108 @@ type awsEcsServiceEvent mutation: { add: false, delete: false } subscription: false ) { - id: String! @id @search(by: [hash]) - createdAt: String @search(by: [hash, regexp]) - message: String @search(by: [hash, regexp]) - } + id: String! @id @search(by: [hash]) + createdAt: String @search(by: [hash, regexp]) + message: String @search(by: [hash, regexp]) +} -type awsEcsPlacementConstraint +type awsEcsPlacementConstraint @generate( query: { get: false, query: true, aggregate: false } mutation: { add: false, delete: false } subscription: false ) { - id: String! @id @search(by: [hash]) - type: String @search(by: [hash, regexp]) - expression: String @search(by: [hash, regexp]) - } + id: String! @id @search(by: [hash]) + type: String @search(by: [hash, regexp]) + expression: String @search(by: [hash, regexp]) +} -type awsEcsPlacementStrategy +type awsEcsPlacementStrategy @generate( query: { get: false, query: true, aggregate: false } mutation: { add: false, delete: false } subscription: false ) { - id: String! @id @search(by: [hash]) - type: String @search(by: [hash, regexp]) - field: String @search(by: [hash, regexp]) - } + id: String! @id @search(by: [hash]) + type: String @search(by: [hash, regexp]) + field: String @search(by: [hash, regexp]) +} -type awsEcsAwsVpcConfiguration +type awsEcsAwsVpcConfiguration @generate( query: { get: false, query: true, aggregate: false } mutation: { add: false, delete: false } subscription: false ) { - subnets: [String] @search(by: [hash]) - securityGroups: [String] @search(by: [hash]) - assignPublicIp: String @search(by: [hash, regexp]) - } + subnets: [String] @search(by: [hash]) + securityGroups: [String] @search(by: [hash]) + assignPublicIp: String @search(by: [hash, regexp]) +} -type awsEcsNetworkConfiguration +type awsEcsNetworkConfiguration @generate( query: { get: false, query: true, aggregate: false } mutation: { add: false, delete: false } subscription: false ) { - awsvpcConfiguration: awsEcsAwsVpcConfiguration - } + awsvpcConfiguration: awsEcsAwsVpcConfiguration +} -type awsEcsDeploymentController +type awsEcsDeploymentController @generate( query: { get: false, query: true, aggregate: false } mutation: { add: false, delete: false } subscription: false ) { - id: String! @id @search(by: [hash]) - type: String @search(by: [hash, regexp]) - } + id: String! @id @search(by: [hash]) + type: String @search(by: [hash, regexp]) +} type awsEcsDeploymentConfiguration - @generate( + @generate( query: { get: false, query: true, aggregate: false } mutation: { add: false, delete: false } subscription: false ) { - id: String! @id @search(by: [hash]) - deploymentCircuitBreaker: awsEcsDeploymentCircuitBreaker - maximumPercent: Int @search - minimumHealthyPercent: Int @search - } + id: String! @id @search(by: [hash]) + deploymentCircuitBreaker: awsEcsDeploymentCircuitBreaker + maximumPercent: Int @search + minimumHealthyPercent: Int @search +} -type awsEcsDeploymentCircuitBreaker +type awsEcsDeploymentCircuitBreaker @generate( query: { get: false, query: true, aggregate: false } mutation: { add: false, delete: false } subscription: false ) { - id: String! @id @search(by: [hash]) - enable: Boolean @search - rollback: Boolean @search - } + id: String! @id @search(by: [hash]) + enable: Boolean @search + rollback: Boolean @search +} -type awsEcsLoadBalancer +type awsEcsLoadBalancer @generate( query: { get: false, query: true, aggregate: false } mutation: { add: false, delete: false } subscription: false ) { - id: String! @id @search(by: [hash]) - targetGroupArn: String @search(by: [hash, regexp]) - loadBalancerName: String @search(by: [hash, regexp]) - containerName: String @search(by: [hash, regexp]) - containerPort: Int @search - } + id: String! @id @search(by: [hash]) + targetGroupArn: String @search(by: [hash, regexp]) + loadBalancerName: String @search(by: [hash, regexp]) + containerName: String @search(by: [hash, regexp]) + containerPort: Int @search +} -type awsEcsServiceRegistry +type awsEcsServiceRegistry @generate( query: { get: false, query: true, aggregate: false } mutation: { add: false, delete: false } subscription: false ) { - id: String! @id @search(by: [hash]) - registryArn: String @search(by: [hash, regexp]) - port: Int @search - containerName: String @search(by: [hash, regexp]) - containerPort: Int @search - } + id: String! @id @search(by: [hash]) + registryArn: String @search(by: [hash, regexp]) + port: Int @search + containerName: String @search(by: [hash, regexp]) + containerPort: Int @search +} diff --git a/src/services/ecsTask/schema.graphql b/src/services/ecsTask/schema.graphql index 4a5aaf91..60affea4 100644 --- a/src/services/ecsTask/schema.graphql +++ b/src/services/ecsTask/schema.graphql @@ -1,8 +1,5 @@ #TODO: add iam role connection -type awsEcsTask @key(fields: "arn") { - id: String! @id @search(by: [hash]) - arn: String! @id @search(by: [hash, regexp]) - accountId: String! @search(by: [hash, regexp]) +type awsEcsTask implements awsBaseService @key(fields: "arn") { attachments: [awsEcsAttachment] attributes: [awsEcsAttribute] availabilityZone: String @search(by: [hash, regexp]) @@ -46,29 +43,29 @@ type awsEcsAttribute mutation: { add: false, delete: false } subscription: false ) { - id: String! @id @search(by: [hash]) - name: String @search(by: [hash, regexp]) - value: String @search(by: [hash, regexp]) - targetType: String @search(by: [hash, regexp]) - targetId: String @search(by: [hash]) - } + id: String! @id @search(by: [hash]) + name: String @search(by: [hash, regexp]) + value: String @search(by: [hash, regexp]) + targetType: String @search(by: [hash, regexp]) + targetId: String @search(by: [hash]) +} -type awsEcsContainerOverride +type awsEcsContainerOverride @generate( query: { get: false, query: true, aggregate: false } mutation: { add: false, delete: false } subscription: false ) { - id: String! @id @search(by: [hash]) - name: String @search(by: [hash, regexp]) - command: [String] @search(by: [hash]) - environment: [awsEcsEnvironmentVariables] - environmentFiles: [awsEcsEnvironmentFile] - cpu: String @search(by: [hash, regexp]) - memory: Int @search - memoryReservation: Int @search - resourceRequirements: [awsEcsResourceRequirement] - } + id: String! @id @search(by: [hash]) + name: String @search(by: [hash, regexp]) + command: [String] @search(by: [hash]) + environment: [awsEcsEnvironmentVariables] + environmentFiles: [awsEcsEnvironmentFile] + cpu: String @search(by: [hash, regexp]) + memory: Int @search + memoryReservation: Int @search + resourceRequirements: [awsEcsResourceRequirement] +} type awsEcsEnvironmentVariables @generate( @@ -76,10 +73,10 @@ type awsEcsEnvironmentVariables mutation: { add: false, delete: false } subscription: false ) { - id: String! @id @search(by: [hash]) - name: String @search(by: [hash, regexp]) - value: String @search(by: [hash, regexp]) - } + id: String! @id @search(by: [hash]) + name: String @search(by: [hash, regexp]) + value: String @search(by: [hash, regexp]) +} type awsEcsEnvironmentFile @generate( @@ -87,10 +84,10 @@ type awsEcsEnvironmentFile mutation: { add: false, delete: false } subscription: false ) { - id: String! @id @search(by: [hash]) - value: String @search(by: [hash, regexp]) - type: String @search(by: [hash, regexp]) - } + id: String! @id @search(by: [hash]) + value: String @search(by: [hash, regexp]) + type: String @search(by: [hash, regexp]) +} type awsEcsResourceRequirement @generate( @@ -98,54 +95,54 @@ type awsEcsResourceRequirement mutation: { add: false, delete: false } subscription: false ) { - id: String! @id @search(by: [hash]) - value: String @search(by: [hash, regexp]) - type: String @search(by: [hash, regexp]) - } + id: String! @id @search(by: [hash]) + value: String @search(by: [hash, regexp]) + type: String @search(by: [hash, regexp]) +} -type awsEcsInferenceAcceleratorOverride +type awsEcsInferenceAcceleratorOverride @generate( query: { get: false, query: true, aggregate: false } mutation: { add: false, delete: false } subscription: false ) { - id: String! @id @search(by: [hash]) - deviceName: String @search(by: [hash, regexp]) - deviceType: String @search(by: [hash, regexp]) - } + id: String! @id @search(by: [hash]) + deviceName: String @search(by: [hash, regexp]) + deviceType: String @search(by: [hash, regexp]) +} -type awsEcsTaskOverride +type awsEcsTaskOverride @generate( query: { get: false, query: true, aggregate: false } mutation: { add: false, delete: false } subscription: false ) { - id: String! @id @search(by: [hash]) - containerOverrides: [awsEcsContainerOverride] - cpu: String @search(by: [hash, regexp]) - inferenceAcceleratorOverrides: [awsEcsInferenceAcceleratorOverride] - executionRoleArn: String @search(by: [hash, regexp]) - memory: String @search(by: [hash, regexp]) - taskRoleArn: String @search(by: [hash, regexp]) - ephemeralStorage: awsEcsEphemeralStorage - } + id: String! @id @search(by: [hash]) + containerOverrides: [awsEcsContainerOverride] + cpu: String @search(by: [hash, regexp]) + inferenceAcceleratorOverrides: [awsEcsInferenceAcceleratorOverride] + executionRoleArn: String @search(by: [hash, regexp]) + memory: String @search(by: [hash, regexp]) + taskRoleArn: String @search(by: [hash, regexp]) + ephemeralStorage: awsEcsEphemeralStorage +} -type awsEcsInferenceAccelerator +type awsEcsInferenceAccelerator @generate( query: { get: false, query: true, aggregate: false } mutation: { add: false, delete: false } subscription: false ) { - id: String! @id @search(by: [hash]) - deviceName: String @search(by: [hash, regexp]) - deviceType: String @search(by: [hash, regexp]) - } + id: String! @id @search(by: [hash]) + deviceName: String @search(by: [hash, regexp]) + deviceType: String @search(by: [hash, regexp]) +} -type awsEcsEphemeralStorage +type awsEcsEphemeralStorage @generate( query: { get: false, query: false, aggregate: false } mutation: { add: false, delete: false } subscription: false ) { - sizeInGiB: Int @search - } + sizeInGiB: Int @search +} diff --git a/src/services/ecsTaskDefinition/schema.graphql b/src/services/ecsTaskDefinition/schema.graphql index 191af744..ee090008 100644 --- a/src/services/ecsTaskDefinition/schema.graphql +++ b/src/services/ecsTaskDefinition/schema.graphql @@ -1,8 +1,4 @@ -type awsEcsTaskDefinition @key(fields: "arn") { - id: String! @search(by: [hash]) - accountId: String! @search(by: [hash]) - arn: String! @id @search(by: [hash, regexp]) - region: String @search(by: [hash, regexp]) +type awsEcsTaskDefinition implements awsBaseService @key(fields: "arn") { containerDefinitions: [awsEcsContainerDefinition] family: String @search(by: [hash, regexp]) taskRoleArn: String @search(by: [hash, regexp]) @@ -416,4 +412,4 @@ type awsEfsEFSAuthorizationConfig ) { accessPointId: String @search(by: [hash, regexp]) iam: String @search(by: [hash, regexp]) -} \ No newline at end of file +} diff --git a/src/services/ecsTaskSet/schema.graphql b/src/services/ecsTaskSet/schema.graphql index 4a95e1ac..9307aaba 100644 --- a/src/services/ecsTaskSet/schema.graphql +++ b/src/services/ecsTaskSet/schema.graphql @@ -1,8 +1,4 @@ -type awsEcsTaskSet @key(fields: "arn") { - id: String! @search(by: [hash]) - accountId: String! @search(by: [hash]) - arn: String! @id @search(by: [hash, regexp]) - region: String @search(by: [hash, regexp]) +type awsEcsTaskSet implements awsBaseService @key(fields: "arn") { startedBy: String @search(by: [hash, regexp]) externalId: String @search(by: [hash, regexp]) status: String @search(by: [hash, regexp]) diff --git a/src/services/efs/schema.graphql b/src/services/efs/schema.graphql index 95e9e137..a5888266 100644 --- a/src/services/efs/schema.graphql +++ b/src/services/efs/schema.graphql @@ -1,8 +1,4 @@ -type awsEfs @key(fields: "arn") { - id: String! @id @search(by: [hash]) - arn: String! @id @search(by: [hash, regexp]) - accountId: String! @search(by: [hash, regexp]) - region: String @search(by: [hash, regexp]) +type awsEfs implements awsBaseService @key(fields: "arn") { ownerId: String @search(by: [hash]) creationToken: String @search(by: [hash]) fileSystemId: String @search(by: [hash]) diff --git a/src/services/efsMountTarget/schema.graphql b/src/services/efsMountTarget/schema.graphql index 85ee2a94..ec4d4cc7 100644 --- a/src/services/efsMountTarget/schema.graphql +++ b/src/services/efsMountTarget/schema.graphql @@ -1,7 +1,4 @@ -type awsEfsMountTarget @key(fields: "id") { - id: String! @id @search(by: [hash]) - accountId: String! @search(by: [hash, regexp]) - region: String @search(by: [hash, regexp]) +type awsEfsMountTarget implements awsOptionalService @key(fields: "id") { ownerId: String @search(by: [hash]) fileSystemId: String @search(by: [hash]) lifeCycleState: String @search(by: [hash, regexp]) @@ -14,4 +11,4 @@ type awsEfsMountTarget @key(fields: "id") { vpc: [awsVpc] @hasInverse(field: efsMountTarget) } -# TODO: add an arn if possible \ No newline at end of file +# TODO: add an arn if possible diff --git a/src/services/eip/schema.graphql b/src/services/eip/schema.graphql index cb757e81..8e6044b8 100644 --- a/src/services/eip/schema.graphql +++ b/src/services/eip/schema.graphql @@ -1,8 +1,4 @@ -type awsEip @key(fields: "arn") { - id: String! @id @search(by: [hash]) - accountId: String! @search(by: [hash]) - arn: String! @id @search(by: [hash, regexp]) - region: String @search(by: [hash, regexp]) +type awsEip implements awsBaseService @key(fields: "arn") { tags: [awsRawTag] vpc: String @search(by: [hash]) domain: String @search(by: [hash, regexp]) diff --git a/src/services/eksCluster/schema.graphql b/src/services/eksCluster/schema.graphql index e4a6a990..e7ff62f8 100644 --- a/src/services/eksCluster/schema.graphql +++ b/src/services/eksCluster/schema.graphql @@ -1,8 +1,4 @@ -type awsEksCluster @key(fields: "arn") { - id: String! @id @search(by: [hash]) - accountId: String! @search(by: [hash]) - arn: String! @id @search(by: [hash, regexp]) - region: String! @search(by: [hash, regexp]) +type awsEksCluster implements awsBaseService @key(fields: "arn") { name: String @search(by: [hash, regexp]) createdAt: String @search(by: [hash, regexp]) version: String @search(by: [hash, regexp]) diff --git a/src/services/elastiCacheCluster/schema.graphql b/src/services/elastiCacheCluster/schema.graphql index 8147f089..f74c7ab8 100644 --- a/src/services/elastiCacheCluster/schema.graphql +++ b/src/services/elastiCacheCluster/schema.graphql @@ -1,8 +1,4 @@ -type awsElastiCacheCluster @key(fields: "arn") { - id: String! @id @search(by: [hash]) - arn: String! @id @search(by: [hash, regexp]) - accountId: String! @search(by: [hash, regexp]) - region: String @search(by: [hash, regexp]) +type awsElastiCacheCluster implements awsBaseService @key(fields: "arn") { cacheClusterId: String @search(by: [hash, regexp]) configurationEndpoint: awsElastiCacheEndpoint clientDownloadLandingPage: String @search(by: [hash, regexp]) @@ -119,4 +115,4 @@ type awsCacheSubnetGroup cacheSubnetGroupName: String @search(by: [hash, regexp]) cacheSubnetGroupDescription: String @search(by: [hash, regexp]) vpcId: String @search(by: [hash]) -} \ No newline at end of file +} diff --git a/src/services/elastiCacheReplicationGroup/schema.graphql b/src/services/elastiCacheReplicationGroup/schema.graphql index f2fe2c72..5f03aacf 100644 --- a/src/services/elastiCacheReplicationGroup/schema.graphql +++ b/src/services/elastiCacheReplicationGroup/schema.graphql @@ -1,8 +1,5 @@ -type awsElastiCacheReplicationGroup @key(fields: "arn") { - id: String! @id @search(by: [hash]) - arn: String! @id @search(by: [hash, regexp]) - accountId: String! @search(by: [hash, regexp]) - region: String @search(by: [hash, regexp]) +type awsElastiCacheReplicationGroup implements awsBaseService + @key(fields: "arn") { replicationGroupId: String @search(by: [hash]) description: String @search(by: [hash, regexp]) globalReplicationGroupInfo: awsElastiCacheGlobalReplicationGroupInfo @@ -82,7 +79,7 @@ type awsElastiCacheUserGroupsUpdateStatus userGroupIdsToRemove: [String] @search(by: [hash]) } -type awsElastiCachePendingLogDeliveryConfiguration +type awsElastiCachePendingLogDeliveryConfiguration @generate( query: { get: false, query: true, aggregate: false } mutation: { add: false, delete: false } @@ -95,7 +92,7 @@ type awsElastiCachePendingLogDeliveryConfiguration logFormat: String @search(by: [hash, regexp]) } -type awsElastiCacheNodeGroup +type awsElastiCacheNodeGroup @generate( query: { get: false, query: true, aggregate: false } mutation: { add: false, delete: false } @@ -166,4 +163,4 @@ type awsElastiCacheNodeGroupMember preferredAvailabilityZone: String @search(by: [hash, regexp]) preferredOutpostArn: String @search(by: [hash, regexp]) currentRole: String @search(by: [hash, regexp]) - } +} diff --git a/src/services/elasticBeanstalkApplication/schema.graphql b/src/services/elasticBeanstalkApplication/schema.graphql index 4ca40ab5..23e04572 100644 --- a/src/services/elasticBeanstalkApplication/schema.graphql +++ b/src/services/elasticBeanstalkApplication/schema.graphql @@ -1,9 +1,5 @@ -type awsElasticBeanstalkApp @key(fields: "arn") { - id: String! @search(by: [hash]) - accountId: String! @search(by: [hash]) - arn: String! @id @search(by: [hash, regexp]) - region: String @search(by: [hash, regexp]) - name: String! @search(by: [hash, regexp]) +type awsElasticBeanstalkApp implements awsBaseService @key(fields: "arn") { + name: String @search(by: [hash, regexp]) description: String @search(by: [hash, regexp]) elasticBeanstalkEnv: [awsElasticBeanstalkEnv] #change to plural tags: [awsRawTag] diff --git a/src/services/elasticBeanstalkEnvironment/schema.graphql b/src/services/elasticBeanstalkEnvironment/schema.graphql index 8e82839b..a1ee0542 100644 --- a/src/services/elasticBeanstalkEnvironment/schema.graphql +++ b/src/services/elasticBeanstalkEnvironment/schema.graphql @@ -1,8 +1,4 @@ -type awsElasticBeanstalkEnv @key(fields: "arn") { - id: String! @search(by: [hash]) - accountId: String! @search(by: [hash]) - arn: String! @id @search(by: [hash, regexp]) - region: String @search(by: [hash, regexp]) +type awsElasticBeanstalkEnv implements awsBaseService @key(fields: "arn") { applicationName: String @search(by: [hash, regexp]) cname: String @search(by: [hash]) description: String @search(by: [hash, regexp]) @@ -14,7 +10,8 @@ type awsElasticBeanstalkEnv @key(fields: "arn") { solutionStackName: String @search(by: [hash, regexp]) tier: String @search(by: [hash]) versionLabel: String @search(by: [hash, regexp]) - elasticBeanstalkApp: [awsElasticBeanstalkApp] @hasInverse(field: elasticBeanstalkEnv) + elasticBeanstalkApp: [awsElasticBeanstalkApp] + @hasInverse(field: elasticBeanstalkEnv) tags: [awsRawTag] } @@ -31,5 +28,4 @@ type awsElasticBeanstalkEnvResource { value: [String] @search(by: [hash, regexp]) } - # TODO: add iam role based on OperationsRole field diff --git a/src/services/elasticSearchDomain/schema.graphql b/src/services/elasticSearchDomain/schema.graphql index 2335986b..dff2f994 100644 --- a/src/services/elasticSearchDomain/schema.graphql +++ b/src/services/elasticSearchDomain/schema.graphql @@ -1,9 +1,5 @@ #TODO add connection for userPool, identityPool, iamRole, cloudwatchLogs -type awsElasticSearchDomain @key(fields: "arn") { - id: String! @id @search(by: [hash]) - arn: String! @id @search(by: [hash, regexp]) - accountId: String! @search(by: [hash]) - region: String @search(by: [hash, regexp]) +type awsElasticSearchDomain implements awsBaseService @key(fields: "arn") { domainName: String @search(by: [hash, regexp]) created: Boolean @search deleted: Boolean @search diff --git a/src/services/elb/schema.graphql b/src/services/elb/schema.graphql index d0d7d42c..819c06b9 100644 --- a/src/services/elb/schema.graphql +++ b/src/services/elb/schema.graphql @@ -1,9 +1,5 @@ -type awsElb @key(fields: "arn") { - id: String! @id @search(by: [hash, regexp]) +type awsElb implements awsBaseService @key(fields: "arn") { name: String @search(by: [hash, regexp]) - accountId: String! @search(by: [hash]) - arn: String! @id @search(by: [hash, regexp]) - region: String @search(by: [hash, regexp]) dnsName: String @search(by: [hash, regexp]) hostedZone: String @search(by: [hash, regexp]) createdAt: String @search(by: [hash, regexp]) diff --git a/src/services/emrCluster/schema.graphql b/src/services/emrCluster/schema.graphql index 82e5db45..ec5f93c6 100644 --- a/src/services/emrCluster/schema.graphql +++ b/src/services/emrCluster/schema.graphql @@ -1,9 +1,5 @@ #TODO: add iamRole connection here -type awsEmrCluster @key(fields: "arn") { - id: String! @id @search(by: [hash]) - arn: String! @id @search(by: [hash, regexp]) - accountId: String! @search(by: [hash, regexp]) - region: String! @search(by: [hash, regexp]) +type awsEmrCluster implements awsBaseService @key(fields: "arn") { status: AwsEmrClusterStatus ec2InstanceAttributes: AwsEmrClusterEc2InstanceAttributes instanceCollectionType: String @search(by: [hash, regexp]) @@ -35,30 +31,30 @@ type awsEmrCluster @key(fields: "arn") { subnet: [awsSubnet] @hasInverse(field: emrCluster) #change to plural } -type AwsEmrClusterApplication +type AwsEmrClusterApplication @generate( query: { get: false, query: false, aggregate: false } mutation: { add: false, delete: false } subscription: false ) { - id: String! @id @search(by: [hash]) - name: String @search(by: [hash, regexp]) - version: String @search(by: [hash, regexp]) - args: [String] @search(by: [hash]) - additionalInfo: [AwsStringMap] - } + id: String! @id @search(by: [hash]) + name: String @search(by: [hash, regexp]) + version: String @search(by: [hash, regexp]) + args: [String] @search(by: [hash]) + additionalInfo: [AwsStringMap] +} -type AwsEmrClusterConfiguration +type AwsEmrClusterConfiguration @generate( query: { get: false, query: false, aggregate: false } mutation: { add: false, delete: false } subscription: false ) { - id: String! @id @search(by: [hash]) - classification: String @search(by: [hash, regexp]) - configurations: [AwsEmrClusterConfiguration] - properties: [AwsStringMap] - } + id: String! @id @search(by: [hash]) + classification: String @search(by: [hash, regexp]) + configurations: [AwsEmrClusterConfiguration] + properties: [AwsStringMap] +} type AwsEmrClusterPlacementGroupConfig @generate( @@ -66,10 +62,10 @@ type AwsEmrClusterPlacementGroupConfig mutation: { add: false, delete: false } subscription: false ) { - id: String! @id @search(by: [hash]) - instanceRole: String @search(by: [hash, regexp]) - placementStrategy: String @search(by: [hash, regexp]) - } + id: String! @id @search(by: [hash]) + instanceRole: String @search(by: [hash, regexp]) + placementStrategy: String @search(by: [hash, regexp]) +} type AwsStringMap @generate( @@ -77,10 +73,10 @@ type AwsStringMap mutation: { add: false, delete: false } subscription: false ) { - id: String! @id @search(by: [hash]) - key: String @search(by: [hash, regexp]) - value: String @search(by: [hash, regexp]) - } + id: String! @id @search(by: [hash]) + key: String @search(by: [hash, regexp]) + value: String @search(by: [hash, regexp]) +} type AwsEmrClusterStatus @generate( diff --git a/src/services/emrInstance/schema.graphql b/src/services/emrInstance/schema.graphql index a69fb453..00843f1c 100644 --- a/src/services/emrInstance/schema.graphql +++ b/src/services/emrInstance/schema.graphql @@ -1,7 +1,4 @@ -type awsEmrInstance @key(fields: "id") { - id: String! @id @search(by: [hash]) - accountId: String! @search(by: [hash, regexp]) - region: String! @search(by: [hash, regexp]) +type awsEmrInstance implements awsOptionalService @key(fields: "id") { ec2InstanceId: String @search(by: [hash]) publicDnsName: String @search(by: [hash, regexp]) publicIpAddress: String @search(by: [hash, regexp]) @@ -48,4 +45,4 @@ type awsEmrInstanceTimeline creationDateTime: String @search(by: [hash, regexp]) readyDateTime: String @search(by: [hash, regexp]) endDateTime: String @search(by: [hash, regexp]) -} \ No newline at end of file +} diff --git a/src/services/emrStep/schema.graphql b/src/services/emrStep/schema.graphql index 876a714b..cbadc72d 100644 --- a/src/services/emrStep/schema.graphql +++ b/src/services/emrStep/schema.graphql @@ -1,7 +1,4 @@ -type awsEmrStep @key(fields: "id") { - id: String! @id @search(by: [hash]) - accountId: String! @search(by: [hash, regexp]) - region: String! @search(by: [hash, regexp]) +type awsEmrStep implements awsOptionalService @key(fields: "id") { name: String @search(by: [hash, regexp]) config: awsEmrHadoopStepConfig actionOnFailure: String @search(by: [hash, regexp]) @@ -64,4 +61,4 @@ type awsEmrStepTimeline creationDateTime: String @search(by: [hash, regexp]) startDateTime: String @search(by: [hash, regexp]) endDateTime: String @search(by: [hash, regexp]) -} \ No newline at end of file +} diff --git a/src/services/flowLogs/schema.graphql b/src/services/flowLogs/schema.graphql index b519e12f..471dfc37 100644 --- a/src/services/flowLogs/schema.graphql +++ b/src/services/flowLogs/schema.graphql @@ -1,7 +1,4 @@ -type awsFlowLog @key(fields: "id") { - id: String! @id @search(by: [hash, regexp]) - accountId: String! @search(by: [hash, regexp]) - region: String! @search(by: [hash, regexp]) +type awsFlowLog implements awsOptionalService @key(fields: "id") { creationTime: String @search(by: [hash, regexp]) deliverLogsErrorMessage: String @search(by: [hash, regexp, fulltext]) deliverLogsPermissionArn: String @search(by: [hash, regexp]) diff --git a/src/services/glueJob/schema.graphql b/src/services/glueJob/schema.graphql index ce9c0f34..3a00562d 100644 --- a/src/services/glueJob/schema.graphql +++ b/src/services/glueJob/schema.graphql @@ -16,11 +16,7 @@ type awsGlueJobNotificationProperty { notifyDelayAfter: Int @search } -type awsGlueJob @key(fields: "arn") { - id: String! @id @search(by: [hash]) - arn: String! @id @search(by: [hash, regexp]) - accountId: String! @search(by: [hash]) - region: String @search(by: [hash, regexp]) +type awsGlueJob implements awsBaseService @key(fields: "arn") { name: String @search(by: [hash, regexp]) description: String @search(by: [hash, regexp]) logUri: String @search(by: [hash, regexp]) diff --git a/src/services/glueRegistry/schema.graphql b/src/services/glueRegistry/schema.graphql index ae394eae..40abe4ff 100644 --- a/src/services/glueRegistry/schema.graphql +++ b/src/services/glueRegistry/schema.graphql @@ -1,8 +1,4 @@ -type awsGlueRegistry @key(fields: "arn") { - id: String! @id @search(by: [hash]) - arn: String! @id @search(by: [hash, regexp]) - accountId: String! @search(by: [hash]) - region: String @search(by: [hash, regexp]) +type awsGlueRegistry implements awsBaseService @key(fields: "arn") { registryName: String @search(by: [hash, regexp]) registryArn: String @search(by: [hash, regexp]) status: String @search(by: [hash, regexp]) diff --git a/src/services/guardDutyDetector/schema.graphql b/src/services/guardDutyDetector/schema.graphql index 33a20322..bf522621 100644 --- a/src/services/guardDutyDetector/schema.graphql +++ b/src/services/guardDutyDetector/schema.graphql @@ -1,7 +1,4 @@ -type awsGuardDutyDetector @key(fields: "id") { - id: String! @id @search(by: [hash]) - accountId: String! @search(by: [hash]) - region: String @search(by: [hash, regexp]) +type awsGuardDutyDetector implements awsOptionalService @key(fields: "id") { createdAt: DateTime updatedAt: DateTime findingPublishingFrequency: String @search(by: [hash, regexp]) @@ -28,9 +25,9 @@ type awsGuardDutyMember { type awsGuardDutyDataSources { cloudTrail: awsGuardDutyDataSource - dnsLogs: awsGuardDutyDataSource - flowLogs: awsGuardDutyDataSource - s3Logs: awsGuardDutyDataSource + dnsLogs: awsGuardDutyDataSource + flowLogs: awsGuardDutyDataSource + s3Logs: awsGuardDutyDataSource } type awsGuardDutyDataSource { diff --git a/src/services/iamGroup/schema.graphql b/src/services/iamGroup/schema.graphql index 3cb6c42e..4f84e9e5 100644 --- a/src/services/iamGroup/schema.graphql +++ b/src/services/iamGroup/schema.graphql @@ -1,7 +1,4 @@ -type awsIamGroup @key(fields: "id") { - id: String! @id @search(by: [hash]) - arn: String! @id @search(by: [hash, regexp]) - accountId: String! @search(by: [hash, regexp]) +type awsIamGroup implements awsBaseService @key(fields: "id") { path: String @search(by: [hash, regexp]) name: String @search(by: [hash, regexp]) inlinePolicies: [String] diff --git a/src/services/iamInstanceProfile/schema.graphql b/src/services/iamInstanceProfile/schema.graphql index f33a3dfe..e0fb1a15 100644 --- a/src/services/iamInstanceProfile/schema.graphql +++ b/src/services/iamInstanceProfile/schema.graphql @@ -1,7 +1,4 @@ -type awsIamInstanceProfile @key(fields: "id") { - id: String! @id @search(by: [hash]) - arn: String! @id @search(by: [hash, regexp]) - accountId: String! @search(by: [hash, regexp]) +type awsIamInstanceProfile implements awsBaseService @key(fields: "id") { name: String @search(by: [hash, regexp]) path: String @search(by: [hash, regexp]) createDate: DateTime diff --git a/src/services/iamOpenIdConnectProvider/schema.graphql b/src/services/iamOpenIdConnectProvider/schema.graphql index 4c06c4cb..d5c87075 100644 --- a/src/services/iamOpenIdConnectProvider/schema.graphql +++ b/src/services/iamOpenIdConnectProvider/schema.graphql @@ -2,4 +2,6 @@ type awsIamOpenIdConnectProvider @key(fields: "id") { id: String! @id @search(by: [hash]) arn: String! @search(by: [hash, regexp]) accountId: String! @search(by: [hash, regexp]) + region: String @search(by: [hash, regexp]) + cgId: String @search(by: [hash, regexp]) } diff --git a/src/services/iamPolicy/schema.graphql b/src/services/iamPolicy/schema.graphql index 84735f13..c93babf5 100644 --- a/src/services/iamPolicy/schema.graphql +++ b/src/services/iamPolicy/schema.graphql @@ -1,7 +1,4 @@ -type awsIamPolicy @key(fields: "id") { - id: String! @id @search(by: [hash]) - arn: String! @id @search(by: [hash, regexp]) - accountId: String! @search(by: [hash, regexp]) +type awsIamPolicy implements awsBaseService @key(fields: "id") { name: String @search(by: [hash, regexp]) path: String @search(by: [hash, regexp]) description: String @search(by: [hash, regexp]) @@ -58,4 +55,4 @@ type awsIamJSONPolicyPrincipal id: ID key: String @search(by: [hash, regexp]) value: [String] @search(by: [hash]) -} \ No newline at end of file +} diff --git a/src/services/iamRole/schema.graphql b/src/services/iamRole/schema.graphql index a1bc288c..c11be041 100644 --- a/src/services/iamRole/schema.graphql +++ b/src/services/iamRole/schema.graphql @@ -1,7 +1,4 @@ -type awsIamRole @key(fields: "id") { - id: String! @id @search(by: [hash]) - arn: String! @id @search(by: [hash, regexp]) - accountId: String! @search(by: [hash, regexp]) +type awsIamRole implements awsBaseService @key(fields: "id") { name: String @search(by: [hash, regexp]) path: String @search(by: [hash, regexp]) assumeRolePolicy: awsIamJSONPolicy @@ -20,7 +17,9 @@ type awsIamRole @key(fields: "id") { glueJobs: [awsGlueJob] @hasInverse(field: iamRole) managedAirflows: [awsManagedAirflow] @hasInverse(field: iamRoles) guardDutyDetectors: [awsGuardDutyDetector] @hasInverse(field: iamRole) - sageMakerNotebookInstances: [awsSageMakerNotebookInstance] @hasInverse(field: iamRole) - systemsManagerInstances: [awsSystemsManagerInstance] @hasInverse(field: iamRole) + sageMakerNotebookInstances: [awsSageMakerNotebookInstance] + @hasInverse(field: iamRole) + systemsManagerInstances: [awsSystemsManagerInstance] + @hasInverse(field: iamRole) iamInstanceProfiles: [awsIamInstanceProfile] @hasInverse(field: iamRole) } diff --git a/src/services/iamSamlProvider/schema.graphql b/src/services/iamSamlProvider/schema.graphql index 1e80fbed..3a73f6da 100644 --- a/src/services/iamSamlProvider/schema.graphql +++ b/src/services/iamSamlProvider/schema.graphql @@ -1,7 +1,4 @@ -type awsIamSamlProvider @key(fields: "id") { - id: String! @id @search(by: [hash]) - arn: String! @search(by: [hash, regexp]) - accountId: String! @search(by: [hash, regexp]) +type awsIamSamlProvider implements awsOptionalService @key(fields: "id") { validUntil: String @search(by: [hash, regexp]) createdDate: String @search(by: [hash, regexp]) } diff --git a/src/services/iamServerCertificate/schema.graphql b/src/services/iamServerCertificate/schema.graphql index ec660169..beceb47a 100644 --- a/src/services/iamServerCertificate/schema.graphql +++ b/src/services/iamServerCertificate/schema.graphql @@ -1,7 +1,4 @@ -type awsIamServerCertificate @key(fields: "id") { - id: String! @id @search(by: [hash, regexp]) - arn: String! @search(by: [hash, regexp]) - accountId: String @search(by: [hash, regexp]) +type awsIamServerCertificate implements awsOptionalService @key(fields: "id") { certificateId: String @search(by: [hash, regexp]) name: String @search(by: [hash, regexp]) path: String @search(by: [hash, regexp]) diff --git a/src/services/iamUser/schema.graphql b/src/services/iamUser/schema.graphql index 38674456..b01a7141 100644 --- a/src/services/iamUser/schema.graphql +++ b/src/services/iamUser/schema.graphql @@ -1,7 +1,4 @@ -type awsIamUser @key(fields: "id") { - id: String! @id @search(by: [hash]) - arn: String! @search(by: [hash, regexp]) - accountId: String! @search(by: [hash, regexp]) +type awsIamUser implements awsOptionalService @key(fields: "id") { path: String @search(by: [hash, regexp]) name: String @search(by: [hash, regexp]) creationTime: String @search(by: [hash, regexp]) diff --git a/src/services/igw/schema.graphql b/src/services/igw/schema.graphql index 66a1e2cf..d2353fd4 100644 --- a/src/services/igw/schema.graphql +++ b/src/services/igw/schema.graphql @@ -1,8 +1,4 @@ -type awsIgw @key(fields: "arn") { - id: String! @id @search(by: [hash]) - accountId: String! @search(by: [hash]) - arn: String! @id @search(by: [hash, regexp]) - region: String @search(by: [hash, regexp]) +type awsIgw implements awsBaseService @key(fields: "arn") { owner: String @search(by: [hash, regexp]) attachments: [awsIgwAttachment] tags: [awsRawTag] diff --git a/src/services/iot/schema.graphql b/src/services/iot/schema.graphql index 13c02d16..e409ec9b 100644 --- a/src/services/iot/schema.graphql +++ b/src/services/iot/schema.graphql @@ -1,8 +1,4 @@ -type awsIotThingAttribute @key(fields: "arn") { - id: String! @id @search(by: [hash]) - accountId: String! @search(by: [hash]) - arn: String! @id @search(by: [hash, regexp]) - region: String @search(by: [hash, regexp]) +type awsIotThingAttribute implements awsBaseService @key(fields: "arn") { thingName: String thingTypeName: String attributes: [awsIotAttribute] diff --git a/src/services/kinesisFirehose/schema.graphql b/src/services/kinesisFirehose/schema.graphql index 09b3542b..866ee3af 100644 --- a/src/services/kinesisFirehose/schema.graphql +++ b/src/services/kinesisFirehose/schema.graphql @@ -1,34 +1,30 @@ #TODO: add iam role connection -type awsKinesisFirehose @key(fields: "arn") { - id: String! @id @search(by: [hash]) - accountId: String! @search(by: [hash]) - arn: String! @id @search(by: [hash, regexp]) - region: String @search(by: [hash, regexp]) - name: String! @search(by: [hash, regexp]) - deliveryStreamStatus: String! @search(by: [hash, regexp]) - failureDescriptionType: String! @search(by: [hash, regexp]) - failureDescriptionDetails: String! @search(by: [hash, regexp]) - encryptionConfig: awsKinesisFirehoseEncryptionConfig - deliveryStreamType: String! @search(by: [hash, regexp]) - versionId: String! @search(by: [hash, regexp]) - createTimestamp: String @search(by: [hash, regexp]) - lastUpdateTimestamp: String @search(by: [hash, regexp]) - source: awsKinesisFirehoseSource - kinesisStream: [awsKinesisStream] @hasInverse(field: kinesisFirehose) - s3: [awsS3] @hasInverse(field: kinesisFirehose) - tags: [awsRawTag] +type awsKinesisFirehose implements awsBaseService @key(fields: "arn") { + name: String @search(by: [hash, regexp]) + deliveryStreamStatus: String @search(by: [hash, regexp]) + failureDescriptionType: String @search(by: [hash, regexp]) + failureDescriptionDetails: String @search(by: [hash, regexp]) + encryptionConfig: awsKinesisFirehoseEncryptionConfig + deliveryStreamType: String @search(by: [hash, regexp]) + versionId: String @search(by: [hash, regexp]) + createTimestamp: String @search(by: [hash, regexp]) + lastUpdateTimestamp: String @search(by: [hash, regexp]) + source: awsKinesisFirehoseSource + kinesisStream: [awsKinesisStream] @hasInverse(field: kinesisFirehose) + s3: [awsS3] @hasInverse(field: kinesisFirehose) + tags: [awsRawTag] } type awsKinesisFirehoseEncryptionConfig { - keyARN: String @search(by: [hash, regexp]) - keyType: String @search(by: [hash, regexp]) - status: String @search(by: [hash, regexp]) - failureDescriptionType: String @search(by: [hash, regexp]) - failureDescriptionDetails: String @search(by: [hash, regexp]) + keyARN: String @search(by: [hash, regexp]) + keyType: String @search(by: [hash, regexp]) + status: String @search(by: [hash, regexp]) + failureDescriptionType: String @search(by: [hash, regexp]) + failureDescriptionDetails: String @search(by: [hash, regexp]) } type awsKinesisFirehoseSource { - kinesisStreamARN: String @search(by: [hash, regexp]) - roleARN: String @search(by: [hash, regexp]) - deliveryStartTimestamp: String @search(by: [hash, regexp]) + kinesisStreamARN: String @search(by: [hash, regexp]) + roleARN: String @search(by: [hash, regexp]) + deliveryStartTimestamp: String @search(by: [hash, regexp]) } diff --git a/src/services/kinesisStream/schema.graphql b/src/services/kinesisStream/schema.graphql index 35725132..84c57302 100644 --- a/src/services/kinesisStream/schema.graphql +++ b/src/services/kinesisStream/schema.graphql @@ -4,14 +4,14 @@ type awsShards mutation: { add: false, delete: false } subscription: false ) { - shardId: String! @search(by: [hash, regexp]) - parentShardId: String @search(by: [hash, regexp]) - adjacentParentShardId: String @search(by: [hash, regexp]) - hashKeyRangeStarting: String! @search(by: [hash, regexp]) - hashKeyRangeEnding: String! @search(by: [hash, regexp]) - sequenceNumberRangeStaring: String! @search(by: [hash, regexp]) - sequenceNumberRangeEnding: String @search(by: [hash, regexp]) - } + shardId: String! @search(by: [hash, regexp]) + parentShardId: String @search(by: [hash, regexp]) + adjacentParentShardId: String @search(by: [hash, regexp]) + hashKeyRangeStarting: String! @search(by: [hash, regexp]) + hashKeyRangeEnding: String! @search(by: [hash, regexp]) + sequenceNumberRangeStaring: String! @search(by: [hash, regexp]) + sequenceNumberRangeEnding: String @search(by: [hash, regexp]) +} type awsShardLevelMetrics @generate( @@ -19,19 +19,15 @@ type awsShardLevelMetrics mutation: { add: false, delete: false } subscription: false ) { - shardLevelMetrics: [String] @search(by: [hash]) - } + shardLevelMetrics: [String] @search(by: [hash]) +} -type awsKinesisStream @key(fields: "arn") { - id: String! @search(by: [hash]) - accountId: String! @search(by: [hash]) - arn: String! @id @search(by: [hash, regexp]) - region: String! @search(by: [hash, regexp]) - streamName: String! @search(by: [hash, regexp]) - streamStatus: String! @search(by: [hash, regexp]) - shards: [awsShards]! - retentionPeriodHours: Int! @search - enhancedMonitoring: [awsShardLevelMetrics!]! +type awsKinesisStream implements awsBaseService @key(fields: "arn") { + streamName: String @search(by: [hash, regexp]) + streamStatus: String @search(by: [hash, regexp]) + shards: [awsShards] + retentionPeriodHours: Int @search + enhancedMonitoring: [awsShardLevelMetrics] encryptionType: String @search(by: [hash, regexp]) keyId: String @search(by: [hash, regexp]) kinesisFirehose: [awsKinesisFirehose] @hasInverse(field: kinesisStream) #change to plural diff --git a/src/services/kms/schema.graphql b/src/services/kms/schema.graphql index 65d47713..53d0ae5a 100644 --- a/src/services/kms/schema.graphql +++ b/src/services/kms/schema.graphql @@ -1,8 +1,4 @@ -type awsKms @key(fields: "id"){ - id: String! @id @search(by: [hash]) - accountId: String! @search(by: [hash]) - arn: String! @id @search(by: [hash, regexp]) - region: String @search(by: [hash, regexp]) +type awsKms implements awsBaseService @key(fields: "id") { description: String @search(by: [hash, regexp, fulltext]) keyRotationEnabled: Boolean @search usage: String @search(by: [hash, regexp]) @@ -21,13 +17,15 @@ type awsKms @key(fields: "id"){ redshiftCluster: [awsRedshiftCluster] @hasInverse(field: kms) #change to plural sns: [awsSns] @hasInverse(field: kms) eksCluster: [awsEksCluster] @hasInverse(field: kms) #change to plural - elastiCacheReplicationGroup: [awsElastiCacheReplicationGroup] @hasInverse(field: kms) #change to plural + elastiCacheReplicationGroup: [awsElastiCacheReplicationGroup] + @hasInverse(field: kms) #change to plural efs: [awsEfs] @hasInverse(field: kms) emrCluster: [awsEmrCluster] @hasInverse(field: kms) #change to plural cloudwatchLog: [awsCloudwatchLog] @hasInverse(field: kms) codebuilds: [awsCodebuild] @hasInverse(field: kms) elasticSearchDomains: [awsElasticSearchDomain] @hasInverse(field: kms) dmsReplicationInstances: [awsDmsReplicationInstance] @hasInverse(field: kms) - sageMakerNotebookInstances: [awsSageMakerNotebookInstance] @hasInverse(field: kms) + sageMakerNotebookInstances: [awsSageMakerNotebookInstance] + @hasInverse(field: kms) rdsClusterSnapshots: [awsRdsClusterSnapshot] @hasInverse(field: kms) } diff --git a/src/services/lambda/schema.graphql b/src/services/lambda/schema.graphql index 0335cd6f..c3d03d0d 100644 --- a/src/services/lambda/schema.graphql +++ b/src/services/lambda/schema.graphql @@ -1,8 +1,4 @@ -type awsLambda @key(fields: "arn") { - id: String! @search(by: [hash]) - accountId: String! @search(by: [hash]) - arn: String! @id @search(by: [hash, regexp]) - region: String @search(by: [hash, regexp]) +type awsLambda implements awsBaseService @key(fields: "arn") { description: String @search(by: [hash, regexp, fulltext]) handler: String @search(by: [hash, regexp]) kmsKeyArn: String @search(by: [hash, regexp]) diff --git a/src/services/managedAirflow/schema.graphql b/src/services/managedAirflow/schema.graphql index 0f8f46fa..387358d2 100644 --- a/src/services/managedAirflow/schema.graphql +++ b/src/services/managedAirflow/schema.graphql @@ -1,63 +1,59 @@ -type awsManagedAirflow @key(fields: "arn") { - id: String! @id @search(by: [hash]) - arn: String! @id @search(by: [hash, regexp]) - accountId: String! @search(by: [hash]) - region: String @search(by: [hash, regexp]) - airflowConfigurationOptions: [awsRawTag] - airflowVersion: String @search(by: [hash, regexp]) - kmsKey: String @search(by: [hash, regexp]) - createdAt: DateTime - dagS3Path: String @search(by: [hash, regexp]) - environmentClass: String @search(by: [hash, regexp]) - executionRoleArn: String @search(by: [hash, regexp]) - lastUpdate: awsManagedAirflowLastUpdate - loggingConfiguration: awsManagedAirflowLoggingConfig - maxWorkers: Int @search - minWorkers: Int @search - name: String @search(by: [hash, regexp]) - networkConfiguration: awsManagedAirflowNetworkConfig - pluginsS3Path: String @search(by: [hash, regexp]) - requirementsS3Path: String @search(by: [hash, regexp]) - schedulers: Int @search - serviceRoleArn: String @search(by: [hash, regexp]) - sourceBucketArn: String @search(by: [hash, regexp]) - status: String @search(by: [hash, regexp]) - tags: [awsRawTag] - webserverAccessMode: String @search(by: [hash, regexp]) - webserverUrl: String @search(by: [hash, regexp]) - weeklyMaintenanceWindowStart: String @search(by: [hash, regexp]) - iamRoles: [awsIamRole] @hasInverse(field: managedAirflows) - subnets: [awsSubnet] @hasInverse(field: managedAirflows) - securityGroups: [awsSecurityGroup] @hasInverse(field: managedAirflows) - s3: [awsS3] @hasInverse(field: managedAirflows) - } +type awsManagedAirflow implements awsBaseService @key(fields: "arn") { + airflowConfigurationOptions: [awsRawTag] + airflowVersion: String @search(by: [hash, regexp]) + kmsKey: String @search(by: [hash, regexp]) + createdAt: DateTime + dagS3Path: String @search(by: [hash, regexp]) + environmentClass: String @search(by: [hash, regexp]) + executionRoleArn: String @search(by: [hash, regexp]) + lastUpdate: awsManagedAirflowLastUpdate + loggingConfiguration: awsManagedAirflowLoggingConfig + maxWorkers: Int @search + minWorkers: Int @search + name: String @search(by: [hash, regexp]) + networkConfiguration: awsManagedAirflowNetworkConfig + pluginsS3Path: String @search(by: [hash, regexp]) + requirementsS3Path: String @search(by: [hash, regexp]) + schedulers: Int @search + serviceRoleArn: String @search(by: [hash, regexp]) + sourceBucketArn: String @search(by: [hash, regexp]) + status: String @search(by: [hash, regexp]) + tags: [awsRawTag] + webserverAccessMode: String @search(by: [hash, regexp]) + webserverUrl: String @search(by: [hash, regexp]) + weeklyMaintenanceWindowStart: String @search(by: [hash, regexp]) + iamRoles: [awsIamRole] @hasInverse(field: managedAirflows) + subnets: [awsSubnet] @hasInverse(field: managedAirflows) + securityGroups: [awsSecurityGroup] @hasInverse(field: managedAirflows) + s3: [awsS3] @hasInverse(field: managedAirflows) +} - type awsManagedAirflowNetworkConfig { - subnetIds: [String] @search(by: [hash, regexp]) - securityGroupIds: [String] @search(by: [hash, regexp]) - } +type awsManagedAirflowNetworkConfig { + subnetIds: [String] @search(by: [hash, regexp]) + securityGroupIds: [String] @search(by: [hash, regexp]) +} - type awsManagedAirflowLastUpdate { - createdAt: DateTime - error: awsManagedAirflowLastUpdateError - status: String @search(by: [hash, regexp]) - } +type awsManagedAirflowLastUpdate { + createdAt: DateTime + error: awsManagedAirflowLastUpdateError + status: String @search(by: [hash, regexp]) +} - type awsManagedAirflowLastUpdateError { - errorCode: String @search(by: [hash, regexp]) - errorMessage: String @search(by: [hash, regexp]) - } +type awsManagedAirflowLastUpdateError { + errorCode: String @search(by: [hash, regexp]) + errorMessage: String @search(by: [hash, regexp]) +} - type awsManagedAirflowLoggingConfig { - dagProcessingLogs: awsManagedAirflowLogging - schedulerLogs: awsManagedAirflowLogging - taskLogs: awsManagedAirflowLogging - webserverLogs: awsManagedAirflowLogging - workerLogs: awsManagedAirflowLogging - } +type awsManagedAirflowLoggingConfig { + dagProcessingLogs: awsManagedAirflowLogging + schedulerLogs: awsManagedAirflowLogging + taskLogs: awsManagedAirflowLogging + webserverLogs: awsManagedAirflowLogging + workerLogs: awsManagedAirflowLogging +} - type awsManagedAirflowLogging { - cloudWatchLogGroupArn: String @search(by: [hash, regexp]) - enabled: Boolean @search - logLevel: String @search(by: [hash, regexp]) - } +type awsManagedAirflowLogging { + cloudWatchLogGroupArn: String @search(by: [hash, regexp]) + enabled: Boolean @search + logLevel: String @search(by: [hash, regexp]) +} diff --git a/src/services/nacl/schema.graphql b/src/services/nacl/schema.graphql index 579022f1..56b1a6ef 100644 --- a/src/services/nacl/schema.graphql +++ b/src/services/nacl/schema.graphql @@ -1,8 +1,4 @@ -type awsNetworkAcl @key(fields: "id") { - id: String! @id @search(by: [hash]) - arn: String! @id @search(by: [hash, regexp]) - accountId: String! @search(by: [hash, regexp]) - region: String! @search(by: [hash, regexp]) +type awsNetworkAcl implements awsBaseService @key(fields: "id") { default: Boolean inboundRules: [awsNetworkAclRule] outboundRules: [awsNetworkAclRule] @@ -10,7 +6,7 @@ type awsNetworkAcl @key(fields: "id") { tags: [awsRawTag] vpc: [awsVpc] @hasInverse(field: nacl) # subnet: [awsSubnet] @hasInverse(field: nacl) #change to plural - vpcId: String! @search(by: [hash, regexp]) + vpcId: String @search(by: [hash, regexp]) } type awsNetworkAclRule diff --git a/src/services/natGateway/schema.graphql b/src/services/natGateway/schema.graphql index 4788aea5..67b712a7 100644 --- a/src/services/natGateway/schema.graphql +++ b/src/services/natGateway/schema.graphql @@ -1,12 +1,8 @@ -type awsNatGateway @key(fields: "id") { - id: String! @id @search(by: [hash]) - accountId: String! @search(by: [hash]) - arn: String! @id @search(by: [hash, regexp]) - region: String @search(by: [hash, regexp]) - state: String @search(by: [hash, regexp]) +type awsNatGateway implements awsBaseService @key(fields: "id") { + state: String @search(by: [hash, regexp]) createTime: String @search(by: [hash, regexp]) dailyCost: awsTotalBillingInfo - tags: [awsRawTag] + tags: [awsRawTag] networkInterface: [awsNetworkInterface] @hasInverse(field: natGateway) #change to plural subnet: [awsSubnet] @hasInverse(field: natGateway) #change to plural vpc: [awsVpc] @hasInverse(field: natGateway) diff --git a/src/services/networkInterface/schema.graphql b/src/services/networkInterface/schema.graphql index 80048590..3a7c52a7 100644 --- a/src/services/networkInterface/schema.graphql +++ b/src/services/networkInterface/schema.graphql @@ -1,8 +1,4 @@ -type awsNetworkInterface @key(fields: "arn") { - id: String! @id @search(by: [hash]) - accountId: String! @search(by: [hash]) - arn: String! @id @search(by: [hash, regexp]) - region: String @search(by: [hash, regexp]) +type awsNetworkInterface implements awsBaseService @key(fields: "arn") { subnetId: String @search(by: [hash]) macAddress: String @search(by: [hash, regexp]) description: String @search(by: [hash, regexp, fulltext]) @@ -22,7 +18,8 @@ type awsNetworkInterface @key(fields: "arn") { vpc: [awsVpc] @hasInverse(field: networkInterface) efsMountTarget: [awsEfsMountTarget] @hasInverse(field: networkInterface) flowLogs: [awsFlowLog] @hasInverse(field: networkInterface) #change to singular - sageMakerNotebookInstances: [awsSageMakerNotebookInstance] @hasInverse(field: networkInterface) + sageMakerNotebookInstances: [awsSageMakerNotebookInstance] + @hasInverse(field: networkInterface) } type awsNetworkInterfaceAttachment diff --git a/src/services/organization/schema.graphql b/src/services/organization/schema.graphql index 7e7fcc4e..df224e14 100644 --- a/src/services/organization/schema.graphql +++ b/src/services/organization/schema.graphql @@ -1,7 +1,4 @@ -type awsOrganization @key(fields: "arn") { - id: String! @id @search(by: [hash]) - accountId: String! @search(by: [hash]) - arn: String! @id @search(by: [hash, regexp]) +type awsOrganization implements awsBaseService @key(fields: "arn") { masterAccountArn: String @search(by: [hash, regexp]) masterAccountId: String @search(by: [hash]) masterAccountEmail: String @search(by: [hash, regexp]) @@ -18,4 +15,4 @@ type awsPolicyTypes id: String! @id status: String type: String -} \ No newline at end of file +} diff --git a/src/services/rdsCluster/schema.graphql b/src/services/rdsCluster/schema.graphql index 84df384c..ca7140bf 100644 --- a/src/services/rdsCluster/schema.graphql +++ b/src/services/rdsCluster/schema.graphql @@ -1,8 +1,4 @@ -type awsRdsCluster @key(fields: "arn") { - id: String! @search(by: [hash]) - accountId: String! @search(by: [hash]) - arn: String! @id @search(by: [hash, regexp]) - region: String @search(by: [hash, regexp]) +type awsRdsCluster implements awsBaseService @key(fields: "arn") { allocatedStorage: Int @search backupRetentionPeriod: Int @search characterSetName: String @search(by: [hash, regexp]) @@ -41,4 +37,3 @@ type awsRdsCluster @key(fields: "arn") { # TODO: create connection to iam roles using AssociatedRoles property AND DomainMemberships AND MonitoringRole # TODO: create connection to kms using all kms related fields - \ No newline at end of file diff --git a/src/services/rdsClusterSnapshot/schema.graphql b/src/services/rdsClusterSnapshot/schema.graphql index 14f8b6c0..dd96aeab 100644 --- a/src/services/rdsClusterSnapshot/schema.graphql +++ b/src/services/rdsClusterSnapshot/schema.graphql @@ -3,11 +3,7 @@ type AwsRdsClusterSnapshotTagList { value: String @search(by: [hash, regexp]) } -type awsRdsClusterSnapshot @key(fields: "arn") { - id: String! @id @search(by: [hash]) - arn: String! @id @search(by: [hash, regexp]) - region: String @search(by: [hash, regexp]) - accountId: String! @search(by: [hash]) +type awsRdsClusterSnapshot implements awsBaseService @key(fields: "arn") { availabilityZones: [String] @search(by: [hash, regexp]) dbClusterSnapshotIdentifier: String @search(by: [hash, regexp]) dbClusterIdentifier: String @search(by: [hash, regexp]) diff --git a/src/services/rdsDbInstance/schema.graphql b/src/services/rdsDbInstance/schema.graphql index 2ae35cca..5d3fc06d 100644 --- a/src/services/rdsDbInstance/schema.graphql +++ b/src/services/rdsDbInstance/schema.graphql @@ -1,8 +1,4 @@ -type awsRdsDbInstance @key(fields: "arn") { - id: String! @search(by: [hash]) - accountId: String! @search(by: [hash]) - arn: String! @id @search(by: [hash, regexp]) - region: String @search(by: [hash, regexp]) +type awsRdsDbInstance implements awsBaseService @key(fields: "arn") { name: String @search(by: [hash, regexp]) port: Int @search address: String @search(by: [hash, regexp]) @@ -44,4 +40,3 @@ type awsRdsDbInstance @key(fields: "arn") { # TODO: add connection to kms using kmsKeyId AND PerformanceInsightsKMSKeyId AND ActivityStreamKmsKeyId # TODO: add connection to IAM role using DomainMembership AND MonitoringRoleArn AND AssociatedRoles # TODO: add connection to cloudwatchLog using EnhancedMonitoringResourceArn - diff --git a/src/services/redshift/schema.graphql b/src/services/redshift/schema.graphql index c11b5997..6e5c20c0 100644 --- a/src/services/redshift/schema.graphql +++ b/src/services/redshift/schema.graphql @@ -1,8 +1,4 @@ -type awsRedshiftCluster @key(fields: "arn") { - id: String! @search(by: [hash]) - accountId: String! @search(by: [hash]) - arn: String! @id @search(by: [hash, regexp]) - region: String! @search(by: [hash, regexp]) +type awsRedshiftCluster implements awsBaseService @key(fields: "arn") { allowVersionUpgrade: Boolean @search automatedSnapshotRetentionPeriod: Int @search availabilityZone: String @search(by: [hash, regexp]) diff --git a/src/services/route53HostedZone/schema.graphql b/src/services/route53HostedZone/schema.graphql index 90440908..f4f0bbee 100644 --- a/src/services/route53HostedZone/schema.graphql +++ b/src/services/route53HostedZone/schema.graphql @@ -1,7 +1,4 @@ -type awsRoute53HostedZone @key(fields: "arn") { - id: String! @search(by: [hash]) - accountId: String! @search(by: [hash]) - arn: String! @id @search(by: [hash, regexp]) +type awsRoute53HostedZone implements awsBaseService @key(fields: "arn") { name: String @search(by: [hash, regexp]) comment: String @search(by: [hash, regexp, fulltext]) delegationSetId: String @search(by: [hash]) diff --git a/src/services/route53Record/schema.graphql b/src/services/route53Record/schema.graphql index e7cf6a6d..91b0a32e 100644 --- a/src/services/route53Record/schema.graphql +++ b/src/services/route53Record/schema.graphql @@ -1,6 +1,4 @@ -type awsRoute53Record @key(fields: "id") { - id: String! @id @search(by: [hash]) - accountId: String! @search(by: [hash]) +type awsRoute53Record implements awsOptionalService @key(fields: "id") { zoneId: String @search(by: [hash]) alias: awsRoute53Alias type: String @search(by: [hash, regexp]) diff --git a/src/services/routeTable/schema.graphql b/src/services/routeTable/schema.graphql index 3c12ba49..f76e2c63 100644 --- a/src/services/routeTable/schema.graphql +++ b/src/services/routeTable/schema.graphql @@ -1,8 +1,4 @@ -type awsRouteTable @key(fields: "arn") { - id: String! @id @search(by: [hash]) - accountId: String! @search(by: [hash]) - arn: String! @id @search(by: [hash, regexp]) - region: String @search(by: [hash, regexp]) +type awsRouteTable implements awsBaseService @key(fields: "arn") { vpcId: String @search(by: [hash]) routes: [awsRoute] mainRouteTable: Boolean @search @@ -12,7 +8,8 @@ type awsRouteTable @key(fields: "arn") { subnet: [awsSubnet] @hasInverse(field: routeTable) #change to plural vpc: [awsVpc] @hasInverse(field: routeTable) transitGateway: [awsTransitGateway] @hasInverse(field: routeTable) - transitGatewayAttachment: [awsTransitGatewayAttachment] @hasInverse(field: routeTable) + transitGatewayAttachment: [awsTransitGatewayAttachment] + @hasInverse(field: routeTable) } type awsRoute diff --git a/src/services/s3/schema.graphql b/src/services/s3/schema.graphql index a2547496..535d64a4 100644 --- a/src/services/s3/schema.graphql +++ b/src/services/s3/schema.graphql @@ -1,8 +1,4 @@ -type awsS3 @key(fields: "arn") { - id: String! @id @search(by: [hash]) - accountId: String! @search(by: [hash]) - arn: String! @id @search(by: [hash, regexp]) - region: String @search(by: [hash, regexp]) +type awsS3 implements awsBaseService @key(fields: "arn") { access: String @search(by: [hash, regexp]) bucketOwnerName: String @search(by: [hash, regexp]) requesterPays: String @search(by: [hash, regexp]) diff --git a/src/services/sageMakerExperiment/schema.graphql b/src/services/sageMakerExperiment/schema.graphql index 08c91f40..28a1bd15 100644 --- a/src/services/sageMakerExperiment/schema.graphql +++ b/src/services/sageMakerExperiment/schema.graphql @@ -3,11 +3,7 @@ type awsSageMakerExperimentExperimentSource { sourceType: String @search(by: [hash, regexp]) } -type awsSageMakerExperiment @key(fields: "arn") { - id: String! @id @search(by: [hash]) - arn: String! @id @search(by: [hash, regexp]) - accountId: String! @search(by: [hash]) - region: String @search(by: [hash, regexp]) +type awsSageMakerExperiment implements awsBaseService @key(fields: "arn") { experimentArn: String @search(by: [hash, regexp]) experimentName: String @search(by: [hash, regexp]) displayName: String @search(by: [hash, regexp]) diff --git a/src/services/sageMakerNotebookInstance/schema.graphql b/src/services/sageMakerNotebookInstance/schema.graphql index 4b8b32ed..f25b80a5 100644 --- a/src/services/sageMakerNotebookInstance/schema.graphql +++ b/src/services/sageMakerNotebookInstance/schema.graphql @@ -1,8 +1,5 @@ -type awsSageMakerNotebookInstance @key(fields: "arn") { - id: String! @id @search(by: [hash]) - arn: String! @id @search(by: [hash, regexp]) - region: String @search(by: [hash, regexp]) - accountId: String! @search(by: [hash]) +type awsSageMakerNotebookInstance implements awsBaseService + @key(fields: "arn") { notebookInstanceName: String @search(by: [hash, regexp]) notebookInstanceStatus: String @search(by: [hash, regexp]) failureReason: String @search(by: [hash, regexp]) @@ -24,8 +21,10 @@ type awsSageMakerNotebookInstance @key(fields: "arn") { rootAccess: String @search(by: [hash, regexp]) platformIdentifier: String @search(by: [hash, regexp]) iamRole: [awsIamRole] @hasInverse(field: sageMakerNotebookInstances) - networkInterface: [awsNetworkInterface] @hasInverse(field: sageMakerNotebookInstances) + networkInterface: [awsNetworkInterface] + @hasInverse(field: sageMakerNotebookInstances) subnet: [awsSubnet] @hasInverse(field: sageMakerNotebookInstances) kms: [awsKms] @hasInverse(field: sageMakerNotebookInstances) - securityGroups: [awsSecurityGroup] @hasInverse(field: sageMakerNotebookInstances) + securityGroups: [awsSecurityGroup] + @hasInverse(field: sageMakerNotebookInstances) } diff --git a/src/services/sageMakerProject/schema.graphql b/src/services/sageMakerProject/schema.graphql index 4f3ecfa3..9615026a 100644 --- a/src/services/sageMakerProject/schema.graphql +++ b/src/services/sageMakerProject/schema.graphql @@ -1,8 +1,4 @@ -type awsSageMakerProject @key(fields: "arn") { - id: String! @id @search(by: [hash]) - arn: String! @id @search(by: [hash, regexp]) - accountId: String! @search(by: [hash]) - region: String @search(by: [hash, regexp]) +type awsSageMakerProject implements awsBaseService @key(fields: "arn") { projectName: String @search(by: [hash, regexp]) projectArn: String @search(by: [hash, regexp]) projectId: String @search(by: [hash, regexp]) diff --git a/src/services/secretsManager/schema.graphql b/src/services/secretsManager/schema.graphql index 1c8937be..51a60ebf 100644 --- a/src/services/secretsManager/schema.graphql +++ b/src/services/secretsManager/schema.graphql @@ -4,15 +4,11 @@ type awsSecretsManagerRotationRule mutation: { add: false, delete: false } subscription: false ) { - id: ID - automaticallyAfterDays: Int @search - } + id: ID + automaticallyAfterDays: Int @search +} -type awsSecretsManager @key(fields: "arn") { - id: String! @search(by: [hash]) - accountId: String! @search(by: [hash]) - arn: String! @id @search(by: [hash, regexp]) - region: String @search(by: [hash, regexp]) +type awsSecretsManager implements awsBaseService @key(fields: "arn") { name: String @search(by: [hash, regexp]) description: String @search(by: [hash, regexp]) kmsKeyId: String @search(by: [hash]) @@ -30,4 +26,3 @@ type awsSecretsManager @key(fields: "arn") { # TODO: add connection to kms (also use ReplicationStatus.KmsKeyId) # TODO: add connection to lambda - diff --git a/src/services/securityGroup/schema.graphql b/src/services/securityGroup/schema.graphql index 904b9c55..172fc686 100644 --- a/src/services/securityGroup/schema.graphql +++ b/src/services/securityGroup/schema.graphql @@ -1,9 +1,5 @@ -type awsSecurityGroup @key(fields: "id") { - id: String! @id @search(by: [hash]) - accountId: String! @search(by: [hash]) - arn: String! @id @search(by: [hash, regexp]) - region: String @search(by: [hash, regexp]) - name: String! @search(by: [hash, regexp]) +type awsSecurityGroup implements awsBaseService @key(fields: "id") { + name: String @search(by: [hash, regexp]) vpcId: String @search(by: [hash]) description: String @search(by: [hash, regexp, fulltext]) tags: [awsRawTag] @@ -26,9 +22,12 @@ type awsSecurityGroup @key(fields: "id") { clientVpnEndpoint: [awsClientVpnEndpoint] @hasInverse(field: securityGroups) #change to plural codebuilds: [awsCodebuild] @hasInverse(field: securityGroups) managedAirflows: [awsManagedAirflow] @hasInverse(field: securityGroups) - elasticSearchDomains: [awsElasticSearchDomain] @hasInverse(field: securityGroups) - dmsReplicationInstances: [awsDmsReplicationInstance] @hasInverse(field: securityGroups) - sageMakerNotebookInstances: [awsSageMakerNotebookInstance] @hasInverse(field: securityGroups) + elasticSearchDomains: [awsElasticSearchDomain] + @hasInverse(field: securityGroups) + dmsReplicationInstances: [awsDmsReplicationInstance] + @hasInverse(field: securityGroups) + sageMakerNotebookInstances: [awsSageMakerNotebookInstance] + @hasInverse(field: securityGroups) } type awsSgOutboundRule diff --git a/src/services/ses/schema.graphql b/src/services/ses/schema.graphql index d7a539cc..087c9d83 100644 --- a/src/services/ses/schema.graphql +++ b/src/services/ses/schema.graphql @@ -1,8 +1,4 @@ -type awsSes @key(fields: "arn") { - id: String! @search(by: [hash]) - accountId: String! @search(by: [hash]) - arn: String! @id @search(by: [hash, regexp]) - region: String @search(by: [hash, regexp]) +type awsSes implements awsBaseService @key(fields: "arn") { email: String @search(by: [hash, regexp]) verificationStatus: String @search(by: [hash, regexp]) } diff --git a/src/services/sns/schema.graphql b/src/services/sns/schema.graphql index e68e5cdf..64d729f1 100644 --- a/src/services/sns/schema.graphql +++ b/src/services/sns/schema.graphql @@ -1,8 +1,4 @@ -type awsSns @key(fields: "arn") { - id: String! @search(by: [hash]) - accountId: String! @search(by: [hash]) - arn: String! @id @search(by: [hash, regexp]) - region: String! @search(by: [hash, regexp]) +type awsSns implements awsBaseService @key(fields: "arn") { tags: [awsRawTag] policy: awsIamJSONPolicy displayName: String @search(by: [hash, regexp]) @@ -14,14 +10,14 @@ type awsSns @key(fields: "arn") { cloudFormationStack: [awsCloudFormationStack] @hasInverse(field: sns) } -type awsSnsSubscription +type awsSnsSubscription @generate( query: { get: false, query: true, aggregate: false } mutation: { add: false, delete: false } subscription: false ) { - id: String! @id - arn: String @search(by: [hash, regexp]) - endpoint: String @search(by: [hash, regexp]) - protocol: String @search(by: [hash, regexp]) - } + id: String! @id + arn: String @search(by: [hash, regexp]) + endpoint: String @search(by: [hash, regexp]) + protocol: String @search(by: [hash, regexp]) +} diff --git a/src/services/sqs/schema.graphql b/src/services/sqs/schema.graphql index 1d659b4b..5825164a 100644 --- a/src/services/sqs/schema.graphql +++ b/src/services/sqs/schema.graphql @@ -1,10 +1,6 @@ -type awsSqs @key(fields: "arn"){ - id: String! @search(by: [hash]) - accountId: String! @search(by: [hash]) - arn: String! @id @search(by: [hash, regexp]) - region: String @search(by: [hash, regexp]) - queueUrl: String! @search(by: [hash, regexp, fulltext]) - queueType: String! @search(by: [hash, regexp, fulltext]) +type awsSqs implements awsBaseService @key(fields: "arn") { + queueUrl: String @search(by: [hash, regexp, fulltext]) + queueType: String @search(by: [hash, regexp, fulltext]) approximateNumberOfMessages: Int @search approximateNumberOfMessagesNotVisible: Int @search approximateNumberOfMessagesDelayed: Int @search diff --git a/src/services/subnet/schema.graphql b/src/services/subnet/schema.graphql index baee31c2..2a01a4d1 100644 --- a/src/services/subnet/schema.graphql +++ b/src/services/subnet/schema.graphql @@ -1,8 +1,4 @@ -type awsSubnet @key(fields: "id") { - id: String! @id @search(by: [hash]) - accountId: String! @search(by: [hash]) - arn: String! @id @search(by: [hash, regexp]) - region: String @search(by: [hash, regexp]) +type awsSubnet implements awsBaseService @key(fields: "id") { autoAssignPublicIpv4Address: String @search(by: [hash, regexp]) autoAssignPublicIpv6Address: String @search(by: [hash, regexp]) availabilityZone: String @search(by: [hash, regexp]) @@ -31,6 +27,8 @@ type awsSubnet @key(fields: "id") { codebuilds: [awsCodebuild] @hasInverse(field: subnets) managedAirflows: [awsManagedAirflow] @hasInverse(field: subnets) elasticSearchDomains: [awsElasticSearchDomain] @hasInverse(field: subnets) - dmsReplicationInstances: [awsDmsReplicationInstance] @hasInverse(field: subnets) - sageMakerNotebookInstances: [awsSageMakerNotebookInstance] @hasInverse(field: subnet) + dmsReplicationInstances: [awsDmsReplicationInstance] + @hasInverse(field: subnets) + sageMakerNotebookInstances: [awsSageMakerNotebookInstance] + @hasInverse(field: subnet) } diff --git a/src/services/systemsManagerDocument/schema.graphql b/src/services/systemsManagerDocument/schema.graphql index 9d9db6c3..4f9eb72a 100644 --- a/src/services/systemsManagerDocument/schema.graphql +++ b/src/services/systemsManagerDocument/schema.graphql @@ -1,8 +1,4 @@ -type awsSystemsManagerDocument @key(fields: "arn") { - id: String! @id @search(by: [hash]) - arn: String! @id @search(by: [hash, regexp]) - accountId: String! @search(by: [hash]) - region: String @search(by: [hash]) +type awsSystemsManagerDocument implements awsBaseService @key(fields: "arn") { name: String @search(by: [hash, regexp]) createdDate: DateTime @search(by: [day]) owner: String @search(by: [hash, regexp]) diff --git a/src/services/systemsManagerInstance/schema.graphql b/src/services/systemsManagerInstance/schema.graphql index ada9039b..e4ff5624 100644 --- a/src/services/systemsManagerInstance/schema.graphql +++ b/src/services/systemsManagerInstance/schema.graphql @@ -1,8 +1,4 @@ -type awsSystemsManagerInstance @key(fields: "arn") { - id: String! @id @search(by: [hash]) - arn: String! @id @search(by: [hash]) - accountId: String! @search(by: [hash]) - region: String @search(by: [hash, regexp]) +type awsSystemsManagerInstance implements awsBaseService @key(fields: "arn") { instanceId: String @search(by: [hash, regexp]) pingStatus: String @search(by: [hash, regexp]) lastPingDateTime: DateTime @search(by: [day]) diff --git a/src/services/tag/connections.ts b/src/services/tag/connections.ts index 83b257a9..de1ce485 100644 --- a/src/services/tag/connections.ts +++ b/src/services/tag/connections.ts @@ -150,7 +150,7 @@ export default ({ ) if (!isEmpty(dataAtRegion)) { for (const cloudtrail of dataAtRegion) { - const { TrailARN: id } = cloudtrail + const { id } = cloudtrail connections.push({ id, resourceType: services.cloudtrail, diff --git a/src/services/transitGateway/schema.graphql b/src/services/transitGateway/schema.graphql index c6ef35bf..dff4eead 100644 --- a/src/services/transitGateway/schema.graphql +++ b/src/services/transitGateway/schema.graphql @@ -1,9 +1,5 @@ -type awsTransitGateway @key(fields: "arn") { - id: String! @id @search(by: [hash]) - accountId: String! @search(by: [hash]) - arn: String! @id @search(by: [hash, regexp]) - region: String @search(by: [hash, regexp]) - ownerId: String! @search(by: [hash]) +type awsTransitGateway implements awsBaseService @key(fields: "arn") { + ownerId: String @search(by: [hash]) description: String @search(by: [hash, regexp]) dnsSupport: String @search(by: [hash, regexp]) vpnEcmpSupport: String @search(by: [hash, regexp]) @@ -16,5 +12,6 @@ type awsTransitGateway @key(fields: "arn") { tags: [awsRawTag] vpnConnection: [awsVpnConnection] @hasInverse(field: transitGateway) routeTable: [awsRouteTable] @hasInverse(field: transitGateway) - transitGatewayAttachment: [awsTransitGatewayAttachment] @hasInverse(field: transitGateway) + transitGatewayAttachment: [awsTransitGatewayAttachment] + @hasInverse(field: transitGateway) } diff --git a/src/services/transitGatewayAttachment/schema.graphql b/src/services/transitGatewayAttachment/schema.graphql index f9524700..12c4cd3b 100644 --- a/src/services/transitGatewayAttachment/schema.graphql +++ b/src/services/transitGatewayAttachment/schema.graphql @@ -1,8 +1,4 @@ -type awsTransitGatewayAttachment @key(fields: "arn") { - id: String! @id @search(by: [hash]) - accountId: String! @search(by: [hash]) - arn: String! @id @search(by: [hash, regexp]) - region: String @search(by: [hash, regexp]) +type awsTransitGatewayAttachment implements awsBaseService @key(fields: "arn") { transitGatewayId: String @search(by: [hash]) transitGatewayOwnerId: String @search(by: [hash]) resourceOwnerId: String @search(by: [hash]) @@ -12,7 +8,8 @@ type awsTransitGatewayAttachment @key(fields: "arn") { transitGatewayRouteTableId: String @search(by: [hash]) creationTime: String @search(by: [hash, regexp]) tags: [awsRawTag] - transitGateway: [awsTransitGateway] @hasInverse(field: transitGatewayAttachment) + transitGateway: [awsTransitGateway] + @hasInverse(field: transitGatewayAttachment) routeTable: [awsRouteTable] @hasInverse(field: transitGatewayAttachment) vpc: [awsVpc] @hasInverse(field: transitGatewayAttachment) vpnConnection: [awsVpnConnection] @hasInverse(field: transitGatewayAttachment) diff --git a/src/services/vpc/schema.graphql b/src/services/vpc/schema.graphql index 16e0131c..90fa918d 100644 --- a/src/services/vpc/schema.graphql +++ b/src/services/vpc/schema.graphql @@ -1,12 +1,8 @@ -type awsVpc @key(fields: "id") { - accountId: String! @search(by: [hash]) - arn: String! @id - region: String @search(by: [hash, regexp]) +type awsVpc implements awsBaseService @key(fields: "id") { defaultVpc: Boolean @search dhcpOptionsSet: String @search(by: [hash, regexp]) enableDnsHostnames: Boolean @search enableDnsSupport: Boolean @search - id: String! @id @search(by: [hash]) instanceTenancy: String @search(by: [hash, regexp]) ipV4Cidr: String @search(by: [hash, regexp]) ipV6Cidr: String @search(by: [hash, regexp]) @@ -32,7 +28,8 @@ type awsVpc @key(fields: "id") { efsMountTarget: [awsEfsMountTarget] @hasInverse(field: vpc) #change to plural flowLogs: [awsFlowLog] @hasInverse(field: vpc) #change to singular vpnGateway: [awsVpnGateway] @hasInverse(field: vpc) - transitGatewayAttachment: [awsTransitGatewayAttachment] @hasInverse(field: vpc) + transitGatewayAttachment: [awsTransitGatewayAttachment] + @hasInverse(field: vpc) elastiCacheCluster: [awsElastiCacheCluster] @hasInverse(field: vpc) codebuilds: [awsCodebuild] @hasInverse(field: vpc) elasticSearchDomains: [awsElasticSearchDomain] @hasInverse(field: vpc) diff --git a/src/services/vpnConnection/schema.graphql b/src/services/vpnConnection/schema.graphql index 5d2ea09a..e8ee712c 100644 --- a/src/services/vpnConnection/schema.graphql +++ b/src/services/vpnConnection/schema.graphql @@ -1,8 +1,4 @@ -type awsVpnConnection @key(fields: "arn") { - id: String! @id @search(by: [hash]) - accountId: String! @search(by: [hash]) - arn: String! @id @search(by: [hash, regexp]) - region: String @search(by: [hash, regexp]) +type awsVpnConnection implements awsBaseService @key(fields: "arn") { category: String @search(by: [hash, regexp]) customerGatewayId: String @search(by: [hash, regexp]) state: String @search(by: [hash, regexp]) @@ -16,7 +12,8 @@ type awsVpnConnection @key(fields: "arn") { transitGateway: [awsTransitGateway] @hasInverse(field: vpnConnection) customerGateway: [awsCustomerGateway] @hasInverse(field: vpnConnection) vpnGateway: [awsVpnGateway] @hasInverse(field: vpnConnection) - transitGatewayAttachment: [awsTransitGatewayAttachment] @hasInverse(field: vpnConnection) + transitGatewayAttachment: [awsTransitGatewayAttachment] + @hasInverse(field: vpnConnection) } type awsVpnConnectionOptions diff --git a/src/services/vpnGateway/schema.graphql b/src/services/vpnGateway/schema.graphql index 423f0b78..6962d0ca 100644 --- a/src/services/vpnGateway/schema.graphql +++ b/src/services/vpnGateway/schema.graphql @@ -1,8 +1,4 @@ -type awsVpnGateway @key(fields: "arn") { - id: String! @id @search(by: [hash]) - accountId: String! @search(by: [hash]) - arn: String! @id @search(by: [hash, regexp]) - region: String @search(by: [hash, regexp]) +type awsVpnGateway implements awsBaseService @key(fields: "arn") { type: String @search(by: [hash, regexp]) state: String @search(by: [hash, regexp]) amazonSideAsn: Int @search diff --git a/src/services/wafV2WebAcl/schema.graphql b/src/services/wafV2WebAcl/schema.graphql index 101208ac..d497de74 100644 --- a/src/services/wafV2WebAcl/schema.graphql +++ b/src/services/wafV2WebAcl/schema.graphql @@ -1,8 +1,4 @@ -type awsWafV2WebAcl @key(fields: "arn") { - id: String! @id @search(by: [hash]) - arn: String! @id @search(by: [hash, regexp]) - accountId: String! @search(by: [hash]) - region: String @search(by: [hash, regexp]) +type awsWafV2WebAcl implements awsBaseService @key(fields: "arn") { name: String @search(by: [hash, regexp]) description: String @search(by: [hash, regexp]) ManagedByFirewallManager: Boolean @search diff --git a/src/types/generated.ts b/src/types/generated.ts index 2e759360..ca9a2509 100644 --- a/src/types/generated.ts +++ b/src/types/generated.ts @@ -133,7 +133,7 @@ export type AwsAccessLogSettings = { id?: Maybe; }; -export type AwsAccount = { +export type AwsAccount = AwsOptionalService & { albs?: Maybe>>; apiGatewayResources?: Maybe>>; apiGatewayRestApis?: Maybe>>; @@ -192,7 +192,6 @@ export type AwsAccount = { iamSamlProviders?: Maybe>>; iamServerCertificates?: Maybe>>; iamUsers?: Maybe>>; - id: Scalars['String']; igw?: Maybe>>; iot?: Maybe>>; kinesisFirehose?: Maybe>>; @@ -250,10 +249,8 @@ export type AwsAdditionalAuthenticationProvider = { userPoolId?: Maybe; }; -export type AwsAlb = { +export type AwsAlb = AwsBaseService & { accessLogsEnabled?: Maybe; - accountId: Scalars['String']; - arn: Scalars['String']; createdAt?: Maybe; defaultVpc?: Maybe; deletionProtection?: Maybe; @@ -262,12 +259,10 @@ export type AwsAlb = { ec2Instance?: Maybe>>; hostedZone?: Maybe; http2?: Maybe; - id: Scalars['String']; idleTimeout?: Maybe; ipAddressType?: Maybe; listeners?: Maybe>>; name?: Maybe; - region?: Maybe; route53Record?: Maybe>>; scheme?: Maybe; securityGroups?: Maybe>>; @@ -311,46 +306,34 @@ export type AwsApiGatewayMethod = { httpMethod?: Maybe; }; -export type AwsApiGatewayResource = { - accountId: Scalars['String']; - arn: Scalars['String']; - id: Scalars['String']; +export type AwsApiGatewayResource = AwsBaseService & { methods?: Maybe>>; path?: Maybe; - region?: Maybe; restApi?: Maybe>>; }; -export type AwsApiGatewayRestApi = { - accountId: Scalars['String']; +export type AwsApiGatewayRestApi = AwsBaseService & { apiKeySource?: Maybe; - arn: Scalars['String']; binaryMediaTypes?: Maybe>>; createdDate?: Maybe; description?: Maybe; endpointConfiguration?: Maybe; - id: Scalars['String']; minimumCompressionSize?: Maybe; policy?: Maybe; - region?: Maybe; resources?: Maybe>>; route53Record?: Maybe>>; stages?: Maybe>>; tags?: Maybe>>; }; -export type AwsApiGatewayStage = { +export type AwsApiGatewayStage = AwsBaseService & { accessLogSettings?: Maybe; - accountId: Scalars['String']; - arn: Scalars['String']; cacheCluster?: Maybe; cacheClusterSize?: Maybe; clientCertificateId?: Maybe; description?: Maybe; documentationVersion?: Maybe; - id: Scalars['String']; name?: Maybe; - region?: Maybe; restApi?: Maybe>>; tags?: Maybe>>; variables?: Maybe>>; @@ -363,17 +346,14 @@ export type AwsApiGatewayStageVariable = { value?: Maybe; }; -export type AwsAppSync = { - accountId: Scalars['String']; +export type AwsAppSync = AwsBaseService & { additionalAuthenticationProviders?: Maybe>>; apiKeys?: Maybe>>; - arn: Scalars['String']; authenticationType?: Maybe; cognitoUserPool?: Maybe>>; dataSources?: Maybe>>; dynamodb?: Maybe>>; functions?: Maybe>>; - id: Scalars['String']; lambda?: Maybe>>; lambdaAuthorizerIdentityValidationExpression?: Maybe; lambdaAuthorizerResultTtlInSeconds?: Maybe; @@ -381,13 +361,12 @@ export type AwsAppSync = { logCloudWatchLogsRoleArn?: Maybe; logExcludeVerboseContent?: Maybe; logFieldLogLevel?: Maybe; - name: Scalars['String']; + name?: Maybe; openIDConnectAuthTTL?: Maybe; openIDConnectClientId?: Maybe; openIDConnectIatTTL?: Maybe; openIDConnectIssuer?: Maybe; rdsCluster?: Maybe>>; - region: Scalars['String']; tags?: Maybe>>; types?: Maybe>>; uris?: Maybe>>; @@ -479,9 +458,7 @@ export type AwsAppSyncType = { resolvers?: Maybe>>; }; -export type AwsAsg = { - accountId: Scalars['String']; - arn: Scalars['String']; +export type AwsAsg = AwsBaseService & { availabilityZones?: Maybe>>; capacityRebalanceEnabled?: Maybe; context?: Maybe; @@ -493,7 +470,6 @@ export type AwsAsg = { enabledMetrics?: Maybe>>; healthCheckGracePeriod?: Maybe; healthCheckType?: Maybe; - id: Scalars['String']; launchConfiguration?: Maybe; launchConfigurationName?: Maybe; launchTemplateId?: Maybe; @@ -508,7 +484,6 @@ export type AwsAsg = { newInstancesProtectedFromScaleIn?: Maybe; placementGroup?: Maybe; predictedCapacity?: Maybe; - region: Scalars['String']; securityGroups?: Maybe>>; serviceLinkedRoleARN?: Maybe; status?: Maybe; @@ -531,13 +506,9 @@ export type AwsAssociatedTargetNetworks = { networkType?: Maybe; }; -export type AwsAthenaDataCatalog = { - accountId: Scalars['String']; - arn: Scalars['String']; +export type AwsAthenaDataCatalog = AwsBaseService & { catalogName: Scalars['String']; databases?: Maybe>>; - id: Scalars['String']; - region?: Maybe; type?: Maybe; }; @@ -566,6 +537,13 @@ export type AwsAthenaMetadataColumn = { type?: Maybe; }; +export type AwsBaseService = { + accountId: Scalars['String']; + arn: Scalars['String']; + id: Scalars['String']; + region?: Maybe; +}; + export type AwsBilling = { accountId: Scalars['String']; id: Scalars['String']; @@ -606,9 +584,7 @@ export type AwsClientVpnAuthentication = { type?: Maybe; }; -export type AwsClientVpnEndpoint = { - accountId: Scalars['String']; - arn: Scalars['String']; +export type AwsClientVpnEndpoint = AwsBaseService & { associatedTargetNetworks?: Maybe>>; authenticationOptions?: Maybe>>; clientCidrBlock?: Maybe; @@ -619,8 +595,6 @@ export type AwsClientVpnEndpoint = { description?: Maybe; dnsName?: Maybe; dnsServers?: Maybe>>; - id: Scalars['String']; - region?: Maybe; securityGroupIds?: Maybe>>; securityGroups?: Maybe>>; serverCertificateArn?: Maybe; @@ -632,17 +606,13 @@ export type AwsClientVpnEndpoint = { vpnProtocol?: Maybe; }; -export type AwsCloud9Environment = { - accountId: Scalars['String']; - arn: Scalars['String']; +export type AwsCloud9Environment = AwsBaseService & { connectionType?: Maybe; description?: Maybe; - id: Scalars['String']; lifecycle?: Maybe; managedCredentialsStatus?: Maybe; name?: Maybe; ownerArn?: Maybe; - region: Scalars['String']; tags?: Maybe>>; type?: Maybe; }; @@ -653,9 +623,7 @@ export type AwsCloud9EnvironmentLifecycle = { status?: Maybe; }; -export type AwsCloudFormationStack = { - accountId: Scalars['String']; - arn: Scalars['String']; +export type AwsCloudFormationStack = AwsBaseService & { capabilities?: Maybe>>; changeSetId?: Maybe; creationTime: Scalars['String']; @@ -664,7 +632,6 @@ export type AwsCloudFormationStack = { disableRollback?: Maybe; enableTerminationProtection?: Maybe; iamRole?: Maybe>>; - id: Scalars['String']; lastUpdatedTime?: Maybe; name?: Maybe; notificationARNs?: Maybe>>; @@ -672,7 +639,6 @@ export type AwsCloudFormationStack = { parameters?: Maybe>>; parentId?: Maybe; parentStack?: Maybe>>; - region: Scalars['String']; roleArn?: Maybe; rollbackConfiguration?: Maybe; rootId?: Maybe; @@ -726,20 +692,17 @@ export type AwsCloudFormationStackRollbackConfiguration = { rollbackTriggers?: Maybe>>; }; -export type AwsCloudFormationStackSet = { +export type AwsCloudFormationStackSet = AwsBaseService & { administrationRoleARN?: Maybe; - arn: Scalars['String']; autoDeploymentConfig?: Maybe; capabilities?: Maybe>>; description?: Maybe; driftDetectionDetail?: Maybe; executionRoleName?: Maybe; - id: Scalars['String']; name?: Maybe; organizationalUnitIds?: Maybe>>; parameters?: Maybe>>; permissionModel?: Maybe; - region: Scalars['String']; status?: Maybe; tags?: Maybe>>; templateBody?: Maybe; @@ -769,9 +732,7 @@ export type AwsCloudFormationStackSetParameter = { usePreviousValue?: Maybe; }; -export type AwsCloudfront = { - accountId: Scalars['String']; - arn: Scalars['String']; +export type AwsCloudfront = AwsBaseService & { callerReference?: Maybe; customErrorResponses?: Maybe>>; defaultCacheBehavior?: Maybe; @@ -782,7 +743,6 @@ export type AwsCloudfront = { etag?: Maybe; geoRestrictions?: Maybe; httpVersion?: Maybe; - id: Scalars['String']; ipv6Enabled?: Maybe; lastModified?: Maybe; logging?: Maybe; @@ -869,10 +829,7 @@ export type AwsCloudfrontforwardedValues = { queryString?: Maybe; }; -export type AwsCloudtrail = { - accountId: Scalars['String']; - arn: Scalars['String']; - cgId: Scalars['String']; +export type AwsCloudtrail = AwsOptionalService & { cloudWatchLogsLogGroupArn?: Maybe; cloudWatchLogsRoleArn?: Maybe; cloudwatch?: Maybe>>; @@ -881,7 +838,6 @@ export type AwsCloudtrail = { hasCustomEventSelectors?: Maybe; hasInsightSelectors?: Maybe; homeRegion?: Maybe; - id: Scalars['String']; includeGlobalServiceEvents?: Maybe; isMultiRegionTrail?: Maybe; isOrganizationTrail?: Maybe; @@ -889,7 +845,6 @@ export type AwsCloudtrail = { kmsKeyId?: Maybe; logFileValidationEnabled?: Maybe; name?: Maybe; - region?: Maybe; s3?: Maybe>>; s3BucketName?: Maybe; s3KeyPrefix?: Maybe; @@ -926,22 +881,18 @@ export type AwsCloudtrailStatus = { timeLoggingStopped?: Maybe; }; -export type AwsCloudwatch = { - accountId: Scalars['String']; +export type AwsCloudwatch = AwsBaseService & { actions?: Maybe>>; actionsEnabled?: Maybe; - arn: Scalars['String']; cloudtrail?: Maybe>>; cloudwatchLog?: Maybe>>; comparisonOperator?: Maybe; description?: Maybe; dimensions?: Maybe>>; evaluationPeriods?: Maybe; - id: Scalars['String']; metric?: Maybe; namespace?: Maybe; period?: Maybe; - region?: Maybe; sns?: Maybe>>; statistic?: Maybe; tags?: Maybe>>; @@ -957,6 +908,7 @@ export type AwsCloudwatchDimensions = { export type AwsCloudwatchLog = { accountId: Scalars['String']; arn: Scalars['String']; + cgId?: Maybe; cloudtrail?: Maybe>>; cloudwatch?: Maybe>>; creationTime?: Maybe; @@ -977,9 +929,7 @@ export type AwsCodeBuildFilterGroup = { type?: Maybe; }; -export type AwsCodebuild = { - accountId: Scalars['String']; - arn: Scalars['String']; +export type AwsCodebuild = AwsBaseService & { artifacts?: Maybe; badge?: Maybe; buildBatchConfig?: Maybe; @@ -991,7 +941,6 @@ export type AwsCodebuild = { environment?: Maybe; fileSystemLocations?: Maybe>>; iamRoles?: Maybe>>; - id: Scalars['String']; kms?: Maybe>>; lastModified?: Maybe; logsConfig?: Maybe; @@ -999,7 +948,6 @@ export type AwsCodebuild = { projectVisibility?: Maybe; publicProjectAlias?: Maybe; queuedTimeoutInMinutes?: Maybe; - region?: Maybe; resourceAccessRole?: Maybe; secondaryArtifacts?: Maybe>>; secondarySourceVersions?: Maybe>>; @@ -1180,8 +1128,7 @@ export type AwsCognitoIdentityProviders = { serverSideTokenCheck?: Maybe; }; -export type AwsCognitoUserPool = { - accountId: Scalars['String']; +export type AwsCognitoUserPool = AwsBaseService & { accountRecoverySettings?: Maybe>>; adminCreateUserConfigAllowAdminCreateUserOnly?: Maybe; adminCreateUserConfigInviteMessageTemplateEmailMessage?: Maybe; @@ -1190,7 +1137,6 @@ export type AwsCognitoUserPool = { adminCreateUserConfigUnusedAccountValidityDays?: Maybe; aliasAttributes?: Maybe>>; appSync?: Maybe>>; - arn: Scalars['String']; autoVerifiedAttributes?: Maybe>>; creationDate?: Maybe; customDomain?: Maybe; @@ -1206,14 +1152,12 @@ export type AwsCognitoUserPool = { emailVerificationMessage?: Maybe; emailVerificationSubject?: Maybe; estimatedNumberOfUsers?: Maybe; - id: Scalars['String']; lambda?: Maybe>>; lambdaConfig?: Maybe; lastModifiedDate?: Maybe; mfaConfiguration?: Maybe; name?: Maybe; policies?: Maybe; - region?: Maybe; schemaAttributes?: Maybe>>; smsAuthenticationMessage?: Maybe; smsConfigurationExternalId?: Maybe; @@ -1275,14 +1219,10 @@ export type AwsCognitoUserPoolSchemaAttribute = { stringAttributeConstraintsMinValue?: Maybe; }; -export type AwsConfigurationRecorder = { - accountId: Scalars['String']; - arn: Scalars['String']; +export type AwsConfigurationRecorder = AwsBaseService & { iamRole?: Maybe>>; - id: Scalars['String']; name?: Maybe; recordingGroup?: Maybe; - region?: Maybe; roleARN?: Maybe; status?: Maybe; }; @@ -1293,13 +1233,9 @@ export type AwsConnectionLogResponseOptions = { enabled?: Maybe; }; -export type AwsCustomerGateway = { - accountId: Scalars['String']; - arn: Scalars['String']; +export type AwsCustomerGateway = AwsBaseService & { bgpAsn?: Maybe; - id: Scalars['String']; ipAddress?: Maybe; - region?: Maybe; tags?: Maybe>>; type?: Maybe; vpnConnection?: Maybe>>; @@ -1309,16 +1245,13 @@ export type AwsDirectoryServiceAuthenticationRequest = { directoryId?: Maybe; }; -export type AwsDmsReplicationInstance = { - accountId: Scalars['String']; +export type AwsDmsReplicationInstance = AwsBaseService & { allocatedStorage?: Maybe; - arn: Scalars['String']; autoMinorVersionUpgrade?: Maybe; availabilityZone?: Maybe; dnsNameServers?: Maybe; engineVersion?: Maybe; freeUntil?: Maybe; - id: Scalars['String']; instanceCreateTime?: Maybe; kms?: Maybe>>; kmsKeyId?: Maybe; @@ -1326,7 +1259,6 @@ export type AwsDmsReplicationInstance = { pendingModifiedValues?: Maybe; preferredMaintenanceWindow?: Maybe; publiclyAccessible?: Maybe; - region?: Maybe; replicationInstanceClass?: Maybe; replicationInstanceIdentifier?: Maybe; replicationInstancePrivateIpAddress?: Maybe; @@ -1343,25 +1275,21 @@ export type AwsDmsReplicationInstance = { vpcSecurityGroups?: Maybe>>; }; -export type AwsDynamoDbTable = { - accountId: Scalars['String']; +export type AwsDynamoDbTable = AwsBaseService & { appSync?: Maybe>>; - arn: Scalars['String']; attributes?: Maybe>>; billingModeSummary?: Maybe; creationDate: Scalars['String']; globalIndexes?: Maybe>>; globalTableVersion?: Maybe; - id: Scalars['String']; itemCount?: Maybe; keySchema?: Maybe>>; latestStreamArn?: Maybe; latestStreamLabel?: Maybe; localIndexes?: Maybe>>; - name: Scalars['String']; + name?: Maybe; pointInTimeRecoveryEnabled?: Maybe; provisionedThroughput?: Maybe; - region?: Maybe; replicas?: Maybe>>; restoreSummary?: Maybe; sizeInBytes?: Maybe; @@ -1460,9 +1388,7 @@ export type AwsDynamoDbTableStreamSpecification = { streamsEnabled?: Maybe; }; -export type AwsEbs = { - accountId: Scalars['String']; - arn: Scalars['String']; +export type AwsEbs = AwsBaseService & { asg?: Maybe>>; attachments?: Maybe>>; availabilityZone?: Maybe; @@ -1470,12 +1396,10 @@ export type AwsEbs = { ec2Instance?: Maybe>>; emrInstance?: Maybe>>; encrypted?: Maybe; - id: Scalars['String']; iops?: Maybe; isBootDisk?: Maybe; multiAttachEnabled?: Maybe; permissions?: Maybe>>; - region?: Maybe; size?: Maybe; snapshot?: Maybe; state?: Maybe; @@ -1496,11 +1420,9 @@ export type AwsEbsPermission = { userId?: Maybe; }; -export type AwsEc2 = { - accountId: Scalars['String']; +export type AwsEc2 = AwsBaseService & { alb?: Maybe>>; ami?: Maybe; - arn: Scalars['String']; asg?: Maybe>>; availabilityZone?: Maybe; cloudWatchMetricData?: Maybe; @@ -1517,7 +1439,6 @@ export type AwsEc2 = { ephemeralBlockDevices?: Maybe>>; hibernation?: Maybe; iamInstanceProfile?: Maybe; - id: Scalars['String']; instanceLifecycle?: Maybe; instanceState?: Maybe; instanceType?: Maybe; @@ -1536,7 +1457,6 @@ export type AwsEc2 = { privateIps?: Maybe; publicDns?: Maybe; publicIpAddress?: Maybe; - region?: Maybe; securityGroupIds?: Maybe>>; securityGroups?: Maybe>>; sourceDestCheck?: Maybe; @@ -1588,16 +1508,12 @@ export type AwsEc2MetadataOptions = { state: Scalars['String']; }; -export type AwsEcr = { - accountId: Scalars['String']; - arn: Scalars['String']; +export type AwsEcr = AwsBaseService & { createdAt?: Maybe; encryptionConfig?: Maybe; - id: Scalars['String']; imageScanOnPush?: Maybe; imageTagMutability?: Maybe; name?: Maybe; - region?: Maybe; registryAccountId?: Maybe; repositoryUri?: Maybe; scanOnPush?: Maybe; @@ -1643,10 +1559,8 @@ export type AwsEcsCapacityProviderStrategyItem = { weight?: Maybe; }; -export type AwsEcsCluster = { - accountId: Scalars['String']; +export type AwsEcsCluster = AwsBaseService & { activeServicesCount?: Maybe; - arn: Scalars['String']; attachments?: Maybe>>; attachmentsStatus?: Maybe; capacityProviders?: Maybe>>; @@ -1656,7 +1570,6 @@ export type AwsEcsCluster = { ecsService?: Maybe>>; ecsTask?: Maybe>>; ecsTaskSet?: Maybe>>; - id: Scalars['String']; pendingTasksCount?: Maybe; registeredContainerInstancesCount?: Maybe; runningTasksCount?: Maybe; @@ -1677,18 +1590,15 @@ export type AwsEcsClusterSettings = { value?: Maybe; }; -export type AwsEcsContainer = { - accountId: Scalars['String']; +export type AwsEcsContainer = AwsBaseService & { agentConnected?: Maybe; agentUpdateStatus?: Maybe; - arn: Scalars['String']; attachments?: Maybe>>; attributes?: Maybe>>; capacityProviderName?: Maybe; ec2Instance?: Maybe>>; ec2InstanceId?: Maybe; ecsTask?: Maybe>>; - id: Scalars['String']; pendingTasksCount?: Maybe; registeredAt?: Maybe; registeredResources?: Maybe>>; @@ -2010,9 +1920,7 @@ export type AwsEcsSecret = { valueFrom?: Maybe; }; -export type AwsEcsService = { - accountId: Scalars['String']; - arn: Scalars['String']; +export type AwsEcsService = AwsBaseService & { capacityProviderStrategy?: Maybe>>; createdAt?: Maybe; createdBy?: Maybe; @@ -2029,7 +1937,6 @@ export type AwsEcsService = { events?: Maybe>>; healthCheckGracePeriodSeconds?: Maybe; iamRoles?: Maybe>>; - id: Scalars['String']; launchType?: Maybe; loadBalancers?: Maybe>>; networkConfiguration?: Maybe; @@ -2082,9 +1989,7 @@ export type AwsEcsSystemControl = { value?: Maybe; }; -export type AwsEcsTask = { - accountId: Scalars['String']; - arn: Scalars['String']; +export type AwsEcsTask = AwsBaseService & { attachments?: Maybe>>; attributes?: Maybe>>; availabilityZone?: Maybe; @@ -2104,7 +2009,6 @@ export type AwsEcsTask = { executionStoppedAt?: Maybe; group?: Maybe; healthStatus?: Maybe; - id: Scalars['String']; inferenceAccelerators?: Maybe>>; lastStatus?: Maybe; launchType?: Maybe; @@ -2123,9 +2027,7 @@ export type AwsEcsTask = { version?: Maybe; }; -export type AwsEcsTaskDefinition = { - accountId: Scalars['String']; - arn: Scalars['String']; +export type AwsEcsTaskDefinition = AwsBaseService & { compatibilities?: Maybe>>; containerDefinitions?: Maybe>>; cpu?: Maybe; @@ -2136,7 +2038,6 @@ export type AwsEcsTaskDefinition = { ephemeralStorage?: Maybe; executionRoleArn?: Maybe; family?: Maybe; - id: Scalars['String']; inferenceAccelerators?: Maybe>>; ipcMode?: Maybe; memory?: Maybe; @@ -2144,7 +2045,6 @@ export type AwsEcsTaskDefinition = { pidMode?: Maybe; placementConstraints?: Maybe>>; proxyConfiguration?: Maybe; - region?: Maybe; registeredAt?: Maybe; registeredBy?: Maybe; requiresAttributes?: Maybe>>; @@ -2172,9 +2072,7 @@ export type AwsEcsTaskOverride = { taskRoleArn?: Maybe; }; -export type AwsEcsTaskSet = { - accountId: Scalars['String']; - arn: Scalars['String']; +export type AwsEcsTaskSet = AwsBaseService & { capacityProviderStrategy?: Maybe>>; computedDesiredCount?: Maybe; createdAt?: Maybe; @@ -2182,13 +2080,11 @@ export type AwsEcsTaskSet = { ecsService?: Maybe>>; ecsTaskDefinition?: Maybe>>; externalId?: Maybe; - id: Scalars['String']; launchType?: Maybe; loadBalancers?: Maybe>>; networkConfiguration?: Maybe; pendingCount?: Maybe; platformVersion?: Maybe; - region?: Maybe; runningCount?: Maybe; scale?: Maybe; serviceRegistries?: Maybe>>; @@ -2236,9 +2132,7 @@ export type AwsEcsversionInfo = { id: Scalars['String']; }; -export type AwsEfs = { - accountId: Scalars['String']; - arn: Scalars['String']; +export type AwsEfs = AwsBaseService & { availabilityZoneId?: Maybe; availabilityZoneName?: Maybe; creationTime?: Maybe; @@ -2246,7 +2140,6 @@ export type AwsEfs = { efsMountTarget?: Maybe>>; encrypted?: Maybe; fileSystemId?: Maybe; - id: Scalars['String']; kms?: Maybe>>; lifeCycleState?: Maybe; name?: Maybe; @@ -2254,7 +2147,6 @@ export type AwsEfs = { ownerId?: Maybe; performanceMode?: Maybe; provisionedThroughputInMibps?: Maybe; - region?: Maybe; sizeInBytes?: Maybe; tags?: Maybe>>; throughputMode?: Maybe; @@ -2272,31 +2164,25 @@ export type AwsEfsFileSystemSize = { valueInStandard?: Maybe; }; -export type AwsEfsMountTarget = { - accountId: Scalars['String']; +export type AwsEfsMountTarget = AwsOptionalService & { availabilityZoneId?: Maybe; availabilityZoneName?: Maybe; efs?: Maybe>>; fileSystemId?: Maybe; - id: Scalars['String']; ipAddress?: Maybe; lifeCycleState?: Maybe; networkInterface?: Maybe>>; ownerId?: Maybe; - region?: Maybe; subnet?: Maybe>>; vpc?: Maybe>>; }; -export type AwsEip = { - accountId: Scalars['String']; - arn: Scalars['String']; +export type AwsEip = AwsBaseService & { customerOwnedIp?: Maybe; customerOwnedIpv4Pool?: Maybe; domain?: Maybe; ec2Instance?: Maybe>>; ec2InstanceAssociationId?: Maybe; - id: Scalars['String']; instanceId?: Maybe; networkBorderGroup?: Maybe; networkInterface?: Maybe>>; @@ -2305,7 +2191,6 @@ export type AwsEip = { privateIp?: Maybe; publicIp?: Maybe; publicIpv4Pool?: Maybe; - region?: Maybe; tags?: Maybe>>; vpc?: Maybe; vpcs?: Maybe>>; @@ -2315,23 +2200,19 @@ export type AwsEksCertificate = { data?: Maybe; }; -export type AwsEksCluster = { - accountId: Scalars['String']; - arn: Scalars['String']; +export type AwsEksCluster = AwsBaseService & { certificateAuthority?: Maybe; clientRequestToken?: Maybe; createdAt?: Maybe; encryptionConfig?: Maybe>>; endpoint?: Maybe; iamRoles?: Maybe>>; - id: Scalars['String']; identity?: Maybe; kms?: Maybe>>; kubernetesNetworkConfig?: Maybe; logging?: Maybe; name?: Maybe; platformVersion?: Maybe; - region: Scalars['String']; resourcesVpcConfig?: Maybe; securityGroups?: Maybe>>; status?: Maybe; @@ -2389,9 +2270,7 @@ export type AwsElastiCacheCloudWatchLogsDestinationDetails = { logGroup?: Maybe; }; -export type AwsElastiCacheCluster = { - accountId: Scalars['String']; - arn: Scalars['String']; +export type AwsElastiCacheCluster = AwsBaseService & { atRestEncryptionEnabled?: Maybe; authTokenEnabled?: Maybe; authTokenLastModifiedDate?: Maybe; @@ -2408,7 +2287,6 @@ export type AwsElastiCacheCluster = { configurationEndpoint?: Maybe; engine?: Maybe; engineVersion?: Maybe; - id: Scalars['String']; logDeliveryConfigurations?: Maybe>>; notificationConfiguration?: Maybe; numCacheNodes?: Maybe; @@ -2416,7 +2294,6 @@ export type AwsElastiCacheCluster = { preferredAvailabilityZone?: Maybe; preferredMaintenanceWindow?: Maybe; preferredOutpostArn?: Maybe; - region?: Maybe; replicationGroupId?: Maybe; replicationGroupLogDeliveryEnabled?: Maybe; securityGroups?: Maybe>>; @@ -2517,9 +2394,7 @@ export type AwsElastiCachePendingModifiedValues = { numCacheNodes?: Maybe; }; -export type AwsElastiCacheReplicationGroup = { - accountId: Scalars['String']; - arn: Scalars['String']; +export type AwsElastiCacheReplicationGroup = AwsBaseService & { atRestEncryptionEnabled?: Maybe; authTokenEnabled?: Maybe; authTokenLastModifiedDate?: Maybe; @@ -2529,7 +2404,6 @@ export type AwsElastiCacheReplicationGroup = { configurationEndpoint?: Maybe; description?: Maybe; globalReplicationGroupInfo?: Maybe; - id: Scalars['String']; kms?: Maybe>>; logDeliveryConfigurations?: Maybe>>; memberClusters?: Maybe>>; @@ -2537,7 +2411,6 @@ export type AwsElastiCacheReplicationGroup = { multiAZ?: Maybe; nodeGroups?: Maybe>>; pendingModifiedValues?: Maybe; - region?: Maybe; replicationGroupCreateTime?: Maybe; replicationGroupId?: Maybe; snapshotRetentionLimit?: Maybe; @@ -2577,29 +2450,21 @@ export type AwsElastiCacheUserGroupsUpdateStatus = { userGroupIdsToRemove?: Maybe>>; }; -export type AwsElasticBeanstalkApp = { - accountId: Scalars['String']; - arn: Scalars['String']; +export type AwsElasticBeanstalkApp = AwsBaseService & { description?: Maybe; elasticBeanstalkEnv?: Maybe>>; - id: Scalars['String']; - name: Scalars['String']; - region?: Maybe; + name?: Maybe; tags?: Maybe>>; }; -export type AwsElasticBeanstalkEnv = { - accountId: Scalars['String']; +export type AwsElasticBeanstalkEnv = AwsBaseService & { applicationName?: Maybe; - arn: Scalars['String']; cname?: Maybe; description?: Maybe; elasticBeanstalkApp?: Maybe>>; endpointUrl?: Maybe; - id: Scalars['String']; name?: Maybe; platformArn?: Maybe; - region?: Maybe; resources?: Maybe>>; settings?: Maybe>>; solutionStackName?: Maybe; @@ -2681,12 +2546,10 @@ export type AwsElasticSearchCognitoOptions = { userPoolId?: Maybe; }; -export type AwsElasticSearchDomain = { +export type AwsElasticSearchDomain = AwsBaseService & { accessPolicies?: Maybe; - accountId: Scalars['String']; advancedOptions?: Maybe>>; advancedSecurityOptions?: Maybe; - arn: Scalars['String']; autoTuneOptions?: Maybe; changeProcessDetails?: Maybe; cognitoOptions?: Maybe; @@ -2700,12 +2563,10 @@ export type AwsElasticSearchDomain = { encryptionAtRestOptions?: Maybe; endpoint?: Maybe; endpoints?: Maybe>>; - id: Scalars['String']; kms?: Maybe>>; logPublishingOptions?: Maybe>>; nodeToNodeEncryptionOptions?: Maybe; processing?: Maybe; - region?: Maybe; securityGroups?: Maybe>>; serviceSoftwareOptions?: Maybe; snapshotOptions?: Maybe; @@ -2769,10 +2630,8 @@ export type AwsElasticSearchVpcOptions = { vpcId?: Maybe; }; -export type AwsElb = { +export type AwsElb = AwsBaseService & { accessLogs?: Maybe; - accountId: Scalars['String']; - arn: Scalars['String']; cloudfrontDistribution?: Maybe>>; createdAt?: Maybe; crossZoneLoadBalancing?: Maybe; @@ -2780,12 +2639,10 @@ export type AwsElb = { ecsService?: Maybe>>; healthCheck?: Maybe; hostedZone?: Maybe; - id: Scalars['String']; idleTimeout?: Maybe; instances?: Maybe; listeners?: Maybe>>; name?: Maybe; - region?: Maybe; route53Record?: Maybe>>; scheme?: Maybe; securityGroups?: Maybe>>; @@ -2828,17 +2685,14 @@ export type AwsElbSourceSecurityGroup = { ownerAlias?: Maybe; }; -export type AwsEmrCluster = { - accountId: Scalars['String']; +export type AwsEmrCluster = AwsBaseService & { applications?: Maybe>>; - arn: Scalars['String']; autoScalingRole?: Maybe; autoTerminate?: Maybe; configurations?: Maybe>>; customAmiId?: Maybe; ebsRootVolumeSize?: Maybe; ec2InstanceAttributes?: Maybe; - id: Scalars['String']; instanceCollectionType?: Maybe; kerberosAttributes?: Maybe; kms?: Maybe>>; @@ -2848,7 +2702,6 @@ export type AwsEmrCluster = { normalizedInstanceHours?: Maybe; outpostArn?: Maybe; placementGroups?: Maybe>>; - region: Scalars['String']; releaseLabel?: Maybe; repoUpgradeOnBoot?: Maybe; requestedAmiVersion?: Maybe; @@ -2877,12 +2730,10 @@ export type AwsEmrHadoopStepConfig = { properties?: Maybe>>; }; -export type AwsEmrInstance = { - accountId: Scalars['String']; +export type AwsEmrInstance = AwsOptionalService & { ebs?: Maybe>>; ec2Instance?: Maybe>>; ec2InstanceId?: Maybe; - id: Scalars['String']; instanceFleetId?: Maybe; instanceGroupId?: Maybe; instanceType?: Maybe; @@ -2891,7 +2742,6 @@ export type AwsEmrInstance = { privateIpAddress?: Maybe; publicDnsName?: Maybe; publicIpAddress?: Maybe; - region: Scalars['String']; status?: Maybe; }; @@ -2912,13 +2762,10 @@ export type AwsEmrInstanceTimeline = { readyDateTime?: Maybe; }; -export type AwsEmrStep = { - accountId: Scalars['String']; +export type AwsEmrStep = AwsOptionalService & { actionOnFailure?: Maybe; config?: Maybe; - id: Scalars['String']; name?: Maybe; - region: Scalars['String']; status?: Maybe; }; @@ -2951,8 +2798,7 @@ export type AwsFederatedAuthentication = { selfServiceSamlProviderArn?: Maybe; }; -export type AwsFlowLog = { - accountId: Scalars['String']; +export type AwsFlowLog = AwsOptionalService & { creationTime?: Maybe; deliverLogsErrorMessage?: Maybe; deliverLogsPermissionArn?: Maybe; @@ -2962,11 +2808,9 @@ export type AwsFlowLog = { format?: Maybe; groupName?: Maybe; iamRole?: Maybe>>; - id: Scalars['String']; logStatus?: Maybe; maxAggregationInterval?: Maybe; networkInterface?: Maybe>>; - region: Scalars['String']; resourceId?: Maybe; subnet?: Maybe>>; tags?: Maybe>>; @@ -2974,10 +2818,8 @@ export type AwsFlowLog = { vpc?: Maybe>>; }; -export type AwsGlueJob = { - accountId: Scalars['String']; +export type AwsGlueJob = AwsBaseService & { allocatedCapacity?: Maybe; - arn: Scalars['String']; command?: Maybe; connections?: Maybe; createdOn?: Maybe; @@ -2986,7 +2828,6 @@ export type AwsGlueJob = { executionProperty?: Maybe; glueVersion?: Maybe; iamRole?: Maybe>>; - id: Scalars['String']; lastModifiedOn?: Maybe; logUri?: Maybe; maxCapacity?: Maybe; @@ -2995,7 +2836,6 @@ export type AwsGlueJob = { nonOverrideableArguments?: Maybe>>; notificationProperty?: Maybe; numberOfWorkers?: Maybe; - region?: Maybe; role?: Maybe; securityConfiguration?: Maybe; timeout?: Maybe; @@ -3020,12 +2860,8 @@ export type AwsGlueJobNotificationProperty = { notifyDelayAfter?: Maybe; }; -export type AwsGlueRegistry = { - accountId: Scalars['String']; - arn: Scalars['String']; +export type AwsGlueRegistry = AwsBaseService & { createdTime?: Maybe; - id: Scalars['String']; - region?: Maybe; registryArn?: Maybe; registryName?: Maybe; schemas?: Maybe>>; @@ -3055,15 +2891,12 @@ export type AwsGuardDutyDataSources = { s3Logs?: Maybe; }; -export type AwsGuardDutyDetector = { - accountId: Scalars['String']; +export type AwsGuardDutyDetector = AwsOptionalService & { createdAt?: Maybe; dataSources?: Maybe; findingPublishingFrequency?: Maybe; iamRole?: Maybe; - id: Scalars['String']; members?: Maybe>>; - region?: Maybe; serviceRole?: Maybe; status?: Maybe; tags?: Maybe>>; @@ -3091,23 +2924,17 @@ export type AwsIamAccessKey = { status?: Maybe; }; -export type AwsIamGroup = { - accountId: Scalars['String']; - arn: Scalars['String']; +export type AwsIamGroup = AwsBaseService & { iamAttachedPolicies?: Maybe>>; iamUsers?: Maybe>>; - id: Scalars['String']; inlinePolicies?: Maybe>>; name?: Maybe; path?: Maybe; }; -export type AwsIamInstanceProfile = { - accountId: Scalars['String']; - arn: Scalars['String']; +export type AwsIamInstanceProfile = AwsBaseService & { createDate?: Maybe; iamRole?: Maybe>>; - id: Scalars['String']; name?: Maybe; path?: Maybe; tags?: Maybe>>; @@ -3149,7 +2976,9 @@ export type AwsIamMfaDevice = { export type AwsIamOpenIdConnectProvider = { accountId: Scalars['String']; arn: Scalars['String']; + cgId?: Maybe; id: Scalars['String']; + region?: Maybe; }; export type AwsIamPasswordPolicy = { @@ -3167,23 +2996,18 @@ export type AwsIamPasswordPolicy = { requireUppercaseCharacters?: Maybe; }; -export type AwsIamPolicy = { - accountId: Scalars['String']; - arn: Scalars['String']; +export type AwsIamPolicy = AwsBaseService & { description?: Maybe; iamGroups?: Maybe>>; iamRoles?: Maybe>>; iamUsers?: Maybe>>; - id: Scalars['String']; name?: Maybe; path?: Maybe; policyContent?: Maybe; tags?: Maybe>>; }; -export type AwsIamRole = { - accountId: Scalars['String']; - arn: Scalars['String']; +export type AwsIamRole = AwsBaseService & { assumeRolePolicy?: Maybe; cloudFormationStack?: Maybe>>; codebuilds?: Maybe>>; @@ -3197,7 +3021,6 @@ export type AwsIamRole = { guardDutyDetectors?: Maybe>>; iamAttachedPolicies?: Maybe>>; iamInstanceProfiles?: Maybe>>; - id: Scalars['String']; inlinePolicies?: Maybe>>; managedAirflows?: Maybe>>; maxSessionDuration?: Maybe; @@ -3208,35 +3031,26 @@ export type AwsIamRole = { tags?: Maybe>>; }; -export type AwsIamSamlProvider = { - accountId: Scalars['String']; - arn: Scalars['String']; +export type AwsIamSamlProvider = AwsOptionalService & { createdDate?: Maybe; - id: Scalars['String']; validUntil?: Maybe; }; -export type AwsIamServerCertificate = { - accountId?: Maybe; - arn: Scalars['String']; +export type AwsIamServerCertificate = AwsOptionalService & { certificateId?: Maybe; expiration?: Maybe; - id: Scalars['String']; name?: Maybe; path?: Maybe; uploadDate?: Maybe; }; -export type AwsIamUser = { +export type AwsIamUser = AwsOptionalService & { accessKeyData?: Maybe>>; accessKeysActive?: Maybe; - accountId: Scalars['String']; - arn: Scalars['String']; creationTime?: Maybe; groups?: Maybe>>; iamAttachedPolicies?: Maybe>>; iamGroups?: Maybe>>; - id: Scalars['String']; inlinePolicies?: Maybe>>; mfaActive?: Maybe; mfaDevices?: Maybe>>; @@ -3250,13 +3064,9 @@ export type AwsIamUser = { virtualMfaDevices?: Maybe>>; }; -export type AwsIgw = { - accountId: Scalars['String']; - arn: Scalars['String']; +export type AwsIgw = AwsBaseService & { attachments?: Maybe>>; - id: Scalars['String']; owner?: Maybe; - region?: Maybe; tags?: Maybe>>; vpc?: Maybe>>; }; @@ -3272,35 +3082,27 @@ export type AwsIotAttribute = { value?: Maybe; }; -export type AwsIotThingAttribute = { - accountId: Scalars['String']; - arn: Scalars['String']; +export type AwsIotThingAttribute = AwsBaseService & { attributes?: Maybe>>; - id: Scalars['String']; - region?: Maybe; thingName?: Maybe; thingTypeName?: Maybe; version?: Maybe; }; -export type AwsKinesisFirehose = { - accountId: Scalars['String']; - arn: Scalars['String']; +export type AwsKinesisFirehose = AwsBaseService & { createTimestamp?: Maybe; - deliveryStreamStatus: Scalars['String']; - deliveryStreamType: Scalars['String']; + deliveryStreamStatus?: Maybe; + deliveryStreamType?: Maybe; encryptionConfig?: Maybe; - failureDescriptionDetails: Scalars['String']; - failureDescriptionType: Scalars['String']; - id: Scalars['String']; + failureDescriptionDetails?: Maybe; + failureDescriptionType?: Maybe; kinesisStream?: Maybe>>; lastUpdateTimestamp?: Maybe; - name: Scalars['String']; - region?: Maybe; + name?: Maybe; s3?: Maybe>>; source?: Maybe; tags?: Maybe>>; - versionId: Scalars['String']; + versionId?: Maybe; }; export type AwsKinesisFirehoseEncryptionConfig = { @@ -3317,24 +3119,18 @@ export type AwsKinesisFirehoseSource = { roleARN?: Maybe; }; -export type AwsKinesisStream = { - accountId: Scalars['String']; - arn: Scalars['String']; +export type AwsKinesisStream = AwsBaseService & { encryptionType?: Maybe; - enhancedMonitoring: Array; - id: Scalars['String']; + enhancedMonitoring?: Maybe>>; keyId?: Maybe; kinesisFirehose?: Maybe>>; - region: Scalars['String']; - retentionPeriodHours: Scalars['Int']; - shards: Array>; - streamName: Scalars['String']; - streamStatus: Scalars['String']; + retentionPeriodHours?: Maybe; + shards?: Maybe>>; + streamName?: Maybe; + streamStatus?: Maybe; }; -export type AwsKms = { - accountId: Scalars['String']; - arn: Scalars['String']; +export type AwsKms = AwsBaseService & { cloudtrail?: Maybe>>; cloudwatchLog?: Maybe>>; codebuilds?: Maybe>>; @@ -3349,7 +3145,6 @@ export type AwsKms = { elasticSearchDomains?: Maybe>>; emrCluster?: Maybe>>; enabled?: Maybe; - id: Scalars['String']; keyManager?: Maybe; keyRotationEnabled?: Maybe; keyState?: Maybe; @@ -3358,7 +3153,6 @@ export type AwsKms = { policy?: Maybe; rdsClusterSnapshots?: Maybe>>; redshiftCluster?: Maybe>>; - region?: Maybe; sageMakerNotebookInstances?: Maybe>>; sns?: Maybe>>; tags?: Maybe>>; @@ -3366,22 +3160,18 @@ export type AwsKms = { validTo?: Maybe; }; -export type AwsLambda = { - accountId: Scalars['String']; +export type AwsLambda = AwsBaseService & { appSync?: Maybe>>; - arn: Scalars['String']; cognitoUserPool?: Maybe>>; description?: Maybe; environmentVariables?: Maybe>>; handler?: Maybe; - id: Scalars['String']; kms?: Maybe>>; kmsKeyArn?: Maybe; lastModified?: Maybe; memorySize?: Maybe; policy?: Maybe; policyRevisionId?: Maybe; - region?: Maybe; reservedConcurrentExecutions?: Maybe; role?: Maybe; runtime?: Maybe; @@ -3448,17 +3238,14 @@ export type AwsLcBlockDeviceMapping = { virtualName?: Maybe; }; -export type AwsManagedAirflow = { - accountId: Scalars['String']; +export type AwsManagedAirflow = AwsBaseService & { airflowConfigurationOptions?: Maybe>>; airflowVersion?: Maybe; - arn: Scalars['String']; createdAt?: Maybe; dagS3Path?: Maybe; environmentClass?: Maybe; executionRoleArn?: Maybe; iamRoles?: Maybe>>; - id: Scalars['String']; kmsKey?: Maybe; lastUpdate?: Maybe; loggingConfiguration?: Maybe; @@ -3467,7 +3254,6 @@ export type AwsManagedAirflow = { name?: Maybe; networkConfiguration?: Maybe; pluginsS3Path?: Maybe; - region?: Maybe; requirementsS3Path?: Maybe; s3?: Maybe>>; schedulers?: Maybe; @@ -3543,32 +3329,24 @@ export type AwsMixedInstancesPolicy = { launchTemplateVersion?: Maybe; }; -export type AwsNatGateway = { - accountId: Scalars['String']; - arn: Scalars['String']; +export type AwsNatGateway = AwsBaseService & { createTime?: Maybe; dailyCost?: Maybe; - id: Scalars['String']; networkInterface?: Maybe>>; - region?: Maybe; state?: Maybe; subnet?: Maybe>>; tags?: Maybe>>; vpc?: Maybe>>; }; -export type AwsNetworkAcl = { - accountId: Scalars['String']; - arn: Scalars['String']; +export type AwsNetworkAcl = AwsBaseService & { associatedSubnets?: Maybe>>; default?: Maybe; - id: Scalars['String']; inboundRules?: Maybe>>; outboundRules?: Maybe>>; - region: Scalars['String']; tags?: Maybe>>; vpc?: Maybe>>; - vpcId: Scalars['String']; + vpcId?: Maybe; }; export type AwsNetworkAclAssociatedSubnet = { @@ -3589,9 +3367,7 @@ export type AwsNetworkAclRule = { toPort?: Maybe; }; -export type AwsNetworkInterface = { - accountId: Scalars['String']; - arn: Scalars['String']; +export type AwsNetworkInterface = AwsBaseService & { attachment?: Maybe; availabilityZone?: Maybe; description?: Maybe; @@ -3599,13 +3375,11 @@ export type AwsNetworkInterface = { efsMountTarget?: Maybe>>; eip?: Maybe>>; flowLogs?: Maybe>>; - id: Scalars['String']; interfaceType?: Maybe; macAddress?: Maybe; natGateway?: Maybe>>; privateDnsName?: Maybe; privateIps?: Maybe>>; - region?: Maybe; sageMakerNotebookInstances?: Maybe>>; securityGroups?: Maybe>>; status?: Maybe; @@ -3623,12 +3397,16 @@ export type AwsNetworkInterfaceAttachment = { status?: Maybe; }; -export type AwsOrganization = { - accountId: Scalars['String']; - arn: Scalars['String']; +export type AwsOptionalService = { + accountId?: Maybe; + arn?: Maybe; + id: Scalars['String']; + region?: Maybe; +}; + +export type AwsOrganization = AwsBaseService & { availablePolicyTypes?: Maybe>>; featureSet?: Maybe; - id: Scalars['String']; masterAccountArn?: Maybe; masterAccountEmail?: Maybe; masterAccountId?: Maybe; @@ -3646,11 +3424,9 @@ export type AwsRawTag = { value?: Maybe; }; -export type AwsRdsCluster = { - accountId: Scalars['String']; +export type AwsRdsCluster = AwsBaseService & { allocatedStorage?: Maybe; appSync?: Maybe>>; - arn: Scalars['String']; backupRetentionPeriod?: Maybe; capacity?: Maybe; characterSetName?: Maybe; @@ -3669,14 +3445,12 @@ export type AwsRdsCluster = { hostedZoneId?: Maybe; httpEndpointEnabled?: Maybe; iamDbAuthenticationEnabled?: Maybe; - id: Scalars['String']; instances?: Maybe>>; kmsKey?: Maybe; multiAZ?: Maybe; percentProgress?: Maybe; port?: Maybe; readerEndpoint?: Maybe; - region?: Maybe; replicationSourceIdentifier?: Maybe; resourceId?: Maybe; securityGroups?: Maybe>>; @@ -3687,10 +3461,8 @@ export type AwsRdsCluster = { username?: Maybe; }; -export type AwsRdsClusterSnapshot = { - accountId: Scalars['String']; +export type AwsRdsClusterSnapshot = AwsBaseService & { allocatedStorage?: Maybe; - arn: Scalars['String']; attributes?: Maybe>>; availabilityZones?: Maybe>>; cluster?: Maybe>>; @@ -3702,14 +3474,12 @@ export type AwsRdsClusterSnapshot = { engineMode?: Maybe; engineVersion?: Maybe; iamDatabaseAuthenticationEnabled?: Maybe; - id: Scalars['String']; kms?: Maybe>>; kmsKeyId?: Maybe; licenseModel?: Maybe; masterUsername?: Maybe; percentProgress?: Maybe; port?: Maybe; - region?: Maybe; snapshotCreateTime?: Maybe; snapshotType?: Maybe; sourceDBClusterSnapshotArn?: Maybe; @@ -3726,11 +3496,9 @@ export type AwsRdsClusterSnapshotAttribute = { values?: Maybe>>; }; -export type AwsRdsDbInstance = { - accountId: Scalars['String']; +export type AwsRdsDbInstance = AwsBaseService & { address?: Maybe; allocatedStorage?: Maybe; - arn: Scalars['String']; autoMinorVersionUpgrade?: Maybe; availabilityZone?: Maybe; certificateAuthority?: Maybe; @@ -3745,7 +3513,6 @@ export type AwsRdsDbInstance = { failoverPriority?: Maybe; hostedZoneId?: Maybe; iamDbAuthenticationEnabled?: Maybe; - id: Scalars['String']; instanceClass?: Maybe; kmsKey?: Maybe; licenseModel?: Maybe; @@ -3756,7 +3523,6 @@ export type AwsRdsDbInstance = { performanceInsightsEnabled?: Maybe; port?: Maybe; publiclyAccessible?: Maybe; - region?: Maybe; resourceId?: Maybe; securityGroups?: Maybe>>; status?: Maybe; @@ -3783,10 +3549,8 @@ export type AwsRecordingGroup = { resourceTypes?: Maybe>>; }; -export type AwsRedshiftCluster = { - accountId: Scalars['String']; +export type AwsRedshiftCluster = AwsBaseService & { allowVersionUpgrade?: Maybe; - arn: Scalars['String']; automatedSnapshotRetentionPeriod?: Maybe; availabilityZone?: Maybe; clusterAvailabilityStatus?: Maybe; @@ -3798,7 +3562,6 @@ export type AwsRedshiftCluster = { dBName?: Maybe; encrypted?: Maybe; enhancedVpcRouting?: Maybe; - id: Scalars['String']; kms?: Maybe>>; manualSnapshotRetentionPeriod?: Maybe; masterUsername?: Maybe; @@ -3807,7 +3570,6 @@ export type AwsRedshiftCluster = { numberOfNodes?: Maybe; preferredMaintenanceWindow?: Maybe; publiclyAccessible?: Maybe; - region: Scalars['String']; tags?: Maybe>>; vpc?: Maybe>>; }; @@ -3830,24 +3592,19 @@ export type AwsRoute53Alias = { zoneId: Scalars['String']; }; -export type AwsRoute53HostedZone = { - accountId: Scalars['String']; - arn: Scalars['String']; +export type AwsRoute53HostedZone = AwsBaseService & { comment?: Maybe; delegationSetId?: Maybe; - id: Scalars['String']; name?: Maybe; nameServers?: Maybe>>; route53Record?: Maybe>>; vpc?: Maybe>>; }; -export type AwsRoute53Record = { - accountId: Scalars['String']; +export type AwsRoute53Record = AwsOptionalService & { alb?: Maybe>>; alias?: Maybe; elb?: Maybe>>; - id: Scalars['String']; records?: Maybe>>; restApi?: Maybe>>; route53HostedZone?: Maybe>>; @@ -3856,13 +3613,9 @@ export type AwsRoute53Record = { zoneId?: Maybe; }; -export type AwsRouteTable = { - accountId: Scalars['String']; - arn: Scalars['String']; +export type AwsRouteTable = AwsBaseService & { explicitlyAssociatedWithSubnets?: Maybe; - id: Scalars['String']; mainRouteTable?: Maybe; - region?: Maybe; routes?: Maybe>>; subnet?: Maybe>>; subnetAssociations?: Maybe>>; @@ -3873,10 +3626,8 @@ export type AwsRouteTable = { vpcId?: Maybe; }; -export type AwsS3 = { +export type AwsS3 = AwsBaseService & { access?: Maybe; - accountId: Scalars['String']; - arn: Scalars['String']; blockPublicAcls?: Maybe; blockPublicPolicy?: Maybe; bucketOwnerName?: Maybe; @@ -3886,14 +3637,12 @@ export type AwsS3 = { corsConfiguration?: Maybe; crossRegionReplication?: Maybe; encrypted?: Maybe; - id: Scalars['String']; ignorePublicAcls?: Maybe; kinesisFirehose?: Maybe>>; lifecycle?: Maybe; logging?: Maybe; managedAirflows?: Maybe>>; mfa?: Maybe; - region?: Maybe; requesterPays?: Maybe; restrictPublicBuckets?: Maybe; size?: Maybe; @@ -3904,17 +3653,13 @@ export type AwsS3 = { versioning?: Maybe; }; -export type AwsSageMakerExperiment = { - accountId: Scalars['String']; - arn: Scalars['String']; +export type AwsSageMakerExperiment = AwsBaseService & { creationTime?: Maybe; displayName?: Maybe; experimentArn?: Maybe; experimentName?: Maybe; experimentSource?: Maybe; - id: Scalars['String']; lastModifiedTime?: Maybe; - region?: Maybe; }; export type AwsSageMakerExperimentExperimentSource = { @@ -3922,17 +3667,14 @@ export type AwsSageMakerExperimentExperimentSource = { sourceType?: Maybe; }; -export type AwsSageMakerNotebookInstance = { +export type AwsSageMakerNotebookInstance = AwsBaseService & { acceleratorTypes?: Maybe>>; - accountId: Scalars['String']; additionalCodeRepositories?: Maybe>>; - arn: Scalars['String']; creationTime?: Maybe; defaultCodeRepository?: Maybe; directInternetAccess?: Maybe; failureReason?: Maybe; iamRole?: Maybe>>; - id: Scalars['String']; instanceType?: Maybe; kms?: Maybe>>; kmsKeyId?: Maybe; @@ -3943,7 +3685,6 @@ export type AwsSageMakerNotebookInstance = { notebookInstanceName?: Maybe; notebookInstanceStatus?: Maybe; platformIdentifier?: Maybe; - region?: Maybe; roleArn?: Maybe; rootAccess?: Maybe; securityGroupIds?: Maybe>>; @@ -3954,32 +3695,24 @@ export type AwsSageMakerNotebookInstance = { volumeSizeInGb?: Maybe; }; -export type AwsSageMakerProject = { - accountId: Scalars['String']; - arn: Scalars['String']; +export type AwsSageMakerProject = AwsBaseService & { creationTime?: Maybe; - id: Scalars['String']; projectArn?: Maybe; projectId?: Maybe; projectName?: Maybe; projectStatus?: Maybe; - region?: Maybe; }; -export type AwsSecretsManager = { - accountId: Scalars['String']; - arn: Scalars['String']; +export type AwsSecretsManager = AwsBaseService & { createdDate?: Maybe; deletedDate?: Maybe; description?: Maybe; - id: Scalars['String']; kmsKeyId?: Maybe; lastAccessedDate?: Maybe; lastChangedDate?: Maybe; lastRotatedDate?: Maybe; name?: Maybe; owningService?: Maybe; - region?: Maybe; rotationEnabled?: Maybe; rotationLambdaARN?: Maybe; rotationRules?: Maybe; @@ -3991,10 +3724,8 @@ export type AwsSecretsManagerRotationRule = { id?: Maybe; }; -export type AwsSecurityGroup = { - accountId: Scalars['String']; +export type AwsSecurityGroup = AwsBaseService & { alb?: Maybe>>; - arn: Scalars['String']; asg?: Maybe>>; clientVpnEndpoint?: Maybe>>; codebuilds?: Maybe>>; @@ -4007,18 +3738,16 @@ export type AwsSecurityGroup = { elastiCacheCluster?: Maybe>>; elasticSearchDomains?: Maybe>>; elb?: Maybe>>; - id: Scalars['String']; inboundRuleCount?: Maybe; inboundRules?: Maybe>>; lambda?: Maybe>>; managedAirflows?: Maybe>>; - name: Scalars['String']; + name?: Maybe; outboundRuleCount?: Maybe; outboundRules?: Maybe>>; owner?: Maybe; rdsCluster?: Maybe>>; rdsDbInstance?: Maybe>>; - region?: Maybe; sageMakerNotebookInstances?: Maybe>>; tags?: Maybe>>; vpcId?: Maybe; @@ -4031,12 +3760,8 @@ export type AwsServiceBillingInfo = { name: Scalars['String']; }; -export type AwsSes = { - accountId: Scalars['String']; - arn: Scalars['String']; +export type AwsSes = AwsBaseService & { email?: Maybe; - id: Scalars['String']; - region?: Maybe; verificationStatus?: Maybe; }; @@ -4080,18 +3805,14 @@ export type AwsShards = { shardId: Scalars['String']; }; -export type AwsSns = { - accountId: Scalars['String']; - arn: Scalars['String']; +export type AwsSns = AwsBaseService & { cloudFormationStack?: Maybe>>; cloudtrail?: Maybe>>; cloudwatch?: Maybe>>; deliveryPolicy?: Maybe; displayName?: Maybe; - id: Scalars['String']; kms?: Maybe>>; policy?: Maybe; - region: Scalars['String']; subscriptions?: Maybe>>; tags?: Maybe>>; }; @@ -4103,36 +3824,30 @@ export type AwsSnsSubscription = { protocol?: Maybe; }; -export type AwsSqs = { - accountId: Scalars['String']; +export type AwsSqs = AwsBaseService & { approximateNumberOfMessages?: Maybe; approximateNumberOfMessagesDelayed?: Maybe; approximateNumberOfMessagesNotVisible?: Maybe; - arn: Scalars['String']; contentBasedDeduplication?: Maybe; deduplicationScope?: Maybe; delaySeconds?: Maybe; fifoQueue?: Maybe; fifoThroughputLimit?: Maybe; - id: Scalars['String']; kmsDataKeyReusePeriodSeconds?: Maybe; kmsMasterKeyId?: Maybe; maximumMessageSize?: Maybe; messageRetentionPeriod?: Maybe; policy?: Maybe; - queueType: Scalars['String']; - queueUrl: Scalars['String']; + queueType?: Maybe; + queueUrl?: Maybe; receiveMessageWaitTimeSeconds?: Maybe; - region?: Maybe; sqsManagedSseEnabled?: Maybe; tags?: Maybe>>; visibilityTimeout?: Maybe; }; -export type AwsSubnet = { - accountId: Scalars['String']; +export type AwsSubnet = AwsBaseService & { alb?: Maybe>>; - arn: Scalars['String']; asg?: Maybe>>; autoAssignPublicIpv4Address?: Maybe; autoAssignPublicIpv6Address?: Maybe; @@ -4150,7 +3865,6 @@ export type AwsSubnet = { elb?: Maybe>>; emrCluster?: Maybe>>; flowLogs?: Maybe>>; - id: Scalars['String']; ipV4Cidr?: Maybe; ipV6Cidr?: Maybe; lambda?: Maybe>>; @@ -4158,7 +3872,6 @@ export type AwsSubnet = { natGateway?: Maybe>>; networkInterface?: Maybe>>; rdsDbInstance?: Maybe>>; - region?: Maybe; routeTable?: Maybe>>; sageMakerNotebookInstances?: Maybe>>; state?: Maybe; @@ -4177,19 +3890,15 @@ export type AwsSuspendedProcess = { suspensionReason?: Maybe; }; -export type AwsSystemsManagerDocument = { - accountId: Scalars['String']; - arn: Scalars['String']; +export type AwsSystemsManagerDocument = AwsBaseService & { createdDate?: Maybe; documentFormat?: Maybe; documentType?: Maybe; documentVersion?: Maybe; - id: Scalars['String']; name?: Maybe; owner?: Maybe; permissions?: Maybe; platformTypes?: Maybe>>; - region?: Maybe; schemaVersion?: Maybe; tags?: Maybe>>; targetType?: Maybe; @@ -4206,18 +3915,15 @@ export type AwsSystemsManagerDocumentPermissionsSharingList = { sharedDocumentVersion?: Maybe; }; -export type AwsSystemsManagerInstance = { - accountId: Scalars['String']; +export type AwsSystemsManagerInstance = AwsBaseService & { activationId?: Maybe; agentVersion?: Maybe; - arn: Scalars['String']; associationOverview?: Maybe; associationStatus?: Maybe; complianceItems?: Maybe>>; computerName?: Maybe; ec2Instance?: Maybe>>; iamRole?: Maybe>>; - id: Scalars['String']; instanceId?: Maybe; ipAddress?: Maybe; isLatestVersion?: Maybe; @@ -4229,7 +3935,6 @@ export type AwsSystemsManagerInstance = { platformName?: Maybe; platformType?: Maybe; platformVersion?: Maybe; - region?: Maybe; registrationDate?: Maybe; resourceType?: Maybe; sourceId?: Maybe; @@ -4314,20 +4019,16 @@ export type AwsTotalBillingInfo = { formattedCost?: Maybe; }; -export type AwsTransitGateway = { - accountId: Scalars['String']; +export type AwsTransitGateway = AwsBaseService & { amazonSideAsn?: Maybe; - arn: Scalars['String']; associationDefaultRouteTableId?: Maybe; autoAcceptSharedAttachments?: Maybe; defaultRouteTableAssociation?: Maybe; defaultRouteTablePropagation?: Maybe; description?: Maybe; dnsSupport?: Maybe; - id: Scalars['String']; - ownerId: Scalars['String']; + ownerId?: Maybe; propagationDefaultRouteTableId?: Maybe; - region?: Maybe; routeTable?: Maybe>>; tags?: Maybe>>; transitGatewayAttachment?: Maybe>>; @@ -4335,12 +4036,8 @@ export type AwsTransitGateway = { vpnEcmpSupport?: Maybe; }; -export type AwsTransitGatewayAttachment = { - accountId: Scalars['String']; - arn: Scalars['String']; +export type AwsTransitGatewayAttachment = AwsBaseService & { creationTime?: Maybe; - id: Scalars['String']; - region?: Maybe; resourceId?: Maybe; resourceOwnerId?: Maybe; resourceType?: Maybe; @@ -4372,10 +4069,8 @@ export type AwsVgwTelemetry = { statusMessage?: Maybe; }; -export type AwsVpc = { - accountId: Scalars['String']; +export type AwsVpc = AwsBaseService & { alb?: Maybe>>; - arn: Scalars['String']; codebuilds?: Maybe>>; defaultVpc?: Maybe; dhcpOptionsSet?: Maybe; @@ -4390,7 +4085,6 @@ export type AwsVpc = { enableDnsHostnames?: Maybe; enableDnsSupport?: Maybe; flowLogs?: Maybe>>; - id: Scalars['String']; igw?: Maybe>>; instanceTenancy?: Maybe; ipV4Cidr?: Maybe; @@ -4402,7 +4096,6 @@ export type AwsVpc = { rdsClusterSnapshots?: Maybe>>; rdsDbInstance?: Maybe>>; redshiftCluster?: Maybe>>; - region?: Maybe; route53HostedZone?: Maybe>>; routeTable?: Maybe>>; state?: Maybe; @@ -4412,15 +4105,11 @@ export type AwsVpc = { vpnGateway?: Maybe>>; }; -export type AwsVpnConnection = { - accountId: Scalars['String']; - arn: Scalars['String']; +export type AwsVpnConnection = AwsBaseService & { category?: Maybe; customerGateway?: Maybe>>; customerGatewayId?: Maybe; - id: Scalars['String']; options?: Maybe; - region?: Maybe; routes?: Maybe>>; state?: Maybe; tags?: Maybe>>; @@ -4444,12 +4133,8 @@ export type AwsVpnConnectionOptions = { type?: Maybe; }; -export type AwsVpnGateway = { - accountId: Scalars['String']; +export type AwsVpnGateway = AwsBaseService & { amazonSideAsn?: Maybe; - arn: Scalars['String']; - id: Scalars['String']; - region?: Maybe; state?: Maybe; tags?: Maybe>>; type?: Maybe; @@ -4718,22 +4403,18 @@ export type AwsWafV2VisibilityConfig = { sampledRequestsEnabled?: Maybe; }; -export type AwsWafV2WebAcl = { +export type AwsWafV2WebAcl = AwsBaseService & { ManagedByFirewallManager?: Maybe; - accountId: Scalars['String']; - arn: Scalars['String']; capacity?: Maybe; cloudfront?: Maybe>>; customResponseBodies?: Maybe>>; defaultAction?: Maybe; description?: Maybe; - id: Scalars['String']; labelNamespace?: Maybe; loggingConfiguration?: Maybe; name?: Maybe; postProcessFirewallManagerRuleGroups?: Maybe>>; preProcessFirewallManagerRuleGroups?: Maybe>>; - region?: Maybe; rules?: Maybe>>; visibilityConfig?: Maybe; };