import { ResourceBase , ResourceTag } from '../resource' ; import { Value , List } from '../dataTypes' ; export type Tags = List < ResourceTag > ; export class OpenIDConnectConfig { Issuer ? : Value < string > ; ClientId ? : Value < string > ; AuthTTL ? : Value < number > ; IatTTL ? : Value < number > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class CognitoUserPoolConfig { AppIdClientRegex ? : Value < string > ; UserPoolId ? : Value < string > ; AwsRegion ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export type AdditionalAuthenticationProviders = List < AdditionalAuthenticationProvider > ; export class UserPoolConfig { AppIdClientRegex ? : Value < string > ; UserPoolId ? : Value < string > ; AwsRegion ? : Value < string > ; DefaultAction ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class LogConfig { CloudWatchLogsRoleArn ? : Value < string > ; ExcludeVerboseContent ? : Value < boolean > ; FieldLogLevel ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class AdditionalAuthenticationProvider { OpenIDConnectConfig ? : OpenIDConnectConfig ; UserPoolConfig ? : CognitoUserPoolConfig ; AuthenticationType ! : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export interface GraphQLApiProperties { OpenIDConnectConfig ? : OpenIDConnectConfig ; XrayEnabled ? : Value < boolean > ; UserPoolConfig ? : UserPoolConfig ; Tags ? : Tags ; Name : Value < string > ; AuthenticationType : Value < string > ; LogConfig ? : LogConfig ; AdditionalAuthenticationProviders ? : AdditionalAuthenticationProviders ; } export default class GraphQLApi extends ResourceBase < GraphQLApiProperties > { static OpenIDConnectConfig = OpenIDConnectConfig ; static CognitoUserPoolConfig = CognitoUserPoolConfig ; static UserPoolConfig = UserPoolConfig ; static LogConfig = LogConfig ; static AdditionalAuthenticationProvider = AdditionalAuthenticationProvider ; constructor ( properties ) { super ( 'AWS::AppSync::GraphQLApi' , properties ) ; } }