Add asset_feeds to resman modules (#3658)

* Add asset_feeds to resman modules

* Add examples and update readmes

* Extend pubsub_topic context to project and folder modules

* Use pubsub_topic context for pubsub_destination

* Update readmes and add project-factory asset_feed example

* Update context tests

* Update schemas
This commit is contained in:
Julio Castillo
2026-01-20 15:37:35 +01:00
committed by GitHub
parent 558e552b5e
commit d9e1b924a1
43 changed files with 1935 additions and 126 deletions

View File

@@ -14,6 +14,40 @@
* limitations under the License.
*/
variable "asset_feeds" {
description = "Cloud Asset Inventory feeds."
type = map(object({
billing_project = string
content_type = optional(string)
asset_types = optional(list(string))
asset_names = optional(list(string))
feed_output_config = object({
pubsub_destination = object({
topic = string
})
})
condition = optional(object({
expression = string
title = optional(string)
description = optional(string)
location = optional(string)
}))
}))
default = {}
nullable = false
validation {
condition = alltrue([
for k, v in var.asset_feeds :
v.content_type == null || contains(
["RESOURCE", "IAM_POLICY", "ORG_POLICY", "ACCESS_POLICY", "OS_INVENTORY", "RELATIONSHIP"],
v.content_type
)
])
error_message = "Content type must be one of RESOURCE, IAM_POLICY, ORG_POLICY, ACCESS_POLICY, OS_INVENTORY, RELATIONSHIP."
}
}
variable "contacts" {
description = "List of essential contacts for this resource. Must be in the form EMAIL -> [NOTIFICATION_TYPES]. Valid notification types are ALL, SUSPENSION, SECURITY, TECHNICAL, BILLING, LEGAL, PRODUCT_UPDATES."
type = map(list(string))