Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance. Project price only 1 $
You can buy this project and download/modify it how often you want.
Build cloud applications and infrastructure by combining the safety and reliability of infrastructure as code with the power of the Kotlin programming language.
@file:Suppress("NAME_SHADOWING", "DEPRECATION")
package com.pulumi.googlenative.cloudasset.v1.kotlin
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.googlenative.cloudasset.v1.FeedArgs.builder
import com.pulumi.googlenative.cloudasset.v1.kotlin.enums.FeedContentType
import com.pulumi.googlenative.cloudasset.v1.kotlin.inputs.ExprArgs
import com.pulumi.googlenative.cloudasset.v1.kotlin.inputs.ExprArgsBuilder
import com.pulumi.googlenative.cloudasset.v1.kotlin.inputs.FeedOutputConfigArgs
import com.pulumi.googlenative.cloudasset.v1.kotlin.inputs.FeedOutputConfigArgsBuilder
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName
/**
* Creates a feed in a parent project/folder/organization to listen to its asset updates.
* Auto-naming is currently not supported for this resource.
* @property assetNames A list of the full names of the assets to receive updates. You must specify either or both of asset_names and asset_types. Only asset updates matching specified asset_names or asset_types are exported to the feed. Example: `//compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1`. For a list of the full names for supported asset types, see [Resource name format](/asset-inventory/docs/resource-name-format).
* @property assetTypes A list of types of the assets to receive updates. You must specify either or both of asset_names and asset_types. Only asset updates matching specified asset_names or asset_types are exported to the feed. Example: `"compute.googleapis.com/Disk"` For a list of all supported asset types, see [Supported asset types](/asset-inventory/docs/supported-asset-types).
* @property condition A condition which determines whether an asset update should be published. If specified, an asset will be returned only when the expression evaluates to true. When set, `expression` field in the `Expr` must be a valid [CEL expression] (https://github.com/google/cel-spec) on a TemporalAsset with name `temporal_asset`. Example: a Feed with expression ("temporal_asset.deleted == true") will only publish Asset deletions. Other fields of `Expr` are optional. See our [user guide](https://cloud.google.com/asset-inventory/docs/monitoring-asset-changes-with-condition) for detailed instructions.
* @property contentType Asset content type. If not specified, no content but the asset name and type will be returned.
* @property feedId This is the client-assigned asset feed identifier and it needs to be unique under a specific parent project/folder/organization.
* @property feedOutputConfig Feed output configuration defining where the asset updates are published to.
* @property name The format will be projects/{project_number}/feeds/{client-assigned_feed_identifier} or folders/{folder_number}/feeds/{client-assigned_feed_identifier} or organizations/{organization_number}/feeds/{client-assigned_feed_identifier} The client-assigned feed identifier must be unique within the parent project/folder/organization.
* @property relationshipTypes A list of relationship types to output, for example: `INSTANCE_TO_INSTANCEGROUP`. This field should only be specified if content_type=RELATIONSHIP. * If specified: it outputs specified relationship updates on the [asset_names] or the [asset_types]. It returns an error if any of the [relationship_types] doesn't belong to the supported relationship types of the [asset_names] or [asset_types], or any of the [asset_names] or the [asset_types] doesn't belong to the source types of the [relationship_types]. * Otherwise: it outputs the supported relationships of the types of [asset_names] and [asset_types] or returns an error if any of the [asset_names] or the [asset_types] has no replationship support. See [Introduction to Cloud Asset Inventory](https://cloud.google.com/asset-inventory/docs/overview) for all supported asset types and relationship types.
* @property v1Id
* @property v1Id1
*/
public data class FeedArgs(
public val assetNames: Output>? = null,
public val assetTypes: Output>? = null,
public val condition: Output? = null,
public val contentType: Output? = null,
public val feedId: Output? = null,
public val feedOutputConfig: Output? = null,
public val name: Output? = null,
public val relationshipTypes: Output>? = null,
public val v1Id: Output? = null,
public val v1Id1: Output? = null,
) : ConvertibleToJava {
override fun toJava(): com.pulumi.googlenative.cloudasset.v1.FeedArgs =
com.pulumi.googlenative.cloudasset.v1.FeedArgs.builder()
.assetNames(assetNames?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
.assetTypes(assetTypes?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
.condition(condition?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.contentType(contentType?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.feedId(feedId?.applyValue({ args0 -> args0 }))
.feedOutputConfig(feedOutputConfig?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.name(name?.applyValue({ args0 -> args0 }))
.relationshipTypes(relationshipTypes?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
.v1Id(v1Id?.applyValue({ args0 -> args0 }))
.v1Id1(v1Id1?.applyValue({ args0 -> args0 })).build()
}
/**
* Builder for [FeedArgs].
*/
@PulumiTagMarker
public class FeedArgsBuilder internal constructor() {
private var assetNames: Output>? = null
private var assetTypes: Output>? = null
private var condition: Output? = null
private var contentType: Output? = null
private var feedId: Output? = null
private var feedOutputConfig: Output? = null
private var name: Output? = null
private var relationshipTypes: Output>? = null
private var v1Id: Output? = null
private var v1Id1: Output? = null
/**
* @param value A list of the full names of the assets to receive updates. You must specify either or both of asset_names and asset_types. Only asset updates matching specified asset_names or asset_types are exported to the feed. Example: `//compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1`. For a list of the full names for supported asset types, see [Resource name format](/asset-inventory/docs/resource-name-format).
*/
@JvmName("ruvbwyarbvqlgsso")
public suspend fun assetNames(`value`: Output>) {
this.assetNames = value
}
@JvmName("tdebjcgtqyolegnw")
public suspend fun assetNames(vararg values: Output) {
this.assetNames = Output.all(values.asList())
}
/**
* @param values A list of the full names of the assets to receive updates. You must specify either or both of asset_names and asset_types. Only asset updates matching specified asset_names or asset_types are exported to the feed. Example: `//compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1`. For a list of the full names for supported asset types, see [Resource name format](/asset-inventory/docs/resource-name-format).
*/
@JvmName("joapdrmrfrfbnwrs")
public suspend fun assetNames(values: List