# Google Apigee Organization Module This module allows managing a single Apigee organization and its environments and environmentgroups. ## Examples ### Apigee X Evaluation Organization ```hcl module "apigee-organization" { source = "./fabric/modules/apigee-organization" project_id = "my-project" analytics_region = "us-central1" runtime_type = "CLOUD" authorized_network = "my-vpc" apigee_environments = { eval1 = { api_proxy_type = "PROGRAMMABLE" deployment_type = "PROXY" } eval2 = { api_proxy_type = "CONFIGURABLE" deployment_type = "ARCHIVE" } } apigee_envgroups = { eval = { environments = [ "eval1", "eval2" ] hostnames = [ "eval.api.example.com" ] } } } # tftest modules=1 resources=6 ``` ### Apigee X Paid Organization ```hcl module "apigee-organization" { source = "./fabric/modules/apigee-organization" project_id = "my-project" analytics_region = "us-central1" runtime_type = "CLOUD" authorized_network = "my-vpc" database_encryption_key = "my-data-key" apigee_environments = { dev1 = { api_proxy_type = "PROGRAMMABLE" deployment_type = "PROXY" } dev2 = { api_proxy_type = "CONFIGURABLE" deployment_type = "ARCHIVE" } test1 = {} test2 = {} } apigee_envgroups = { dev = { environments = [ "dev1", "dev2" ] hostnames = [ "dev.api.example.com" ] } test = { environments = [ "test1", "test2" ] hostnames = [ "test.api.example.com" ] } } } # tftest modules=1 resources=11 ``` ### Apigee hybrid Organization ```hcl module "apigee-organization" { source = "./fabric/modules/apigee-organization" project_id = "my-project" analytics_region = "us-central1" runtime_type = "HYBRID" apigee_environments = { eval1 = { api_proxy_type = "PROGRAMMABLE" deployment_type = "PROXY" } eval2 = {} } apigee_envgroups = { eval = { environments = [ "eval1", "eval2" ] hostnames = [ "eval.api.example.com" ] } } } # tftest modules=1 resources=6 ``` ## Variables | name | description | type | required | default | |---|---|:---:|:---:|:---:| | [analytics_region](variables.tf#L17) | Analytics Region for the Apigee Organization (immutable). See https://cloud.google.com/apigee/docs/api-platform/get-started/install-cli. | string | ✓ | | | [project_id](variables.tf#L72) | Project ID to host this Apigee organization (will also become the Apigee Org name). | string | ✓ | | | [runtime_type](variables.tf#L77) | Apigee runtime type. Must be `CLOUD` or `HYBRID`. | string | ✓ | | | [apigee_envgroups](variables.tf#L22) | Apigee Environment Groups. | map(object({…})) | | {} | | [apigee_environments](variables.tf#L31) | Apigee Environment Names. | map(object({…})) | | {} | | [authorized_network](variables.tf#L48) | VPC network self link (requires service network peering enabled (Used in Apigee X only). | string | | null | | [billing_type](variables.tf#L86) | Billing type of the Apigee organization. | string | | null | | [database_encryption_key](variables.tf#L54) | Cloud KMS key self link (e.g. `projects/foo/locations/us/keyRings/bar/cryptoKeys/baz`) used for encrypting the data that is stored and replicated across runtime instances (immutable, used in Apigee X only). | string | | null | | [description](variables.tf#L60) | Description of the Apigee Organization. | string | | "Apigee Organization created by tf module" | | [display_name](variables.tf#L66) | Display Name of the Apigee Organization. | string | | null | ## Outputs | name | description | sensitive | |---|---|:---:| | [envs](outputs.tf#L17) | Apigee Environments. | | | [org](outputs.tf#L22) | Apigee Organization. | | | [org_ca_certificate](outputs.tf#L27) | Apigee organization CA certificate. | | | [org_id](outputs.tf#L32) | Apigee Organization ID. | | | [subscription_type](outputs.tf#L37) | Apigee subscription type. | |