{"id":19129466,"url":"https://github.com/launchbynttdata/tf-azurerm-module_reference-api_management","last_synced_at":"2026-05-15T08:02:11.115Z","repository":{"id":242910359,"uuid":"804522633","full_name":"launchbynttdata/tf-azurerm-module_reference-api_management","owner":"launchbynttdata","description":null,"archived":false,"fork":false,"pushed_at":"2026-04-21T18:01:42.000Z","size":83,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-21T18:33:40.928Z","etag":null,"topics":["azure","infrastructure-as-code","platform-automation","reference","terraform"],"latest_commit_sha":null,"homepage":null,"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/launchbynttdata.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":"NOTICE","maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-05-22T18:42:17.000Z","updated_at":"2025-11-13T15:54:15.000Z","dependencies_parsed_at":null,"dependency_job_id":"aa91c1b0-e4f4-4a55-8376-8e133751c304","html_url":"https://github.com/launchbynttdata/tf-azurerm-module_reference-api_management","commit_stats":null,"previous_names":["launchbynttdata/tf-azurerm-module_reference-api_management"],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/launchbynttdata/tf-azurerm-module_reference-api_management","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/launchbynttdata%2Ftf-azurerm-module_reference-api_management","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/launchbynttdata%2Ftf-azurerm-module_reference-api_management/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/launchbynttdata%2Ftf-azurerm-module_reference-api_management/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/launchbynttdata%2Ftf-azurerm-module_reference-api_management/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/launchbynttdata","download_url":"https://codeload.github.com/launchbynttdata/tf-azurerm-module_reference-api_management/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/launchbynttdata%2Ftf-azurerm-module_reference-api_management/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33058965,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-13T13:14:54.681Z","status":"online","status_checked_at":"2026-05-15T02:00:06.351Z","response_time":103,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["azure","infrastructure-as-code","platform-automation","reference","terraform"],"created_at":"2024-11-09T06:07:34.762Z","updated_at":"2026-05-15T08:02:11.099Z","avatar_url":"https://github.com/launchbynttdata.png","language":"HCL","funding_links":[],"categories":[],"sub_categories":[],"readme":"# tf-azurerm-module_reference-api_management\n\n[![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)\n[![License: CC BY-NC-ND 4.0](https://img.shields.io/badge/License-CC_BY--NC--ND_4.0-lightgrey.svg)](https://creativecommons.org/licenses/by-nc-nd/4.0/)\n\n## Overview\n\nThis module provisions an Azure API Management instance along with all its dependencies like resource group, public IP,\nprivate DNS zone, VNET links, DNS records, NSG, NSG subnet association etc. It is capable to provision both public and private instances.\n\nMore details about the API Management installation can be found [here](./resources/README.md)\n\n## Pre-Commit hooks\n\n[.pre-commit-config.yaml](.pre-commit-config.yaml) file defines certain `pre-commit` hooks that are relevant to terraform, golang and common linting tasks. There are no custom hooks added.\n\n`commitlint` hook enforces commit message in certain format. The commit contains the following structural elements, to communicate intent to the consumers of your commit messages:\n\n- **fix**: a commit of the type `fix` patches a bug in your codebase (this correlates with PATCH in Semantic Versioning).\n- **feat**: a commit of the type `feat` introduces a new feature to the codebase (this correlates with MINOR in Semantic Versioning).\n- **BREAKING CHANGE**: a commit that has a footer `BREAKING CHANGE:`, or appends a `!` after the type/scope, introduces a breaking API change (correlating with MAJOR in Semantic Versioning). A BREAKING CHANGE can be part of commits of any type.\nfooters other than BREAKING CHANGE: \u003cdescription\u003e may be provided and follow a convention similar to git trailer format.\n- **build**: a commit of the type `build` adds changes that affect the build system or external dependencies (example scopes: gulp, broccoli, npm)\n- **chore**: a commit of the type `chore` adds changes that don't modify src or test files\n- **ci**: a commit of the type `ci` adds changes to our CI configuration files and scripts (example scopes: Travis, Circle, BrowserStack, SauceLabs)\n- **docs**: a commit of the type `docs` adds documentation only changes\n- **perf**: a commit of the type `perf` adds code change that improves performance\n- **refactor**: a commit of the type `refactor` adds code change that neither fixes a bug nor adds a feature\n- **revert**: a commit of the type `revert` reverts a previous commit\n- **style**: a commit of the type `style` adds code changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc)\n- **test**: a commit of the type `test` adds missing tests or correcting existing tests\n\nBase configuration used for this project is [commitlint-config-conventional (based on the Angular convention)](https://github.com/conventional-changelog/commitlint/tree/master/@commitlint/config-conventional#type-enum)\n\nIf you are a developer using vscode, [this](https://marketplace.visualstudio.com/items?itemName=joshbolduc.commitlint) plugin may be helpful.\n\n`detect-secrets-hook` prevents new secrets from being introduced into the baseline. TODO: INSERT DOC LINK ABOUT HOOKS\n\nIn order for `pre-commit` hooks to work properly\n\n- You need to have the pre-commit package manager installed. [Here](https://pre-commit.com/#install) are the installation instructions.\n- `pre-commit` would install all the hooks when commit message is added by default except for `commitlint` hook. `commitlint` hook would need to be installed manually using the command below\n\n```\npre-commit install --hook-type commit-msg\n```\n\n## To test the resource group module locally\n\n1. For development/enhancements to this module locally, you'll need to install all of its components. This is controlled by the `configure` target in the project's [`Makefile`](./Makefile). Before you can run `configure`, familiarize yourself with the variables in the `Makefile` and ensure they're pointing to the right places.\n\n```\nmake configure\n```\n\nThis adds in several files and directories that are ignored by `git`. They expose many new Make targets.\n\n2. _THIS STEP APPLIES ONLY TO MICROSOFT AZURE. IF YOU ARE USING A DIFFERENT PLATFORM PLEASE SKIP THIS STEP._ The first target you care about is `env`. This is the common interface for setting up environment variables. The values of the environment variables will be used to authenticate with cloud provider from local development workstation.\n\n`make configure` command will bring down `azure_env.sh` file on local workstation. Devloper would need to modify this file, replace the environment variable values with relevant values.\n\nThese environment variables are used by `terratest` integration suit.\n\nService principle used for authentication(value of ARM_CLIENT_ID) should have below privileges on resource group within the subscription.\n\n```\n\"Microsoft.Resources/subscriptions/resourceGroups/write\"\n\"Microsoft.Resources/subscriptions/resourceGroups/read\"\n\"Microsoft.Resources/subscriptions/resourceGroups/delete\"\n```\n\nThen run this make target to set the environment variables on developer workstation.\n\n```\nmake env\n```\n\n3. The first target you care about is `check`.\n\n**Pre-requisites**\nBefore running this target it is important to ensure that, developer has created files mentioned below on local workstation under root directory of git repository that contains code for primitives/segments. Note that these files are `azure` specific. If primitive/segment under development uses any other cloud provider than azure, this section may not be relevant.\n\n- A file named `provider.tf` with contents below\n\n```\nprovider \"azurerm\" {\n  features {}\n}\n```\n\n- A file named `terraform.tfvars` which contains key value pair of variables used.\n\nNote that since these files are added in `gitignore` they would not be checked in into primitive/segment's git repo.\n\nAfter creating these files, for running tests associated with the primitive/segment, run\n\n```\nmake check\n```\n\nIf `make check` target is successful, developer is good to commit the code to primitive/segment's git repo.\n\n`make check` target\n\n- runs `terraform commands` to `lint`,`validate` and `plan` terraform code.\n- runs `conftests`. `conftests` make sure `policy` checks are successful.\n- runs `terratest`. This is integration test suit.\n- runs `opa` tests\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.0 |\n| \u003ca name=\"requirement_azurerm\"\u003e\u003c/a\u003e [azurerm](#requirement\\_azurerm) | ~\u003e3.117 |\n\n## Providers\n\nNo providers.\n\n## Modules\n\n| Name | Source | Version |\n|------|--------|---------|\n| \u003ca name=\"module_resource_names\"\u003e\u003c/a\u003e [resource\\_names](#module\\_resource\\_names) | terraform.registry.launch.nttdata.com/module_library/resource_name/launch | ~\u003e 1.0 |\n| \u003ca name=\"module_resource_names_v2\"\u003e\u003c/a\u003e [resource\\_names\\_v2](#module\\_resource\\_names\\_v2) | terraform.registry.launch.nttdata.com/module_library/resource_name/launch | ~\u003e 2.0 |\n| \u003ca name=\"module_resource_group\"\u003e\u003c/a\u003e [resource\\_group](#module\\_resource\\_group) | terraform.registry.launch.nttdata.com/module_primitive/resource_group/azurerm | ~\u003e 1.0 |\n| \u003ca name=\"module_public_ip\"\u003e\u003c/a\u003e [public\\_ip](#module\\_public\\_ip) | terraform.registry.launch.nttdata.com/module_primitive/public_ip/azurerm | ~\u003e 1.0 |\n| \u003ca name=\"module_apim_default_dns_zone\"\u003e\u003c/a\u003e [apim\\_default\\_dns\\_zone](#module\\_apim\\_default\\_dns\\_zone) | terraform.registry.launch.nttdata.com/module_primitive/private_dns_zone/azurerm | ~\u003e 1.0 |\n| \u003ca name=\"module_vnet_links\"\u003e\u003c/a\u003e [vnet\\_links](#module\\_vnet\\_links) | terraform.registry.launch.nttdata.com/module_primitive/private_dns_vnet_link/azurerm | ~\u003e 1.0 |\n| \u003ca name=\"module_dns_records\"\u003e\u003c/a\u003e [dns\\_records](#module\\_dns\\_records) | terraform.registry.launch.nttdata.com/module_primitive/private_dns_records/azurerm | ~\u003e 1.0 |\n| \u003ca name=\"module_nsg\"\u003e\u003c/a\u003e [nsg](#module\\_nsg) | terraform.registry.launch.nttdata.com/module_primitive/network_security_group/azurerm | ~\u003e 1.0 |\n| \u003ca name=\"module_nsg_subnet_assoc\"\u003e\u003c/a\u003e [nsg\\_subnet\\_assoc](#module\\_nsg\\_subnet\\_assoc) | terraform.registry.launch.nttdata.com/module_primitive/nsg_subnet_association/azurerm | ~\u003e 1.0 |\n| \u003ca name=\"module_apim\"\u003e\u003c/a\u003e [apim](#module\\_apim) | terraform.registry.launch.nttdata.com/module_primitive/api_management/azurerm | ~\u003e 1.0 |\n| \u003ca name=\"module_key_vault_role_assignments\"\u003e\u003c/a\u003e [key\\_vault\\_role\\_assignments](#module\\_key\\_vault\\_role\\_assignments) | terraform.registry.launch.nttdata.com/module_primitive/role_assignment/azurerm | ~\u003e 1.0 |\n| \u003ca name=\"module_apim_certificates\"\u003e\u003c/a\u003e [apim\\_certificates](#module\\_apim\\_certificates) | terraform.registry.launch.nttdata.com/module_primitive/api_management_certificate/azurerm | ~\u003e 1.0 |\n| \u003ca name=\"module_apim_loggers\"\u003e\u003c/a\u003e [apim\\_loggers](#module\\_apim\\_loggers) | terraform.registry.launch.nttdata.com/module_primitive/api_management_logger/azurerm | ~\u003e 1.0 |\n| \u003ca name=\"module_apim_named_values\"\u003e\u003c/a\u003e [apim\\_named\\_values](#module\\_apim\\_named\\_values) | terraform.registry.launch.nttdata.com/module_primitive/api_management_named_value/azurerm | ~\u003e 1.0 |\n| \u003ca name=\"module_apim_backends\"\u003e\u003c/a\u003e [apim\\_backends](#module\\_apim\\_backends) | terraform.registry.launch.nttdata.com/module_primitive/api_management_backend/azurerm | ~\u003e 1.0 |\n| \u003ca name=\"module_apim_apis\"\u003e\u003c/a\u003e [apim\\_apis](#module\\_apim\\_apis) | terraform.registry.launch.nttdata.com/module_primitive/api_management_api/azurerm | ~\u003e 1.1.0 |\n| \u003ca name=\"module_apim_diagnostics\"\u003e\u003c/a\u003e [apim\\_diagnostics](#module\\_apim\\_diagnostics) | terraform.registry.launch.nttdata.com/module_primitive/api_management_diagnostic/azurerm | ~\u003e 1.0 |\n\n## Resources\n\nNo resources.\n\n## Inputs\n\n| Name | Description | Type | Default | Required |\n|------|-------------|------|---------|:--------:|\n| \u003ca name=\"input_product_family\"\u003e\u003c/a\u003e [product\\_family](#input\\_product\\_family) | (Required) Name of the product family for which the resource is created.\u003cbr\u003e    Example: org\\_name, department\\_name. | `string` | `\"dso\"` | no |\n| \u003ca name=\"input_product_service\"\u003e\u003c/a\u003e [product\\_service](#input\\_product\\_service) | (Required) Name of the product service for which the resource is created.\u003cbr\u003e    For example, backend, frontend, middleware etc. | `string` | `\"apim\"` | no |\n| \u003ca name=\"input_environment\"\u003e\u003c/a\u003e [environment](#input\\_environment) | Environment in which the resource should be provisioned like dev, qa, prod etc. | `string` | `\"dev\"` | no |\n| \u003ca name=\"input_environment_number\"\u003e\u003c/a\u003e [environment\\_number](#input\\_environment\\_number) | The environment count for the respective environment. Defaults to 000. Increments in value of 1 | `string` | `\"000\"` | no |\n| \u003ca name=\"input_resource_number\"\u003e\u003c/a\u003e [resource\\_number](#input\\_resource\\_number) | The resource count for the respective resource. Defaults to 000. Increments in value of 1 | `string` | `\"000\"` | no |\n| \u003ca name=\"input_region\"\u003e\u003c/a\u003e [region](#input\\_region) | Azure Region in which the infra needs to be provisioned | `string` | `\"eastus\"` | no |\n| \u003ca name=\"input_resource_names_map\"\u003e\u003c/a\u003e [resource\\_names\\_map](#input\\_resource\\_names\\_map) | A map of key to resource\\_name that will be used by tf-launch-module\\_library-resource\\_name to generate resource names | \u003cpre\u003emap(object(\u003cbr\u003e    {\u003cbr\u003e      name       = string\u003cbr\u003e      max_length = optional(number, 60)\u003cbr\u003e    }\u003cbr\u003e  ))\u003c/pre\u003e | \u003cpre\u003e{\u003cbr\u003e  \"apim\": {\u003cbr\u003e    \"max_length\": 60,\u003cbr\u003e    \"name\": \"apim\"\u003cbr\u003e  },\u003cbr\u003e  \"key_vault\": {\u003cbr\u003e    \"max_length\": 24,\u003cbr\u003e    \"name\": \"kv\"\u003cbr\u003e  },\u003cbr\u003e  \"nsg\": {\u003cbr\u003e    \"max_length\": 60,\u003cbr\u003e    \"name\": \"nsg\"\u003cbr\u003e  },\u003cbr\u003e  \"public_ip\": {\u003cbr\u003e    \"max_length\": 60,\u003cbr\u003e    \"name\": \"pip\"\u003cbr\u003e  },\u003cbr\u003e  \"resource_group\": {\u003cbr\u003e    \"max_length\": 60,\u003cbr\u003e    \"name\": \"rg\"\u003cbr\u003e  }\u003cbr\u003e}\u003c/pre\u003e | no |\n| \u003ca name=\"input_resource_group_name\"\u003e\u003c/a\u003e [resource\\_group\\_name](#input\\_resource\\_group\\_name) | Name of the resource group. If not specified, this module will create a resource group. | `string` | `null` | no |\n| \u003ca name=\"input_resource_names_version\"\u003e\u003c/a\u003e [resource\\_names\\_version](#input\\_resource\\_names\\_version) | Major version of the resource names module to use | `string` | `\"1\"` | no |\n| \u003ca name=\"input_sku_name\"\u003e\u003c/a\u003e [sku\\_name](#input\\_sku\\_name) | String consisting of two parts separated by an underscore. The fist part is the name, valid values include: Developer,\u003cbr\u003e    Basic, Standard and Premium. The second part is the capacity. Default is Developer\\_1. | `string` | `\"Developer_1\"` | no |\n| \u003ca name=\"input_publisher_name\"\u003e\u003c/a\u003e [publisher\\_name](#input\\_publisher\\_name) | The name of publisher/company. | `string` | n/a | yes |\n| \u003ca name=\"input_publisher_email\"\u003e\u003c/a\u003e [publisher\\_email](#input\\_publisher\\_email) | The email of publisher/company. | `string` | n/a | yes |\n| \u003ca name=\"input_additional_location\"\u003e\u003c/a\u003e [additional\\_location](#input\\_additional\\_location) | List of the name of the Azure Region in which the API Management Service should be expanded to. | `list(map(string))` | `[]` | no |\n| \u003ca name=\"input_zones\"\u003e\u003c/a\u003e [zones](#input\\_zones) | (Optional) Specifies a list of Availability Zones in which this API Management service should be located. Changing this\u003cbr\u003e    forces a new API Management service to be created. Supported in Premium Tier. | `list(number)` | `[]` | no |\n| \u003ca name=\"input_certificate_configuration\"\u003e\u003c/a\u003e [certificate\\_configuration](#input\\_certificate\\_configuration) | List of certificate configurations. The Certificate must be base encoded pfx or pem format. `certificate_password` can be null if\u003cbr\u003e    not present. `store_name` can be `CertificateAuthority` or `Root`. | \u003cpre\u003elist(object({\u003cbr\u003e    encoded_certificate  = string\u003cbr\u003e    certificate_password = string\u003cbr\u003e    store_name           = string\u003cbr\u003e  }))\u003c/pre\u003e | `[]` | no |\n| \u003ca name=\"input_client_certificate_enabled\"\u003e\u003c/a\u003e [client\\_certificate\\_enabled](#input\\_client\\_certificate\\_enabled) | (Optional) Enforce a client certificate to be presented on each request to the gateway? This is only supported when SKU type is `Consumption`. | `bool` | `false` | no |\n| \u003ca name=\"input_gateway_disabled\"\u003e\u003c/a\u003e [gateway\\_disabled](#input\\_gateway\\_disabled) | (Optional) Disable the gateway in main region? This is only supported when `additional_location` is set. | `bool` | `false` | no |\n| \u003ca name=\"input_min_api_version\"\u003e\u003c/a\u003e [min\\_api\\_version](#input\\_min\\_api\\_version) | (Optional) The version which the control plane API calls to API Management service are limited with version equal to or newer than. | `string` | `null` | no |\n| \u003ca name=\"input_enable_http2\"\u003e\u003c/a\u003e [enable\\_http2](#input\\_enable\\_http2) | Should HTTP/2 be supported by the API Management Service? | `bool` | `false` | no |\n| \u003ca name=\"input_management_hostname_configuration\"\u003e\u003c/a\u003e [management\\_hostname\\_configuration](#input\\_management\\_hostname\\_configuration) | List of management hostname configurations | `list(map(string))` | `[]` | no |\n| \u003ca name=\"input_scm_hostname_configuration\"\u003e\u003c/a\u003e [scm\\_hostname\\_configuration](#input\\_scm\\_hostname\\_configuration) | List of scm hostname configurations | `list(map(string))` | `[]` | no |\n| \u003ca name=\"input_proxy_hostname_configuration\"\u003e\u003c/a\u003e [proxy\\_hostname\\_configuration](#input\\_proxy\\_hostname\\_configuration) | List of proxy hostname configurations | `list(map(string))` | `[]` | no |\n| \u003ca name=\"input_portal_hostname_configuration\"\u003e\u003c/a\u003e [portal\\_hostname\\_configuration](#input\\_portal\\_hostname\\_configuration) | Legacy portal hostname configurations | `list(map(string))` | `[]` | no |\n| \u003ca name=\"input_developer_portal_hostname_configuration\"\u003e\u003c/a\u003e [developer\\_portal\\_hostname\\_configuration](#input\\_developer\\_portal\\_hostname\\_configuration) | Developer portal hostname configurations | `list(map(string))` | `[]` | no |\n| \u003ca name=\"input_notification_sender_email\"\u003e\u003c/a\u003e [notification\\_sender\\_email](#input\\_notification\\_sender\\_email) | Email address from which the notification will be sent | `string` | `null` | no |\n| \u003ca name=\"input_policy_configuration\"\u003e\u003c/a\u003e [policy\\_configuration](#input\\_policy\\_configuration) | Map of policy configuration | `map(string)` | `{}` | no |\n| \u003ca name=\"input_public_network_access_enabled\"\u003e\u003c/a\u003e [public\\_network\\_access\\_enabled](#input\\_public\\_network\\_access\\_enabled) | Should the API Management Service be accessible from the public internet?\u003cbr\u003e    This option is applicable only to the Management plane, not the API gateway or Developer portal.\u003cbr\u003e    It is required to be true on the creation.\u003cbr\u003e    For sku=Developer/Premium and network\\_type=Internal, it must be true.\u003cbr\u003e    It can only be set to false if there is at least one approve private endpoint connection. | `bool` | `true` | no |\n| \u003ca name=\"input_enable_sign_in\"\u003e\u003c/a\u003e [enable\\_sign\\_in](#input\\_enable\\_sign\\_in) | Should anonymous users be redirected to the sign in page? | `bool` | `false` | no |\n| \u003ca name=\"input_enable_sign_up\"\u003e\u003c/a\u003e [enable\\_sign\\_up](#input\\_enable\\_sign\\_up) | Can users sign up on the development portal? | `bool` | `false` | no |\n| \u003ca name=\"input_terms_of_service_configuration\"\u003e\u003c/a\u003e [terms\\_of\\_service\\_configuration](#input\\_terms\\_of\\_service\\_configuration) | Map of terms of service configuration | `list(map(string))` | \u003cpre\u003e[\u003cbr\u003e  {\u003cbr\u003e    \"consent_required\": false,\u003cbr\u003e    \"enabled\": false,\u003cbr\u003e    \"text\": \"\"\u003cbr\u003e  }\u003cbr\u003e]\u003c/pre\u003e | no |\n| \u003ca name=\"input_security_configuration\"\u003e\u003c/a\u003e [security\\_configuration](#input\\_security\\_configuration) | Map of security configuration | `map(string)` | `{}` | no |\n| \u003ca name=\"input_virtual_network_type\"\u003e\u003c/a\u003e [virtual\\_network\\_type](#input\\_virtual\\_network\\_type) | The type of virtual network you want to use, valid values include: None, External, Internal.\u003cbr\u003e    External and Internal are only supported in the SKUs - Premium and Developer | `string` | `\"None\"` | no |\n| \u003ca name=\"input_virtual_network_configuration\"\u003e\u003c/a\u003e [virtual\\_network\\_configuration](#input\\_virtual\\_network\\_configuration) | The id(s) of the subnet(s) that will be used for the API Management. Required when virtual\\_network\\_type is External or Internal\u003cbr\u003e    that is in the SKUs - Premium and Developer | `list(string)` | `[]` | no |\n| \u003ca name=\"input_additional_nsg_rules\"\u003e\u003c/a\u003e [additional\\_nsg\\_rules](#input\\_additional\\_nsg\\_rules) | A list of additional NSG rules to be applied to the API Management subnet. Only applicable when virtual\\_network\\_type\u003cbr\u003e    is External or Internal.\u003cbr\u003e    Use `priority` \u003e 105 to avoid conflicts with default rules. | \u003cpre\u003elist(object({\u003cbr\u003e    name                       = string\u003cbr\u003e    priority                   = number\u003cbr\u003e    direction                  = string\u003cbr\u003e    access                     = string\u003cbr\u003e    protocol                   = string\u003cbr\u003e    source_port_range          = string\u003cbr\u003e    destination_port_range     = string\u003cbr\u003e    source_address_prefix      = string\u003cbr\u003e    destination_address_prefix = string\u003cbr\u003e  }))\u003c/pre\u003e | `[]` | no |\n| \u003ca name=\"input_apis\"\u003e\u003c/a\u003e [apis](#input\\_apis) | A map of API definitions to be created in the API Management Service. The key is the API name and the value is the API definition. | \u003cpre\u003emap(object({\u003cbr\u003e    display_name          = string\u003cbr\u003e    path                  = string\u003cbr\u003e    description           = string\u003cbr\u003e    protocols             = optional(list(string), [\"https\"])\u003cbr\u003e    api_type              = optional(string, \"http\")\u003cbr\u003e    service_url           = optional(string, null)\u003cbr\u003e    soap_pass_through     = optional(bool, null)\u003cbr\u003e    subscription_required = optional(bool, true)\u003cbr\u003e    terms_of_service_url  = optional(string, null)\u003cbr\u003e\u003cbr\u003e    contact = optional(object({\u003cbr\u003e      name  = string\u003cbr\u003e      email = string\u003cbr\u003e      url   = string\u003cbr\u003e    }), null)\u003cbr\u003e\u003cbr\u003e    import = optional(object({\u003cbr\u003e      content_format = string\u003cbr\u003e      content_value  = string\u003cbr\u003e    }), null)\u003cbr\u003e\u003cbr\u003e    license = optional(object({\u003cbr\u003e      name = string\u003cbr\u003e      url  = string\u003cbr\u003e    }), null)\u003cbr\u003e\u003cbr\u003e    policy = optional(object({\u003cbr\u003e      xml_content = optional(string, null)\u003cbr\u003e      xml_link    = optional(string, null)\u003cbr\u003e    }), null)\u003cbr\u003e\u003cbr\u003e    operations = optional(list(object({\u003cbr\u003e      operation_id = string\u003cbr\u003e      display_name = string\u003cbr\u003e      method       = string\u003cbr\u003e      url_template = string\u003cbr\u003e      description  = optional(string)\u003cbr\u003e    })))\u003cbr\u003e\u003cbr\u003e    operation_policies = optional(list(object({\u003cbr\u003e      operation_id = string\u003cbr\u003e      xml_content  = optional(string)\u003cbr\u003e      xml_link     = optional(string)\u003cbr\u003e    })))\u003cbr\u003e  }))\u003c/pre\u003e | `{}` | no |\n| \u003ca name=\"input_backends\"\u003e\u003c/a\u003e [backends](#input\\_backends) | A map of backend definitions to be created in the API Management Service. The key is the backend name and the value is the backend definition. | \u003cpre\u003emap(object({\u003cbr\u003e    url = string\u003cbr\u003e\u003cbr\u003e    description = optional(string, null)\u003cbr\u003e    title       = optional(string, null)\u003cbr\u003e    protocol    = optional(string, \"http\")\u003cbr\u003e\u003cbr\u003e    credentials = object({\u003cbr\u003e      authorization = optional(object({\u003cbr\u003e        scheme    = string\u003cbr\u003e        parameter = string\u003cbr\u003e      }), null)\u003cbr\u003e      certificate = optional(list(string), null)\u003cbr\u003e      query       = optional(map(string), null)\u003cbr\u003e      header      = optional(map(string), null)\u003cbr\u003e    })\u003cbr\u003e\u003cbr\u003e    proxy = optional(object({\u003cbr\u003e      url      = string\u003cbr\u003e      username = string\u003cbr\u003e      password = optional(string)\u003cbr\u003e    }), null)\u003cbr\u003e\u003cbr\u003e    service_fabric_cluster = optional(object({\u003cbr\u003e      client_certificate_thumbprint    = optional(string, null)\u003cbr\u003e      client_certificate_id            = optional(string, null)\u003cbr\u003e      management_endpoints             = list(string)\u003cbr\u003e      max_partition_resolution_retries = number\u003cbr\u003e      server_certificate_thumbprints   = optional(list(string), null)\u003cbr\u003e      server_x509_names = optional(list(object({\u003cbr\u003e        issuer_certificate_thumbprint = string\u003cbr\u003e        name                          = string\u003cbr\u003e      })), null)\u003cbr\u003e    }), null)\u003cbr\u003e\u003cbr\u003e    tls = optional(object({\u003cbr\u003e      validate_certificate_name  = optional(bool, true)\u003cbr\u003e      validate_certificate_chain = optional(bool, true)\u003cbr\u003e    }), null)\u003cbr\u003e\u003cbr\u003e    resource_id = optional(string, null)\u003cbr\u003e  }))\u003c/pre\u003e | `{}` | no |\n| \u003ca name=\"input_certificates\"\u003e\u003c/a\u003e [certificates](#input\\_certificates) | A map of certificate definitions to be created in the API Management Service. The key is the certificate name and the value is the certificate definition. | \u003cpre\u003emap(object({\u003cbr\u003e    data                         = optional(string, null)\u003cbr\u003e    password                     = optional(string, null)\u003cbr\u003e    key_vault_secret_id          = optional(string, null)\u003cbr\u003e    key_vault_identity_client_id = optional(string, null)\u003cbr\u003e  }))\u003c/pre\u003e | `{}` | no |\n| \u003ca name=\"input_diagnostics\"\u003e\u003c/a\u003e [diagnostics](#input\\_diagnostics) | A map of diagnostics definitions to be created in the API Management Service. The key is the diagnostic identifier and the value is the diagnostic definition. | \u003cpre\u003emap(object({\u003cbr\u003e    identifier                = string\u003cbr\u003e    logger_name               = string\u003cbr\u003e    api_name                  = optional(string, null)\u003cbr\u003e    always_log_errors         = optional(bool, false)\u003cbr\u003e    http_correlation_protocol = optional(string, \"W3C\")\u003cbr\u003e    operation_name_format     = optional(string, \"Name\")\u003cbr\u003e    log_client_ip             = optional(bool, false)\u003cbr\u003e    sampling_percentage       = optional(number, 100)\u003cbr\u003e    verbosity                 = optional(string, \"error\")\u003cbr\u003e    frontend_request = optional(object({\u003cbr\u003e      body_bytes     = optional(number, 0)\u003cbr\u003e      headers_to_log = optional(list(string), [])\u003cbr\u003e    }), {})\u003cbr\u003e    frontend_response = optional(object({\u003cbr\u003e      body_bytes     = optional(number, 0)\u003cbr\u003e      headers_to_log = optional(list(string), [])\u003cbr\u003e    }), {})\u003cbr\u003e    backend_request = optional(object({\u003cbr\u003e      body_bytes     = optional(number, 0)\u003cbr\u003e      headers_to_log = optional(list(string), [])\u003cbr\u003e    }), {})\u003cbr\u003e    backend_response = optional(object({\u003cbr\u003e      body_bytes     = optional(number, 0)\u003cbr\u003e      headers_to_log = optional(list(string), [])\u003cbr\u003e    }), {})\u003cbr\u003e  }))\u003c/pre\u003e | `{}` | no |\n| \u003ca name=\"input_loggers\"\u003e\u003c/a\u003e [loggers](#input\\_loggers) | A map of logger definitions to be created in the API Management Service. The key is the logger name and the value is the logger definition. | \u003cpre\u003emap(object({\u003cbr\u003e    description = optional(string, null)\u003cbr\u003e    buffered    = optional(bool, true)\u003cbr\u003e\u003cbr\u003e    application_insights = optional(object({\u003cbr\u003e      instrumentation_key = string\u003cbr\u003e    }), null)\u003cbr\u003e\u003cbr\u003e    eventhub = optional(object({\u003cbr\u003e      name                             = string\u003cbr\u003e      connection_string                = optional(string, null)\u003cbr\u003e      user_assigned_identity_client_id = optional(string, null)\u003cbr\u003e      endpoint_uri                     = optional(string, null)\u003cbr\u003e    }), null)\u003cbr\u003e  }))\u003c/pre\u003e | `{}` | no |\n| \u003ca name=\"input_named_values\"\u003e\u003c/a\u003e [named\\_values](#input\\_named\\_values) | A map of named value definitions to be created in the API Management Service. | \u003cpre\u003emap(object({\u003cbr\u003e    display_name = optional(string, null)\u003cbr\u003e    value        = optional(string, null)\u003cbr\u003e    secret       = optional(bool, false)\u003cbr\u003e    value_from_key_vault = optional(object({\u003cbr\u003e      secret_id          = string\u003cbr\u003e      identity_client_id = optional(string, null)\u003cbr\u003e    }), null)\u003cbr\u003e  }))\u003c/pre\u003e | `{}` | no |\n| \u003ca name=\"input_key_vaults\"\u003e\u003c/a\u003e [key\\_vaults](#input\\_key\\_vaults) | A map of Key Vaults that the API Management Service will be given read access to | `map(string)` | `{}` | no |\n| \u003ca name=\"input_identity_type\"\u003e\u003c/a\u003e [identity\\_type](#input\\_identity\\_type) | Type of Managed Service Identity that should be configured on this API Management Service | `string` | `\"SystemAssigned\"` | no |\n| \u003ca name=\"input_identity_ids\"\u003e\u003c/a\u003e [identity\\_ids](#input\\_identity\\_ids) | A list of IDs for User Assigned Managed Identity resources to be assigned. This is required when type is set to UserAssigned or SystemAssigned, UserAssigned. | `list(string)` | `[]` | no |\n| \u003ca name=\"input_dns_zone_suffix\"\u003e\u003c/a\u003e [dns\\_zone\\_suffix](#input\\_dns\\_zone\\_suffix) | The DNS Zone suffix for APIM private DNS Zone. Default is `azure-api.net` for Public Cloud\u003cbr\u003e    For gov cloud it may be different | `string` | `\"azure-api.net\"` | no |\n| \u003ca name=\"input_default_ttl\"\u003e\u003c/a\u003e [default\\_ttl](#input\\_default\\_ttl) | The default TTL for the DNS Zone | `number` | `300` | no |\n| \u003ca name=\"input_additional_vnet_links\"\u003e\u003c/a\u003e [additional\\_vnet\\_links](#input\\_additional\\_vnet\\_links) | A list of VNET IDs for which vnet links to be created with the private AKS cluster DNS Zone. Applicable only when network\\_type=Internal | `map(string)` | `{}` | no |\n| \u003ca name=\"input_tags\"\u003e\u003c/a\u003e [tags](#input\\_tags) | A mapping of tags to assign to the resource. | `map(string)` | `{}` | no |\n\n## Outputs\n\n| Name | Description |\n|------|-------------|\n| \u003ca name=\"output_api_management_name\"\u003e\u003c/a\u003e [api\\_management\\_name](#output\\_api\\_management\\_name) | The name of the API Management Service |\n| \u003ca name=\"output_api_management_id\"\u003e\u003c/a\u003e [api\\_management\\_id](#output\\_api\\_management\\_id) | The ID of the API Management Service |\n| \u003ca name=\"output_api_management_additional_location\"\u003e\u003c/a\u003e [api\\_management\\_additional\\_location](#output\\_api\\_management\\_additional\\_location) | Map listing gateway\\_regional\\_url and public\\_ip\\_addresses associated |\n| \u003ca name=\"output_api_management_gateway_url\"\u003e\u003c/a\u003e [api\\_management\\_gateway\\_url](#output\\_api\\_management\\_gateway\\_url) | The URL of the Gateway for the API Management Service |\n| \u003ca name=\"output_api_management_gateway_regional_url\"\u003e\u003c/a\u003e [api\\_management\\_gateway\\_regional\\_url](#output\\_api\\_management\\_gateway\\_regional\\_url) | The Region URL for the Gateway of the API Management Service |\n| \u003ca name=\"output_api_management_management_api_url\"\u003e\u003c/a\u003e [api\\_management\\_management\\_api\\_url](#output\\_api\\_management\\_management\\_api\\_url) | The URL for the Management API associated with this API Management service |\n| \u003ca name=\"output_api_management_portal_url\"\u003e\u003c/a\u003e [api\\_management\\_portal\\_url](#output\\_api\\_management\\_portal\\_url) | The URL for the Publisher Portal associated with this API Management service |\n| \u003ca name=\"output_api_management_public_ip_addresses\"\u003e\u003c/a\u003e [api\\_management\\_public\\_ip\\_addresses](#output\\_api\\_management\\_public\\_ip\\_addresses) | The Public IP addresses of the API Management Service |\n| \u003ca name=\"output_api_management_private_ip_addresses\"\u003e\u003c/a\u003e [api\\_management\\_private\\_ip\\_addresses](#output\\_api\\_management\\_private\\_ip\\_addresses) | The Private IP addresses of the API Management Service |\n| \u003ca name=\"output_api_management_scm_url\"\u003e\u003c/a\u003e [api\\_management\\_scm\\_url](#output\\_api\\_management\\_scm\\_url) | The URL for the SCM Endpoint associated with this API Management service |\n| \u003ca name=\"output_api_management_identity\"\u003e\u003c/a\u003e [api\\_management\\_identity](#output\\_api\\_management\\_identity) | The identity of the API Management |\n| \u003ca name=\"output_public_ip_address\"\u003e\u003c/a\u003e [public\\_ip\\_address](#output\\_public\\_ip\\_address) | n/a |\n| \u003ca name=\"output_resource_group_name\"\u003e\u003c/a\u003e [resource\\_group\\_name](#output\\_resource\\_group\\_name) | n/a |\n| \u003ca name=\"output_api_management_apis\"\u003e\u003c/a\u003e [api\\_management\\_apis](#output\\_api\\_management\\_apis) | List of APIs created in the API Management Service |\n| \u003ca name=\"output_api_management_backends\"\u003e\u003c/a\u003e [api\\_management\\_backends](#output\\_api\\_management\\_backends) | List of backends created in the API Management Service |\n| \u003ca name=\"output_api_management_certificates\"\u003e\u003c/a\u003e [api\\_management\\_certificates](#output\\_api\\_management\\_certificates) | List of certificates created in the API Management Service |\n| \u003ca name=\"output_api_management_diagnostics\"\u003e\u003c/a\u003e [api\\_management\\_diagnostics](#output\\_api\\_management\\_diagnostics) | List of diagnostics created in the API Management Service |\n| \u003ca name=\"output_api_management_loggers\"\u003e\u003c/a\u003e [api\\_management\\_loggers](#output\\_api\\_management\\_loggers) | List of loggers created in the API Management Service |\n\u003c!-- END_TF_DOCS --\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flaunchbynttdata%2Ftf-azurerm-module_reference-api_management","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flaunchbynttdata%2Ftf-azurerm-module_reference-api_management","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flaunchbynttdata%2Ftf-azurerm-module_reference-api_management/lists"}