{"id":13837431,"url":"https://github.com/terraform-aws-modules/terraform-aws-appsync","last_synced_at":"2025-07-10T18:33:20.960Z","repository":{"id":41973302,"uuid":"289901270","full_name":"terraform-aws-modules/terraform-aws-appsync","owner":"terraform-aws-modules","description":"Terraform module to create AWS AWS AppSync resources 🇺🇦","archived":false,"fork":false,"pushed_at":"2025-02-02T19:05:19.000Z","size":141,"stargazers_count":54,"open_issues_count":1,"forks_count":53,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-06-05T08:45:37.969Z","etag":null,"topics":["appsync","aws","aws-appsync","graphql","serverless","terraform-module","terraform-serverless"],"latest_commit_sha":null,"homepage":"https://registry.terraform.io/modules/terraform-aws-modules/appsync/aws","language":"HCL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/terraform-aws-modules.png","metadata":{"funding":{"github":["antonbabenko"],"custom":"https://www.paypal.me/antonbabenko"},"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-08-24T10:47:54.000Z","updated_at":"2025-04-14T04:24:34.000Z","dependencies_parsed_at":"2023-02-15T19:55:18.095Z","dependency_job_id":"e876e286-0ae5-422c-a307-8d20f5d6a124","html_url":"https://github.com/terraform-aws-modules/terraform-aws-appsync","commit_stats":null,"previous_names":[],"tags_count":33,"template":false,"template_full_name":null,"purl":"pkg:github/terraform-aws-modules/terraform-aws-appsync","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/terraform-aws-modules%2Fterraform-aws-appsync","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/terraform-aws-modules%2Fterraform-aws-appsync/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/terraform-aws-modules%2Fterraform-aws-appsync/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/terraform-aws-modules%2Fterraform-aws-appsync/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/terraform-aws-modules","download_url":"https://codeload.github.com/terraform-aws-modules/terraform-aws-appsync/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/terraform-aws-modules%2Fterraform-aws-appsync/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264631213,"owners_count":23640941,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["appsync","aws","aws-appsync","graphql","serverless","terraform-module","terraform-serverless"],"created_at":"2024-08-04T15:01:08.973Z","updated_at":"2025-07-10T18:33:20.949Z","avatar_url":"https://github.com/terraform-aws-modules.png","language":"HCL","funding_links":["https://github.com/sponsors/antonbabenko","https://www.paypal.me/antonbabenko"],"categories":["HCL"],"sub_categories":[],"readme":"# AWS AppSync Terraform module\n\nTerraform module which creates AWS AppSync resources and connects them together.\n\nThis Terraform module is part of [serverless.tf framework](https://serverless.tf), which aims to simplify all operations when working with the serverless in Terraform.\n\n## Usage\n\n### Complete AppSync with datasources and resolvers\n\n```hcl\nmodule \"appsync\" {\n  source = \"terraform-aws-modules/appsync/aws\"\n\n  name = \"dev-appsync\"\n\n  schema = file(\"schema.graphql\")\n\n  visibility = \"GLOBAL\"\n\n  api_keys = {\n    default = null # such key will expire in 7 days\n  }\n\n  additional_authentication_provider = {\n    iam = {\n      authentication_type = \"AWS_IAM\"\n    }\n\n    openid_connect_1 = {\n      authentication_type = \"OPENID_CONNECT\"\n\n      openid_connect_config = {\n        issuer    = \"https://www.issuer1.com/\"\n        client_id = \"client_id1\"\n      }\n    }\n  }\n\n  datasources = {\n    registry_terraform_io = {\n      type     = \"HTTP\"\n      endpoint = \"https://registry.terraform.io\"\n    }\n\n    lambda_create_zip = {\n      type         = \"AWS_LAMBDA\"\n      function_arn = \"arn:aws:lambda:eu-west-1:135367859850:function:index_1\"\n    }\n\n    dynamodb1 = {\n      type       = \"AMAZON_DYNAMODB\"\n      table_name = \"my-table\"\n      region     = \"eu-west-1\"\n    }\n\n    elasticsearch1 = {\n      type     = \"AMAZON_ELASTICSEARCH\"\n      endpoint = \"https://search-my-domain.eu-west-1.es.amazonaws.com\"\n      region   = \"eu-west-1\"\n    }\n\n    opensearchservice1 = {\n      type     = \"AMAZON_OPENSEARCH_SERVICE\"\n      endpoint = \"https://opensearch-my-domain.eu-west-1.es.amazonaws.com\"\n      region   = \"eu-west-1\"\n    }\n\n    eventbridge1 = {\n      type          = \"AMAZON_EVENTBRIDGE\"\n      event_bus_arn = \"arn:aws:events:us-west-1:135367859850:event-bus/eventbridge1\"\n    }\n\n    rds1 = {\n      type          = \"RELATIONAL_DATABASE\"\n      cluster_arn   = \"arn:aws:rds:us-west-1:135367859850:cluster:rds1\"\n      secret_arn    = \"arn:aws:secretsmanager:us-west-1:135367859850:secret:rds-secret1\"\n      database_name = \"mydb\"\n      schema        = \"myschema\"\n    }\n  }\n\n  resolvers = {\n    \"Query.getZip\" = {\n      data_source   = \"lambda_create_zip\"\n      direct_lambda = true\n    }\n\n    \"Query.getModuleFromRegistry\" = {\n      data_source       = \"registry_terraform_io\"\n      request_template  = file(\"vtl-templates/request.Query.getModuleFromRegistry.vtl\")\n      response_template = file(\"vtl-templates/response.Query.getModuleFromRegistry.vtl\")\n    }\n  }\n}\n```\n\n## Conditional creation\n\nSometimes you need to have a way to create resources conditionally but Terraform 0.12 does not allow usage of `count` inside `module` block, so the solution is to specify `create_graphql_api` argument.\n\n```hcl\nmodule \"appsync\" {\n  source = \"terraform-aws-modules/appsync/aws\"\n\n  create_graphql_api = false # to disable all resources\n\n  # ... omitted\n}\n```\n\n## Relationship between Data-Source and Resolver resources\n\n`datasources` define keys which can be referenced in `resolvers`. For initial configuration and parameters updates Terraform is able to understand the order of resources correctly.\n\nIn order to change name of keys in both places (eg from `lambda-old` to `lambda-new`), you will need to change key in both variables, and then run Terraform with partial configuration (using `-target`) to handle the migration in the `aws_appsync_resolver` resource (eg, `Post.id`):\n\n```shell\n# Create new resources and update resolver\n$ terraform apply -target=\"module.appsync.aws_appsync_resolver.this[\\\"Post.id\\\"]\" -target=\"module.appsync.aws_appsync_datasource.this[\\\"lambda-new\\\"]\" -target=\"module.appsync.aws_iam_role.service_role[\\\"lambda-new\\\"]\" -target=\"module.appsync.aws_iam_role_policy.this[\\\"lambda-new\\\"]\"\n\n# Delete orphan resources (\"lambda-old\")\n$ terraform apply\n```\n\n## Examples\n\n- [Complete](https://github.com/terraform-aws-modules/terraform-aws-appsync/tree/master/examples/complete) - Create AppSync with datasources, resolvers, and authorization providers in various combinations.\n\n\u003c!-- BEGIN_TF_DOCS --\u003e\n## Requirements\n\n| Name | Version |\n|------|---------|\n| \u003ca name=\"requirement_terraform\"\u003e\u003c/a\u003e [terraform](#requirement\\_terraform) | \u003e= 1.3.2 |\n| \u003ca name=\"requirement_aws\"\u003e\u003c/a\u003e [aws](#requirement\\_aws) | \u003e= 5.61.0 |\n\n## Providers\n\n| Name | Version |\n|------|---------|\n| \u003ca name=\"provider_aws\"\u003e\u003c/a\u003e [aws](#provider\\_aws) | \u003e= 5.61.0 |\n\n## Modules\n\nNo modules.\n\n## Resources\n\n| Name | Type |\n|------|------|\n| [aws_appsync_api_cache.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/appsync_api_cache) | resource |\n| [aws_appsync_api_key.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/appsync_api_key) | resource |\n| [aws_appsync_datasource.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/appsync_datasource) | resource |\n| [aws_appsync_domain_name.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/appsync_domain_name) | resource |\n| [aws_appsync_domain_name_api_association.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/appsync_domain_name_api_association) | resource |\n| [aws_appsync_function.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/appsync_function) | resource |\n| [aws_appsync_graphql_api.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/appsync_graphql_api) | resource |\n| [aws_appsync_resolver.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/appsync_resolver) | resource |\n| [aws_iam_role.logs](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role) | resource |\n| [aws_iam_role.service_role](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role) | resource |\n| [aws_iam_role_policy.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role_policy) | resource |\n| [aws_iam_role_policy_attachment.logs](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role_policy_attachment) | resource |\n| [aws_caller_identity.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/caller_identity) | data source |\n| [aws_iam_policy_document.assume_role](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/iam_policy_document) | data source |\n| [aws_iam_policy_document.service_policy](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/iam_policy_document) | data source |\n| [aws_partition.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/partition) | data source |\n\n## Inputs\n\n| Name | Description | Type | Default | Required |\n|------|-------------|------|---------|:--------:|\n| \u003ca name=\"input_additional_authentication_provider\"\u003e\u003c/a\u003e [additional\\_authentication\\_provider](#input\\_additional\\_authentication\\_provider) | One or more additional authentication providers for the GraphqlApi. | `any` | `{}` | no |\n| \u003ca name=\"input_api_keys\"\u003e\u003c/a\u003e [api\\_keys](#input\\_api\\_keys) | Map of API keys to create | `map(string)` | `{}` | no |\n| \u003ca name=\"input_authentication_type\"\u003e\u003c/a\u003e [authentication\\_type](#input\\_authentication\\_type) | The authentication type to use by GraphQL API | `string` | `\"API_KEY\"` | no |\n| \u003ca name=\"input_cache_at_rest_encryption_enabled\"\u003e\u003c/a\u003e [cache\\_at\\_rest\\_encryption\\_enabled](#input\\_cache\\_at\\_rest\\_encryption\\_enabled) | At-rest encryption flag for cache. | `bool` | `false` | no |\n| \u003ca name=\"input_cache_transit_encryption_enabled\"\u003e\u003c/a\u003e [cache\\_transit\\_encryption\\_enabled](#input\\_cache\\_transit\\_encryption\\_enabled) | Transit encryption flag when connecting to cache. | `bool` | `false` | no |\n| \u003ca name=\"input_cache_ttl\"\u003e\u003c/a\u003e [cache\\_ttl](#input\\_cache\\_ttl) | TTL in seconds for cache entries | `number` | `1` | no |\n| \u003ca name=\"input_cache_type\"\u003e\u003c/a\u003e [cache\\_type](#input\\_cache\\_type) | The cache instance type. | `string` | `\"SMALL\"` | no |\n| \u003ca name=\"input_caching_behavior\"\u003e\u003c/a\u003e [caching\\_behavior](#input\\_caching\\_behavior) | Caching behavior. | `string` | `\"FULL_REQUEST_CACHING\"` | no |\n| \u003ca name=\"input_caching_enabled\"\u003e\u003c/a\u003e [caching\\_enabled](#input\\_caching\\_enabled) | Whether caching with Elasticache is enabled. | `bool` | `false` | no |\n| \u003ca name=\"input_certificate_arn\"\u003e\u003c/a\u003e [certificate\\_arn](#input\\_certificate\\_arn) | The Amazon Resource Name (ARN) of the certificate. | `string` | `\"\"` | no |\n| \u003ca name=\"input_create_graphql_api\"\u003e\u003c/a\u003e [create\\_graphql\\_api](#input\\_create\\_graphql\\_api) | Whether to create GraphQL API | `bool` | `true` | no |\n| \u003ca name=\"input_create_logs_role\"\u003e\u003c/a\u003e [create\\_logs\\_role](#input\\_create\\_logs\\_role) | Whether to create service role for Cloudwatch logs | `bool` | `true` | no |\n| \u003ca name=\"input_datasources\"\u003e\u003c/a\u003e [datasources](#input\\_datasources) | Map of datasources to create | `any` | `{}` | no |\n| \u003ca name=\"input_direct_lambda_request_template\"\u003e\u003c/a\u003e [direct\\_lambda\\_request\\_template](#input\\_direct\\_lambda\\_request\\_template) | VTL request template for the direct lambda integrations | `string` | `\"{\\n  \\\"version\\\" : \\\"2017-02-28\\\",\\n  \\\"operation\\\": \\\"Invoke\\\",\\n  \\\"payload\\\": {\\n    \\\"arguments\\\": $util.toJson($ctx.arguments),\\n    \\\"identity\\\": $util.toJson($ctx.identity),\\n    \\\"source\\\": $util.toJson($ctx.source),\\n    \\\"request\\\": $util.toJson($ctx.request),\\n    \\\"prev\\\": $util.toJson($ctx.prev),\\n    \\\"info\\\": {\\n        \\\"selectionSetList\\\": $util.toJson($ctx.info.selectionSetList),\\n        \\\"selectionSetGraphQL\\\": $util.toJson($ctx.info.selectionSetGraphQL),\\n        \\\"parentTypeName\\\": $util.toJson($ctx.info.parentTypeName),\\n        \\\"fieldName\\\": $util.toJson($ctx.info.fieldName),\\n        \\\"variables\\\": $util.toJson($ctx.info.variables)\\n    },\\n    \\\"stash\\\": $util.toJson($ctx.stash)\\n  }\\n}\\n\"` | no |\n| \u003ca name=\"input_direct_lambda_response_template\"\u003e\u003c/a\u003e [direct\\_lambda\\_response\\_template](#input\\_direct\\_lambda\\_response\\_template) | VTL response template for the direct lambda integrations | `string` | `\"$util.toJson($ctx.result)\\n\"` | no |\n| \u003ca name=\"input_domain_name\"\u003e\u003c/a\u003e [domain\\_name](#input\\_domain\\_name) | The domain name that AppSync gets associated with. | `string` | `\"\"` | no |\n| \u003ca name=\"input_domain_name_association_enabled\"\u003e\u003c/a\u003e [domain\\_name\\_association\\_enabled](#input\\_domain\\_name\\_association\\_enabled) | Whether to enable domain name association on GraphQL API | `bool` | `false` | no |\n| \u003ca name=\"input_domain_name_description\"\u003e\u003c/a\u003e [domain\\_name\\_description](#input\\_domain\\_name\\_description) | A description of the Domain Name. | `string` | `null` | no |\n| \u003ca name=\"input_dynamodb_allowed_actions\"\u003e\u003c/a\u003e [dynamodb\\_allowed\\_actions](#input\\_dynamodb\\_allowed\\_actions) | List of allowed IAM actions for datasources type AMAZON\\_DYNAMODB | `list(string)` | \u003cpre\u003e[\u003cbr/\u003e  \"dynamodb:GetItem\",\u003cbr/\u003e  \"dynamodb:PutItem\",\u003cbr/\u003e  \"dynamodb:DeleteItem\",\u003cbr/\u003e  \"dynamodb:UpdateItem\",\u003cbr/\u003e  \"dynamodb:Query\",\u003cbr/\u003e  \"dynamodb:Scan\",\u003cbr/\u003e  \"dynamodb:BatchGetItem\",\u003cbr/\u003e  \"dynamodb:BatchWriteItem\"\u003cbr/\u003e]\u003c/pre\u003e | no |\n| \u003ca name=\"input_elasticsearch_allowed_actions\"\u003e\u003c/a\u003e [elasticsearch\\_allowed\\_actions](#input\\_elasticsearch\\_allowed\\_actions) | List of allowed IAM actions for datasources type AMAZON\\_ELASTICSEARCH | `list(string)` | \u003cpre\u003e[\u003cbr/\u003e  \"es:ESHttpDelete\",\u003cbr/\u003e  \"es:ESHttpHead\",\u003cbr/\u003e  \"es:ESHttpGet\",\u003cbr/\u003e  \"es:ESHttpPost\",\u003cbr/\u003e  \"es:ESHttpPut\"\u003cbr/\u003e]\u003c/pre\u003e | no |\n| \u003ca name=\"input_enhanced_metrics_config\"\u003e\u003c/a\u003e [enhanced\\_metrics\\_config](#input\\_enhanced\\_metrics\\_config) | Nested argument containing Lambda Ehanced metrics configuration. | `map(string)` | `{}` | no |\n| \u003ca name=\"input_eventbridge_allowed_actions\"\u003e\u003c/a\u003e [eventbridge\\_allowed\\_actions](#input\\_eventbridge\\_allowed\\_actions) | List of allowed IAM actions for datasources type AMAZON\\_EVENTBRIDGE | `list(string)` | \u003cpre\u003e[\u003cbr/\u003e  \"events:PutEvents\"\u003cbr/\u003e]\u003c/pre\u003e | no |\n| \u003ca name=\"input_functions\"\u003e\u003c/a\u003e [functions](#input\\_functions) | Map of functions to create | `any` | `{}` | no |\n| \u003ca name=\"input_graphql_api_tags\"\u003e\u003c/a\u003e [graphql\\_api\\_tags](#input\\_graphql\\_api\\_tags) | Map of tags to add to GraphQL API | `map(string)` | `{}` | no |\n| \u003ca name=\"input_iam_permissions_boundary\"\u003e\u003c/a\u003e [iam\\_permissions\\_boundary](#input\\_iam\\_permissions\\_boundary) | ARN for iam permissions boundary | `string` | `null` | no |\n| \u003ca name=\"input_introspection_config\"\u003e\u003c/a\u003e [introspection\\_config](#input\\_introspection\\_config) | Whether to enable or disable introspection of the GraphQL API. | `string` | `null` | no |\n| \u003ca name=\"input_lambda_allowed_actions\"\u003e\u003c/a\u003e [lambda\\_allowed\\_actions](#input\\_lambda\\_allowed\\_actions) | List of allowed IAM actions for datasources type AWS\\_LAMBDA | `list(string)` | \u003cpre\u003e[\u003cbr/\u003e  \"lambda:invokeFunction\"\u003cbr/\u003e]\u003c/pre\u003e | no |\n| \u003ca name=\"input_lambda_authorizer_config\"\u003e\u003c/a\u003e [lambda\\_authorizer\\_config](#input\\_lambda\\_authorizer\\_config) | Nested argument containing Lambda authorizer configuration. | `map(string)` | `{}` | no |\n| \u003ca name=\"input_log_cloudwatch_logs_role_arn\"\u003e\u003c/a\u003e [log\\_cloudwatch\\_logs\\_role\\_arn](#input\\_log\\_cloudwatch\\_logs\\_role\\_arn) | Amazon Resource Name of the service role that AWS AppSync will assume to publish to Amazon CloudWatch logs in your account. | `string` | `null` | no |\n| \u003ca name=\"input_log_exclude_verbose_content\"\u003e\u003c/a\u003e [log\\_exclude\\_verbose\\_content](#input\\_log\\_exclude\\_verbose\\_content) | Set to TRUE to exclude sections that contain information such as headers, context, and evaluated mapping templates, regardless of logging level. | `bool` | `false` | no |\n| \u003ca name=\"input_log_field_log_level\"\u003e\u003c/a\u003e [log\\_field\\_log\\_level](#input\\_log\\_field\\_log\\_level) | Field logging level. Valid values: ALL, ERROR, NONE. | `string` | `null` | no |\n| \u003ca name=\"input_logging_enabled\"\u003e\u003c/a\u003e [logging\\_enabled](#input\\_logging\\_enabled) | Whether to enable Cloudwatch logging on GraphQL API | `bool` | `false` | no |\n| \u003ca name=\"input_logs_role_description\"\u003e\u003c/a\u003e [logs\\_role\\_description](#input\\_logs\\_role\\_description) | Description for the IAM role to create for Cloudwatch logs | `string` | `null` | no |\n| \u003ca name=\"input_logs_role_name\"\u003e\u003c/a\u003e [logs\\_role\\_name](#input\\_logs\\_role\\_name) | Name of IAM role to create for Cloudwatch logs | `string` | `null` | no |\n| \u003ca name=\"input_logs_role_tags\"\u003e\u003c/a\u003e [logs\\_role\\_tags](#input\\_logs\\_role\\_tags) | Map of tags to add to Cloudwatch logs IAM role | `map(string)` | `{}` | no |\n| \u003ca name=\"input_name\"\u003e\u003c/a\u003e [name](#input\\_name) | Name of GraphQL API | `string` | `\"\"` | no |\n| \u003ca name=\"input_openid_connect_config\"\u003e\u003c/a\u003e [openid\\_connect\\_config](#input\\_openid\\_connect\\_config) | Nested argument containing OpenID Connect configuration. | `map(string)` | `{}` | no |\n| \u003ca name=\"input_opensearchservice_allowed_actions\"\u003e\u003c/a\u003e [opensearchservice\\_allowed\\_actions](#input\\_opensearchservice\\_allowed\\_actions) | List of allowed IAM actions for datasources type AMAZON\\_OPENSEARCH\\_SERVICE | `list(string)` | \u003cpre\u003e[\u003cbr/\u003e  \"es:ESHttpDelete\",\u003cbr/\u003e  \"es:ESHttpHead\",\u003cbr/\u003e  \"es:ESHttpGet\",\u003cbr/\u003e  \"es:ESHttpPost\",\u003cbr/\u003e  \"es:ESHttpPut\"\u003cbr/\u003e]\u003c/pre\u003e | no |\n| \u003ca name=\"input_query_depth_limit\"\u003e\u003c/a\u003e [query\\_depth\\_limit](#input\\_query\\_depth\\_limit) | The maximum depth a query can have in a single request. | `number` | `null` | no |\n| \u003ca name=\"input_relational_database_allowed_actions\"\u003e\u003c/a\u003e [relational\\_database\\_allowed\\_actions](#input\\_relational\\_database\\_allowed\\_actions) | List of allowed IAM actions for datasources type RELATIONAL\\_DATABASE | `list(string)` | \u003cpre\u003e[\u003cbr/\u003e  \"rds-data:BatchExecuteStatement\",\u003cbr/\u003e  \"rds-data:BeginTransaction\",\u003cbr/\u003e  \"rds-data:CommitTransaction\",\u003cbr/\u003e  \"rds-data:ExecuteStatement\",\u003cbr/\u003e  \"rds-data:RollbackTransaction\"\u003cbr/\u003e]\u003c/pre\u003e | no |\n| \u003ca name=\"input_resolver_caching_ttl\"\u003e\u003c/a\u003e [resolver\\_caching\\_ttl](#input\\_resolver\\_caching\\_ttl) | Default caching TTL for resolvers when caching is enabled | `number` | `60` | no |\n| \u003ca name=\"input_resolver_count_limit\"\u003e\u003c/a\u003e [resolver\\_count\\_limit](#input\\_resolver\\_count\\_limit) | The maximum number of resolvers that can be invoked in a single request. | `number` | `null` | no |\n| \u003ca name=\"input_resolvers\"\u003e\u003c/a\u003e [resolvers](#input\\_resolvers) | Map of resolvers to create | `any` | `{}` | no |\n| \u003ca name=\"input_schema\"\u003e\u003c/a\u003e [schema](#input\\_schema) | The schema definition, in GraphQL schema language format. Terraform cannot perform drift detection of this configuration. | `string` | `\"\"` | no |\n| \u003ca name=\"input_secrets_manager_allowed_actions\"\u003e\u003c/a\u003e [secrets\\_manager\\_allowed\\_actions](#input\\_secrets\\_manager\\_allowed\\_actions) | List of allowed IAM actions for secrets manager datasources type RELATIONAL\\_DATABASE | `list(string)` | \u003cpre\u003e[\u003cbr/\u003e  \"secretsmanager:GetSecretValue\"\u003cbr/\u003e]\u003c/pre\u003e | no |\n| \u003ca name=\"input_tags\"\u003e\u003c/a\u003e [tags](#input\\_tags) | Map of tags to add to all GraphQL resources created by this module | `map(string)` | `{}` | no |\n| \u003ca name=\"input_user_pool_config\"\u003e\u003c/a\u003e [user\\_pool\\_config](#input\\_user\\_pool\\_config) | The Amazon Cognito User Pool configuration. | `map(string)` | `{}` | no |\n| \u003ca name=\"input_visibility\"\u003e\u003c/a\u003e [visibility](#input\\_visibility) | The API visibility. Valid values: GLOBAL, PRIVATE. | `string` | `null` | no |\n| \u003ca name=\"input_xray_enabled\"\u003e\u003c/a\u003e [xray\\_enabled](#input\\_xray\\_enabled) | Whether tracing with X-ray is enabled. | `bool` | `false` | no |\n\n## Outputs\n\n| Name | Description |\n|------|-------------|\n| \u003ca name=\"output_appsync_api_key_id\"\u003e\u003c/a\u003e [appsync\\_api\\_key\\_id](#output\\_appsync\\_api\\_key\\_id) | Map of API Key ID (Formatted as ApiId:Key) |\n| \u003ca name=\"output_appsync_api_key_key\"\u003e\u003c/a\u003e [appsync\\_api\\_key\\_key](#output\\_appsync\\_api\\_key\\_key) | Map of API Keys |\n| \u003ca name=\"output_appsync_datasource_arn\"\u003e\u003c/a\u003e [appsync\\_datasource\\_arn](#output\\_appsync\\_datasource\\_arn) | Map of ARNs of datasources |\n| \u003ca name=\"output_appsync_domain_hosted_zone_id\"\u003e\u003c/a\u003e [appsync\\_domain\\_hosted\\_zone\\_id](#output\\_appsync\\_domain\\_hosted\\_zone\\_id) | The ID of your Amazon Route 53 hosted zone. |\n| \u003ca name=\"output_appsync_domain_id\"\u003e\u003c/a\u003e [appsync\\_domain\\_id](#output\\_appsync\\_domain\\_id) | The Appsync Domain Name. |\n| \u003ca name=\"output_appsync_domain_name\"\u003e\u003c/a\u003e [appsync\\_domain\\_name](#output\\_appsync\\_domain\\_name) | The domain name that AppSync provides. |\n| \u003ca name=\"output_appsync_function_arn\"\u003e\u003c/a\u003e [appsync\\_function\\_arn](#output\\_appsync\\_function\\_arn) | Map of ARNs of functions |\n| \u003ca name=\"output_appsync_function_function_id\"\u003e\u003c/a\u003e [appsync\\_function\\_function\\_id](#output\\_appsync\\_function\\_function\\_id) | Map of function IDs of functions |\n| \u003ca name=\"output_appsync_function_id\"\u003e\u003c/a\u003e [appsync\\_function\\_id](#output\\_appsync\\_function\\_id) | Map of IDs of functions |\n| \u003ca name=\"output_appsync_graphql_api_arn\"\u003e\u003c/a\u003e [appsync\\_graphql\\_api\\_arn](#output\\_appsync\\_graphql\\_api\\_arn) | ARN of GraphQL API |\n| \u003ca name=\"output_appsync_graphql_api_fqdns\"\u003e\u003c/a\u003e [appsync\\_graphql\\_api\\_fqdns](#output\\_appsync\\_graphql\\_api\\_fqdns) | Map of FQDNs associated with the API (no protocol and path) |\n| \u003ca name=\"output_appsync_graphql_api_id\"\u003e\u003c/a\u003e [appsync\\_graphql\\_api\\_id](#output\\_appsync\\_graphql\\_api\\_id) | ID of GraphQL API |\n| \u003ca name=\"output_appsync_graphql_api_uris\"\u003e\u003c/a\u003e [appsync\\_graphql\\_api\\_uris](#output\\_appsync\\_graphql\\_api\\_uris) | Map of URIs associated with the API |\n| \u003ca name=\"output_appsync_resolver_arn\"\u003e\u003c/a\u003e [appsync\\_resolver\\_arn](#output\\_appsync\\_resolver\\_arn) | Map of ARNs of resolvers |\n\u003c!-- END_TF_DOCS --\u003e\n\n## Authors\n\nModule managed by [Anton Babenko](https://github.com/antonbabenko). Check out [serverless.tf](https://serverless.tf) to learn more about doing serverless with Terraform.\n\nPlease reach out to [Betajob](https://www.betajob.com/) if you are looking for commercial support for your Terraform, AWS, or serverless project.\n\n## License\n\nApache 2 Licensed. See [LICENSE](https://github.com/terraform-aws-modules/terraform-aws-appsync/tree/master/LICENSE) for full details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fterraform-aws-modules%2Fterraform-aws-appsync","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fterraform-aws-modules%2Fterraform-aws-appsync","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fterraform-aws-modules%2Fterraform-aws-appsync/lists"}