import * as core from "@terrascript/core"; export interface LogConfigArgs extends core.SchemaArgs { cloudwatchLogsRoleArn: string | core.StringOut; excludeVerboseContent?: boolean | core.BooleanOut; fieldLogLevel: string | core.StringOut; } export class LogConfig extends core.Schema { @core.attr(String) public cloudwatchLogsRoleArn!: string | core.StringOut; @core.attr(Boolean) public excludeVerboseContent?: boolean | core.BooleanOut; @core.attr(String) public fieldLogLevel!: string | core.StringOut; } export interface UserPoolConfigArgs extends core.SchemaArgs { appIdClientRegex?: string | core.StringOut; awsRegion?: string | core.StringOut; defaultAction: string | core.StringOut; userPoolId: string | core.StringOut; } export class UserPoolConfig extends core.Schema { @core.attr(String) public appIdClientRegex?: string | core.StringOut; @core.attr(String, { computed: true }) public awsRegion?: string | core.StringOut; @core.attr(String) public defaultAction!: string | core.StringOut; @core.attr(String) public userPoolId!: string | core.StringOut; } export interface OpenidConnectConfigArgs extends core.SchemaArgs { authTtl?: number | core.NumberOut; clientId?: string | core.StringOut; iatTtl?: number | core.NumberOut; issuer: string | core.StringOut; } export class OpenidConnectConfig extends core.Schema { @core.attr(Number) public authTtl?: number | core.NumberOut; @core.attr(String) public clientId?: string | core.StringOut; @core.attr(Number) public iatTtl?: number | core.NumberOut; @core.attr(String) public issuer!: string | core.StringOut; } export interface LambdaAuthorizerConfigArgs extends core.SchemaArgs { authorizerResultTtlInSeconds?: number | core.NumberOut; authorizerUri: string | core.StringOut; identityValidationExpression?: string | core.StringOut; } export class LambdaAuthorizerConfig extends core.Schema { @core.attr(Number) public authorizerResultTtlInSeconds?: number | core.NumberOut; @core.attr(String) public authorizerUri!: string | core.StringOut; @core.attr(String) public identityValidationExpression?: string | core.StringOut; } export interface AdditionalAuthenticationProviderUserPoolConfigArgs extends core.SchemaArgs { appIdClientRegex?: string | core.StringOut; awsRegion?: string | core.StringOut; userPoolId: string | core.StringOut; } export class AdditionalAuthenticationProviderUserPoolConfig extends core.Schema { @core.attr(String) public appIdClientRegex?: string | core.StringOut; @core.attr(String, { computed: true }) public awsRegion?: string | core.StringOut; @core.attr(String) public userPoolId!: string | core.StringOut; } export interface AdditionalAuthenticationProviderArgs extends core.SchemaArgs { authenticationType: string | core.StringOut; lambdaAuthorizerConfig?: LambdaAuthorizerConfig; openidConnectConfig?: OpenidConnectConfig; userPoolConfig?: AdditionalAuthenticationProviderUserPoolConfig; } export class AdditionalAuthenticationProvider extends core.Schema { @core.attr(String) public authenticationType!: string | core.StringOut; @core.attr(LambdaAuthorizerConfig) public lambdaAuthorizerConfig?: LambdaAuthorizerConfig; @core.attr(OpenidConnectConfig) public openidConnectConfig?: OpenidConnectConfig; @core.attr(AdditionalAuthenticationProviderUserPoolConfig) public userPoolConfig?: AdditionalAuthenticationProviderUserPoolConfig; } export interface GraphqlApiArgs extends core.ResourceArgs { /** * (Optional) One or more additional authentication providers for the GraphqlApi. Defined below. */ additionalAuthenticationProvider?: | core.Array | core.ArrayOut; /** * (Required) The authentication type. Valid values: `API_KEY`, `AWS_IAM`, `AMAZON_COGNITO_USER_POOLS`, * OPENID_CONNECT`, `AWS_LAMBDA` */ authenticationType: string | core.StringOut; /** * (Optional) Nested argument containing Lambda authorizer configuration. Defined below. */ lambdaAuthorizerConfig?: LambdaAuthorizerConfig; /** * (Optional) Nested argument containing logging configuration. Defined below. */ logConfig?: LogConfig; /** * (Required) A user-supplied name for the GraphqlApi. */ name: string | core.StringOut; /** * (Optional) Nested argument containing OpenID Connect configuration. Defined below. */ openidConnectConfig?: OpenidConnectConfig; /** * (Optional) The schema definition, in GraphQL schema language format. Terraform cannot perform drift * detection of this configuration. */ schema?: string | core.StringOut; /** * (Optional) A map of tags to assign to the resource. If configured with a provider [`default_tags` co * nfiguration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-co * nfiguration-block) present, tags with matching keys will overwrite those defined at the provider-lev * el. */ tags?: core.Map | core.MapOut; /** * A map of tags assigned to the resource, including those inherited from the provider [`default_tags` * configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags- * configuration-block). */ tagsAll?: core.Map | core.MapOut; /** * (Optional) The Amazon Cognito User Pool configuration. Defined below. */ userPoolConfig?: UserPoolConfig; /** * (Optional) Whether tracing with X-ray is enabled. Defaults to false. */ xrayEnabled?: boolean | core.BooleanOut; } export class GraphqlApi extends core.Resource { /** * (Optional) One or more additional authentication providers for the GraphqlApi. Defined below. */ @core.attr(AdditionalAuthenticationProvider, { kind: "array" }) public additionalAuthenticationProvider?: | core.Array | core.ArrayOut; /** * The ARN */ @core.attr(String, { computed: true }) public arn!: string | core.StringOut; /** * (Required) The authentication type. Valid values: `API_KEY`, `AWS_IAM`, `AMAZON_COGNITO_USER_POOLS`, * OPENID_CONNECT`, `AWS_LAMBDA` */ @core.attr(String) public authenticationType!: string | core.StringOut; /** * API ID */ @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * (Optional) Nested argument containing Lambda authorizer configuration. Defined below. */ @core.attr(LambdaAuthorizerConfig) public lambdaAuthorizerConfig?: LambdaAuthorizerConfig; /** * (Optional) Nested argument containing logging configuration. Defined below. */ @core.attr(LogConfig) public logConfig?: LogConfig; /** * (Required) A user-supplied name for the GraphqlApi. */ @core.attr(String) public name!: string | core.StringOut; /** * (Optional) Nested argument containing OpenID Connect configuration. Defined below. */ @core.attr(OpenidConnectConfig) public openidConnectConfig?: OpenidConnectConfig; /** * (Optional) The schema definition, in GraphQL schema language format. Terraform cannot perform drift * detection of this configuration. */ @core.attr(String) public schema?: string | core.StringOut; /** * (Optional) A map of tags to assign to the resource. If configured with a provider [`default_tags` co * nfiguration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-co * nfiguration-block) present, tags with matching keys will overwrite those defined at the provider-lev * el. */ @core.attr(String, { kind: "map" }) public tags?: core.Map | core.MapOut; /** * A map of tags assigned to the resource, including those inherited from the provider [`default_tags` * configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags- * configuration-block). */ @core.attr(String, { computed: true, kind: "map" }) public tagsAll?: core.Map | core.MapOut; /** * Map of URIs associated with the APIE.g., `uris["GRAPHQL"] = https://ID.appsync-api.REGION.amazonaws. * com/graphql` */ @core.attr(String, { computed: true, kind: "map" }) public uris!: core.Map | core.MapOut; /** * (Optional) The Amazon Cognito User Pool configuration. Defined below. */ @core.attr(UserPoolConfig) public userPoolConfig?: UserPoolConfig; /** * (Optional) Whether tracing with X-ray is enabled. Defaults to false. */ @core.attr(Boolean) public xrayEnabled?: boolean | core.BooleanOut; constructor(name: string, args?: GraphqlApiArgs) { super(name, "aws_appsync_graphql_api", args); } public override getNamespace(): string { return "aws_appsync"; } }