diff --git a/.github/workflows/lint.yaml b/.github/workflows/lint.yaml index d355114..ef3d95b 100644 --- a/.github/workflows/lint.yaml +++ b/.github/workflows/lint.yaml @@ -44,5 +44,11 @@ jobs: REGISTRY=$(grep "REGISTRY_URL := " $MAKEFILE | cut -d\ -f3) echo dev-tools=${REGISTRY}/${IMAGE}:${VERSION} >> "$GITHUB_OUTPUT" fi - - run: docker run --rm -v ${{ github.workspace }}:/workspace ${{ steps.variables.outputs.dev-tools }} module-swapper - - run: docker run --rm -v ${{ github.workspace }}:/workspace ${{ steps.variables.outputs.dev-tools }} /usr/local/bin/test_lint.sh + - run: docker run --rm -e ENABLE_BPMETADATA -v ${{ github.workspace }}:/workspace ${{ steps.variables.outputs.dev-tools }} module-swapper + env: + ENABLE_BPMETADATA: 1 + + - run: docker run --rm -e ENABLE_BPMETADATA -v ${{ github.workspace }}:/workspace ${{ steps.variables.outputs.dev-tools }} /usr/local/bin/test_lint.sh + env: + ENABLE_BPMETADATA: 1 + diff --git a/Makefile b/Makefile index ba8f87b..89fd9ac 100644 --- a/Makefile +++ b/Makefile @@ -18,7 +18,7 @@ # Make will use bash instead of sh SHELL := /usr/bin/env bash -DOCKER_TAG_VERSION_DEVELOPER_TOOLS := 1.22 +DOCKER_TAG_VERSION_DEVELOPER_TOOLS := 1.23 DOCKER_IMAGE_DEVELOPER_TOOLS := cft/developer-tools REGISTRY_URL := gcr.io/cloud-foundation-cicd diff --git a/README.md b/README.md index de1c357..8cc479f 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ This Terraform module makes it easier to manage [organization policies](https://cloud.google.com/resource-manager/docs/organization-policy/overview) for your Google Cloud environment, particularly when you want to have exclusion rules. This module will allow you to set a top-level org policy and then disable it on individual projects or folders easily. ## Compatibility -This module is meant for use with Terraform 0.13+ and tested using Terraform 1.0+. If you find incompatibilities using Terraform >=0.13, please open an issue. +This module is meant for use with Terraform 1.3+ and tested using Terraform 1.10+. If you find incompatibilities using Terraform >=1.3, please open an issue. If you haven't [upgraded](https://www.terraform.io/upgrade-guides/0-13.html) and need a Terraform 0.12.x-compatible version of this module, the last released version @@ -79,20 +79,20 @@ No outputs. ## Requirements ### Terraform plugins -- [Terraform](https://www.terraform.io/downloads.html) >= 0.13.0 -- [terraform-provider-google](https://github.com/terraform-providers/terraform-provider-google) >= v2.5.0 +- [Terraform](https://www.terraform.io/downloads.html) >= 1.3 +- [terraform-provider-google](https://github.com/terraform-providers/terraform-provider-google) >= v3.53 ### Permissions In order to execute this module, the Service Account you run as must have the **Organization Policy Administrator** (`roles/orgpolicy.PolicyAdmin`) role. ## Install ### Terraform -Be sure you have the correct Terraform version (0.12.x), you can choose the binary here: +Be sure you have the correct Terraform version (>= 1.3.x), you can choose the binary here: - https://releases.hashicorp.com/terraform/ ### Terraform plugins -- [terraform-provider-google](https://github.com/terraform-providers/terraform-provider-google) >= v2.5.0 +- [terraform-provider-google](https://github.com/terraform-providers/terraform-provider-google) >= v3.53 ### Fast install (optional) diff --git a/build/int.cloudbuild.yaml b/build/int.cloudbuild.yaml index fe4168f..ee406c4 100644 --- a/build/int.cloudbuild.yaml +++ b/build/int.cloudbuild.yaml @@ -53,7 +53,7 @@ steps: # Boolean Org Enforce Example Test - id: create all waitFor: - - sleep + - create name: 'gcr.io/cloud-foundation-cicd/$_DOCKER_IMAGE_DEVELOPER_TOOLS:$_DOCKER_TAG_VERSION_DEVELOPER_TOOLS' args: ['/bin/bash', '-c', 'cft test run TestVersion2BooleanOrgEnforce --test-dir test/integration --stage init --verbose'] - id: converge org-policy-v2 @@ -76,4 +76,4 @@ tags: - 'integration' substitutions: _DOCKER_IMAGE_DEVELOPER_TOOLS: 'cft/developer-tools' - _DOCKER_TAG_VERSION_DEVELOPER_TOOLS: '1.22' + _DOCKER_TAG_VERSION_DEVELOPER_TOOLS: '1.23' diff --git a/build/lint.cloudbuild.yaml b/build/lint.cloudbuild.yaml index 1d73f05..cc8dddf 100644 --- a/build/lint.cloudbuild.yaml +++ b/build/lint.cloudbuild.yaml @@ -21,4 +21,4 @@ tags: - 'lint' substitutions: _DOCKER_IMAGE_DEVELOPER_TOOLS: 'cft/developer-tools' - _DOCKER_TAG_VERSION_DEVELOPER_TOOLS: '1.22' + _DOCKER_TAG_VERSION_DEVELOPER_TOOLS: '1.23' diff --git a/metadata.yaml b/metadata.yaml index 85f4419..fd0b049 100644 --- a/metadata.yaml +++ b/metadata.yaml @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2022-2024 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -19,109 +19,108 @@ metadata: annotations: config.kubernetes.io/local-config: "true" spec: - title: Google Cloud Organization Policy Terraform Module - source: - repo: https://github.com/terraform-google-modules/terraform-google-org-policy.git - sourceType: git - version: 5.4.0 - actuationTool: - type: Terraform - version: '>= 0.13' - subBlueprints: - - name: bucket_policy_only - location: modules/bucket_policy_only - - name: domain_restricted_sharing - location: modules/domain_restricted_sharing - - name: org_policy_v2 - location: modules/org_policy_v2 - - name: restrict_vm_external_ips - location: modules/restrict_vm_external_ips - - name: skip_default_network - location: modules/skip_default_network - examples: - - name: basic_org_policies - location: examples/basic_org_policies - - name: boolean_org_exclude - location: examples/boolean_org_exclude - - name: boolean_project_allow - location: examples/boolean_project_allow - - name: list_folder_deny - location: examples/list_folder_deny - - name: list_org_exclude - location: examples/list_org_exclude - - name: v2_boolean_org_enforce - location: examples/v2_boolean_org_enforce - variables: - - name: allow - description: (Only for list constraints) List of values which should be allowed - type: list(string) - default: - - "" - required: false - - name: allow_list_length - description: The number of elements in the allow list - type: number - default: 0 - required: false - - name: constraint - description: The constraint to be applied - type: string - required: true - - name: deny - description: (Only for list constraints) List of values which should be denied - type: list(string) - default: - - "" - required: false - - name: deny_list_length - description: The number of elements in the deny list - type: number - default: 0 - required: false - - name: enforce - description: If boolean constraint, whether the policy is enforced at the root; if list constraint, whether to deny all (true) or allow all - type: bool - required: false - - name: exclude_folders - description: Set of folders to exclude from the policy - type: set(string) - default: [] - required: false - - name: exclude_projects - description: Set of projects to exclude from the policy - type: set(string) - default: [] - required: false - - name: folder_id - description: The folder id for putting the policy - type: string - required: false - - name: organization_id - description: The organization id for putting the policy - type: string - required: false - - name: policy_for - description: 'Resource hierarchy node to apply the policy to: can be one of `organization`, `folder`, or `project`.' - type: string - required: true - - name: policy_type - description: The constraint type to work with (either 'boolean' or 'list') - type: string - default: list - required: false - - name: project_id - description: The project id for putting the policy - type: string - required: false - roles: - - level: Project + info: + title: Google Cloud Organization Policy Terraform Module + source: + repo: https://github.com/terraform-google-modules/terraform-google-org-policy.git + sourceType: git + version: 5.4.0 + actuationTool: + flavor: Terraform + version: ">= 1.3" + description: {} + content: + subBlueprints: + - name: bucket_policy_only + location: modules/bucket_policy_only + - name: domain_restricted_sharing + location: modules/domain_restricted_sharing + - name: org_policy_v2 + location: modules/org_policy_v2 + - name: restrict_vm_external_ips + location: modules/restrict_vm_external_ips + - name: skip_default_network + location: modules/skip_default_network + examples: + - name: basic_org_policies + location: examples/basic_org_policies + - name: boolean_org_exclude + location: examples/boolean_org_exclude + - name: boolean_project_allow + location: examples/boolean_project_allow + - name: list_folder_deny + location: examples/list_folder_deny + - name: list_org_exclude + location: examples/list_org_exclude + - name: v2_boolean_org_enforce + location: examples/v2_boolean_org_enforce + interfaces: + variables: + - name: policy_for + description: "Resource hierarchy node to apply the policy to: can be one of `organization`, `folder`, or `project`." + varType: string + required: true + - name: organization_id + description: The organization id for putting the policy + varType: string + - name: folder_id + description: The folder id for putting the policy + varType: string + - name: project_id + description: The project id for putting the policy + varType: string + - name: enforce + description: If boolean constraint, whether the policy is enforced at the root; if list constraint, whether to deny all (true) or allow all + varType: bool + - name: allow + description: (Only for list constraints) List of values which should be allowed + varType: list(string) + defaultValue: + - "" + - name: deny + description: (Only for list constraints) List of values which should be denied + varType: list(string) + defaultValue: + - "" + - name: exclude_folders + description: Set of folders to exclude from the policy + varType: set(string) + defaultValue: [] + - name: exclude_projects + description: Set of projects to exclude from the policy + varType: set(string) + defaultValue: [] + - name: constraint + description: The constraint to be applied + varType: string + required: true + - name: policy_type + description: The constraint type to work with (either 'boolean' or 'list') + varType: string + defaultValue: list + - name: allow_list_length + description: The number of elements in the allow list + varType: number + defaultValue: 0 + - name: deny_list_length + description: The number of elements in the deny list + varType: number + defaultValue: 0 + requirements: roles: - - roles/orgpolicy.policyAdmin - - level: Project - roles: - - roles/owner - services: - - cloudresourcemanager.googleapis.com - - storage-api.googleapis.com - - serviceusage.googleapis.com - - orgpolicy.googleapis.com + - level: Project + roles: + - roles/orgpolicy.policyAdmin + - level: Project + roles: + - roles/owner + services: + - cloudresourcemanager.googleapis.com + - storage-api.googleapis.com + - serviceusage.googleapis.com + - orgpolicy.googleapis.com + providerVersions: + - source: hashicorp/google + version: ">= 3.53, < 7" + - source: hashicorp/null + version: ">= 2.1" diff --git a/modules/bucket_policy_only/metadata.yaml b/modules/bucket_policy_only/metadata.yaml index 672accf..7f19fb3 100644 --- a/modules/bucket_policy_only/metadata.yaml +++ b/modules/bucket_policy_only/metadata.yaml @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2022-2024 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -19,63 +19,67 @@ metadata: annotations: config.kubernetes.io/local-config: "true" spec: - title: Bucket Policy Only Module - source: - repo: https://github.com/terraform-google-modules/terraform-google-org-policy.git - sourceType: git - version: 5.4.0 - actuationTool: - type: Terraform - version: '>= 0.13' - examples: - - name: basic_org_policies - location: examples/basic_org_policies - - name: boolean_org_exclude - location: examples/boolean_org_exclude - - name: boolean_project_allow - location: examples/boolean_project_allow - - name: list_folder_deny - location: examples/list_folder_deny - - name: list_org_exclude - location: examples/list_org_exclude - - name: v2_boolean_org_enforce - location: examples/v2_boolean_org_enforce - variables: - - name: exclude_folders - description: Set of folders to exclude from the policy - type: set(string) - default: [] - required: false - - name: exclude_projects - description: Set of projects to exclude from the policy - type: set(string) - default: [] - required: false - - name: folder_id - description: The folder id for putting the policy - type: string - required: false - - name: organization_id - description: The organization id for putting the policy - type: string - required: false - - name: policy_for - description: 'Resource hierarchy node to apply the policy to: can be one of `organization`, `folder`, or `project`.' - type: string - required: true - - name: project_id - description: The project id for putting the policy - type: string - required: false - roles: - - level: Project + info: + title: Bucket Policy Only Module + source: + repo: https://github.com/terraform-google-modules/terraform-google-org-policy.git + sourceType: git + dir: /modules/bucket_policy_only + version: 5.4.0 + actuationTool: + flavor: Terraform + version: ">= 1.3" + description: {} + content: + examples: + - name: basic_org_policies + location: examples/basic_org_policies + - name: boolean_org_exclude + location: examples/boolean_org_exclude + - name: boolean_project_allow + location: examples/boolean_project_allow + - name: list_folder_deny + location: examples/list_folder_deny + - name: list_org_exclude + location: examples/list_org_exclude + - name: v2_boolean_org_enforce + location: examples/v2_boolean_org_enforce + interfaces: + variables: + - name: policy_for + description: "Resource hierarchy node to apply the policy to: can be one of `organization`, `folder`, or `project`." + varType: string + required: true + - name: organization_id + description: The organization id for putting the policy + varType: string + - name: folder_id + description: The folder id for putting the policy + varType: string + - name: project_id + description: The project id for putting the policy + varType: string + - name: exclude_folders + description: Set of folders to exclude from the policy + varType: set(string) + defaultValue: [] + - name: exclude_projects + description: Set of projects to exclude from the policy + varType: set(string) + defaultValue: [] + requirements: roles: - - roles/owner - - level: Project - roles: - - roles/orgpolicy.policyAdmin - services: - - cloudresourcemanager.googleapis.com - - storage-api.googleapis.com - - serviceusage.googleapis.com - - orgpolicy.googleapis.com + - level: Project + roles: + - roles/orgpolicy.policyAdmin + - level: Project + roles: + - roles/owner + services: + - cloudresourcemanager.googleapis.com + - storage-api.googleapis.com + - serviceusage.googleapis.com + - orgpolicy.googleapis.com + providerVersions: + - source: hashicorp/google + version: ">= 3.53, < 7" diff --git a/modules/bucket_policy_only/versions.tf b/modules/bucket_policy_only/versions.tf index 2e752cd..7e5649c 100644 --- a/modules/bucket_policy_only/versions.tf +++ b/modules/bucket_policy_only/versions.tf @@ -15,7 +15,7 @@ */ terraform { - required_version = ">= 0.13" + required_version = ">= 1.3" required_providers { google = { diff --git a/modules/domain_restricted_sharing/metadata.yaml b/modules/domain_restricted_sharing/metadata.yaml index 66ebee5..6ffa5f9 100644 --- a/modules/domain_restricted_sharing/metadata.yaml +++ b/modules/domain_restricted_sharing/metadata.yaml @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2022-2024 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -19,67 +19,71 @@ metadata: annotations: config.kubernetes.io/local-config: "true" spec: - title: Domain Restricted Sharing Module - source: - repo: https://github.com/terraform-google-modules/terraform-google-org-policy.git - sourceType: git - version: 5.4.0 - actuationTool: - type: Terraform - version: '>= 0.13' - examples: - - name: basic_org_policies - location: examples/basic_org_policies - - name: boolean_org_exclude - location: examples/boolean_org_exclude - - name: boolean_project_allow - location: examples/boolean_project_allow - - name: list_folder_deny - location: examples/list_folder_deny - - name: list_org_exclude - location: examples/list_org_exclude - - name: v2_boolean_org_enforce - location: examples/v2_boolean_org_enforce - variables: - - name: domains_to_allow - description: The list of domains to allow users from - type: list(string) - required: true - - name: exclude_folders - description: Set of folders to exclude from the policy - type: set(string) - default: [] - required: false - - name: exclude_projects - description: Set of projects to exclude from the policy - type: set(string) - default: [] - required: false - - name: folder_id - description: The folder id for putting the policy - type: string - required: false - - name: organization_id - description: The organization id for putting the policy - type: string - required: false - - name: policy_for - description: 'Resource hierarchy node to apply the policy to: can be one of `organization`, `folder`, or `project`.' - type: string - required: true - - name: project_id - description: The project id for putting the policy - type: string - required: false - roles: - - level: Project + info: + title: Domain Restricted Sharing Module + source: + repo: https://github.com/terraform-google-modules/terraform-google-org-policy.git + sourceType: git + dir: /modules/domain_restricted_sharing + version: 5.4.0 + actuationTool: + flavor: Terraform + version: ">= 1.3" + description: {} + content: + examples: + - name: basic_org_policies + location: examples/basic_org_policies + - name: boolean_org_exclude + location: examples/boolean_org_exclude + - name: boolean_project_allow + location: examples/boolean_project_allow + - name: list_folder_deny + location: examples/list_folder_deny + - name: list_org_exclude + location: examples/list_org_exclude + - name: v2_boolean_org_enforce + location: examples/v2_boolean_org_enforce + interfaces: + variables: + - name: policy_for + description: "Resource hierarchy node to apply the policy to: can be one of `organization`, `folder`, or `project`." + varType: string + required: true + - name: organization_id + description: The organization id for putting the policy + varType: string + - name: folder_id + description: The folder id for putting the policy + varType: string + - name: project_id + description: The project id for putting the policy + varType: string + - name: domains_to_allow + description: The list of domains to allow users from + varType: list(string) + required: true + - name: exclude_folders + description: Set of folders to exclude from the policy + varType: set(string) + defaultValue: [] + - name: exclude_projects + description: Set of projects to exclude from the policy + varType: set(string) + defaultValue: [] + requirements: roles: - - roles/owner - - level: Project - roles: - - roles/orgpolicy.policyAdmin - services: - - cloudresourcemanager.googleapis.com - - storage-api.googleapis.com - - serviceusage.googleapis.com - - orgpolicy.googleapis.com + - level: Project + roles: + - roles/orgpolicy.policyAdmin + - level: Project + roles: + - roles/owner + services: + - cloudresourcemanager.googleapis.com + - storage-api.googleapis.com + - serviceusage.googleapis.com + - orgpolicy.googleapis.com + providerVersions: + - source: hashicorp/google + version: ">= 3.53, < 7" diff --git a/modules/domain_restricted_sharing/versions.tf b/modules/domain_restricted_sharing/versions.tf index 15a0ae0..900e073 100644 --- a/modules/domain_restricted_sharing/versions.tf +++ b/modules/domain_restricted_sharing/versions.tf @@ -15,7 +15,7 @@ */ terraform { - required_version = ">= 0.13" + required_version = ">= 1.3" required_providers { google = { diff --git a/modules/org_policy_v2/README.md b/modules/org_policy_v2/README.md index 4e44c81..abd8f35 100644 --- a/modules/org_policy_v2/README.md +++ b/modules/org_policy_v2/README.md @@ -117,7 +117,7 @@ To control module's behavior, change variables' values regarding the following: | policy\_root | Resource hierarchy node to apply the policy to: can be one of `organization`, `folder`, or `project`. | `string` | `"organization"` | no | | policy\_root\_id | The policy root id, either of organization\_id, folder\_id or project\_id | `string` | `null` | no | | policy\_type | The constraint type to work with (either 'boolean' or 'list') | `string` | `"list"` | no | -| rules | List of rules per policy. Up to 10. |
list(object(
{
enforcement = bool
allow = optional(list(string), [])
deny = optional(list(string), [])
conditions = optional(list(object(
{
description = string
expression = string
title = string
location = string
}
)), [])
}
))
| n/a | yes | +| rules | List of rules per policy. |
list(object(
{
enforcement = bool
allow = optional(list(string), [])
deny = optional(list(string), [])
conditions = optional(list(object(
{
description = string
expression = string
title = string
location = string
}
)), [])
}
))
| n/a | yes | ## Outputs diff --git a/modules/org_policy_v2/metadata.yaml b/modules/org_policy_v2/metadata.yaml index dc41975..40d3c4d 100644 --- a/modules/org_policy_v2/metadata.yaml +++ b/modules/org_policy_v2/metadata.yaml @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2022-2024 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -19,76 +19,99 @@ metadata: annotations: config.kubernetes.io/local-config: "true" spec: - title: Google Cloud Organization Policy v2 Terraform Module - source: - repo: https://github.com/terraform-google-modules/terraform-google-org-policy.git - sourceType: git - version: 5.4.0 - actuationTool: - type: Terraform - version: '>= 0.13' - examples: - - name: basic_org_policies - location: examples/basic_org_policies - - name: boolean_org_exclude - location: examples/boolean_org_exclude - - name: boolean_project_allow - location: examples/boolean_project_allow - - name: list_folder_deny - location: examples/list_folder_deny - - name: list_org_exclude - location: examples/list_org_exclude - - name: v2_boolean_org_enforce - location: examples/v2_boolean_org_enforce - variables: - - name: constraint - description: The constraint to be applied - type: string - required: true - - name: exclude_folders - description: Set of folders to exclude from the policy - type: set(string) - default: [] - required: false - - name: exclude_projects - description: Set of projects to exclude from the policy - type: set(string) - default: [] - required: false - - name: policy_root - description: 'Resource hierarchy node to apply the policy to: can be one of `organization`, `folder`, or `project`.' - type: string - default: organization - required: false - - name: policy_root_id - description: The policy root id, either of organization_id, folder_id or project_id - type: string - required: false - - name: policy_type - description: The constraint type to work with (either 'boolean' or 'list') - type: string - default: list - required: false - - name: rules - description: List of rules per policy. Upto 10. - type: list(any) - required: true - outputs: - - name: constraint - description: Policy Constraint Identifier without constraints/ prefix - - name: policy_root - description: Policy Root in the hierarchy for the given policy - - name: policy_root_id - description: Project Root ID at which the policy is applied - roles: - - level: Project + info: + title: Google Cloud Organization Policy v2 Terraform Module + source: + repo: https://github.com/terraform-google-modules/terraform-google-org-policy.git + sourceType: git + dir: /modules/org_policy_v2 + version: 5.4.0 + actuationTool: + flavor: Terraform + version: ">= 1.3" + description: {} + content: + examples: + - name: basic_org_policies + location: examples/basic_org_policies + - name: boolean_org_exclude + location: examples/boolean_org_exclude + - name: boolean_project_allow + location: examples/boolean_project_allow + - name: list_folder_deny + location: examples/list_folder_deny + - name: list_org_exclude + location: examples/list_org_exclude + - name: v2_boolean_org_enforce + location: examples/v2_boolean_org_enforce + interfaces: + variables: + - name: policy_root + description: "Resource hierarchy node to apply the policy to: can be one of `organization`, `folder`, or `project`." + varType: string + defaultValue: organization + - name: policy_root_id + description: The policy root id, either of organization_id, folder_id or project_id + varType: string + - name: exclude_folders + description: Set of folders to exclude from the policy + varType: set(string) + defaultValue: [] + - name: exclude_projects + description: Set of projects to exclude from the policy + varType: set(string) + defaultValue: [] + - name: constraint + description: The constraint to be applied + varType: string + required: true + - name: policy_type + description: The constraint type to work with (either 'boolean' or 'list') + varType: string + defaultValue: list + - name: inherit_from_parent + description: Determines the inheritance behavior for this policy (only supported on list constraints) + varType: bool + defaultValue: "false" + - name: rules + description: List of rules per policy. + varType: |- + list(object( + { + enforcement = bool + allow = optional(list(string), []) + deny = optional(list(string), []) + conditions = optional(list(object( + { + description = string + expression = string + title = string + location = string + } + )), []) + } + )) + required: true + outputs: + - name: constraint + description: Policy Constraint Identifier without constraints/ prefix + - name: policy_root + description: Policy Root in the hierarchy for the given policy + - name: policy_root_id + description: Project Root ID at which the policy is applied + requirements: roles: - - roles/owner - - level: Project - roles: - - roles/orgpolicy.policyAdmin - services: - - cloudresourcemanager.googleapis.com - - storage-api.googleapis.com - - serviceusage.googleapis.com - - orgpolicy.googleapis.com + - level: Project + roles: + - roles/orgpolicy.policyAdmin + - level: Project + roles: + - roles/owner + services: + - cloudresourcemanager.googleapis.com + - storage-api.googleapis.com + - serviceusage.googleapis.com + - orgpolicy.googleapis.com + providerVersions: + - source: hashicorp/google + version: ">= 3.53, < 7" diff --git a/modules/org_policy_v2/variables.tf b/modules/org_policy_v2/variables.tf index 73af8ca..3c901cf 100644 --- a/modules/org_policy_v2/variables.tf +++ b/modules/org_policy_v2/variables.tf @@ -60,7 +60,7 @@ variable "inherit_from_parent" { } variable "rules" { - description = "List of rules per policy. Up to 10." + description = "List of rules per policy." type = list(object( { enforcement = bool diff --git a/modules/restrict_vm_external_ips/metadata.yaml b/modules/restrict_vm_external_ips/metadata.yaml index b33e465..5b0c650 100644 --- a/modules/restrict_vm_external_ips/metadata.yaml +++ b/modules/restrict_vm_external_ips/metadata.yaml @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2022-2024 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -19,68 +19,71 @@ metadata: annotations: config.kubernetes.io/local-config: "true" spec: - title: Allowed External IPs for VM instances Module - source: - repo: https://github.com/terraform-google-modules/terraform-google-org-policy.git - sourceType: git - version: 5.4.0 - actuationTool: - type: Terraform - version: '>= 0.13' - examples: - - name: basic_org_policies - location: examples/basic_org_policies - - name: boolean_org_exclude - location: examples/boolean_org_exclude - - name: boolean_project_allow - location: examples/boolean_project_allow - - name: list_folder_deny - location: examples/list_folder_deny - - name: list_org_exclude - location: examples/list_org_exclude - - name: v2_boolean_org_enforce - location: examples/v2_boolean_org_enforce - variables: - - name: exclude_folders - description: Set of folders to exclude from the policy - type: set(string) - default: [] - required: false - - name: exclude_projects - description: Set of projects to exclude from the policy - type: set(string) - default: [] - required: false - - name: folder_id - description: The folder id for putting the policy - type: string - required: false - - name: organization_id - description: The organization id for putting the policy - type: string - required: false - - name: policy_for - description: 'Resource hierarchy node to apply the policy to: can be one of `organization`, `folder`, or `project`.' - type: string - required: true - - name: project_id - description: The project id for putting the policy - type: string - required: false - - name: vms_to_allow - description: 'The list of VMs are allowed to use external IP, every element of the list must be identified by the VM instance name, in the form: projects/PROJECT_ID/zones/ZONE/instances/INSTANCE' - type: list(string) - default: [] - required: false - roles: - - level: Project + info: + title: Allowed External IPs for VM instances Module + source: + repo: https://github.com/terraform-google-modules/terraform-google-org-policy.git + sourceType: git + dir: /modules/restrict_vm_external_ips + version: 5.4.0 + actuationTool: + flavor: Terraform + version: ">= 1.3" + description: {} + content: + examples: + - name: basic_org_policies + location: examples/basic_org_policies + - name: boolean_org_exclude + location: examples/boolean_org_exclude + - name: boolean_project_allow + location: examples/boolean_project_allow + - name: list_folder_deny + location: examples/list_folder_deny + - name: list_org_exclude + location: examples/list_org_exclude + - name: v2_boolean_org_enforce + location: examples/v2_boolean_org_enforce + interfaces: + variables: + - name: policy_for + description: "Resource hierarchy node to apply the policy to: can be one of `organization`, `folder`, or `project`." + varType: string + required: true + - name: organization_id + description: The organization id for putting the policy + varType: string + - name: folder_id + description: The folder id for putting the policy + varType: string + - name: project_id + description: The project id for putting the policy + varType: string + - name: vms_to_allow + description: "The list of VMs are allowed to use external IP, every element of the list must be identified by the VM instance name, in the form: projects/PROJECT_ID/zones/ZONE/instances/INSTANCE" + varType: list(string) + defaultValue: [] + - name: exclude_folders + description: Set of folders to exclude from the policy + varType: set(string) + defaultValue: [] + - name: exclude_projects + description: Set of projects to exclude from the policy + varType: set(string) + defaultValue: [] + requirements: roles: - - roles/owner - - level: Project - roles: - - roles/orgpolicy.policyAdmin - services: - - cloudresourcemanager.googleapis.com - - storage-api.googleapis.com - - serviceusage.googleapis.com - - orgpolicy.googleapis.com + - level: Project + roles: + - roles/orgpolicy.policyAdmin + - level: Project + roles: + - roles/owner + services: + - cloudresourcemanager.googleapis.com + - storage-api.googleapis.com + - serviceusage.googleapis.com + - orgpolicy.googleapis.com + providerVersions: + - source: hashicorp/google + version: ">= 3.53, < 7" diff --git a/modules/restrict_vm_external_ips/versions.tf b/modules/restrict_vm_external_ips/versions.tf index 0942de3..521dca4 100644 --- a/modules/restrict_vm_external_ips/versions.tf +++ b/modules/restrict_vm_external_ips/versions.tf @@ -15,7 +15,7 @@ */ terraform { - required_version = ">= 0.13" + required_version = ">= 1.3" required_providers { google = { diff --git a/modules/skip_default_network/metadata.yaml b/modules/skip_default_network/metadata.yaml index 6563ab7..3b22a2a 100644 --- a/modules/skip_default_network/metadata.yaml +++ b/modules/skip_default_network/metadata.yaml @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2022-2024 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -19,63 +19,67 @@ metadata: annotations: config.kubernetes.io/local-config: "true" spec: - title: Skip Default Network Creation Module - source: - repo: https://github.com/terraform-google-modules/terraform-google-org-policy.git - sourceType: git - version: 5.4.0 - actuationTool: - type: Terraform - version: '>= 0.13' - examples: - - name: basic_org_policies - location: examples/basic_org_policies - - name: boolean_org_exclude - location: examples/boolean_org_exclude - - name: boolean_project_allow - location: examples/boolean_project_allow - - name: list_folder_deny - location: examples/list_folder_deny - - name: list_org_exclude - location: examples/list_org_exclude - - name: v2_boolean_org_enforce - location: examples/v2_boolean_org_enforce - variables: - - name: exclude_folders - description: Set of folders to exclude from the policy - type: set(string) - default: [] - required: false - - name: exclude_projects - description: Set of projects to exclude from the policy - type: set(string) - default: [] - required: false - - name: folder_id - description: The folder id for putting the policy - type: string - required: false - - name: organization_id - description: The organization id for putting the policy - type: string - required: false - - name: policy_for - description: 'Resource hierarchy node to apply the policy to: can be one of `organization`, `folder`, or `project`.' - type: string - required: true - - name: project_id - description: The project id for putting the policy - type: string - required: false - roles: - - level: Project + info: + title: Skip Default Network Creation Module + source: + repo: https://github.com/terraform-google-modules/terraform-google-org-policy.git + sourceType: git + dir: /modules/skip_default_network + version: 5.4.0 + actuationTool: + flavor: Terraform + version: ">= 1.3" + description: {} + content: + examples: + - name: basic_org_policies + location: examples/basic_org_policies + - name: boolean_org_exclude + location: examples/boolean_org_exclude + - name: boolean_project_allow + location: examples/boolean_project_allow + - name: list_folder_deny + location: examples/list_folder_deny + - name: list_org_exclude + location: examples/list_org_exclude + - name: v2_boolean_org_enforce + location: examples/v2_boolean_org_enforce + interfaces: + variables: + - name: policy_for + description: "Resource hierarchy node to apply the policy to: can be one of `organization`, `folder`, or `project`." + varType: string + required: true + - name: organization_id + description: The organization id for putting the policy + varType: string + - name: folder_id + description: The folder id for putting the policy + varType: string + - name: project_id + description: The project id for putting the policy + varType: string + - name: exclude_folders + description: Set of folders to exclude from the policy + varType: set(string) + defaultValue: [] + - name: exclude_projects + description: Set of projects to exclude from the policy + varType: set(string) + defaultValue: [] + requirements: roles: - - roles/orgpolicy.policyAdmin - - level: Project - roles: - - roles/owner - services: - - cloudresourcemanager.googleapis.com - - storage-api.googleapis.com - - serviceusage.googleapis.com - - orgpolicy.googleapis.com + - level: Project + roles: + - roles/orgpolicy.policyAdmin + - level: Project + roles: + - roles/owner + services: + - cloudresourcemanager.googleapis.com + - storage-api.googleapis.com + - serviceusage.googleapis.com + - orgpolicy.googleapis.com + providerVersions: + - source: hashicorp/google + version: ">= 3.53, < 7" diff --git a/modules/skip_default_network/versions.tf b/modules/skip_default_network/versions.tf index aec6fae..19c8f8a 100644 --- a/modules/skip_default_network/versions.tf +++ b/modules/skip_default_network/versions.tf @@ -15,7 +15,7 @@ */ terraform { - required_version = ">= 0.13" + required_version = ">= 1.3" required_providers { google = { diff --git a/test/integration/go.mod b/test/integration/go.mod index 60a7c02..b24bd37 100644 --- a/test/integration/go.mod +++ b/test/integration/go.mod @@ -2,19 +2,19 @@ module github.com/prabhu34/terraform-google-org-policy/test/integration go 1.22.7 -toolchain go1.22.9 +toolchain go1.23.4 require ( - github.com/GoogleCloudPlatform/cloud-foundation-toolkit/infra/blueprint-test v0.17.0 + github.com/GoogleCloudPlatform/cloud-foundation-toolkit/infra/blueprint-test v0.17.3 github.com/stretchr/testify v1.10.0 ) require ( - cloud.google.com/go v0.110.7 // indirect - cloud.google.com/go/compute v1.23.0 // indirect - cloud.google.com/go/compute/metadata v0.2.3 // indirect - cloud.google.com/go/iam v1.1.2 // indirect - cloud.google.com/go/storage v1.33.0 // indirect + cloud.google.com/go v0.116.0 // indirect + cloud.google.com/go/compute v1.28.3 // indirect + cloud.google.com/go/compute/metadata v0.5.2 // indirect + cloud.google.com/go/iam v1.2.2 // indirect + cloud.google.com/go/storage v1.47.0 // indirect github.com/agext/levenshtein v1.2.3 // indirect github.com/alexflint/go-filemutex v1.3.0 // indirect github.com/apparentlymart/go-textseg/v15 v15.0.0 // indirect @@ -26,29 +26,31 @@ require ( github.com/go-openapi/jsonreference v0.20.2 // indirect github.com/go-openapi/swag v0.22.4 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect - github.com/golang/protobuf v1.5.3 // indirect + github.com/golang/protobuf v1.5.4 // indirect github.com/google/gnostic-models v0.6.8 // indirect github.com/google/go-cmp v0.6.0 // indirect - github.com/google/s2a-go v0.1.7 // indirect + github.com/google/s2a-go v0.1.8 // indirect github.com/google/uuid v1.6.0 // indirect - github.com/googleapis/enterprise-certificate-proxy v0.2.5 // indirect - github.com/googleapis/gax-go/v2 v2.12.0 // indirect - github.com/gruntwork-io/terratest v0.47.2 // indirect + github.com/googleapis/enterprise-certificate-proxy v0.3.4 // indirect + github.com/googleapis/gax-go/v2 v2.14.0 // indirect + github.com/gruntwork-io/terratest v0.48.0 // indirect github.com/hashicorp/errwrap v1.1.0 // indirect github.com/hashicorp/go-cleanhttp v0.5.2 // indirect github.com/hashicorp/go-getter v1.7.6 // indirect + github.com/hashicorp/go-getter/v2 v2.2.3 // indirect github.com/hashicorp/go-multierror v1.1.1 // indirect github.com/hashicorp/go-safetemp v1.0.0 // indirect github.com/hashicorp/go-version v1.7.0 // indirect github.com/hashicorp/hcl v0.0.0-20170504190234-a4b07c25de5f // indirect - github.com/hashicorp/hcl/v2 v2.20.1 // indirect - github.com/hashicorp/terraform-config-inspect v0.0.0-20241107133921-3adb156ecfe2 // indirect + github.com/hashicorp/hcl/v2 v2.22.0 // indirect + github.com/hashicorp/terraform-config-inspect v0.0.0-20241129133400-c404f8227ea6 // indirect github.com/hashicorp/terraform-json v0.23.0 // indirect github.com/jinzhu/copier v0.4.0 // indirect github.com/jmespath/go-jmespath v0.4.0 // indirect github.com/josharian/intern v1.0.0 // indirect github.com/klauspost/compress v1.16.7 // indirect github.com/mailru/easyjson v0.7.7 // indirect + github.com/mattn/go-shellwords v1.0.12 // indirect github.com/mattn/go-zglob v0.0.4 // indirect github.com/mitchellh/go-homedir v1.1.0 // indirect github.com/mitchellh/go-testing-interface v1.14.2-0.20210821155943-2d9075ca8770 // indirect @@ -58,26 +60,26 @@ require ( github.com/tidwall/match v1.1.1 // indirect github.com/tidwall/pretty v1.2.1 // indirect github.com/tidwall/sjson v1.2.5 // indirect - github.com/tmccombs/hcl2json v0.6.0 // indirect + github.com/tmccombs/hcl2json v0.6.4 // indirect github.com/ulikunitz/xz v0.5.11 // indirect github.com/zclconf/go-cty v1.15.0 // indirect go.opencensus.io v0.24.0 // indirect - golang.org/x/crypto v0.21.0 // indirect + golang.org/x/crypto v0.31.0 // indirect golang.org/x/mod v0.22.0 // indirect - golang.org/x/net v0.23.0 // indirect - golang.org/x/oauth2 v0.12.0 // indirect - golang.org/x/sync v0.4.0 // indirect - golang.org/x/sys v0.21.0 // indirect - golang.org/x/text v0.14.0 // indirect - golang.org/x/tools v0.13.0 // indirect + golang.org/x/net v0.31.0 // indirect + golang.org/x/oauth2 v0.24.0 // indirect + golang.org/x/sync v0.10.0 // indirect + golang.org/x/sys v0.28.0 // indirect + golang.org/x/text v0.21.0 // indirect + golang.org/x/tools v0.22.0 // indirect golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect - google.golang.org/api v0.138.0 // indirect + google.golang.org/api v0.206.0 // indirect google.golang.org/appengine v1.6.8 // indirect - google.golang.org/genproto v0.0.0-20230822172742-b8732ec3820d // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20230822172742-b8732ec3820d // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20230822172742-b8732ec3820d // indirect - google.golang.org/grpc v1.58.3 // indirect - google.golang.org/protobuf v1.33.0 // indirect + google.golang.org/genproto v0.0.0-20241113202542-65e8d215514f // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20241104194629-dd2ea8efbc28 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 // indirect + google.golang.org/grpc v1.67.1 // indirect + google.golang.org/protobuf v1.35.1 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect k8s.io/kube-openapi v0.0.0-20231010175941-2dd684a91f00 // indirect sigs.k8s.io/kustomize/kyaml v0.18.1 // indirect diff --git a/test/integration/go.sum b/test/integration/go.sum index 298323e..182e193 100644 --- a/test/integration/go.sum +++ b/test/integration/go.sum @@ -32,6 +32,7 @@ cloud.google.com/go v0.102.1/go.mod h1:XZ77E9qnTEnrgEOvr4xzfdX5TRo7fB4T2F4O6+34h cloud.google.com/go v0.104.0/go.mod h1:OO6xxXdJyvuJPcEPBLN9BJPD+jep5G1+2U5B5gkRYtA= cloud.google.com/go v0.110.7 h1:rJyC7nWRg2jWGZ4wSJ5nY65GTdYJkg0cd/uXb+ACI6o= cloud.google.com/go v0.110.7/go.mod h1:+EYjdK8e5RME/VY/qLCAtuyALQ9q67dvuum8i+H5xsI= +cloud.google.com/go v0.116.0/go.mod h1:cEPSRWPzZEswwdr9BxE6ChEn01dWlTaF05LiC2Xs70U= cloud.google.com/go/aiplatform v1.22.0/go.mod h1:ig5Nct50bZlzV6NvKaTwmplLLddFx0YReh9WfTO5jKw= cloud.google.com/go/aiplatform v1.24.0/go.mod h1:67UUvRBKG6GTayHKV8DBv2RtR1t93YRu5B1P3x99mYY= cloud.google.com/go/analytics v0.11.0/go.mod h1:DjEWCu41bVbYcKyvlws9Er60YE4a//bK6mnhWvQeFNI= @@ -70,8 +71,10 @@ cloud.google.com/go/compute v1.7.0/go.mod h1:435lt8av5oL9P3fv1OEzSbSUe+ybHXGMPQH cloud.google.com/go/compute v1.10.0/go.mod h1:ER5CLbMxl90o2jtNbGSbtfOpQKR0t15FOtRsugnLrlU= cloud.google.com/go/compute v1.23.0 h1:tP41Zoavr8ptEqaW6j+LQOnyBBhO7OkOMAGrgLopTwY= cloud.google.com/go/compute v1.23.0/go.mod h1:4tCnrn48xsqlwSAiLf1HXMQk8CONslYbdiEZc9FEIbM= +cloud.google.com/go/compute v1.28.3/go.mod h1:HFlsDurE5DpQZClAGf/cYh+gxssMhBxBovZDYkEn/Og= cloud.google.com/go/compute/metadata v0.2.3 h1:mg4jlk7mCAj6xXp9UJ4fjI9VUI5rubuGBW5aJ7UnBMY= cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA= +cloud.google.com/go/compute/metadata v0.5.2/go.mod h1:C66sj2AluDcIqakBq/M8lw8/ybHgOZqin2obFxa/E5k= cloud.google.com/go/containeranalysis v0.5.1/go.mod h1:1D92jd8gRR/c0fGMlymRgxWD3Qw9C1ff6/T7mLgVL8I= cloud.google.com/go/containeranalysis v0.6.0/go.mod h1:HEJoiEIu+lEXM+k7+qLCci0h33lX3ZqoYFdmPcoO7s4= cloud.google.com/go/datacatalog v1.3.0/go.mod h1:g9svFY6tuR+j+hrTw3J2dNcmI0dzmSiyOzm8kpLq0a0= @@ -111,6 +114,7 @@ cloud.google.com/go/iam v0.3.0/go.mod h1:XzJPvDayI+9zsASAFO68Hk07u3z+f+JrT2xXNdp cloud.google.com/go/iam v0.5.0/go.mod h1:wPU9Vt0P4UmCux7mqtRu6jcpPAb74cP1fh50J3QpkUc= cloud.google.com/go/iam v1.1.2 h1:gacbrBdWcoVmGLozRuStX45YKvJtzIjJdAolzUs1sm4= cloud.google.com/go/iam v1.1.2/go.mod h1:A5avdyVL2tCppe4unb0951eI9jreack+RJ0/d+KUZOU= +cloud.google.com/go/iam v1.2.2/go.mod h1:0Ys8ccaZHdI1dEUilwzqng/6ps2YB6vRsjIe00/+6JY= cloud.google.com/go/language v1.4.0/go.mod h1:F9dRpNFQmJbkaop6g0JhSBXCNlO90e1KWx5iDdxbWic= cloud.google.com/go/language v1.6.0/go.mod h1:6dJ8t3B+lUYfStgls25GusK04NLh3eDLQnWM3mdEbhI= cloud.google.com/go/lifesciences v0.5.0/go.mod h1:3oIKy8ycWGPUyZDR/8RNnTOYevhaMLqh5vLUXs9zvT8= @@ -173,6 +177,7 @@ cloud.google.com/go/storage v1.23.0/go.mod h1:vOEEDNFnciUMhBeT6hsJIn3ieU5cFRmzeL cloud.google.com/go/storage v1.27.0/go.mod h1:x9DOL8TK/ygDUMieqwfhdpQryTeEkhGKMi80i/iqR2s= cloud.google.com/go/storage v1.33.0 h1:PVrDOkIC8qQVa1P3SXGpQvfuJhN2LHOoyZvWs8D2X5M= cloud.google.com/go/storage v1.33.0/go.mod h1:Hhh/dogNRGca7IWv1RC2YqEn0c0G77ctA/OxflYkiD8= +cloud.google.com/go/storage v1.47.0/go.mod h1:Ks0vP374w0PW6jOUameJbapbQKXqkjGd/OJRp2fb9IQ= cloud.google.com/go/talent v1.1.0/go.mod h1:Vl4pt9jiHKvOgF9KoZo6Kob9oV4lwd/ZD5Cto54zDRw= cloud.google.com/go/talent v1.2.0/go.mod h1:MoNF9bhFQbiJ6eFD3uSsg0uBALw4n4gaCaEjBw9zo8g= cloud.google.com/go/videointelligence v1.6.0/go.mod h1:w0DIDlVRKtwPCn/C4iwZIJdvC69yInhW0cfi+p546uU= @@ -189,6 +194,8 @@ github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03 github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/GoogleCloudPlatform/cloud-foundation-toolkit/infra/blueprint-test v0.17.0 h1:EcxvASC45eOFrkk+cw9vP8Wztms3ZMWAQyBNEaI5MdU= github.com/GoogleCloudPlatform/cloud-foundation-toolkit/infra/blueprint-test v0.17.0/go.mod h1:homk/qeh6p4f7onHkLc5Vy8nG31ZmDK2pamBdHrc1OM= +github.com/GoogleCloudPlatform/cloud-foundation-toolkit/infra/blueprint-test v0.17.3 h1:+lqTQyIdgr9XbI/onTPpwDnKR8I+MFKuIi6jeO8qDDQ= +github.com/GoogleCloudPlatform/cloud-foundation-toolkit/infra/blueprint-test v0.17.3/go.mod h1:7uX+sVrlOPmrpkfuVSoO9qO0tWc23lVVCIQOL9GM5Qs= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/agext/levenshtein v1.2.3 h1:YB2fHEn0UJagG8T1rrWknE3ZQzWM06O8AMAatNn7lmo= github.com/agext/levenshtein v1.2.3/go.mod h1:JEDfjyjHDjOF/1e4FlBE/PkbqA9OfWu2ki2W0IB5558= @@ -285,6 +292,8 @@ github.com/golang/protobuf v1.5.1/go.mod h1:DopwsBzvsk0Fs44TXzsVbJyPhcCPeIwnvohx github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= +github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= @@ -333,6 +342,7 @@ github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLe github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/s2a-go v0.1.7 h1:60BLSyTrOV4/haCDW4zb1guZItoSq8foHCXrAnjBo/o= github.com/google/s2a-go v0.1.7/go.mod h1:50CgR4k1jNlWBu4UfS4AcfhVe1r6pdZPygJ3R8F0Qdw= +github.com/google/s2a-go v0.1.8/go.mod h1:6iNWHTpQ+nfNRN5E00MSdfDwVesa8hhS32PhPO8deJA= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= @@ -342,6 +352,7 @@ github.com/googleapis/enterprise-certificate-proxy v0.1.0/go.mod h1:17drOmN3MwGY github.com/googleapis/enterprise-certificate-proxy v0.2.0/go.mod h1:8C0jb7/mgJe/9KK8Lm7X9ctZC2t60YyIpYEI16jx0Qg= github.com/googleapis/enterprise-certificate-proxy v0.2.5 h1:UR4rDjcgpgEnqpIEvkiqTYKBCKLNmlge2eVjoZfySzM= github.com/googleapis/enterprise-certificate-proxy v0.2.5/go.mod h1:RxW0N9901Cko1VOCW3SXCpWP+mlIEkk2tP7jnHy9a3w= +github.com/googleapis/enterprise-certificate-proxy v0.3.4/go.mod h1:YKe7cfqYXjKGpGvmSg28/fFvhNzinZQm8DGnaburhGA= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= github.com/googleapis/gax-go/v2 v2.1.0/go.mod h1:Q3nei7sK6ybPYH7twZdmQpAd1MKb7pfu6SK+H1/DsU0= @@ -353,10 +364,13 @@ github.com/googleapis/gax-go/v2 v2.5.1/go.mod h1:h6B0KMMFNtI2ddbGJn3T3ZbwkeT6yqE github.com/googleapis/gax-go/v2 v2.6.0/go.mod h1:1mjbznJAPHFpesgE5ucqfYEscaz5kMdcIDwU/6+DDoY= github.com/googleapis/gax-go/v2 v2.12.0 h1:A+gCJKdRfqXkr+BIRGtZLibNXf0m1f9E4HG56etFpas= github.com/googleapis/gax-go/v2 v2.12.0/go.mod h1:y+aIqrI5eb1YGMVJfuV3185Ts/D7qKpsEkdD5+I6QGU= +github.com/googleapis/gax-go/v2 v2.14.0/go.mod h1:lhBCnjdLrWRaPvLWhmc8IS24m9mr07qSYnHncrgo+zk= github.com/googleapis/go-type-adapters v1.0.0/go.mod h1:zHW75FOG2aur7gAO2B+MLby+cLsWGBF62rFAi7WjWO4= github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= github.com/gruntwork-io/terratest v0.47.2 h1:t6iWwsqJH7Gx0RwXleU/vjc+2c0JXRMdj3DxYXTBssQ= github.com/gruntwork-io/terratest v0.47.2/go.mod h1:LnYX8BN5WxUMpDr8rtD39oToSL4CBERWSCusbJ0d/64= +github.com/gruntwork-io/terratest v0.48.0 h1:OoqJYAnBxejInn7TPizFGJNMCFvPHbiWNS3hGFKdHhA= +github.com/gruntwork-io/terratest v0.48.0/go.mod h1:U2EQW4Odlz75XJUH16Kqkr9c93p+ZZtkpVez7GkZFa4= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I= github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= @@ -364,6 +378,8 @@ github.com/hashicorp/go-cleanhttp v0.5.2 h1:035FKYIWjmULyFRBKPs8TBQoi0x6d9G4xc9n github.com/hashicorp/go-cleanhttp v0.5.2/go.mod h1:kO/YDlP8L1346E6Sodw+PrpBSV4/SoxCXGY6BqNFT48= github.com/hashicorp/go-getter v1.7.6 h1:5jHuM+aH373XNtXl9TNTUH5Qd69Trve11tHIrB+6yj4= github.com/hashicorp/go-getter v1.7.6/go.mod h1:W7TalhMmbPmsSMdNjD0ZskARur/9GJ17cfHTRtXV744= +github.com/hashicorp/go-getter/v2 v2.2.3 h1:6CVzhT0KJQHqd9b0pK3xSP0CM/Cv+bVhk+jcaRJ2pGk= +github.com/hashicorp/go-getter/v2 v2.2.3/go.mod h1:hp5Yy0GMQvwWVUmwLs3ygivz1JSLI323hdIE9J9m7TY= github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo= github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM= github.com/hashicorp/go-safetemp v1.0.0 h1:2HR189eFNrjHQyENnQMMpCiBAsRxzbTMIgBhEyExpmo= @@ -377,8 +393,12 @@ github.com/hashicorp/hcl v0.0.0-20170504190234-a4b07c25de5f h1:UdxlrJz4JOnY8W+Db github.com/hashicorp/hcl v0.0.0-20170504190234-a4b07c25de5f/go.mod h1:oZtUIOe8dh44I2q6ScRibXws4Ajl+d+nod3AaR9vL5w= github.com/hashicorp/hcl/v2 v2.20.1 h1:M6hgdyz7HYt1UN9e61j+qKJBqR3orTWbI1HKBJEdxtc= github.com/hashicorp/hcl/v2 v2.20.1/go.mod h1:TZDqQ4kNKCbh1iJp99FdPiUaVDDUPivbqxZulxDYqL4= +github.com/hashicorp/hcl/v2 v2.22.0 h1:hkZ3nCtqeJsDhPRFz5EA9iwcG1hNWGePOTw6oyul12M= +github.com/hashicorp/hcl/v2 v2.22.0/go.mod h1:62ZYHrXgPoX8xBnzl8QzbWq4dyDsDtfCRgIq1rbJEvA= github.com/hashicorp/terraform-config-inspect v0.0.0-20241107133921-3adb156ecfe2 h1:h+wcDC5wTiM+5YKjuLtUSWJtdtMVJNCRCPHoWieLpM4= github.com/hashicorp/terraform-config-inspect v0.0.0-20241107133921-3adb156ecfe2/go.mod h1:Gz/z9Hbn+4KSp8A2FBtNszfLSdT2Tn/uAKGuVqqWmDI= +github.com/hashicorp/terraform-config-inspect v0.0.0-20241129133400-c404f8227ea6 h1:146llE+6P/9YO8RcHRehzGNiS9+OoirKW9/aML6/JIA= +github.com/hashicorp/terraform-config-inspect v0.0.0-20241129133400-c404f8227ea6/go.mod h1:Gz/z9Hbn+4KSp8A2FBtNszfLSdT2Tn/uAKGuVqqWmDI= github.com/hashicorp/terraform-json v0.23.0 h1:sniCkExU4iKtTADReHzACkk8fnpQXrdD2xoR+lppBkI= github.com/hashicorp/terraform-json v0.23.0/go.mod h1:MHdXbBAbSg0GvzuWazEGKAn/cyNfIB7mN6y7KJN6y2c= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= @@ -410,6 +430,8 @@ github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJ github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= +github.com/mattn/go-shellwords v1.0.12 h1:M2zGm7EW6UQJvDeQxo4T51eKPurbeFbe8WtebGE2xrk= +github.com/mattn/go-shellwords v1.0.12/go.mod h1:EZzvwXDESEeg03EKmM+RmDnNOPKG4lLtQsUlTZDWQ8Y= github.com/mattn/go-zglob v0.0.4 h1:LQi2iOm0/fGgu80AioIJ/1j9w9Oh+9DZ39J4VAGzHQM= github.com/mattn/go-zglob v0.0.4/go.mod h1:MxxjyoXXnMxfIpxTK2GAkw1w8glPsQILx3N5wrKakiY= github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= @@ -453,6 +475,8 @@ github.com/tidwall/sjson v1.2.5 h1:kLy8mja+1c9jlljvWTlSazM7cKDRfJuR/bOJhcY5NcY= github.com/tidwall/sjson v1.2.5/go.mod h1:Fvgq9kS/6ociJEDnK0Fk1cpYF4FIW6ZF7LAe+6jwd28= github.com/tmccombs/hcl2json v0.6.0 h1:Qc5NL4NQbpNnw8w8HQcA3GsVHvQDJXJwVTUxf2AEhOs= github.com/tmccombs/hcl2json v0.6.0/go.mod h1:QNirG4H64ZvlFsy9werRxXlWNTDR1GhWzXkjqPILHwo= +github.com/tmccombs/hcl2json v0.6.4 h1:/FWnzS9JCuyZ4MNwrG4vMrFrzRgsWEOVi+1AyYUVLGw= +github.com/tmccombs/hcl2json v0.6.4/go.mod h1:+ppKlIW3H5nsAsZddXPy2iMyvld3SHxyjswOZhavRDk= github.com/ulikunitz/xz v0.5.10/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14= github.com/ulikunitz/xz v0.5.11 h1:kpFauv27b6ynzBNT/Xy+1k+fK4WswhN/6PN5WhFAGw8= github.com/ulikunitz/xz v0.5.11/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14= @@ -482,8 +506,8 @@ golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.21.0 h1:X31++rzVUdKhX5sWmSOFZxx8UW/ldWx55cbf08iNAMA= -golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs= +golang.org/x/crypto v0.31.0 h1:ihbySMvVjLAeSH1IbfcRTkD/iNscyz8rGzjF/E5hV6U= +golang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -569,8 +593,10 @@ golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug golang.org/x/net v0.0.0-20220909164309-bea034e7d591/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= golang.org/x/net v0.0.0-20221014081412-f15817d10f9b/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= -golang.org/x/net v0.23.0 h1:7EYJ93RZ9vYSZAIb2x3lnuvqO5zneoD6IvWjuhfxjTs= -golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= +golang.org/x/net v0.25.0 h1:d/OCCoBEUq33pjydKrGQhw7IlUPI2Oylr+8qLx49kac= +golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM= +golang.org/x/net v0.31.0 h1:68CPQngjLL0r2AlUKiSxtQFKvzRVbnzLwMUn5SzcLHo= +golang.org/x/net v0.31.0/go.mod h1:P4fl1q7dY2hnZFxEk4pPSkDHF+QqjitcnDjUQyMM+pM= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -598,6 +624,7 @@ golang.org/x/oauth2 v0.0.0-20221014153046-6fdb5e3db783/go.mod h1:h4gKUeWbJ4rQPri golang.org/x/oauth2 v0.1.0/go.mod h1:G9FE4dLTsbXUu90h/Pf85g4w1D+SSAgR+q46nJZ8M4A= golang.org/x/oauth2 v0.12.0 h1:smVPGxink+n1ZI5pkQa8y6fZT0RW0MgCO5bFpepy4B4= golang.org/x/oauth2 v0.12.0/go.mod h1:A74bZ3aGXgCY0qaIC9Ahg6Lglin4AMAco8cIv9baba4= +golang.org/x/oauth2 v0.24.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -612,8 +639,8 @@ golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20220601150217-0de741cfad7f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220929204114-8fcdb60fdcc0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.4.0 h1:zxkM55ReGkDlKSM+Fu41A+zmbZuaPVbGMzvvdUPznYQ= -golang.org/x/sync v0.4.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= +golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ= +golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -678,13 +705,13 @@ golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws= -golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.18.0 h1:FcHjZXDMxI8mM3nwhX9HlKop4C0YQvCVCdwYl2wOtE8= -golang.org/x/term v0.18.0/go.mod h1:ILwASektA3OnRv7amZ1xhE/KTR+u50pbXfZ03+6Nx58= +golang.org/x/term v0.27.0 h1:WP60Sv1nlK1T6SupCHbXzSaN0b9wUmsPoRS9b61A23Q= +golang.org/x/term v0.27.0/go.mod h1:iMsnZpn0cago0GOrHO2+Y7u7JPn5AylBrcoWkElMTSM= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -696,8 +723,8 @@ golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= -golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= +golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -753,8 +780,10 @@ golang.org/x/tools v0.1.3/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/tools v0.13.0 h1:Iey4qkscZuv0VvIt8E0neZjtPVQFSc870HQ448QgEmQ= -golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= +golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d h1:vU5i/LfpvrRCpgM/VPfJLg5KjxD3E+hfT1SH+d9zLwg= +golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk= +golang.org/x/tools v0.22.0 h1:gqSGLZqv+AI9lIQzniJ0nZDRG5GBPsSi+DRNHWNz6yA= +golang.org/x/tools v0.22.0/go.mod h1:aCwcsjqvq7Yqt6TNyX7QMU2enbQ/Gt0bo6krSeEri+c= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -814,6 +843,7 @@ google.golang.org/api v0.98.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ google.golang.org/api v0.100.0/go.mod h1:ZE3Z2+ZOr87Rx7dqFsdRQkRBk36kDtp/h+QpHbB7a70= google.golang.org/api v0.138.0 h1:K/tVp05MxNVbHShRw9m7e9VJGdagNeTdMzqPH7AUqr0= google.golang.org/api v0.138.0/go.mod h1:4xyob8CxC+0GChNBvEUAk8VBKNvYOTWM9T3v3UfRxuY= +google.golang.org/api v0.206.0/go.mod h1:BtB8bfjTYIrai3d8UyvPmV9REGgox7coh+ZRwm0b+W8= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= @@ -926,10 +956,13 @@ google.golang.org/genproto v0.0.0-20221014213838-99cd37c6964a/go.mod h1:1vXfmgAz google.golang.org/genproto v0.0.0-20221025140454-527a21cfbd71/go.mod h1:9qHF0xnpdSfF6knlcsnpzUu5y+rpwgbvsyGAZPBMg4s= google.golang.org/genproto v0.0.0-20230822172742-b8732ec3820d h1:VBu5YqKPv6XiJ199exd8Br+Aetz+o08F+PLMnwJQHAY= google.golang.org/genproto v0.0.0-20230822172742-b8732ec3820d/go.mod h1:yZTlhN0tQnXo3h00fuXNCxJdLdIdnVFVBaRJ5LWBbw4= +google.golang.org/genproto v0.0.0-20241113202542-65e8d215514f/go.mod h1:Q5m6g8b5KaFFzsQFIGdJkSJDGeJiybVenoYFMMa3ohI= google.golang.org/genproto/googleapis/api v0.0.0-20230822172742-b8732ec3820d h1:DoPTO70H+bcDXcd39vOqb2viZxgqeBeSGtZ55yZU4/Q= google.golang.org/genproto/googleapis/api v0.0.0-20230822172742-b8732ec3820d/go.mod h1:KjSP20unUpOx5kyQUFa7k4OJg0qeJ7DEZflGDu2p6Bk= +google.golang.org/genproto/googleapis/api v0.0.0-20241104194629-dd2ea8efbc28/go.mod h1:dguCy7UOdZhTvLzDyt15+rOrawrpM4q7DD9dQ1P11P4= google.golang.org/genproto/googleapis/rpc v0.0.0-20230822172742-b8732ec3820d h1:uvYuEyMHKNt+lT4K3bN6fGswmK8qSvcreM3BwjDh+y4= google.golang.org/genproto/googleapis/rpc v0.0.0-20230822172742-b8732ec3820d/go.mod h1:+Bk1OCOj40wS2hwAMA+aCW9ypzm63QTBBHp6lQ3p+9M= +google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28/go.mod h1:GX3210XPVPUjJbTUbvwI8f2IpZDMZuPJWDzDuebbviI= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= @@ -967,6 +1000,7 @@ google.golang.org/grpc v1.50.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCD google.golang.org/grpc v1.50.1/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= +google.golang.org/grpc v1.67.1/go.mod h1:1gLDyUQU7CTLJI90u3nXZ9ekeghjeM7pTDZlqFNg2AA= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= @@ -985,6 +1019,8 @@ google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqw google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +google.golang.org/protobuf v1.35.1 h1:m3LfL6/Ca+fqnjnlqQXNpFPABW1UD7mjh8KO2mKFytA= +google.golang.org/protobuf v1.35.1/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= diff --git a/versions.tf b/versions.tf index b530524..0ac8be7 100644 --- a/versions.tf +++ b/versions.tf @@ -15,7 +15,7 @@ */ terraform { - required_version = ">= 0.13" + required_version = ">= 1.3" required_providers { google = {