From 3edbc722776881d0cdd5495407ecffa420899d0a Mon Sep 17 00:00:00 2001 From: Umair Idris Date: Thu, 21 Nov 2019 19:07:58 +0000 Subject: [PATCH 1/9] add billing budget product --- products/billingbudget/api.yaml | 188 ++++++++++++++++++++++++++ products/billingbudget/terraform.yaml | 40 ++++++ 2 files changed, 228 insertions(+) create mode 100644 products/billingbudget/api.yaml create mode 100644 products/billingbudget/terraform.yaml diff --git a/products/billingbudget/api.yaml b/products/billingbudget/api.yaml new file mode 100644 index 000000000000..2268b1fa4cee --- /dev/null +++ b/products/billingbudget/api.yaml @@ -0,0 +1,188 @@ +# Copyright 2019 Google Inc. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +--- !ruby/object:Api::Product +name: Billing +display_name: Billing Budget +versions: + - !ruby/object:Api::Product::Version + name: beta + base_url: https://billingbudgets.googleapis.com/v1beta1/ +scopes: + - https://www.googleapis.com/auth/cloud-platform +apis_required: + - !ruby/object:Api::Product::ApiReference + name: Billing Budget + url: https://console.cloud.google.com/apis/library/billingbudgets.googleapis.com/ +objects: + - !ruby/object:Api::Resource + name: Budget + base_url: billingAccounts/{{billing_account}}/budgets + self_link: '{{name}}' + update_verb: :PATCH + update_mask: true + description: | + Budget configuration for a billing account. + references: !ruby/object:Api::Resource::ReferenceLinks + guides: + 'Creating a budget': + 'https://cloud.google.com/billing/docs/how-to/budgets' + api: 'https://cloud.google.com/billing/docs/reference/budget/rest/v1beta1/billingAccounts.budgets' + parameters: + - !ruby/object:Api::Type::String + name: billingAccount + description: | + ID the billing account to set budget on. + required: true + input: true + url_param_only: true + properties: + - !ruby/object:Api::Type::String + name: name + description: | + Resource name of the budget. The resource name + implies the scope of a budget. Values are of the form + billingAccounts/{billingAccountId}/budgets/{budgetId}. + output: true + - !ruby/object:Api::Type::String + name: etag + description: | + Etag to validate that the object is unchanged for a + read-modify-write operation. An empty etag will cause an update to + overwrite other changes. + output: true + - !ruby/object:Api::Type::NestedObject + name: budget + required: true + description: | + The budget to create. + properties: + - !ruby/object:Api::Type::String + name: displayName + description: | + User data for display name in UI. Must be <= 60 chars. + - !ruby/object:Api::Type::NestedObject + name: budgetFilter + description: | + Filters that define which resources are used to compute the actual + spend against the budget. + properties: + - !ruby/object:Api::Type::Array + name: projects + description: | + A set of projects of the form projects/{project_id}, + specifying that usage from only this set of projects should be + included in the budget. If omitted, the report will include + all usage for the billing account, regardless of which project + the usage occurred on. Only zero or one project can be + specified currently. + item_type: Api::Type::String + - !ruby/object:Api::Type::Enum + name: creditTypesTreatment + description: | + Specifies how credits should be treated when determining spend + for threshold calculations. + default_value: :INCLUDE_ALL_CREDITS + values: + - :CREDIT_TYPES_TREATMENT_UNSPECIFIED + - :INCLUDE_ALL_CREDITS + - :EXCLUDE_ALL_CREDITS + - !ruby/object:Api::Type::Array + name: services + description: | + A set of services of the form services/{service_id}, + specifying that usage from only this set of services should be + included in the budget. If omitted, the report will include + usage for all the services. The service names are available + through the Catalog API: + https://cloud.google.com/billing/v1/how-tos/catalog-api. + item_type: Api::Type::String + - !ruby/object:Api::Type::NestedObject + name: amount + required: true + description: | + The budgeted amount for each usage period. + properties: + - !ruby/object:Api::Type::NestedObject + name: specifiedAmount + description: | + A specified amount to use as the budget. currencyCode is + optional. If specified, it must match the currency of the + billing account. The currencyCode is provided on output. + properties: + - !ruby/object:Api::Type::String + name: currencyCode + description: | + The 3-letter currency code defined in ISO 4217. + - !ruby/object:Api::Type::String + name: units + description: | + The whole units of the amount. For example if currencyCode + is "USD", then 1 unit is one US dollar. + - !ruby/object:Api::Type::Integer + name: nanos + description: | + Number of nano (10^-9) units of the amount. + The value must be between -999,999,999 and +999,999,999 + inclusive. If units is positive, nanos must be positive or + zero. If units is zero, nanos can be positive, zero, or + negative. If units is negative, nanos must be negative or + zero. For example $-1.75 is represented as units=-1 and + nanos=-750,000,000. + - !ruby/object:Api::Type::Array + name: thresholdRules + required: true + description: | + Rules that trigger alerts (notifications of thresholds being + crossed) when spend exceeds the specified percentages of the + budget. + item_type: !ruby/object:Api::Type::NestedObject + properties: + - !ruby/object:Api::Type::Double + name: thresholdPercent + required: true + description: | + Send an alert when this threshold is exceeded. This is a + 1.0-based percentage, so 0.5 = 50%. Must be >= 0. + - !ruby/object:Api::Type::Enum + name: spendBasis + description: | + The type of basis used to determine if spend has passed + the threshold. + default_value: :CURRENT_SPEND + values: + - :BASIS_UNSPECIFIED + - :CURRENT_SPEND + - :FORECASTED_SPEND + - !ruby/object:Api::Type::NestedObject + name: allUpdatesRule + description: | + Defines notifications that are sent on every update to the + billing account's spend, regardless of the thresholds defined + using threshold rules. + properties: + - !ruby/object:Api::Type::String + name: pubsubTopic + required: true + description: | + The name of the Cloud Pub/Sub topic where budget related + messages will be published, in the form + projects/{project_id}/topics/{topic_id}. Updates are sent + at regular intervals to the topic. + - !ruby/object:Api::Type::String + name: schemaVersion + required: true + description: | + The schema version of the notification. Only "1.0" is + accepted. It represents the JSON schema as defined in + https://cloud.google.com/billing/docs/how-to/budgets#notification_format. diff --git a/products/billingbudget/terraform.yaml b/products/billingbudget/terraform.yaml new file mode 100644 index 000000000000..5b03a736f047 --- /dev/null +++ b/products/billingbudget/terraform.yaml @@ -0,0 +1,40 @@ +# Copyright 2019 Google Inc. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +--- !ruby/object:Provider::Terraform::Config +overrides: !ruby/object:Overrides::ResourceOverrides + Budget: !ruby/object:Overrides::Terraform::ResourceOverride + description: | + {{description}} + id_format: '{{name}}' + import_format: ['{{name}}'] + examples: + - !ruby/object:Provider::Terraform::Examples + name: 'billing_budget_basic' + min_version: beta + primary_resource_id: 'budget' + vars: + display_name: 'Example Billing Budget' + custom_code: !ruby/object:Provider::Terraform::CustomCode + custom_import: templates/terraform/custom_import/self_link_as_name.erb + post_create: templates/terraform/post_create/set_computed_name.erb + properties: + budget: !ruby/object:Overrides::Terraform::PropertyOverride + flatten_object: true + +# This is for copying files over +files: !ruby/object:Provider::Config::Files + # These files have templating (ERB) code that will be run. + # This is usually to add licensing info, autogeneration notices, etc. + compile: +<%= lines(indent(compile('provider/terraform/product~compile.yaml'), 4)) -%> From 456f7a37f21340293da04e5dfaa2dbdad59806a2 Mon Sep 17 00:00:00 2001 From: Umair Idris Date: Fri, 22 Nov 2019 16:49:01 +0000 Subject: [PATCH 2/9] add example --- .../examples/billing_budget_basic.tf.erb | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 templates/terraform/examples/billing_budget_basic.tf.erb diff --git a/templates/terraform/examples/billing_budget_basic.tf.erb b/templates/terraform/examples/billing_budget_basic.tf.erb new file mode 100644 index 000000000000..024d61aa478f --- /dev/null +++ b/templates/terraform/examples/billing_budget_basic.tf.erb @@ -0,0 +1,19 @@ +data "google_billing_account" "account" { + display_name = "My Billing Account" + open = true +} + +resource "google_billing_budget" "<%= ctx[:primary_resource_id] %>" { + provider = google-beta + billing_account = data.google_billing_account.account.id + display_name = "<%= ctx[:vars]['display_name'] %>" + amount { + specified_amount { + currency_code = "USD" + units = "10" + } + } + threshold_rules { + threshold_percent = 0.5 + } +} From f4e5b2b63478400f178aac7b114d2e112e300e4f Mon Sep 17 00:00:00 2001 From: Umair Idris Date: Fri, 22 Nov 2019 18:34:52 +0000 Subject: [PATCH 3/9] add lastPeriodAmount as an option for budget amount --- products/billingbudget/api.yaml | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/products/billingbudget/api.yaml b/products/billingbudget/api.yaml index 2268b1fa4cee..dd1f4d8c0344 100644 --- a/products/billingbudget/api.yaml +++ b/products/billingbudget/api.yaml @@ -111,7 +111,8 @@ objects: name: amount required: true description: | - The budgeted amount for each usage period. + The budgeted amount for each usage period. Exactly one of + :specifiedAmount or :lastPeriodAmount must be set. properties: - !ruby/object:Api::Type::NestedObject name: specifiedAmount @@ -139,6 +140,14 @@ objects: negative. If units is negative, nanos must be negative or zero. For example $-1.75 is represented as units=-1 and nanos=-750,000,000. + - !ruby/object:Api::Type::NestedObject + name: lastPeriodAmount + description: | + Describes a budget amount targeted to last period's spend. + At this time, the amount is automatically 100% of last + period's spend; that is, there are no other options yet. + Future configuration will be described here (for example, + configuring a percentage of last period's spend). - !ruby/object:Api::Type::Array name: thresholdRules required: true From 5b60debd9c80fb1060550d69bd731365c1b57266 Mon Sep 17 00:00:00 2001 From: Umair Idris Date: Tue, 26 Nov 2019 00:11:28 +0000 Subject: [PATCH 4/9] address comments --- products/billingbudget/api.yaml | 30 +++++------------- products/billingbudget/terraform.yaml | 2 -- .../examples/billing_budget_filter.tf.erb | 31 +++++++++++++++++++ 3 files changed, 39 insertions(+), 24 deletions(-) create mode 100644 templates/terraform/examples/billing_budget_filter.tf.erb diff --git a/products/billingbudget/api.yaml b/products/billingbudget/api.yaml index dd1f4d8c0344..da0bb04ff30e 100644 --- a/products/billingbudget/api.yaml +++ b/products/billingbudget/api.yaml @@ -30,7 +30,9 @@ objects: base_url: billingAccounts/{{billing_account}}/budgets self_link: '{{name}}' update_verb: :PATCH - update_mask: true + # TODO: re-enable this. When this is enabled, changes are not being made + # by the API. + # update_mask: true description: | Budget configuration for a billing account. references: !ruby/object:Api::Resource::ReferenceLinks @@ -42,7 +44,7 @@ objects: - !ruby/object:Api::Type::String name: billingAccount description: | - ID the billing account to set budget on. + ID of the billing account to set a budget on. required: true input: true url_param_only: true @@ -54,13 +56,6 @@ objects: implies the scope of a budget. Values are of the form billingAccounts/{billingAccountId}/budgets/{budgetId}. output: true - - !ruby/object:Api::Type::String - name: etag - description: | - Etag to validate that the object is unchanged for a - read-modify-write operation. An empty etag will cause an update to - overwrite other changes. - output: true - !ruby/object:Api::Type::NestedObject name: budget required: true @@ -94,7 +89,6 @@ objects: for threshold calculations. default_value: :INCLUDE_ALL_CREDITS values: - - :CREDIT_TYPES_TREATMENT_UNSPECIFIED - :INCLUDE_ALL_CREDITS - :EXCLUDE_ALL_CREDITS - !ruby/object:Api::Type::Array @@ -111,8 +105,7 @@ objects: name: amount required: true description: | - The budgeted amount for each usage period. Exactly one of - :specifiedAmount or :lastPeriodAmount must be set. + The budgeted amount for each usage period. properties: - !ruby/object:Api::Type::NestedObject name: specifiedAmount @@ -120,6 +113,7 @@ objects: A specified amount to use as the budget. currencyCode is optional. If specified, it must match the currency of the billing account. The currencyCode is provided on output. + required: true properties: - !ruby/object:Api::Type::String name: currencyCode @@ -140,14 +134,6 @@ objects: negative. If units is negative, nanos must be negative or zero. For example $-1.75 is represented as units=-1 and nanos=-750,000,000. - - !ruby/object:Api::Type::NestedObject - name: lastPeriodAmount - description: | - Describes a budget amount targeted to last period's spend. - At this time, the amount is automatically 100% of last - period's spend; that is, there are no other options yet. - Future configuration will be described here (for example, - configuring a percentage of last period's spend). - !ruby/object:Api::Type::Array name: thresholdRules required: true @@ -163,6 +149,7 @@ objects: description: | Send an alert when this threshold is exceeded. This is a 1.0-based percentage, so 0.5 = 50%. Must be >= 0. + send_empty_value: true - !ruby/object:Api::Type::Enum name: spendBasis description: | @@ -170,7 +157,6 @@ objects: the threshold. default_value: :CURRENT_SPEND values: - - :BASIS_UNSPECIFIED - :CURRENT_SPEND - :FORECASTED_SPEND - !ruby/object:Api::Type::NestedObject @@ -190,7 +176,7 @@ objects: at regular intervals to the topic. - !ruby/object:Api::Type::String name: schemaVersion - required: true + default_value: "1.0" description: | The schema version of the notification. Only "1.0" is accepted. It represents the JSON schema as defined in diff --git a/products/billingbudget/terraform.yaml b/products/billingbudget/terraform.yaml index 5b03a736f047..008b63e097fc 100644 --- a/products/billingbudget/terraform.yaml +++ b/products/billingbudget/terraform.yaml @@ -14,8 +14,6 @@ --- !ruby/object:Provider::Terraform::Config overrides: !ruby/object:Overrides::ResourceOverrides Budget: !ruby/object:Overrides::Terraform::ResourceOverride - description: | - {{description}} id_format: '{{name}}' import_format: ['{{name}}'] examples: diff --git a/templates/terraform/examples/billing_budget_filter.tf.erb b/templates/terraform/examples/billing_budget_filter.tf.erb new file mode 100644 index 000000000000..eee5be01d81d --- /dev/null +++ b/templates/terraform/examples/billing_budget_filter.tf.erb @@ -0,0 +1,31 @@ +data "google_billing_account" "account" { + display_name = "My Billing Account" + open = true +} + +resource "google_billing_budget" "<%= ctx[:primary_resource_id] %>" { + provider = google-beta + billing_account = data.google_billing_account.account.id + display_name = "<%= ctx[:vars]['display_name'] %>" + + budget_filter { + projects = ["projects/example-project"] + credit_types_treatment = "EXCLUDE_ALL_CREDITS" + services = ["services/24E6-581D-38E5"] # Bigquery + } + + amount { + specified_amount { + currency_code = "USD" + units = "1000" + } + } + + threshold_rules { + threshold_percent = 0.5 + } + threshold_rules { + threshold_percent = 0.9 + spend_basis = "FORECASTED_SPEND" + } +} From bd9aa232b44815f8d0e83ed02b8c31a048c1f345 Mon Sep 17 00:00:00 2001 From: Dana Hoffman Date: Tue, 26 Nov 2019 18:15:08 -0500 Subject: [PATCH 5/9] use billing acct from env var in tests --- products/billingbudget/terraform.yaml | 2 ++ templates/terraform/examples/billing_budget_basic.tf.erb | 3 +-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/products/billingbudget/terraform.yaml b/products/billingbudget/terraform.yaml index 008b63e097fc..bffdd96995e8 100644 --- a/products/billingbudget/terraform.yaml +++ b/products/billingbudget/terraform.yaml @@ -23,6 +23,8 @@ overrides: !ruby/object:Overrides::ResourceOverrides primary_resource_id: 'budget' vars: display_name: 'Example Billing Budget' + test_env_vars: + billing_acct: :BILLING_ACCT custom_code: !ruby/object:Provider::Terraform::CustomCode custom_import: templates/terraform/custom_import/self_link_as_name.erb post_create: templates/terraform/post_create/set_computed_name.erb diff --git a/templates/terraform/examples/billing_budget_basic.tf.erb b/templates/terraform/examples/billing_budget_basic.tf.erb index 024d61aa478f..5292d0bf65f5 100644 --- a/templates/terraform/examples/billing_budget_basic.tf.erb +++ b/templates/terraform/examples/billing_budget_basic.tf.erb @@ -1,6 +1,5 @@ data "google_billing_account" "account" { - display_name = "My Billing Account" - open = true + billing_account = "<%= ctx[:test_env_vars]['billing_acct'] -%>" } resource "google_billing_budget" "<%= ctx[:primary_resource_id] %>" { From 723145530c2c03379656e050e2321d4cd506fd85 Mon Sep 17 00:00:00 2001 From: Umair Idris Date: Wed, 27 Nov 2019 16:11:33 +0000 Subject: [PATCH 6/9] add at_least_one_of to budget filter, add filter test --- products/billingbudget/api.yaml | 4 ++++ products/billingbudget/terraform.yaml | 8 ++++++++ templates/terraform/examples/billing_budget_filter.tf.erb | 3 +-- 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/products/billingbudget/api.yaml b/products/billingbudget/api.yaml index da0bb04ff30e..51f200e779e1 100644 --- a/products/billingbudget/api.yaml +++ b/products/billingbudget/api.yaml @@ -71,6 +71,10 @@ objects: description: | Filters that define which resources are used to compute the actual spend against the budget. + at_least_one_of: + - budget_filter.0.projects + - budget_filter.0.credit_types_treatment + - budget_filter.0.services properties: - !ruby/object:Api::Type::Array name: projects diff --git a/products/billingbudget/terraform.yaml b/products/billingbudget/terraform.yaml index bffdd96995e8..02e956d4106b 100644 --- a/products/billingbudget/terraform.yaml +++ b/products/billingbudget/terraform.yaml @@ -25,6 +25,14 @@ overrides: !ruby/object:Overrides::ResourceOverrides display_name: 'Example Billing Budget' test_env_vars: billing_acct: :BILLING_ACCT + - !ruby/object:Provider::Terraform::Examples + name: 'billing_budget_filter' + min_version: beta + primary_resource_id: 'budget' + vars: + display_name: 'Example Billing Budget' + test_env_vars: + billing_acct: :BILLING_ACCT custom_code: !ruby/object:Provider::Terraform::CustomCode custom_import: templates/terraform/custom_import/self_link_as_name.erb post_create: templates/terraform/post_create/set_computed_name.erb diff --git a/templates/terraform/examples/billing_budget_filter.tf.erb b/templates/terraform/examples/billing_budget_filter.tf.erb index eee5be01d81d..c920c940a798 100644 --- a/templates/terraform/examples/billing_budget_filter.tf.erb +++ b/templates/terraform/examples/billing_budget_filter.tf.erb @@ -1,6 +1,5 @@ data "google_billing_account" "account" { - display_name = "My Billing Account" - open = true + billing_account = "<%= ctx[:test_env_vars]['billing_acct'] -%>" } resource "google_billing_budget" "<%= ctx[:primary_resource_id] %>" { From 806b77701fd9d7326a8c23d8f2d36a4531ac36d9 Mon Sep 17 00:00:00 2001 From: Umair Idris Date: Wed, 27 Nov 2019 19:52:25 +0000 Subject: [PATCH 7/9] add beta provider to example data sources, add docs link, update TODO comment --- products/billingbudget/api.yaml | 4 ++-- templates/terraform/examples/billing_budget_basic.tf.erb | 3 ++- templates/terraform/examples/billing_budget_filter.tf.erb | 3 ++- third_party/terraform/website-compiled/google.erb | 6 ++++++ 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/products/billingbudget/api.yaml b/products/billingbudget/api.yaml index 51f200e779e1..28cf6e5cfda1 100644 --- a/products/billingbudget/api.yaml +++ b/products/billingbudget/api.yaml @@ -30,8 +30,8 @@ objects: base_url: billingAccounts/{{billing_account}}/budgets self_link: '{{name}}' update_verb: :PATCH - # TODO: re-enable this. When this is enabled, changes are not being made - # by the API. + # TODO: investigate why updates are not being handled by the API when this + # is enabled. # update_mask: true description: | Budget configuration for a billing account. diff --git a/templates/terraform/examples/billing_budget_basic.tf.erb b/templates/terraform/examples/billing_budget_basic.tf.erb index 5292d0bf65f5..89d1c7b0519f 100644 --- a/templates/terraform/examples/billing_budget_basic.tf.erb +++ b/templates/terraform/examples/billing_budget_basic.tf.erb @@ -1,4 +1,5 @@ data "google_billing_account" "account" { + provider = google-beta billing_account = "<%= ctx[:test_env_vars]['billing_acct'] -%>" } @@ -9,7 +10,7 @@ resource "google_billing_budget" "<%= ctx[:primary_resource_id] %>" { amount { specified_amount { currency_code = "USD" - units = "10" + units = "100000" } } threshold_rules { diff --git a/templates/terraform/examples/billing_budget_filter.tf.erb b/templates/terraform/examples/billing_budget_filter.tf.erb index c920c940a798..e70c5f107c17 100644 --- a/templates/terraform/examples/billing_budget_filter.tf.erb +++ b/templates/terraform/examples/billing_budget_filter.tf.erb @@ -1,4 +1,5 @@ data "google_billing_account" "account" { + provider = google-beta billing_account = "<%= ctx[:test_env_vars]['billing_acct'] -%>" } @@ -16,7 +17,7 @@ resource "google_billing_budget" "<%= ctx[:primary_resource_id] %>" { amount { specified_amount { currency_code = "USD" - units = "1000" + units = "100000" } } diff --git a/third_party/terraform/website-compiled/google.erb b/third_party/terraform/website-compiled/google.erb index c545ec8f42bb..addcbd4d699e 100644 --- a/third_party/terraform/website-compiled/google.erb +++ b/third_party/terraform/website-compiled/google.erb @@ -374,6 +374,12 @@ > google_billing_account_iam_policy + + <% unless version == 'ga' %> + > + google_billing_budget + + <% end -%> > google_folder From ce4c40f19ef81127f883c57d9b7598f25162e807 Mon Sep 17 00:00:00 2001 From: Dana Hoffman Date: Wed, 27 Nov 2019 15:32:54 -0500 Subject: [PATCH 8/9] fix sidebar link --- third_party/terraform/website-compiled/google.erb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/third_party/terraform/website-compiled/google.erb b/third_party/terraform/website-compiled/google.erb index addcbd4d699e..ef1418b81d7b 100644 --- a/third_party/terraform/website-compiled/google.erb +++ b/third_party/terraform/website-compiled/google.erb @@ -375,11 +375,11 @@ > google_billing_account_iam_policy - <% unless version == 'ga' %> +<% unless version == 'ga' -%> > - google_billing_budget + google_billing_budget - <% end -%> +<% end -%> > google_folder From 7e28b315b304969b903508d3c14437a96b5cff77 Mon Sep 17 00:00:00 2001 From: Modular Magician Date: Tue, 3 Dec 2019 18:39:48 +0000 Subject: [PATCH 9/9] Update tracked submodules -> HEAD on Tue Dec 3 18:39:48 UTC 2019 Tracked submodules are build/terraform-beta build/terraform-mapper build/terraform build/ansible build/inspec. --- build/terraform | 2 +- build/terraform-beta | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/build/terraform b/build/terraform index c205750aa9fd..b9b3d13fca4e 160000 --- a/build/terraform +++ b/build/terraform @@ -1 +1 @@ -Subproject commit c205750aa9fd87af65bb7096399f8a950f4a9cd7 +Subproject commit b9b3d13fca4e22c2c8c3f639dca1b925ce5bd2d6 diff --git a/build/terraform-beta b/build/terraform-beta index dd21b90f7ec8..b574628fcf7a 160000 --- a/build/terraform-beta +++ b/build/terraform-beta @@ -1 +1 @@ -Subproject commit dd21b90f7ec8c03bdd115ae9ee529da2caf56fa4 +Subproject commit b574628fcf7a5fbd71bf052a2a37d8a320d2d3cc