diff --git a/CHANGELOG.md b/CHANGELOG.md index b4e5284adf..fbbaf39eb1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,7 @@ CHANGELOG ========= ## HEAD (Unreleased) -_(none)_ +* Upgrade to v3.32.0 of the Google Beta Terraform Provider --- diff --git a/provider/cmd/pulumi-resource-gcp/schema.json b/provider/cmd/pulumi-resource-gcp/schema.json index f069a68753..16214e480f 100644 --- a/provider/cmd/pulumi-resource-gcp/schema.json +++ b/provider/cmd/pulumi-resource-gcp/schema.json @@ -50,6 +50,9 @@ "binaryAuthorizationCustomEndpoint": { "type": "string" }, + "cloudAssetCustomEndpoint": { + "type": "string" + }, "cloudBillingCustomEndpoint": { "type": "string" }, @@ -4686,6 +4689,108 @@ "evaluationMode" ] }, + "gcp:cloudasset/FolderFeedFeedOutputConfig:FolderFeedFeedOutputConfig": { + "properties": { + "pubsubDestination": { + "$ref": "#/types/gcp:cloudasset/FolderFeedFeedOutputConfigPubsubDestination:FolderFeedFeedOutputConfigPubsubDestination", + "description": "Destination on Cloud Pubsub. Structure is documented below.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "pubsubDestination" + ] + }, + "gcp:cloudasset/FolderFeedFeedOutputConfigPubsubDestination:FolderFeedFeedOutputConfigPubsubDestination": { + "properties": { + "topic": { + "type": "string", + "description": "Destination on Cloud Pubsub topic.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "topic" + ] + }, + "gcp:cloudasset/OrganizationFeedFeedOutputConfig:OrganizationFeedFeedOutputConfig": { + "properties": { + "pubsubDestination": { + "$ref": "#/types/gcp:cloudasset/OrganizationFeedFeedOutputConfigPubsubDestination:OrganizationFeedFeedOutputConfigPubsubDestination", + "description": "Destination on Cloud Pubsub. Structure is documented below.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "pubsubDestination" + ] + }, + "gcp:cloudasset/OrganizationFeedFeedOutputConfigPubsubDestination:OrganizationFeedFeedOutputConfigPubsubDestination": { + "properties": { + "topic": { + "type": "string", + "description": "Destination on Cloud Pubsub topic.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "topic" + ] + }, + "gcp:cloudasset/ProjectFeedFeedOutputConfig:ProjectFeedFeedOutputConfig": { + "properties": { + "pubsubDestination": { + "$ref": "#/types/gcp:cloudasset/ProjectFeedFeedOutputConfigPubsubDestination:ProjectFeedFeedOutputConfigPubsubDestination", + "description": "Destination on Cloud Pubsub. Structure is documented below.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "pubsubDestination" + ] + }, + "gcp:cloudasset/ProjectFeedFeedOutputConfigPubsubDestination:ProjectFeedFeedOutputConfigPubsubDestination": { + "properties": { + "topic": { + "type": "string", + "description": "Destination on Cloud Pubsub topic.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "topic" + ] + }, "gcp:cloudbuild/TriggerBuild:TriggerBuild": { "properties": { "images": { @@ -21531,6 +21636,23 @@ "state" ] }, + "gcp:container/ClusterDefaultSnatStatus:ClusterDefaultSnatStatus": { + "properties": { + "disabled": { + "type": "boolean", + "description": "The status of the Istio addon, which makes it easy to set up Istio for services in a\ncluster. It is disabled by default. Set `disabled = false` to enable.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "disabled" + ] + }, "gcp:container/ClusterIpAllocationPolicy:ClusterIpAllocationPolicy": { "properties": { "clusterIpv4CidrBlock": { @@ -23822,6 +23944,27 @@ } } }, + "gcp:container/getClusterDefaultSnatStatus:getClusterDefaultSnatStatus": { + "properties": { + "disabled": { + "type": "boolean", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "disabled" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, "gcp:container/getClusterIpAllocationPolicy:getClusterIpAllocationPolicy": { "properties": { "clusterIpv4CidrBlock": { @@ -28881,6 +29024,17 @@ "mapCase": false } } + }, + "nfsExportOptions": { + "type": "array", + "items": { + "$ref": "#/types/gcp:filestore/InstanceFileSharesNfsExportOption:InstanceFileSharesNfsExportOption" + }, + "language": { + "python": { + "mapCase": false + } + } } }, "type": "object", @@ -28889,6 +29043,59 @@ "name" ] }, + "gcp:filestore/InstanceFileSharesNfsExportOption:InstanceFileSharesNfsExportOption": { + "properties": { + "accessMode": { + "type": "string", + "description": "Either READ_ONLY, for allowing only read requests on the exported directory,\nor READ_WRITE, for allowing both read and write requests. The default is READ_WRITE.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "anonGid": { + "type": "integer", + "description": "An integer representing the anonymous group id with a default value of 65534.\nAnon_gid may only be set with squashMode of ROOT_SQUASH. An error will be returned\nif this field is specified for other squashMode settings.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "anonUid": { + "type": "integer", + "description": "An integer representing the anonymous user id with a default value of 65534.\nAnon_uid may only be set with squashMode of ROOT_SQUASH. An error will be returned\nif this field is specified for other squashMode settings.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "ipRanges": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of either IPv4 addresses, or ranges in CIDR notation which may mount the file share.\nOverlapping IP ranges are not allowed, both within and across NfsExportOptions. An error will be returned.\nThe limit is 64 IP ranges/addresses for each FileShareConfig among all NfsExportOptions.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "squashMode": { + "type": "string", + "description": "Either NO_ROOT_SQUASH, for allowing root access on the exported directory, or ROOT_SQUASH,\nfor not allowing root access. The default is NO_ROOT_SQUASH.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object" + }, "gcp:filestore/InstanceNetwork:InstanceNetwork": { "properties": { "ipAddresses": { @@ -32444,79 +32651,29 @@ }, "type": "object" }, - "gcp:monitoring/NotificationChannelSensitiveLabels:NotificationChannelSensitiveLabels": { + "gcp:monitoring/MetricDescriptorLabel:MetricDescriptorLabel": { "properties": { - "authToken": { + "description": { "type": "string", - "description": "An authorization token for a notification channel. Channel types that support this field include: slack **Note**: This property is sensitive and will not be displayed in the plan.\n", + "description": "A human-readable description for the label.\n", "language": { "python": { "mapCase": false } } }, - "password": { + "key": { "type": "string", - "description": "An password for a notification channel. Channel types that support this field include: webhook_basicauth **Note**: This property is sensitive and will not be displayed in the plan.\n", + "description": "The key for this label. The key must not exceed 100 characters. The first character of the key must be an upper- or lower-case letter, the remaining characters must be letters, digits or underscores, and the key must match the regular expression [a-zA-Z][a-zA-Z0-9_]*\n", "language": { "python": { "mapCase": false } } }, - "serviceKey": { + "valueType": { "type": "string", - "description": "An servicekey token for a notification channel. Channel types that support this field include: pagerduty **Note**: This property is sensitive and will not be displayed in the plan.\n", - "language": { - "python": { - "mapCase": false - } - } - } - }, - "type": "object" - }, - "gcp:monitoring/SloBasicSli:SloBasicSli": { - "properties": { - "latency": { - "$ref": "#/types/gcp:monitoring/SloBasicSliLatency:SloBasicSliLatency", - "description": "Parameters for a latency threshold SLI. Structure is documented below.\n", - "language": { - "python": { - "mapCase": false - } - } - }, - "locations": { - "type": "array", - "items": { - "type": "string" - }, - "description": "An optional set of locations to which this SLI is relevant.\nTelemetry from other locations will not be used to calculate\nperformance for this SLI. If omitted, this SLI applies to all\nlocations in which the Service has activity. For service types\nthat don't support breaking down by location, setting this\nfield will result in an error.\n", - "language": { - "python": { - "mapCase": false - } - } - }, - "methods": { - "type": "array", - "items": { - "type": "string" - }, - "description": "An optional set of RPCs to which this SLI is relevant.\nTelemetry from other methods will not be used to calculate\nperformance for this SLI. If omitted, this SLI applies to all\nthe Service's methods. For service types that don't support\nbreaking down by method, setting this field will result in an\nerror.\n", - "language": { - "python": { - "mapCase": false - } - } - }, - "versions": { - "type": "array", - "items": { - "type": "string" - }, - "description": "The set of API versions to which this SLI is relevant.\nTelemetry from other API versions will not be used to\ncalculate performance for this SLI. If omitted,\nthis SLI applies to all API versions. For service types\nthat don't support breaking down by version, setting this\nfield will result in an error.\n", + "description": "The type of data that can be assigned to the label.\n", "language": { "python": { "mapCase": false @@ -32526,90 +32683,23 @@ }, "type": "object", "required": [ - "latency" + "key" ] }, - "gcp:monitoring/SloBasicSliLatency:SloBasicSliLatency": { + "gcp:monitoring/MetricDescriptorMetadata:MetricDescriptorMetadata": { "properties": { - "threshold": { + "ingestDelay": { "type": "string", - "description": "A duration string, e.g. 10s.\nGood service is defined to be the count of requests made to\nthis service that return in no more than threshold.\n", - "language": { - "python": { - "mapCase": false - } - } - } - }, - "type": "object", - "required": [ - "threshold" - ] - }, - "gcp:monitoring/SloRequestBasedSli:SloRequestBasedSli": { - "properties": { - "distributionCut": { - "$ref": "#/types/gcp:monitoring/SloRequestBasedSliDistributionCut:SloRequestBasedSliDistributionCut", - "description": "Used when good_service is defined by a count of values aggregated in a\nDistribution that fall into a good range. The total_service is the\ntotal count of all values aggregated in the Distribution.\nDefines a distribution TimeSeries filter and thresholds used for\nmeasuring good service and total service. Structure is documented below.\n", + "description": "The delay of data points caused by ingestion. Data points older than this age are guaranteed to be ingested and available to be read, excluding data loss due to errors. In `[duration format](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf?\u0026_ga=2.264881487.1507873253.1593446723-935052455.1591817775#google.protobuf.Duration)`.\n", "language": { "python": { "mapCase": false } } }, - "goodTotalRatio": { - "$ref": "#/types/gcp:monitoring/SloRequestBasedSliGoodTotalRatio:SloRequestBasedSliGoodTotalRatio", - "description": "A means to compute a ratio of `good_service` to `total_service`.\nDefines computing this ratio with two TimeSeries [monitoring filters](https://cloud.google.com/monitoring/api/v3/filters)\nMust specify exactly two of good, bad, and total service filters.\nThe relationship good_service + bad_service = total_service\nwill be assumed. Structure is documented below.\n", - "language": { - "python": { - "mapCase": false - } - } - } - }, - "type": "object" - }, - "gcp:monitoring/SloRequestBasedSliDistributionCut:SloRequestBasedSliDistributionCut": { - "properties": { - "distributionFilter": { + "samplePeriod": { "type": "string", - "description": "A TimeSeries [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters)\naggregating values to quantify the good service provided.\nMust have ValueType = DISTRIBUTION and\nMetricKind = DELTA or MetricKind = CUMULATIVE.\n", - "language": { - "python": { - "mapCase": false - } - } - }, - "range": { - "$ref": "#/types/gcp:monitoring/SloRequestBasedSliDistributionCutRange:SloRequestBasedSliDistributionCutRange", - "description": "Range of numerical values. The computed good_service\nwill be the count of values x in the Distribution such\nthat range.min \u003c= x \u003c range.max. inclusive of min and\nexclusive of max. Open ranges can be defined by setting\njust one of min or max. Summed value `X` should satisfy\n`range.min \u003c= X \u003c range.max` for a good window. Structure is documented below.\n", - "language": { - "python": { - "mapCase": false - } - } - } - }, - "type": "object", - "required": [ - "distributionFilter", - "range" - ] - }, - "gcp:monitoring/SloRequestBasedSliDistributionCutRange:SloRequestBasedSliDistributionCutRange": { - "properties": { - "max": { - "type": "integer", - "description": "max value for the range (inclusive). If not given,\nwill be set to \"infinity\", defining an open range\n\"\u003e= range.min\"\n", - "language": { - "python": { - "mapCase": false - } - } - }, - "min": { - "type": "integer", - "description": "Min value for the range (inclusive). If not given,\nwill be set to \"-infinity\", defining an open range\n\"\u003c range.max\"\n", + "description": "The sampling period of metric data points. For metrics which are written periodically, consecutive data points are stored at this time interval, excluding data loss due to errors. Metrics with a higher granularity have a smaller sampling period. In `[duration format](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf?\u0026_ga=2.264881487.1507873253.1593446723-935052455.1591817775#google.protobuf.Duration)`.\n", "language": { "python": { "mapCase": false @@ -32619,111 +32709,29 @@ }, "type": "object" }, - "gcp:monitoring/SloRequestBasedSliGoodTotalRatio:SloRequestBasedSliGoodTotalRatio": { + "gcp:monitoring/NotificationChannelSensitiveLabels:NotificationChannelSensitiveLabels": { "properties": { - "badServiceFilter": { - "type": "string", - "description": "A TimeSeries [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters)\nquantifying bad service provided, either demanded service that\nwas not provided or demanded service that was of inadequate\nquality. Exactly two of\ngood, bad, or total service filter must be defined (where\ngood + bad = total is assumed)\nMust have ValueType = DOUBLE or ValueType = INT64 and\nmust have MetricKind = DELTA or MetricKind = CUMULATIVE.\n", - "language": { - "python": { - "mapCase": false - } - } - }, - "goodServiceFilter": { + "authToken": { "type": "string", - "description": "A TimeSeries [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters)\nquantifying good service provided. Exactly two of\ngood, bad, or total service filter must be defined (where\ngood + bad = total is assumed)\nMust have ValueType = DOUBLE or ValueType = INT64 and\nmust have MetricKind = DELTA or MetricKind = CUMULATIVE.\n", + "description": "An authorization token for a notification channel. Channel types that support this field include: slack **Note**: This property is sensitive and will not be displayed in the plan.\n", "language": { "python": { "mapCase": false } } }, - "totalServiceFilter": { - "type": "string", - "description": "A TimeSeries [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters)\nquantifying total demanded service. Exactly two of\ngood, bad, or total service filter must be defined (where\ngood + bad = total is assumed)\nMust have ValueType = DOUBLE or ValueType = INT64 and\nmust have MetricKind = DELTA or MetricKind = CUMULATIVE.\n", - "language": { - "python": { - "mapCase": false - } - } - } - }, - "type": "object" - }, - "gcp:monitoring/SloWindowsBasedSli:SloWindowsBasedSli": { - "properties": { - "goodBadMetricFilter": { + "password": { "type": "string", - "description": "A TimeSeries [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters)\nwith ValueType = BOOL. The window is good if any true values\nappear in the window. One of `good_bad_metric_filter`,\n`good_total_ratio_threshold`, `metric_mean_in_range`,\n`metric_sum_in_range` must be set for `windows_based_sli`.\n", - "language": { - "python": { - "mapCase": false - } - } - }, - "goodTotalRatioThreshold": { - "$ref": "#/types/gcp:monitoring/SloWindowsBasedSliGoodTotalRatioThreshold:SloWindowsBasedSliGoodTotalRatioThreshold", - "description": "Criterion that describes a window as good if its performance is\nhigh enough. One of `good_bad_metric_filter`,\n`good_total_ratio_threshold`, `metric_mean_in_range`,\n`metric_sum_in_range` must be set for `windows_based_sli`. Structure is documented below.\n", - "language": { - "python": { - "mapCase": false - } - } - }, - "metricMeanInRange": { - "$ref": "#/types/gcp:monitoring/SloWindowsBasedSliMetricMeanInRange:SloWindowsBasedSliMetricMeanInRange", - "description": "Criterion that describes a window as good if the metric's value\nis in a good range, *averaged* across returned streams.\nOne of `good_bad_metric_filter`,\n`good_total_ratio_threshold`, `metric_mean_in_range`,\n`metric_sum_in_range` must be set for `windows_based_sli`.\nAverage value X of `time_series` should satisfy\n`range.min \u003c= X \u003c range.max` for a good window. Structure is documented below.\n", - "language": { - "python": { - "mapCase": false - } - } - }, - "metricSumInRange": { - "$ref": "#/types/gcp:monitoring/SloWindowsBasedSliMetricSumInRange:SloWindowsBasedSliMetricSumInRange", - "description": "Criterion that describes a window as good if the metric's value\nis in a good range, *summed* across returned streams.\nSummed value `X` of `time_series` should satisfy\n`range.min \u003c= X \u003c range.max` for a good window.\nOne of `good_bad_metric_filter`,\n`good_total_ratio_threshold`, `metric_mean_in_range`,\n`metric_sum_in_range` must be set for `windows_based_sli`. Structure is documented below.\n", + "description": "An password for a notification channel. Channel types that support this field include: webhook_basicauth **Note**: This property is sensitive and will not be displayed in the plan.\n", "language": { "python": { "mapCase": false } } }, - "windowPeriod": { + "serviceKey": { "type": "string", - "description": "Duration over which window quality is evaluated, given as a\nduration string \"{X}s\" representing X seconds. Must be an\ninteger fraction of a day and at least 60s.\n", - "language": { - "python": { - "mapCase": false - } - } - } - }, - "type": "object" - }, - "gcp:monitoring/SloWindowsBasedSliGoodTotalRatioThreshold:SloWindowsBasedSliGoodTotalRatioThreshold": { - "properties": { - "basicSliPerformance": { - "$ref": "#/types/gcp:monitoring/SloWindowsBasedSliGoodTotalRatioThresholdBasicSliPerformance:SloWindowsBasedSliGoodTotalRatioThresholdBasicSliPerformance", - "description": "Basic SLI to evaluate to judge window quality. Structure is documented below.\n", - "language": { - "python": { - "mapCase": false - } - } - }, - "performance": { - "$ref": "#/types/gcp:monitoring/SloWindowsBasedSliGoodTotalRatioThresholdPerformance:SloWindowsBasedSliGoodTotalRatioThresholdPerformance", - "description": "Request-based SLI to evaluate to judge window quality. Structure is documented below.\n", - "language": { - "python": { - "mapCase": false - } - } - }, - "threshold": { - "type": "number", - "description": "A duration string, e.g. 10s.\nGood service is defined to be the count of requests made to\nthis service that return in no more than threshold.\n", + "description": "An servicekey token for a notification channel. Channel types that support this field include: pagerduty **Note**: This property is sensitive and will not be displayed in the plan.\n", "language": { "python": { "mapCase": false @@ -32733,10 +32741,267 @@ }, "type": "object" }, - "gcp:monitoring/SloWindowsBasedSliGoodTotalRatioThresholdBasicSliPerformance:SloWindowsBasedSliGoodTotalRatioThresholdBasicSliPerformance": { + "gcp:monitoring/SloBasicSli:SloBasicSli": { "properties": { "latency": { - "$ref": "#/types/gcp:monitoring/SloWindowsBasedSliGoodTotalRatioThresholdBasicSliPerformanceLatency:SloWindowsBasedSliGoodTotalRatioThresholdBasicSliPerformanceLatency", + "$ref": "#/types/gcp:monitoring/SloBasicSliLatency:SloBasicSliLatency", + "description": "Parameters for a latency threshold SLI. Structure is documented below.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "locations": { + "type": "array", + "items": { + "type": "string" + }, + "description": "An optional set of locations to which this SLI is relevant.\nTelemetry from other locations will not be used to calculate\nperformance for this SLI. If omitted, this SLI applies to all\nlocations in which the Service has activity. For service types\nthat don't support breaking down by location, setting this\nfield will result in an error.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "methods": { + "type": "array", + "items": { + "type": "string" + }, + "description": "An optional set of RPCs to which this SLI is relevant.\nTelemetry from other methods will not be used to calculate\nperformance for this SLI. If omitted, this SLI applies to all\nthe Service's methods. For service types that don't support\nbreaking down by method, setting this field will result in an\nerror.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "versions": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The set of API versions to which this SLI is relevant.\nTelemetry from other API versions will not be used to\ncalculate performance for this SLI. If omitted,\nthis SLI applies to all API versions. For service types\nthat don't support breaking down by version, setting this\nfield will result in an error.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "latency" + ] + }, + "gcp:monitoring/SloBasicSliLatency:SloBasicSliLatency": { + "properties": { + "threshold": { + "type": "string", + "description": "A duration string, e.g. 10s.\nGood service is defined to be the count of requests made to\nthis service that return in no more than threshold.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "threshold" + ] + }, + "gcp:monitoring/SloRequestBasedSli:SloRequestBasedSli": { + "properties": { + "distributionCut": { + "$ref": "#/types/gcp:monitoring/SloRequestBasedSliDistributionCut:SloRequestBasedSliDistributionCut", + "description": "Used when good_service is defined by a count of values aggregated in a\nDistribution that fall into a good range. The total_service is the\ntotal count of all values aggregated in the Distribution.\nDefines a distribution TimeSeries filter and thresholds used for\nmeasuring good service and total service. Structure is documented below.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "goodTotalRatio": { + "$ref": "#/types/gcp:monitoring/SloRequestBasedSliGoodTotalRatio:SloRequestBasedSliGoodTotalRatio", + "description": "A means to compute a ratio of `good_service` to `total_service`.\nDefines computing this ratio with two TimeSeries [monitoring filters](https://cloud.google.com/monitoring/api/v3/filters)\nMust specify exactly two of good, bad, and total service filters.\nThe relationship good_service + bad_service = total_service\nwill be assumed. Structure is documented below.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object" + }, + "gcp:monitoring/SloRequestBasedSliDistributionCut:SloRequestBasedSliDistributionCut": { + "properties": { + "distributionFilter": { + "type": "string", + "description": "A TimeSeries [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters)\naggregating values to quantify the good service provided.\nMust have ValueType = DISTRIBUTION and\nMetricKind = DELTA or MetricKind = CUMULATIVE.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "range": { + "$ref": "#/types/gcp:monitoring/SloRequestBasedSliDistributionCutRange:SloRequestBasedSliDistributionCutRange", + "description": "Range of numerical values. The computed good_service\nwill be the count of values x in the Distribution such\nthat range.min \u003c= x \u003c range.max. inclusive of min and\nexclusive of max. Open ranges can be defined by setting\njust one of min or max. Summed value `X` should satisfy\n`range.min \u003c= X \u003c range.max` for a good window. Structure is documented below.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "distributionFilter", + "range" + ] + }, + "gcp:monitoring/SloRequestBasedSliDistributionCutRange:SloRequestBasedSliDistributionCutRange": { + "properties": { + "max": { + "type": "integer", + "description": "max value for the range (inclusive). If not given,\nwill be set to \"infinity\", defining an open range\n\"\u003e= range.min\"\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "min": { + "type": "integer", + "description": "Min value for the range (inclusive). If not given,\nwill be set to \"-infinity\", defining an open range\n\"\u003c range.max\"\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object" + }, + "gcp:monitoring/SloRequestBasedSliGoodTotalRatio:SloRequestBasedSliGoodTotalRatio": { + "properties": { + "badServiceFilter": { + "type": "string", + "description": "A TimeSeries [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters)\nquantifying bad service provided, either demanded service that\nwas not provided or demanded service that was of inadequate\nquality. Exactly two of\ngood, bad, or total service filter must be defined (where\ngood + bad = total is assumed)\nMust have ValueType = DOUBLE or ValueType = INT64 and\nmust have MetricKind = DELTA or MetricKind = CUMULATIVE.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "goodServiceFilter": { + "type": "string", + "description": "A TimeSeries [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters)\nquantifying good service provided. Exactly two of\ngood, bad, or total service filter must be defined (where\ngood + bad = total is assumed)\nMust have ValueType = DOUBLE or ValueType = INT64 and\nmust have MetricKind = DELTA or MetricKind = CUMULATIVE.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "totalServiceFilter": { + "type": "string", + "description": "A TimeSeries [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters)\nquantifying total demanded service. Exactly two of\ngood, bad, or total service filter must be defined (where\ngood + bad = total is assumed)\nMust have ValueType = DOUBLE or ValueType = INT64 and\nmust have MetricKind = DELTA or MetricKind = CUMULATIVE.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object" + }, + "gcp:monitoring/SloWindowsBasedSli:SloWindowsBasedSli": { + "properties": { + "goodBadMetricFilter": { + "type": "string", + "description": "A TimeSeries [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters)\nwith ValueType = BOOL. The window is good if any true values\nappear in the window. One of `good_bad_metric_filter`,\n`good_total_ratio_threshold`, `metric_mean_in_range`,\n`metric_sum_in_range` must be set for `windows_based_sli`.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "goodTotalRatioThreshold": { + "$ref": "#/types/gcp:monitoring/SloWindowsBasedSliGoodTotalRatioThreshold:SloWindowsBasedSliGoodTotalRatioThreshold", + "description": "Criterion that describes a window as good if its performance is\nhigh enough. One of `good_bad_metric_filter`,\n`good_total_ratio_threshold`, `metric_mean_in_range`,\n`metric_sum_in_range` must be set for `windows_based_sli`. Structure is documented below.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "metricMeanInRange": { + "$ref": "#/types/gcp:monitoring/SloWindowsBasedSliMetricMeanInRange:SloWindowsBasedSliMetricMeanInRange", + "description": "Criterion that describes a window as good if the metric's value\nis in a good range, *averaged* across returned streams.\nOne of `good_bad_metric_filter`,\n`good_total_ratio_threshold`, `metric_mean_in_range`,\n`metric_sum_in_range` must be set for `windows_based_sli`.\nAverage value X of `time_series` should satisfy\n`range.min \u003c= X \u003c range.max` for a good window. Structure is documented below.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "metricSumInRange": { + "$ref": "#/types/gcp:monitoring/SloWindowsBasedSliMetricSumInRange:SloWindowsBasedSliMetricSumInRange", + "description": "Criterion that describes a window as good if the metric's value\nis in a good range, *summed* across returned streams.\nSummed value `X` of `time_series` should satisfy\n`range.min \u003c= X \u003c range.max` for a good window.\nOne of `good_bad_metric_filter`,\n`good_total_ratio_threshold`, `metric_mean_in_range`,\n`metric_sum_in_range` must be set for `windows_based_sli`. Structure is documented below.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "windowPeriod": { + "type": "string", + "description": "Duration over which window quality is evaluated, given as a\nduration string \"{X}s\" representing X seconds. Must be an\ninteger fraction of a day and at least 60s.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object" + }, + "gcp:monitoring/SloWindowsBasedSliGoodTotalRatioThreshold:SloWindowsBasedSliGoodTotalRatioThreshold": { + "properties": { + "basicSliPerformance": { + "$ref": "#/types/gcp:monitoring/SloWindowsBasedSliGoodTotalRatioThresholdBasicSliPerformance:SloWindowsBasedSliGoodTotalRatioThresholdBasicSliPerformance", + "description": "Basic SLI to evaluate to judge window quality. Structure is documented below.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "performance": { + "$ref": "#/types/gcp:monitoring/SloWindowsBasedSliGoodTotalRatioThresholdPerformance:SloWindowsBasedSliGoodTotalRatioThresholdPerformance", + "description": "Request-based SLI to evaluate to judge window quality. Structure is documented below.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "threshold": { + "type": "number", + "description": "A duration string, e.g. 10s.\nGood service is defined to be the count of requests made to\nthis service that return in no more than threshold.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object" + }, + "gcp:monitoring/SloWindowsBasedSliGoodTotalRatioThresholdBasicSliPerformance:SloWindowsBasedSliGoodTotalRatioThresholdBasicSliPerformance": { + "properties": { + "latency": { + "$ref": "#/types/gcp:monitoring/SloWindowsBasedSliGoodTotalRatioThresholdBasicSliPerformanceLatency:SloWindowsBasedSliGoodTotalRatioThresholdBasicSliPerformanceLatency", "description": "Parameters for a latency threshold SLI. Structure is documented below.\n", "language": { "python": { @@ -33959,47 +34224,50 @@ "title" ] }, - "gcp:osconfig/PatchDeploymentInstanceFilter:PatchDeploymentInstanceFilter": { + "gcp:osconfig/GuestPoliciesAssignment:GuestPoliciesAssignment": { "properties": { - "all": { - "type": "boolean", - "description": "Target all VM instances in the project. If true, no other criteria is permitted.\n", + "groupLabels": { + "type": "array", + "items": { + "$ref": "#/types/gcp:osconfig/GuestPoliciesAssignmentGroupLabel:GuestPoliciesAssignmentGroupLabel" + }, + "description": "Targets instances matching at least one of these label sets. This allows an assignment to target disparate groups,\nfor example \"env=prod or env=staging\". Structure is documented below.\n", "language": { "python": { "mapCase": false } } }, - "groupLabels": { + "instanceNamePrefixes": { "type": "array", "items": { - "$ref": "#/types/gcp:osconfig/PatchDeploymentInstanceFilterGroupLabel:PatchDeploymentInstanceFilterGroupLabel" + "type": "string" }, - "description": "Targets VM instances matching ANY of these GroupLabels. This allows targeting of disparate groups of VM instances. Structure is documented below.\n", + "description": "Targets VM instances whose name starts with one of these prefixes.\nLike labels, this is another way to group VM instances when targeting configs,\nfor example prefix=\"prod-\".\nOnly supported for project-level policies.\n", "language": { "python": { "mapCase": false } } }, - "instanceNamePrefixes": { + "instances": { "type": "array", "items": { "type": "string" }, - "description": "Targets VMs whose name starts with one of these prefixes. Similar to labels, this is another way to group\nVMs when targeting configs, for example prefix=\"prod-\".\n", + "description": "Targets any of the instances specified. Instances are specified by their URI in the form\nzones/[ZONE]/instances/[INSTANCE_NAME].\nInstance targeting is uncommon and is supported to facilitate the management of changes\nby the instance or to target specific VM instances for development and testing.\nOnly supported for project-level policies and must reference instances within this project.\n", "language": { "python": { "mapCase": false } } }, - "instances": { + "osTypes": { "type": "array", "items": { - "type": "string" + "$ref": "#/types/gcp:osconfig/GuestPoliciesAssignmentOsType:GuestPoliciesAssignmentOsType" }, - "description": "Targets any of the VM instances specified. Instances are specified by their URI in the `form zones/{{zone}}/instances/{{instance_name}}`,\n`projects/{{project_id}}/zones/{{zone}}/instances/{{instance_name}}`, or\n`https://www.googleapis.com/compute/v1/projects/{{project_id}}/zones/{{zone}}/instances/{{instance_name}}`\n", + "description": "Targets VM instances matching at least one of the following OS types.\nVM instances must match all supplied criteria for a given OsType to be included. Structure is documented below.\n", "language": { "python": { "mapCase": false @@ -34011,7 +34279,7 @@ "items": { "type": "string" }, - "description": "Targets VM instances in ANY of these zones. Leave empty to target VM instances in any zone.\n", + "description": "Targets instances in any of these zones. Leave empty to target instances in any zone.\nZonal targeting is uncommon and is supported to facilitate the management of changes by zone.\n", "language": { "python": { "mapCase": false @@ -34021,14 +34289,14 @@ }, "type": "object" }, - "gcp:osconfig/PatchDeploymentInstanceFilterGroupLabel:PatchDeploymentInstanceFilterGroupLabel": { + "gcp:osconfig/GuestPoliciesAssignmentGroupLabel:GuestPoliciesAssignmentGroupLabel": { "properties": { "labels": { "type": "object", "additionalProperties": { "type": "string" }, - "description": "Compute Engine instance labels that must be present for a VM instance to be targeted by this filter\n", + "description": "Google Compute Engine instance labels that must be present for an instance to be included in this assignment group.\n", "language": { "python": { "mapCase": false @@ -34041,73 +34309,87 @@ "labels" ] }, - "gcp:osconfig/PatchDeploymentOneTimeSchedule:PatchDeploymentOneTimeSchedule": { + "gcp:osconfig/GuestPoliciesAssignmentOsType:GuestPoliciesAssignmentOsType": { "properties": { - "executeTime": { + "osArchitecture": { "type": "string", - "description": "The desired patch job execution time. A timestamp in RFC3339 UTC \"Zulu\" format,\naccurate to nanoseconds. Example: \"2014-10-02T15:01:23.045123456Z\".\n", + "description": "Targets VM instances with OS Inventory enabled and having the following OS architecture.\n", "language": { "python": { "mapCase": false } } - } - }, - "type": "object", - "required": [ - "executeTime" - ] - }, - "gcp:osconfig/PatchDeploymentPatchConfig:PatchDeploymentPatchConfig": { - "properties": { - "apt": { - "$ref": "#/types/gcp:osconfig/PatchDeploymentPatchConfigApt:PatchDeploymentPatchConfigApt", - "description": "Apt update settings. Use this setting to override the default apt patch rules. Structure is documented below.\n", + }, + "osShortName": { + "type": "string", + "description": "Targets VM instances with OS Inventory enabled and having the following OS short name, for example \"debian\" or \"windows\".\n", "language": { "python": { "mapCase": false } } }, - "goo": { - "$ref": "#/types/gcp:osconfig/PatchDeploymentPatchConfigGoo:PatchDeploymentPatchConfigGoo", - "description": "goo update settings. Use this setting to override the default goo patch rules. Structure is documented below.\n", + "osVersion": { + "type": "string", + "description": "Targets VM instances with OS Inventory enabled and having the following following OS version.\n", "language": { "python": { "mapCase": false } } - }, - "postStep": { - "$ref": "#/types/gcp:osconfig/PatchDeploymentPatchConfigPostStep:PatchDeploymentPatchConfigPostStep", - "description": "The ExecStep to run after the patch update. Structure is documented below.\n", + } + }, + "type": "object" + }, + "gcp:osconfig/GuestPoliciesPackage:GuestPoliciesPackage": { + "properties": { + "desiredState": { + "type": "string", + "description": "Default is INSTALLED. The desired state the agent should maintain for this recipe.\nINSTALLED: The software recipe is installed on the instance but won't be updated to new versions.\nINSTALLED_KEEP_UPDATED: The software recipe is installed on the instance. The recipe is updated to a higher version,\nif a higher version of the recipe is assigned to this instance.\nREMOVE: Remove is unsupported for software recipes and attempts to create or update a recipe to the REMOVE state is rejected.\n", "language": { "python": { "mapCase": false } } }, - "preStep": { - "$ref": "#/types/gcp:osconfig/PatchDeploymentPatchConfigPreStep:PatchDeploymentPatchConfigPreStep", - "description": "The ExecStep to run before the patch update. Structure is documented below.\n", + "manager": { + "type": "string", + "description": "Type of package manager that can be used to install this package. If a system does not have the package manager,\nthe package is not installed or removed no error message is returned. By default, or if you specify ANY,\nthe agent attempts to install and remove this package using the default package manager.\nThis is useful when creating a policy that applies to different types of systems.\nThe default behavior is ANY.\n", "language": { "python": { "mapCase": false } } }, - "rebootConfig": { + "name": { "type": "string", - "description": "Post-patch reboot settings.\n", + "description": "Unique identifier for the recipe. Only one recipe with a given name is installed on an instance.\nNames are also used to identify resources which helps to determine whether guest policies have conflicts.\nThis means that requests to create multiple recipes with the same name and version are rejected since they\ncould potentially have conflicting assignments.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "name" + ] + }, + "gcp:osconfig/GuestPoliciesPackageRepository:GuestPoliciesPackageRepository": { + "properties": { + "apt": { + "$ref": "#/types/gcp:osconfig/GuestPoliciesPackageRepositoryApt:GuestPoliciesPackageRepositoryApt", + "description": "An Apt Repository. Structure is documented below.\n", "language": { "python": { "mapCase": false } } }, - "windowsUpdate": { - "$ref": "#/types/gcp:osconfig/PatchDeploymentPatchConfigWindowsUpdate:PatchDeploymentPatchConfigWindowsUpdate", - "description": "Windows update settings. Use this setting to override the default Windows patch rules. Structure is documented below.\n", + "goo": { + "$ref": "#/types/gcp:osconfig/GuestPoliciesPackageRepositoryGoo:GuestPoliciesPackageRepositoryGoo", + "description": "A Goo Repository. Structure is documented below.\n", "language": { "python": { "mapCase": false @@ -34115,8 +34397,8 @@ } }, "yum": { - "$ref": "#/types/gcp:osconfig/PatchDeploymentPatchConfigYum:PatchDeploymentPatchConfigYum", - "description": "Yum update settings. Use this setting to override the default yum patch rules. Structure is documented below.\n", + "$ref": "#/types/gcp:osconfig/GuestPoliciesPackageRepositoryYum:GuestPoliciesPackageRepositoryYum", + "description": "A Yum Repository. Structure is documented below.\n", "language": { "python": { "mapCase": false @@ -34124,8 +34406,8 @@ } }, "zypper": { - "$ref": "#/types/gcp:osconfig/PatchDeploymentPatchConfigZypper:PatchDeploymentPatchConfigZypper", - "description": "zypper update settings. Use this setting to override the default zypper patch rules. Structure is documented below.\n", + "$ref": "#/types/gcp:osconfig/GuestPoliciesPackageRepositoryZypper:GuestPoliciesPackageRepositoryZypper", + "description": "A Zypper Repository. Structure is documented below.\n", "language": { "python": { "mapCase": false @@ -34135,49 +34417,50 @@ }, "type": "object" }, - "gcp:osconfig/PatchDeploymentPatchConfigApt:PatchDeploymentPatchConfigApt": { + "gcp:osconfig/GuestPoliciesPackageRepositoryApt:GuestPoliciesPackageRepositoryApt": { "properties": { - "excludes": { - "type": "array", - "items": { - "type": "string" - }, - "description": "List of KBs to exclude from update.\n", + "archiveType": { + "type": "string", + "description": "Type of archive files in this repository. The default behavior is DEB.\n", "language": { "python": { "mapCase": false } } }, - "exclusivePackages": { + "components": { "type": "array", "items": { "type": "string" }, - "description": "An exclusive list of packages to be updated. These are the only packages that will be updated.\nIf these packages are not installed, they will be ignored. This field cannot be specified with\nany other patch configuration fields.\n", + "description": "List of components for this repository. Must contain at least one item.\n", "language": { "python": { "mapCase": false } } }, - "type": { + "distribution": { "type": "string", - "description": "By changing the type to DIST, the patching is performed using apt-get dist-upgrade instead.\n", + "description": "Distribution of this repository.\n", "language": { "python": { "mapCase": false } } - } - }, - "type": "object" - }, - "gcp:osconfig/PatchDeploymentPatchConfigGoo:PatchDeploymentPatchConfigGoo": { - "properties": { - "enabled": { - "type": "boolean", - "description": "goo update settings. Use this setting to override the default goo patch rules.\n", + }, + "gpgKey": { + "type": "string", + "description": "URI of the key file for this repository. The agent maintains a keyring at\n/etc/apt/trusted.gpg.d/osconfig_agent_managed.gpg containing all the keys in any applied guest policy.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "uri": { + "type": "string", + "description": "URI from which to fetch the object. It should contain both the protocol and path following the format {protocol}://{location}.\n", "language": { "python": { "mapCase": false @@ -34187,23 +34470,25 @@ }, "type": "object", "required": [ - "enabled" + "components", + "distribution", + "uri" ] }, - "gcp:osconfig/PatchDeploymentPatchConfigPostStep:PatchDeploymentPatchConfigPostStep": { + "gcp:osconfig/GuestPoliciesPackageRepositoryGoo:GuestPoliciesPackageRepositoryGoo": { "properties": { - "linuxExecStepConfig": { - "$ref": "#/types/gcp:osconfig/PatchDeploymentPatchConfigPostStepLinuxExecStepConfig:PatchDeploymentPatchConfigPostStepLinuxExecStepConfig", - "description": "The ExecStepConfig for all Linux VMs targeted by the PatchJob. Structure is documented below.\n", + "name": { + "type": "string", + "description": "Unique identifier for the recipe. Only one recipe with a given name is installed on an instance.\nNames are also used to identify resources which helps to determine whether guest policies have conflicts.\nThis means that requests to create multiple recipes with the same name and version are rejected since they\ncould potentially have conflicting assignments.\n", "language": { "python": { "mapCase": false } } }, - "windowsExecStepConfig": { - "$ref": "#/types/gcp:osconfig/PatchDeploymentPatchConfigPostStepWindowsExecStepConfig:PatchDeploymentPatchConfigPostStepWindowsExecStepConfig", - "description": "The ExecStepConfig for all Windows VMs targeted by the PatchJob. Structure is documented below.\n", + "url": { + "type": "string", + "description": "The url of the repository.\n", "language": { "python": { "mapCase": false @@ -34211,43 +34496,47 @@ } } }, - "type": "object" + "type": "object", + "required": [ + "name", + "url" + ] }, - "gcp:osconfig/PatchDeploymentPatchConfigPostStepLinuxExecStepConfig:PatchDeploymentPatchConfigPostStepLinuxExecStepConfig": { + "gcp:osconfig/GuestPoliciesPackageRepositoryYum:GuestPoliciesPackageRepositoryYum": { "properties": { - "allowedSuccessCodes": { - "type": "array", - "items": { - "type": "integer" - }, - "description": "Defaults to [0]. A list of possible return values that the execution can return to indicate a success.\n", + "baseUrl": { + "type": "string", + "description": "The location of the repository directory.\n", "language": { "python": { "mapCase": false } } }, - "gcsObject": { - "$ref": "#/types/gcp:osconfig/PatchDeploymentPatchConfigPostStepLinuxExecStepConfigGcsObject:PatchDeploymentPatchConfigPostStepLinuxExecStepConfigGcsObject", - "description": "A Cloud Storage object containing the executable. Structure is documented below.\n", + "displayName": { + "type": "string", + "description": "The display name of the repository.\n", "language": { "python": { "mapCase": false } } }, - "interpreter": { - "type": "string", - "description": "The script interpreter to use to run the script. If no interpreter is specified the script will\nbe executed directly, which will likely only succeed for scripts with shebang lines.\n", + "gpgKeys": { + "type": "array", + "items": { + "type": "string" + }, + "description": "URIs of GPG keys.\n", "language": { "python": { "mapCase": false } } }, - "localPath": { + "id": { "type": "string", - "description": "An absolute path to the executable on the VM.\n", + "description": "Id of the artifact, which the installation and update steps of this recipe can reference.\nArtifacts in a recipe cannot have the same id.\n", "language": { "python": { "mapCase": false @@ -34255,31 +34544,47 @@ } } }, - "type": "object" + "type": "object", + "required": [ + "baseUrl", + "id" + ] }, - "gcp:osconfig/PatchDeploymentPatchConfigPostStepLinuxExecStepConfigGcsObject:PatchDeploymentPatchConfigPostStepLinuxExecStepConfigGcsObject": { + "gcp:osconfig/GuestPoliciesPackageRepositoryZypper:GuestPoliciesPackageRepositoryZypper": { "properties": { - "bucket": { + "baseUrl": { "type": "string", - "description": "Bucket of the Cloud Storage object.\n", + "description": "The location of the repository directory.\n", "language": { "python": { "mapCase": false } } }, - "generationNumber": { + "displayName": { "type": "string", - "description": "Generation number of the Cloud Storage object. This is used to ensure that the ExecStep specified by this PatchJob does not change.\n", + "description": "The display name of the repository.\n", "language": { "python": { "mapCase": false } } }, - "object": { + "gpgKeys": { + "type": "array", + "items": { + "type": "string" + }, + "description": "URIs of GPG keys.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "id": { "type": "string", - "description": "Name of the Cloud Storage object.\n", + "description": "Id of the artifact, which the installation and update steps of this recipe can reference.\nArtifacts in a recipe cannot have the same id.\n", "language": { "python": { "mapCase": false @@ -34289,78 +34594,69 @@ }, "type": "object", "required": [ - "bucket", - "generationNumber", - "object" + "baseUrl", + "id" ] }, - "gcp:osconfig/PatchDeploymentPatchConfigPostStepWindowsExecStepConfig:PatchDeploymentPatchConfigPostStepWindowsExecStepConfig": { + "gcp:osconfig/GuestPoliciesRecipe:GuestPoliciesRecipe": { "properties": { - "allowedSuccessCodes": { + "artifacts": { "type": "array", "items": { - "type": "integer" + "$ref": "#/types/gcp:osconfig/GuestPoliciesRecipeArtifact:GuestPoliciesRecipeArtifact" }, - "description": "Defaults to [0]. A list of possible return values that the execution can return to indicate a success.\n", - "language": { - "python": { - "mapCase": false - } - } - }, - "gcsObject": { - "$ref": "#/types/gcp:osconfig/PatchDeploymentPatchConfigPostStepWindowsExecStepConfigGcsObject:PatchDeploymentPatchConfigPostStepWindowsExecStepConfigGcsObject", - "description": "A Cloud Storage object containing the executable. Structure is documented below.\n", + "description": "Resources available to be used in the steps in the recipe. Structure is documented below.\n", "language": { "python": { "mapCase": false } } }, - "interpreter": { + "desiredState": { "type": "string", - "description": "The script interpreter to use to run the script. If no interpreter is specified the script will\nbe executed directly, which will likely only succeed for scripts with shebang lines.\n", + "description": "Default is INSTALLED. The desired state the agent should maintain for this recipe.\nINSTALLED: The software recipe is installed on the instance but won't be updated to new versions.\nINSTALLED_KEEP_UPDATED: The software recipe is installed on the instance. The recipe is updated to a higher version,\nif a higher version of the recipe is assigned to this instance.\nREMOVE: Remove is unsupported for software recipes and attempts to create or update a recipe to the REMOVE state is rejected.\n", "language": { "python": { "mapCase": false } } }, - "localPath": { - "type": "string", - "description": "An absolute path to the executable on the VM.\n", + "installSteps": { + "type": "array", + "items": { + "$ref": "#/types/gcp:osconfig/GuestPoliciesRecipeInstallStep:GuestPoliciesRecipeInstallStep" + }, + "description": "Actions to be taken for installing this recipe. On failure it stops executing steps and does not attempt another installation.\nAny steps taken (including partially completed steps) are not rolled back. Structure is documented below.\n", "language": { "python": { "mapCase": false } } - } - }, - "type": "object" - }, - "gcp:osconfig/PatchDeploymentPatchConfigPostStepWindowsExecStepConfigGcsObject:PatchDeploymentPatchConfigPostStepWindowsExecStepConfigGcsObject": { - "properties": { - "bucket": { + }, + "name": { "type": "string", - "description": "Bucket of the Cloud Storage object.\n", + "description": "Unique identifier for the recipe. Only one recipe with a given name is installed on an instance.\nNames are also used to identify resources which helps to determine whether guest policies have conflicts.\nThis means that requests to create multiple recipes with the same name and version are rejected since they\ncould potentially have conflicting assignments.\n", "language": { "python": { "mapCase": false } } }, - "generationNumber": { - "type": "string", - "description": "Generation number of the Cloud Storage object. This is used to ensure that the ExecStep specified by this PatchJob does not change.\n", + "updateSteps": { + "type": "array", + "items": { + "$ref": "#/types/gcp:osconfig/GuestPoliciesRecipeUpdateStep:GuestPoliciesRecipeUpdateStep" + }, + "description": "Actions to be taken for updating this recipe. On failure it stops executing steps and does not attempt another update for this recipe.\nAny steps taken (including partially completed steps) are not rolled back. Structure is documented below.\n", "language": { "python": { "mapCase": false } } }, - "object": { + "version": { "type": "string", - "description": "Name of the Cloud Storage object.\n", + "description": "The version of this software recipe. Version can be up to 4 period separated numbers (e.g. 12.34.56.78).\n", "language": { "python": { "mapCase": false @@ -34370,25 +34666,41 @@ }, "type": "object", "required": [ - "bucket", - "generationNumber", - "object" + "name" ] }, - "gcp:osconfig/PatchDeploymentPatchConfigPreStep:PatchDeploymentPatchConfigPreStep": { + "gcp:osconfig/GuestPoliciesRecipeArtifact:GuestPoliciesRecipeArtifact": { "properties": { - "linuxExecStepConfig": { - "$ref": "#/types/gcp:osconfig/PatchDeploymentPatchConfigPreStepLinuxExecStepConfig:PatchDeploymentPatchConfigPreStepLinuxExecStepConfig", - "description": "The ExecStepConfig for all Linux VMs targeted by the PatchJob. Structure is documented below.\n", + "allowInsecure": { + "type": "boolean", + "description": "Defaults to false. When false, recipes are subject to validations based on the artifact type:\nRemote: A checksum must be specified, and only protocols with transport-layer security are permitted.\nGCS: An object generation number must be specified.\n", "language": { "python": { "mapCase": false } } }, - "windowsExecStepConfig": { - "$ref": "#/types/gcp:osconfig/PatchDeploymentPatchConfigPreStepWindowsExecStepConfig:PatchDeploymentPatchConfigPreStepWindowsExecStepConfig", - "description": "The ExecStepConfig for all Windows VMs targeted by the PatchJob. Structure is documented below.\n", + "gcs": { + "$ref": "#/types/gcp:osconfig/GuestPoliciesRecipeArtifactGcs:GuestPoliciesRecipeArtifactGcs", + "description": "A Google Cloud Storage artifact. Structure is documented below.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "id": { + "type": "string", + "description": "Id of the artifact, which the installation and update steps of this recipe can reference.\nArtifacts in a recipe cannot have the same id.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "remote": { + "$ref": "#/types/gcp:osconfig/GuestPoliciesRecipeArtifactRemote:GuestPoliciesRecipeArtifactRemote", + "description": "A generic remote artifact. Structure is documented below.\n", "language": { "python": { "mapCase": false @@ -34396,43 +34708,57 @@ } } }, - "type": "object" + "type": "object", + "required": [ + "id" + ] }, - "gcp:osconfig/PatchDeploymentPatchConfigPreStepLinuxExecStepConfig:PatchDeploymentPatchConfigPreStepLinuxExecStepConfig": { + "gcp:osconfig/GuestPoliciesRecipeArtifactGcs:GuestPoliciesRecipeArtifactGcs": { "properties": { - "allowedSuccessCodes": { - "type": "array", - "items": { - "type": "integer" - }, - "description": "Defaults to [0]. A list of possible return values that the execution can return to indicate a success.\n", + "bucket": { + "type": "string", + "description": "Bucket of the Google Cloud Storage object. Given an example URL: https://storage.googleapis.com/my-bucket/foo/bar#1234567\nthis value would be my-bucket.\n", "language": { "python": { "mapCase": false } } }, - "gcsObject": { - "$ref": "#/types/gcp:osconfig/PatchDeploymentPatchConfigPreStepLinuxExecStepConfigGcsObject:PatchDeploymentPatchConfigPreStepLinuxExecStepConfigGcsObject", - "description": "A Cloud Storage object containing the executable. Structure is documented below.\n", + "generation": { + "type": "integer", + "description": "Must be provided if allowInsecure is false. Generation number of the Google Cloud Storage object.\nhttps://storage.googleapis.com/my-bucket/foo/bar#1234567 this value would be 1234567.\n", "language": { "python": { "mapCase": false } } }, - "interpreter": { + "object": { "type": "string", - "description": "The script interpreter to use to run the script. If no interpreter is specified the script will\nbe executed directly, which will likely only succeed for scripts with shebang lines.\n", + "description": "Name of the Google Cloud Storage object. Given an example URL: https://storage.googleapis.com/my-bucket/foo/bar#1234567\nthis value would be foo/bar.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object" + }, + "gcp:osconfig/GuestPoliciesRecipeArtifactRemote:GuestPoliciesRecipeArtifactRemote": { + "properties": { + "checkSum": { + "type": "string", + "description": "Must be provided if allowInsecure is false. SHA256 checksum in hex format, to compare to the checksum of the artifact.\nIf the checksum is not empty and it doesn't match the artifact then the recipe installation fails before running any\nof the steps.\n", "language": { "python": { "mapCase": false } } }, - "localPath": { + "uri": { "type": "string", - "description": "An absolute path to the executable on the VM.\n", + "description": "URI from which to fetch the object. It should contain both the protocol and path following the format {protocol}://{location}.\n", "language": { "python": { "mapCase": false @@ -34442,78 +34768,65 @@ }, "type": "object" }, - "gcp:osconfig/PatchDeploymentPatchConfigPreStepLinuxExecStepConfigGcsObject:PatchDeploymentPatchConfigPreStepLinuxExecStepConfigGcsObject": { + "gcp:osconfig/GuestPoliciesRecipeInstallStep:GuestPoliciesRecipeInstallStep": { "properties": { - "bucket": { - "type": "string", - "description": "Bucket of the Cloud Storage object.\n", + "archiveExtraction": { + "$ref": "#/types/gcp:osconfig/GuestPoliciesRecipeInstallStepArchiveExtraction:GuestPoliciesRecipeInstallStepArchiveExtraction", + "description": "Extracts an archive into the specified directory. Structure is documented below.\n", "language": { "python": { "mapCase": false } } }, - "generationNumber": { - "type": "string", - "description": "Generation number of the Cloud Storage object. This is used to ensure that the ExecStep specified by this PatchJob does not change.\n", + "dpkgInstallation": { + "$ref": "#/types/gcp:osconfig/GuestPoliciesRecipeInstallStepDpkgInstallation:GuestPoliciesRecipeInstallStepDpkgInstallation", + "description": "Installs a deb file via dpkg. Structure is documented below.\n", "language": { "python": { "mapCase": false } } }, - "object": { - "type": "string", - "description": "Name of the Cloud Storage object.\n", + "fileCopy": { + "$ref": "#/types/gcp:osconfig/GuestPoliciesRecipeInstallStepFileCopy:GuestPoliciesRecipeInstallStepFileCopy", + "description": "Copies a file onto the instance. Structure is documented below.\n", "language": { "python": { "mapCase": false } } - } - }, - "type": "object", - "required": [ - "bucket", - "generationNumber", - "object" - ] - }, - "gcp:osconfig/PatchDeploymentPatchConfigPreStepWindowsExecStepConfig:PatchDeploymentPatchConfigPreStepWindowsExecStepConfig": { - "properties": { - "allowedSuccessCodes": { - "type": "array", - "items": { - "type": "integer" - }, - "description": "Defaults to [0]. A list of possible return values that the execution can return to indicate a success.\n", + }, + "fileExec": { + "$ref": "#/types/gcp:osconfig/GuestPoliciesRecipeInstallStepFileExec:GuestPoliciesRecipeInstallStepFileExec", + "description": "Executes an artifact or local file. Structure is documented below.\n", "language": { "python": { "mapCase": false } } }, - "gcsObject": { - "$ref": "#/types/gcp:osconfig/PatchDeploymentPatchConfigPreStepWindowsExecStepConfigGcsObject:PatchDeploymentPatchConfigPreStepWindowsExecStepConfigGcsObject", - "description": "A Cloud Storage object containing the executable. Structure is documented below.\n", + "msiInstallation": { + "$ref": "#/types/gcp:osconfig/GuestPoliciesRecipeInstallStepMsiInstallation:GuestPoliciesRecipeInstallStepMsiInstallation", + "description": "Installs an MSI file. Structure is documented below.\n", "language": { "python": { "mapCase": false } } }, - "interpreter": { - "type": "string", - "description": "The script interpreter to use to run the script. If no interpreter is specified the script will\nbe executed directly, which will likely only succeed for scripts with shebang lines.\n", + "rpmInstallation": { + "$ref": "#/types/gcp:osconfig/GuestPoliciesRecipeInstallStepRpmInstallation:GuestPoliciesRecipeInstallStepRpmInstallation", + "description": "Installs an rpm file via the rpm utility. Structure is documented below.\n", "language": { "python": { "mapCase": false } } }, - "localPath": { - "type": "string", - "description": "An absolute path to the executable on the VM.\n", + "scriptRun": { + "$ref": "#/types/gcp:osconfig/GuestPoliciesRecipeInstallStepScriptRun:GuestPoliciesRecipeInstallStepScriptRun", + "description": "Runs commands in a shell. Structure is documented below.\n", "language": { "python": { "mapCase": false @@ -34523,29 +34836,29 @@ }, "type": "object" }, - "gcp:osconfig/PatchDeploymentPatchConfigPreStepWindowsExecStepConfigGcsObject:PatchDeploymentPatchConfigPreStepWindowsExecStepConfigGcsObject": { + "gcp:osconfig/GuestPoliciesRecipeInstallStepArchiveExtraction:GuestPoliciesRecipeInstallStepArchiveExtraction": { "properties": { - "bucket": { + "artifactId": { "type": "string", - "description": "Bucket of the Cloud Storage object.\n", + "description": "The id of the relevant artifact in the recipe.\n", "language": { "python": { "mapCase": false } } }, - "generationNumber": { + "destination": { "type": "string", - "description": "Generation number of the Cloud Storage object. This is used to ensure that the ExecStep specified by this PatchJob does not change.\n", + "description": "Directory to extract archive to. Defaults to / on Linux or C:\\ on Windows.\n", "language": { "python": { "mapCase": false } } }, - "object": { + "type": { "type": "string", - "description": "Name of the Cloud Storage object.\n", + "description": "The type of the archive to extract.\n", "language": { "python": { "mapCase": false @@ -34555,40 +34868,68 @@ }, "type": "object", "required": [ - "bucket", - "generationNumber", - "object" + "artifactId", + "type" + ], + "language": { + "nodejs": { + "requiredOutputs": [ + "artifactId", + "destination", + "type" + ] + } + } + }, + "gcp:osconfig/GuestPoliciesRecipeInstallStepDpkgInstallation:GuestPoliciesRecipeInstallStepDpkgInstallation": { + "properties": { + "artifactId": { + "type": "string", + "description": "The id of the relevant artifact in the recipe.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "artifactId" ] }, - "gcp:osconfig/PatchDeploymentPatchConfigWindowsUpdate:PatchDeploymentPatchConfigWindowsUpdate": { + "gcp:osconfig/GuestPoliciesRecipeInstallStepFileCopy:GuestPoliciesRecipeInstallStepFileCopy": { "properties": { - "classifications": { + "artifactId": { "type": "string", - "description": "Only apply updates of these windows update classifications. If empty, all updates are applied.\n", + "description": "The id of the relevant artifact in the recipe.\n", "language": { "python": { "mapCase": false } } }, - "excludes": { - "type": "array", - "items": { - "type": "string" - }, - "description": "List of KBs to exclude from update.\n", + "destination": { + "type": "string", + "description": "Directory to extract archive to. Defaults to / on Linux or C:\\ on Windows.\n", "language": { "python": { "mapCase": false } } }, - "exclusivePatches": { - "type": "array", - "items": { - "type": "string" - }, - "description": "An exclusive list of kbs to be updated. These are the only patches that will be updated.\nThis field must not be used with other patch configurations.\n", + "overwrite": { + "type": "boolean", + "description": "Whether to allow this step to overwrite existing files.If this is false and the file already exists the file\nis not overwritten and the step is considered a success. Defaults to false.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "permissions": { + "type": "string", + "description": "Consists of three octal digits which represent, in order, the permissions of the owner, group, and other users\nfor the file (similarly to the numeric mode used in the linux chmod utility). Each digit represents a three bit\nnumber with the 4 bit corresponding to the read permissions, the 2 bit corresponds to the write bit, and the one\nbit corresponds to the execute permission. Default behavior is 755.\nBelow are some examples of permissions and their associated values:\nread, write, and execute: 7 read and execute: 5 read and write: 6 read only: 4\n", "language": { "python": { "mapCase": false @@ -34596,46 +34937,47 @@ } } }, - "type": "object" + "type": "object", + "required": [ + "artifactId", + "destination" + ] }, - "gcp:osconfig/PatchDeploymentPatchConfigYum:PatchDeploymentPatchConfigYum": { + "gcp:osconfig/GuestPoliciesRecipeInstallStepFileExec:GuestPoliciesRecipeInstallStepFileExec": { "properties": { - "excludes": { - "type": "array", - "items": { - "type": "string" - }, - "description": "List of KBs to exclude from update.\n", + "allowedExitCodes": { + "type": "string", + "description": "Return codes that indicate that the software installed or updated successfully. Behaviour defaults to [0]\n", "language": { "python": { "mapCase": false } } }, - "exclusivePackages": { + "args": { "type": "array", "items": { "type": "string" }, - "description": "An exclusive list of packages to be updated. These are the only packages that will be updated.\nIf these packages are not installed, they will be ignored. This field cannot be specified with\nany other patch configuration fields.\n", + "description": "Arguments to be passed to the provided executable.\n", "language": { "python": { "mapCase": false } } }, - "minimal": { - "type": "boolean", - "description": "Will cause patch to run yum update-minimal instead.\n", + "artifactId": { + "type": "string", + "description": "The id of the relevant artifact in the recipe.\n", "language": { "python": { "mapCase": false } } }, - "security": { - "type": "boolean", - "description": "Adds the --security flag to yum update. Not supported on all platforms.\n", + "localPath": { + "type": "string", + "description": "The absolute path of the file on the local filesystem.\n", "language": { "python": { "mapCase": false @@ -34643,70 +34985,108 @@ } } }, - "type": "object" + "type": "object", + "language": { + "nodejs": { + "requiredOutputs": [ + "allowedExitCodes" + ] + } + } }, - "gcp:osconfig/PatchDeploymentPatchConfigZypper:PatchDeploymentPatchConfigZypper": { + "gcp:osconfig/GuestPoliciesRecipeInstallStepMsiInstallation:GuestPoliciesRecipeInstallStepMsiInstallation": { "properties": { - "categories": { + "allowedExitCodes": { "type": "array", "items": { - "type": "string" + "type": "integer" }, - "description": "Install only patches with these categories. Common categories include security, recommended, and feature.\n", + "description": "Return codes that indicate that the software installed or updated successfully. Behaviour defaults to [0]\n", "language": { "python": { "mapCase": false } } }, - "excludes": { - "type": "array", - "items": { - "type": "string" - }, - "description": "List of KBs to exclude from update.\n", + "artifactId": { + "type": "string", + "description": "The id of the relevant artifact in the recipe.\n", "language": { "python": { "mapCase": false } } }, - "exclusivePatches": { + "flags": { "type": "array", "items": { "type": "string" }, - "description": "An exclusive list of kbs to be updated. These are the only patches that will be updated.\nThis field must not be used with other patch configurations.\n", + "description": "The flags to use when installing the MSI. Defaults to the install flag.\n", "language": { "python": { "mapCase": false } } - }, - "severities": { + } + }, + "type": "object", + "required": [ + "artifactId" + ], + "language": { + "nodejs": { + "requiredOutputs": [ + "allowedExitCodes", + "artifactId", + "flags" + ] + } + } + }, + "gcp:osconfig/GuestPoliciesRecipeInstallStepRpmInstallation:GuestPoliciesRecipeInstallStepRpmInstallation": { + "properties": { + "artifactId": { + "type": "string", + "description": "The id of the relevant artifact in the recipe.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "artifactId" + ] + }, + "gcp:osconfig/GuestPoliciesRecipeInstallStepScriptRun:GuestPoliciesRecipeInstallStepScriptRun": { + "properties": { + "allowedExitCodes": { "type": "array", "items": { - "type": "string" + "type": "integer" }, - "description": "Install only patches with these severities. Common severities include critical, important, moderate, and low.\n", + "description": "Return codes that indicate that the software installed or updated successfully. Behaviour defaults to [0]\n", "language": { "python": { "mapCase": false } } }, - "withOptional": { - "type": "boolean", - "description": "Adds the --with-optional flag to zypper patch.\n", + "interpreter": { + "type": "string", + "description": "The script interpreter to use to run the script. If no interpreter is specified the script is executed directly,\nwhich likely only succeed for scripts with shebang lines.\n", "language": { "python": { "mapCase": false } } }, - "withUpdate": { - "type": "boolean", - "description": "Adds the --with-update flag, to zypper patch.\n", + "script": { + "type": "string", + "description": "The shell script to be executed.\n", "language": { "python": { "mapCase": false @@ -34714,76 +35094,1186 @@ } } }, - "type": "object" + "type": "object", + "required": [ + "script" + ], + "language": { + "nodejs": { + "requiredOutputs": [ + "allowedExitCodes", + "script" + ] + } + } }, - "gcp:osconfig/PatchDeploymentRecurringSchedule:PatchDeploymentRecurringSchedule": { + "gcp:osconfig/GuestPoliciesRecipeUpdateStep:GuestPoliciesRecipeUpdateStep": { "properties": { - "endTime": { - "type": "string", - "description": "The end time at which a recurring patch deployment schedule is no longer active.\nA timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds. Example: \"2014-10-02T15:01:23.045123456Z\".\n", + "archiveExtraction": { + "$ref": "#/types/gcp:osconfig/GuestPoliciesRecipeUpdateStepArchiveExtraction:GuestPoliciesRecipeUpdateStepArchiveExtraction", + "description": "Extracts an archive into the specified directory. Structure is documented below.\n", "language": { "python": { "mapCase": false } } }, - "lastExecuteTime": { - "type": "string", - "description": "-\nThe time the last patch job ran successfully.\nA timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds. Example: \"2014-10-02T15:01:23.045123456Z\".\n", + "dpkgInstallation": { + "$ref": "#/types/gcp:osconfig/GuestPoliciesRecipeUpdateStepDpkgInstallation:GuestPoliciesRecipeUpdateStepDpkgInstallation", + "description": "Installs a deb file via dpkg. Structure is documented below.\n", "language": { "python": { "mapCase": false } } }, - "monthly": { - "$ref": "#/types/gcp:osconfig/PatchDeploymentRecurringScheduleMonthly:PatchDeploymentRecurringScheduleMonthly", - "description": "Schedule with monthly executions. Structure is documented below.\n", + "fileCopy": { + "$ref": "#/types/gcp:osconfig/GuestPoliciesRecipeUpdateStepFileCopy:GuestPoliciesRecipeUpdateStepFileCopy", + "description": "Copies a file onto the instance. Structure is documented below.\n", "language": { "python": { "mapCase": false } } }, - "nextExecuteTime": { - "type": "string", - "description": "-\nThe time the next patch job is scheduled to run.\nA timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds. Example: \"2014-10-02T15:01:23.045123456Z\".\n", + "fileExec": { + "$ref": "#/types/gcp:osconfig/GuestPoliciesRecipeUpdateStepFileExec:GuestPoliciesRecipeUpdateStepFileExec", + "description": "Executes an artifact or local file. Structure is documented below.\n", "language": { "python": { "mapCase": false } } }, - "startTime": { - "type": "string", - "description": "The time that the recurring schedule becomes effective. Defaults to createTime of the patch deployment.\nA timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds. Example: \"2014-10-02T15:01:23.045123456Z\".\n", + "msiInstallation": { + "$ref": "#/types/gcp:osconfig/GuestPoliciesRecipeUpdateStepMsiInstallation:GuestPoliciesRecipeUpdateStepMsiInstallation", + "description": "Installs an MSI file. Structure is documented below.\n", "language": { "python": { "mapCase": false } } }, - "timeOfDay": { - "$ref": "#/types/gcp:osconfig/PatchDeploymentRecurringScheduleTimeOfDay:PatchDeploymentRecurringScheduleTimeOfDay", - "description": "Time of the day to run a recurring deployment. Structure is documented below.\n", + "rpmInstallation": { + "$ref": "#/types/gcp:osconfig/GuestPoliciesRecipeUpdateStepRpmInstallation:GuestPoliciesRecipeUpdateStepRpmInstallation", + "description": "Installs an rpm file via the rpm utility. Structure is documented below.\n", "language": { "python": { "mapCase": false } } }, - "timeZone": { - "$ref": "#/types/gcp:osconfig/PatchDeploymentRecurringScheduleTimeZone:PatchDeploymentRecurringScheduleTimeZone", - "description": "Defines the time zone that timeOfDay is relative to. The rules for daylight saving time are\ndetermined by the chosen time zone. Structure is documented below.\n", + "scriptRun": { + "$ref": "#/types/gcp:osconfig/GuestPoliciesRecipeUpdateStepScriptRun:GuestPoliciesRecipeUpdateStepScriptRun", + "description": "Runs commands in a shell. Structure is documented below.\n", "language": { "python": { "mapCase": false } } - }, - "weekly": { - "$ref": "#/types/gcp:osconfig/PatchDeploymentRecurringScheduleWeekly:PatchDeploymentRecurringScheduleWeekly", - "description": "Schedule with weekly executions. Structure is documented below.\n", + } + }, + "type": "object" + }, + "gcp:osconfig/GuestPoliciesRecipeUpdateStepArchiveExtraction:GuestPoliciesRecipeUpdateStepArchiveExtraction": { + "properties": { + "artifactId": { + "type": "string", + "description": "The id of the relevant artifact in the recipe.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "destination": { + "type": "string", + "description": "Directory to extract archive to. Defaults to / on Linux or C:\\ on Windows.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "type": { + "type": "string", + "description": "The type of the archive to extract.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "artifactId", + "type" + ], + "language": { + "nodejs": { + "requiredOutputs": [ + "artifactId", + "destination", + "type" + ] + } + } + }, + "gcp:osconfig/GuestPoliciesRecipeUpdateStepDpkgInstallation:GuestPoliciesRecipeUpdateStepDpkgInstallation": { + "properties": { + "artifactId": { + "type": "string", + "description": "The id of the relevant artifact in the recipe.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "artifactId" + ] + }, + "gcp:osconfig/GuestPoliciesRecipeUpdateStepFileCopy:GuestPoliciesRecipeUpdateStepFileCopy": { + "properties": { + "artifactId": { + "type": "string", + "description": "The id of the relevant artifact in the recipe.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "destination": { + "type": "string", + "description": "Directory to extract archive to. Defaults to / on Linux or C:\\ on Windows.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "overwrite": { + "type": "boolean", + "description": "Whether to allow this step to overwrite existing files.If this is false and the file already exists the file\nis not overwritten and the step is considered a success. Defaults to false.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "permissions": { + "type": "string", + "description": "Consists of three octal digits which represent, in order, the permissions of the owner, group, and other users\nfor the file (similarly to the numeric mode used in the linux chmod utility). Each digit represents a three bit\nnumber with the 4 bit corresponding to the read permissions, the 2 bit corresponds to the write bit, and the one\nbit corresponds to the execute permission. Default behavior is 755.\nBelow are some examples of permissions and their associated values:\nread, write, and execute: 7 read and execute: 5 read and write: 6 read only: 4\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "artifactId", + "destination" + ] + }, + "gcp:osconfig/GuestPoliciesRecipeUpdateStepFileExec:GuestPoliciesRecipeUpdateStepFileExec": { + "properties": { + "allowedExitCodes": { + "type": "array", + "items": { + "type": "integer" + }, + "description": "Return codes that indicate that the software installed or updated successfully. Behaviour defaults to [0]\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "args": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Arguments to be passed to the provided executable.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "artifactId": { + "type": "string", + "description": "The id of the relevant artifact in the recipe.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "localPath": { + "type": "string", + "description": "The absolute path of the file on the local filesystem.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "language": { + "nodejs": { + "requiredOutputs": [ + "allowedExitCodes" + ] + } + } + }, + "gcp:osconfig/GuestPoliciesRecipeUpdateStepMsiInstallation:GuestPoliciesRecipeUpdateStepMsiInstallation": { + "properties": { + "allowedExitCodes": { + "type": "array", + "items": { + "type": "integer" + }, + "description": "Return codes that indicate that the software installed or updated successfully. Behaviour defaults to [0]\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "artifactId": { + "type": "string", + "description": "The id of the relevant artifact in the recipe.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "flags": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The flags to use when installing the MSI. Defaults to the install flag.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "artifactId" + ], + "language": { + "nodejs": { + "requiredOutputs": [ + "allowedExitCodes", + "artifactId", + "flags" + ] + } + } + }, + "gcp:osconfig/GuestPoliciesRecipeUpdateStepRpmInstallation:GuestPoliciesRecipeUpdateStepRpmInstallation": { + "properties": { + "artifactId": { + "type": "string", + "description": "The id of the relevant artifact in the recipe.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "artifactId" + ] + }, + "gcp:osconfig/GuestPoliciesRecipeUpdateStepScriptRun:GuestPoliciesRecipeUpdateStepScriptRun": { + "properties": { + "allowedExitCodes": { + "type": "array", + "items": { + "type": "integer" + }, + "description": "Return codes that indicate that the software installed or updated successfully. Behaviour defaults to [0]\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "interpreter": { + "type": "string", + "description": "The script interpreter to use to run the script. If no interpreter is specified the script is executed directly,\nwhich likely only succeed for scripts with shebang lines.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "script": { + "type": "string", + "description": "The shell script to be executed.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "script" + ], + "language": { + "nodejs": { + "requiredOutputs": [ + "allowedExitCodes", + "script" + ] + } + } + }, + "gcp:osconfig/PatchDeploymentInstanceFilter:PatchDeploymentInstanceFilter": { + "properties": { + "all": { + "type": "boolean", + "description": "Target all VM instances in the project. If true, no other criteria is permitted.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "groupLabels": { + "type": "array", + "items": { + "$ref": "#/types/gcp:osconfig/PatchDeploymentInstanceFilterGroupLabel:PatchDeploymentInstanceFilterGroupLabel" + }, + "description": "Targets VM instances matching ANY of these GroupLabels. This allows targeting of disparate groups of VM instances. Structure is documented below.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "instanceNamePrefixes": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Targets VMs whose name starts with one of these prefixes. Similar to labels, this is another way to group\nVMs when targeting configs, for example prefix=\"prod-\".\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "instances": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Targets any of the VM instances specified. Instances are specified by their URI in the `form zones/{{zone}}/instances/{{instance_name}}`,\n`projects/{{project_id}}/zones/{{zone}}/instances/{{instance_name}}`, or\n`https://www.googleapis.com/compute/v1/projects/{{project_id}}/zones/{{zone}}/instances/{{instance_name}}`\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "zones": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Targets VM instances in ANY of these zones. Leave empty to target VM instances in any zone.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object" + }, + "gcp:osconfig/PatchDeploymentInstanceFilterGroupLabel:PatchDeploymentInstanceFilterGroupLabel": { + "properties": { + "labels": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Compute Engine instance labels that must be present for a VM instance to be targeted by this filter\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "labels" + ] + }, + "gcp:osconfig/PatchDeploymentOneTimeSchedule:PatchDeploymentOneTimeSchedule": { + "properties": { + "executeTime": { + "type": "string", + "description": "The desired patch job execution time. A timestamp in RFC3339 UTC \"Zulu\" format,\naccurate to nanoseconds. Example: \"2014-10-02T15:01:23.045123456Z\".\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "executeTime" + ] + }, + "gcp:osconfig/PatchDeploymentPatchConfig:PatchDeploymentPatchConfig": { + "properties": { + "apt": { + "$ref": "#/types/gcp:osconfig/PatchDeploymentPatchConfigApt:PatchDeploymentPatchConfigApt", + "description": "Apt update settings. Use this setting to override the default apt patch rules. Structure is documented below.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "goo": { + "$ref": "#/types/gcp:osconfig/PatchDeploymentPatchConfigGoo:PatchDeploymentPatchConfigGoo", + "description": "goo update settings. Use this setting to override the default goo patch rules. Structure is documented below.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "postStep": { + "$ref": "#/types/gcp:osconfig/PatchDeploymentPatchConfigPostStep:PatchDeploymentPatchConfigPostStep", + "description": "The ExecStep to run after the patch update. Structure is documented below.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "preStep": { + "$ref": "#/types/gcp:osconfig/PatchDeploymentPatchConfigPreStep:PatchDeploymentPatchConfigPreStep", + "description": "The ExecStep to run before the patch update. Structure is documented below.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "rebootConfig": { + "type": "string", + "description": "Post-patch reboot settings.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "windowsUpdate": { + "$ref": "#/types/gcp:osconfig/PatchDeploymentPatchConfigWindowsUpdate:PatchDeploymentPatchConfigWindowsUpdate", + "description": "Windows update settings. Use this setting to override the default Windows patch rules. Structure is documented below.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "yum": { + "$ref": "#/types/gcp:osconfig/PatchDeploymentPatchConfigYum:PatchDeploymentPatchConfigYum", + "description": "Yum update settings. Use this setting to override the default yum patch rules. Structure is documented below.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "zypper": { + "$ref": "#/types/gcp:osconfig/PatchDeploymentPatchConfigZypper:PatchDeploymentPatchConfigZypper", + "description": "zypper update settings. Use this setting to override the default zypper patch rules. Structure is documented below.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object" + }, + "gcp:osconfig/PatchDeploymentPatchConfigApt:PatchDeploymentPatchConfigApt": { + "properties": { + "excludes": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of KBs to exclude from update.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "exclusivePackages": { + "type": "array", + "items": { + "type": "string" + }, + "description": "An exclusive list of packages to be updated. These are the only packages that will be updated.\nIf these packages are not installed, they will be ignored. This field cannot be specified with\nany other patch configuration fields.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "type": { + "type": "string", + "description": "By changing the type to DIST, the patching is performed using apt-get dist-upgrade instead.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object" + }, + "gcp:osconfig/PatchDeploymentPatchConfigGoo:PatchDeploymentPatchConfigGoo": { + "properties": { + "enabled": { + "type": "boolean", + "description": "goo update settings. Use this setting to override the default goo patch rules.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "enabled" + ] + }, + "gcp:osconfig/PatchDeploymentPatchConfigPostStep:PatchDeploymentPatchConfigPostStep": { + "properties": { + "linuxExecStepConfig": { + "$ref": "#/types/gcp:osconfig/PatchDeploymentPatchConfigPostStepLinuxExecStepConfig:PatchDeploymentPatchConfigPostStepLinuxExecStepConfig", + "description": "The ExecStepConfig for all Linux VMs targeted by the PatchJob. Structure is documented below.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "windowsExecStepConfig": { + "$ref": "#/types/gcp:osconfig/PatchDeploymentPatchConfigPostStepWindowsExecStepConfig:PatchDeploymentPatchConfigPostStepWindowsExecStepConfig", + "description": "The ExecStepConfig for all Windows VMs targeted by the PatchJob. Structure is documented below.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object" + }, + "gcp:osconfig/PatchDeploymentPatchConfigPostStepLinuxExecStepConfig:PatchDeploymentPatchConfigPostStepLinuxExecStepConfig": { + "properties": { + "allowedSuccessCodes": { + "type": "array", + "items": { + "type": "integer" + }, + "description": "Defaults to [0]. A list of possible return values that the execution can return to indicate a success.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "gcsObject": { + "$ref": "#/types/gcp:osconfig/PatchDeploymentPatchConfigPostStepLinuxExecStepConfigGcsObject:PatchDeploymentPatchConfigPostStepLinuxExecStepConfigGcsObject", + "description": "A Cloud Storage object containing the executable. Structure is documented below.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "interpreter": { + "type": "string", + "description": "The script interpreter to use to run the script. If no interpreter is specified the script will\nbe executed directly, which will likely only succeed for scripts with shebang lines.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "localPath": { + "type": "string", + "description": "An absolute path to the executable on the VM.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object" + }, + "gcp:osconfig/PatchDeploymentPatchConfigPostStepLinuxExecStepConfigGcsObject:PatchDeploymentPatchConfigPostStepLinuxExecStepConfigGcsObject": { + "properties": { + "bucket": { + "type": "string", + "description": "Bucket of the Cloud Storage object.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "generationNumber": { + "type": "string", + "description": "Generation number of the Cloud Storage object. This is used to ensure that the ExecStep specified by this PatchJob does not change.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "object": { + "type": "string", + "description": "Name of the Cloud Storage object.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "bucket", + "generationNumber", + "object" + ] + }, + "gcp:osconfig/PatchDeploymentPatchConfigPostStepWindowsExecStepConfig:PatchDeploymentPatchConfigPostStepWindowsExecStepConfig": { + "properties": { + "allowedSuccessCodes": { + "type": "array", + "items": { + "type": "integer" + }, + "description": "Defaults to [0]. A list of possible return values that the execution can return to indicate a success.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "gcsObject": { + "$ref": "#/types/gcp:osconfig/PatchDeploymentPatchConfigPostStepWindowsExecStepConfigGcsObject:PatchDeploymentPatchConfigPostStepWindowsExecStepConfigGcsObject", + "description": "A Cloud Storage object containing the executable. Structure is documented below.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "interpreter": { + "type": "string", + "description": "The script interpreter to use to run the script. If no interpreter is specified the script will\nbe executed directly, which will likely only succeed for scripts with shebang lines.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "localPath": { + "type": "string", + "description": "An absolute path to the executable on the VM.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object" + }, + "gcp:osconfig/PatchDeploymentPatchConfigPostStepWindowsExecStepConfigGcsObject:PatchDeploymentPatchConfigPostStepWindowsExecStepConfigGcsObject": { + "properties": { + "bucket": { + "type": "string", + "description": "Bucket of the Cloud Storage object.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "generationNumber": { + "type": "string", + "description": "Generation number of the Cloud Storage object. This is used to ensure that the ExecStep specified by this PatchJob does not change.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "object": { + "type": "string", + "description": "Name of the Cloud Storage object.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "bucket", + "generationNumber", + "object" + ] + }, + "gcp:osconfig/PatchDeploymentPatchConfigPreStep:PatchDeploymentPatchConfigPreStep": { + "properties": { + "linuxExecStepConfig": { + "$ref": "#/types/gcp:osconfig/PatchDeploymentPatchConfigPreStepLinuxExecStepConfig:PatchDeploymentPatchConfigPreStepLinuxExecStepConfig", + "description": "The ExecStepConfig for all Linux VMs targeted by the PatchJob. Structure is documented below.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "windowsExecStepConfig": { + "$ref": "#/types/gcp:osconfig/PatchDeploymentPatchConfigPreStepWindowsExecStepConfig:PatchDeploymentPatchConfigPreStepWindowsExecStepConfig", + "description": "The ExecStepConfig for all Windows VMs targeted by the PatchJob. Structure is documented below.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object" + }, + "gcp:osconfig/PatchDeploymentPatchConfigPreStepLinuxExecStepConfig:PatchDeploymentPatchConfigPreStepLinuxExecStepConfig": { + "properties": { + "allowedSuccessCodes": { + "type": "array", + "items": { + "type": "integer" + }, + "description": "Defaults to [0]. A list of possible return values that the execution can return to indicate a success.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "gcsObject": { + "$ref": "#/types/gcp:osconfig/PatchDeploymentPatchConfigPreStepLinuxExecStepConfigGcsObject:PatchDeploymentPatchConfigPreStepLinuxExecStepConfigGcsObject", + "description": "A Cloud Storage object containing the executable. Structure is documented below.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "interpreter": { + "type": "string", + "description": "The script interpreter to use to run the script. If no interpreter is specified the script will\nbe executed directly, which will likely only succeed for scripts with shebang lines.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "localPath": { + "type": "string", + "description": "An absolute path to the executable on the VM.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object" + }, + "gcp:osconfig/PatchDeploymentPatchConfigPreStepLinuxExecStepConfigGcsObject:PatchDeploymentPatchConfigPreStepLinuxExecStepConfigGcsObject": { + "properties": { + "bucket": { + "type": "string", + "description": "Bucket of the Cloud Storage object.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "generationNumber": { + "type": "string", + "description": "Generation number of the Cloud Storage object. This is used to ensure that the ExecStep specified by this PatchJob does not change.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "object": { + "type": "string", + "description": "Name of the Cloud Storage object.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "bucket", + "generationNumber", + "object" + ] + }, + "gcp:osconfig/PatchDeploymentPatchConfigPreStepWindowsExecStepConfig:PatchDeploymentPatchConfigPreStepWindowsExecStepConfig": { + "properties": { + "allowedSuccessCodes": { + "type": "array", + "items": { + "type": "integer" + }, + "description": "Defaults to [0]. A list of possible return values that the execution can return to indicate a success.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "gcsObject": { + "$ref": "#/types/gcp:osconfig/PatchDeploymentPatchConfigPreStepWindowsExecStepConfigGcsObject:PatchDeploymentPatchConfigPreStepWindowsExecStepConfigGcsObject", + "description": "A Cloud Storage object containing the executable. Structure is documented below.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "interpreter": { + "type": "string", + "description": "The script interpreter to use to run the script. If no interpreter is specified the script will\nbe executed directly, which will likely only succeed for scripts with shebang lines.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "localPath": { + "type": "string", + "description": "An absolute path to the executable on the VM.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object" + }, + "gcp:osconfig/PatchDeploymentPatchConfigPreStepWindowsExecStepConfigGcsObject:PatchDeploymentPatchConfigPreStepWindowsExecStepConfigGcsObject": { + "properties": { + "bucket": { + "type": "string", + "description": "Bucket of the Cloud Storage object.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "generationNumber": { + "type": "string", + "description": "Generation number of the Cloud Storage object. This is used to ensure that the ExecStep specified by this PatchJob does not change.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "object": { + "type": "string", + "description": "Name of the Cloud Storage object.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "bucket", + "generationNumber", + "object" + ] + }, + "gcp:osconfig/PatchDeploymentPatchConfigWindowsUpdate:PatchDeploymentPatchConfigWindowsUpdate": { + "properties": { + "classifications": { + "type": "string", + "description": "Only apply updates of these windows update classifications. If empty, all updates are applied.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "excludes": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of KBs to exclude from update.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "exclusivePatches": { + "type": "array", + "items": { + "type": "string" + }, + "description": "An exclusive list of kbs to be updated. These are the only patches that will be updated.\nThis field must not be used with other patch configurations.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object" + }, + "gcp:osconfig/PatchDeploymentPatchConfigYum:PatchDeploymentPatchConfigYum": { + "properties": { + "excludes": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of KBs to exclude from update.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "exclusivePackages": { + "type": "array", + "items": { + "type": "string" + }, + "description": "An exclusive list of packages to be updated. These are the only packages that will be updated.\nIf these packages are not installed, they will be ignored. This field cannot be specified with\nany other patch configuration fields.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "minimal": { + "type": "boolean", + "description": "Will cause patch to run yum update-minimal instead.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "security": { + "type": "boolean", + "description": "Adds the --security flag to yum update. Not supported on all platforms.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object" + }, + "gcp:osconfig/PatchDeploymentPatchConfigZypper:PatchDeploymentPatchConfigZypper": { + "properties": { + "categories": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Install only patches with these categories. Common categories include security, recommended, and feature.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "excludes": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of KBs to exclude from update.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "exclusivePatches": { + "type": "array", + "items": { + "type": "string" + }, + "description": "An exclusive list of kbs to be updated. These are the only patches that will be updated.\nThis field must not be used with other patch configurations.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "severities": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Install only patches with these severities. Common severities include critical, important, moderate, and low.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "withOptional": { + "type": "boolean", + "description": "Adds the --with-optional flag to zypper patch.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "withUpdate": { + "type": "boolean", + "description": "Adds the --with-update flag, to zypper patch.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object" + }, + "gcp:osconfig/PatchDeploymentRecurringSchedule:PatchDeploymentRecurringSchedule": { + "properties": { + "endTime": { + "type": "string", + "description": "The end time at which a recurring patch deployment schedule is no longer active.\nA timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds. Example: \"2014-10-02T15:01:23.045123456Z\".\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "lastExecuteTime": { + "type": "string", + "description": "-\nThe time the last patch job ran successfully.\nA timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds. Example: \"2014-10-02T15:01:23.045123456Z\".\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "monthly": { + "$ref": "#/types/gcp:osconfig/PatchDeploymentRecurringScheduleMonthly:PatchDeploymentRecurringScheduleMonthly", + "description": "Schedule with monthly executions. Structure is documented below.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "nextExecuteTime": { + "type": "string", + "description": "-\nThe time the next patch job is scheduled to run.\nA timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds. Example: \"2014-10-02T15:01:23.045123456Z\".\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "startTime": { + "type": "string", + "description": "The time that the recurring schedule becomes effective. Defaults to createTime of the patch deployment.\nA timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds. Example: \"2014-10-02T15:01:23.045123456Z\".\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "timeOfDay": { + "$ref": "#/types/gcp:osconfig/PatchDeploymentRecurringScheduleTimeOfDay:PatchDeploymentRecurringScheduleTimeOfDay", + "description": "Time of the day to run a recurring deployment. Structure is documented below.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "timeZone": { + "$ref": "#/types/gcp:osconfig/PatchDeploymentRecurringScheduleTimeZone:PatchDeploymentRecurringScheduleTimeZone", + "description": "Defines the time zone that timeOfDay is relative to. The rules for daylight saving time are\ndetermined by the chosen time zone. Structure is documented below.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "weekly": { + "$ref": "#/types/gcp:osconfig/PatchDeploymentRecurringScheduleWeekly:PatchDeploymentRecurringScheduleWeekly", + "description": "Schedule with weekly executions. Structure is documented below.\n", "language": { "python": { "mapCase": false @@ -35220,15 +36710,486 @@ } } }, - "inheritFromParent": { - "type": "boolean", + "inheritFromParent": { + "type": "boolean", + "language": { + "python": { + "mapCase": false + } + } + }, + "suggestedValue": { + "type": "string", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "allows", + "denies", + "inheritFromParent", + "suggestedValue" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, + "gcp:projects/getOrganizationPolicyListPolicyAllow:getOrganizationPolicyListPolicyAllow": { + "properties": { + "all": { + "type": "boolean", + "language": { + "python": { + "mapCase": false + } + } + }, + "values": { + "type": "array", + "items": { + "type": "string" + }, + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "all", + "values" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, + "gcp:projects/getOrganizationPolicyListPolicyDeny:getOrganizationPolicyListPolicyDeny": { + "properties": { + "all": { + "type": "boolean", + "language": { + "python": { + "mapCase": false + } + } + }, + "values": { + "type": "array", + "items": { + "type": "string" + }, + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "all", + "values" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, + "gcp:projects/getOrganizationPolicyRestorePolicy:getOrganizationPolicyRestorePolicy": { + "properties": { + "default": { + "type": "boolean", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "default" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, + "gcp:projects/getProjectProject:getProjectProject": { + "properties": { + "projectId": { + "type": "string", + "description": "The project id of the project.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "projectId" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, + "gcp:pubsub/SubscriptionDeadLetterPolicy:SubscriptionDeadLetterPolicy": { + "properties": { + "deadLetterTopic": { + "type": "string", + "description": "The name of the topic to which dead letter messages should be published.\nFormat is `projects/{project}/topics/{topic}`.\nThe Cloud Pub/Sub service\\naccount associated with the enclosing subscription's\nparent project (i.e.,\nservice-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com) must have\npermission to Publish() to this topic.\nThe operation will fail if the topic does not exist.\nUsers should ensure that there is a subscription attached to this topic\nsince messages published to a topic with no subscriptions are lost.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "maxDeliveryAttempts": { + "type": "integer", + "description": "The maximum number of delivery attempts for any message. The value must be\nbetween 5 and 100.\nThe number of delivery attempts is defined as 1 + (the sum of number of\nNACKs and number of times the acknowledgement deadline has been exceeded for the message).\nA NACK is any call to ModifyAckDeadline with a 0 deadline. Note that\nclient libraries may automatically extend ack_deadlines.\nThis field will be honored on a best effort basis.\nIf this parameter is 0, a default value of 5 is used.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object" + }, + "gcp:pubsub/SubscriptionExpirationPolicy:SubscriptionExpirationPolicy": { + "properties": { + "ttl": { + "type": "string", + "description": "Specifies the \"time-to-live\" duration for an associated resource. The\nresource expires if it is not active for a period of ttl.\nIf ttl is not set, the associated resource never expires.\nA duration in seconds with up to nine fractional digits, terminated by 's'.\nExample - \"3.5s\".\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "ttl" + ] + }, + "gcp:pubsub/SubscriptionIAMBindingCondition:SubscriptionIAMBindingCondition": { + "properties": { + "description": { + "type": "string", + "language": { + "python": { + "mapCase": false + } + } + }, + "expression": { + "type": "string", + "language": { + "python": { + "mapCase": false + } + } + }, + "title": { + "type": "string", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "expression", + "title" + ] + }, + "gcp:pubsub/SubscriptionIAMMemberCondition:SubscriptionIAMMemberCondition": { + "properties": { + "description": { + "type": "string", + "language": { + "python": { + "mapCase": false + } + } + }, + "expression": { + "type": "string", + "language": { + "python": { + "mapCase": false + } + } + }, + "title": { + "type": "string", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "expression", + "title" + ] + }, + "gcp:pubsub/SubscriptionPushConfig:SubscriptionPushConfig": { + "properties": { + "attributes": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Endpoint configuration attributes.\nEvery endpoint has a set of API supported attributes that can\nbe used to control different aspects of the message delivery.\nThe currently supported attribute is x-goog-version, which you\ncan use to change the format of the pushed message. This\nattribute indicates the version of the data expected by\nthe endpoint. This controls the shape of the pushed message\n(i.e., its fields and metadata). The endpoint version is\nbased on the version of the Pub/Sub API.\nIf not present during the subscriptions.create call,\nit will default to the version of the API used to make\nsuch call. If not present during a subscriptions.modifyPushConfig\ncall, its value will not be changed. subscriptions.get\ncalls will always return a valid version, even if the\nsubscription was created without this attribute.\nThe possible values for this attribute are:\n- v1beta1: uses the push format defined in the v1beta1 Pub/Sub API.\n- v1 or v1beta2: uses the push format defined in the v1 Pub/Sub API.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "oidcToken": { + "$ref": "#/types/gcp:pubsub/SubscriptionPushConfigOidcToken:SubscriptionPushConfigOidcToken", + "description": "If specified, Pub/Sub will generate and attach an OIDC JWT token as\nan Authorization header in the HTTP request for every pushed message. Structure is documented below.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "pushEndpoint": { + "type": "string", + "description": "A URL locating the endpoint to which messages should be pushed.\nFor example, a Webhook endpoint might use\n\"https://example.com/push\".\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "pushEndpoint" + ] + }, + "gcp:pubsub/SubscriptionPushConfigOidcToken:SubscriptionPushConfigOidcToken": { + "properties": { + "audience": { + "type": "string", + "description": "Audience to be used when generating OIDC token. The audience claim\nidentifies the recipients that the JWT is intended for. The audience\nvalue is a single case-sensitive string. Having multiple values (array)\nfor the audience field is not supported. More info about the OIDC JWT\ntoken audience here: https://tools.ietf.org/html/rfc7519#section-4.1.3\nNote: if not specified, the Push endpoint URL will be used.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "serviceAccountEmail": { + "type": "string", + "description": "Service account email to be used for generating the OIDC token.\nThe caller (for subscriptions.create, subscriptions.patch, and\nsubscriptions.modifyPushConfig RPCs) must have the\niam.serviceAccounts.actAs permission for the service account.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "serviceAccountEmail" + ] + }, + "gcp:pubsub/TopicIAMBindingCondition:TopicIAMBindingCondition": { + "properties": { + "description": { + "type": "string", + "language": { + "python": { + "mapCase": false + } + } + }, + "expression": { + "type": "string", + "language": { + "python": { + "mapCase": false + } + } + }, + "title": { + "type": "string", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "expression", + "title" + ] + }, + "gcp:pubsub/TopicIAMMemberCondition:TopicIAMMemberCondition": { + "properties": { + "description": { + "type": "string", + "language": { + "python": { + "mapCase": false + } + } + }, + "expression": { + "type": "string", + "language": { + "python": { + "mapCase": false + } + } + }, + "title": { + "type": "string", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "expression", + "title" + ] + }, + "gcp:pubsub/TopicMessageStoragePolicy:TopicMessageStoragePolicy": { + "properties": { + "allowedPersistenceRegions": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of IDs of GCP regions where messages that are published to\nthe topic may be persisted in storage. Messages published by\npublishers running in non-allowed GCP regions (or running outside\nof GCP altogether) will be routed for storage in one of the\nallowed regions. An empty list means that no regions are allowed,\nand is not a valid configuration.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "allowedPersistenceRegions" + ] + }, + "gcp:runtimeconfig/ConfigIamBindingCondition:ConfigIamBindingCondition": { + "properties": { + "description": { + "type": "string", + "language": { + "python": { + "mapCase": false + } + } + }, + "expression": { + "type": "string", + "language": { + "python": { + "mapCase": false + } + } + }, + "title": { + "type": "string", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "expression", + "title" + ] + }, + "gcp:runtimeconfig/ConfigIamMemberCondition:ConfigIamMemberCondition": { + "properties": { + "description": { + "type": "string", + "language": { + "python": { + "mapCase": false + } + } + }, + "expression": { + "type": "string", + "language": { + "python": { + "mapCase": false + } + } + }, + "title": { + "type": "string", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "expression", + "title" + ] + }, + "gcp:secretmanager/SecretIamBindingCondition:SecretIamBindingCondition": { + "properties": { + "description": { + "type": "string", + "language": { + "python": { + "mapCase": false + } + } + }, + "expression": { + "type": "string", "language": { "python": { "mapCase": false } } }, - "suggestedValue": { + "title": { "type": "string", "language": { "python": { @@ -35239,32 +37200,30 @@ }, "type": "object", "required": [ - "allows", - "denies", - "inheritFromParent", - "suggestedValue" - ], - "language": { - "nodejs": { - "requiredInputs": [] - } - } + "expression", + "title" + ] }, - "gcp:projects/getOrganizationPolicyListPolicyAllow:getOrganizationPolicyListPolicyAllow": { + "gcp:secretmanager/SecretIamMemberCondition:SecretIamMemberCondition": { "properties": { - "all": { - "type": "boolean", + "description": { + "type": "string", "language": { "python": { "mapCase": false } } }, - "values": { - "type": "array", - "items": { - "type": "string" - }, + "expression": { + "type": "string", + "language": { + "python": { + "mapCase": false + } + } + }, + "title": { + "type": "string", "language": { "python": { "mapCase": false @@ -35274,30 +37233,41 @@ }, "type": "object", "required": [ - "all", - "values" - ], - "language": { - "nodejs": { - "requiredInputs": [] - } - } + "expression", + "title" + ] }, - "gcp:projects/getOrganizationPolicyListPolicyDeny:getOrganizationPolicyListPolicyDeny": { + "gcp:secretmanager/SecretReplication:SecretReplication": { "properties": { - "all": { + "automatic": { "type": "boolean", + "description": "The Secret will automatically be replicated without any restrictions.\n", "language": { "python": { "mapCase": false } } }, - "values": { + "userManaged": { + "$ref": "#/types/gcp:secretmanager/SecretReplicationUserManaged:SecretReplicationUserManaged", + "description": "The Secret will automatically be replicated without any restrictions. Structure is documented below.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object" + }, + "gcp:secretmanager/SecretReplicationUserManaged:SecretReplicationUserManaged": { + "properties": { + "replicas": { "type": "array", "items": { - "type": "string" + "$ref": "#/types/gcp:secretmanager/SecretReplicationUserManagedReplica:SecretReplicationUserManagedReplica" }, + "description": "The list of Replicas for this Secret. Cannot be empty. Structure is documented below.\n", "language": { "python": { "mapCase": false @@ -35307,19 +37277,14 @@ }, "type": "object", "required": [ - "all", - "values" - ], - "language": { - "nodejs": { - "requiredInputs": [] - } - } + "replicas" + ] }, - "gcp:projects/getOrganizationPolicyRestorePolicy:getOrganizationPolicyRestorePolicy": { + "gcp:secretmanager/SecretReplicationUserManagedReplica:SecretReplicationUserManagedReplica": { "properties": { - "default": { - "type": "boolean", + "location": { + "type": "string", + "description": "The canonical IDs of the location to replicate data. For example: \"us-east1\".\n", "language": { "python": { "mapCase": false @@ -35329,19 +37294,32 @@ }, "type": "object", "required": [ - "default" - ], - "language": { - "nodejs": { - "requiredInputs": [] - } - } + "location" + ] }, - "gcp:projects/getProjectProject:getProjectProject": { + "gcp:serviceAccount/IAMBindingCondition:IAMBindingCondition": { "properties": { - "projectId": { + "description": { "type": "string", - "description": "The project id of the project.\n", + "description": "An optional description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "expression": { + "type": "string", + "description": "Textual representation of an expression in Common Expression Language syntax.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "title": { + "type": "string", + "description": "A title for the expression, i.e. a short string describing its purpose.\n", "language": { "python": { "mapCase": false @@ -35351,42 +37329,33 @@ }, "type": "object", "required": [ - "projectId" - ], - "language": { - "nodejs": { - "requiredInputs": [] - } - } + "expression", + "title" + ] }, - "gcp:pubsub/SubscriptionDeadLetterPolicy:SubscriptionDeadLetterPolicy": { + "gcp:serviceAccount/IAMMemberCondition:IAMMemberCondition": { "properties": { - "deadLetterTopic": { + "description": { "type": "string", - "description": "The name of the topic to which dead letter messages should be published.\nFormat is `projects/{project}/topics/{topic}`.\nThe Cloud Pub/Sub service\\naccount associated with the enclosing subscription's\nparent project (i.e.,\nservice-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com) must have\npermission to Publish() to this topic.\nThe operation will fail if the topic does not exist.\nUsers should ensure that there is a subscription attached to this topic\nsince messages published to a topic with no subscriptions are lost.\n", + "description": "An optional description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.\n", "language": { "python": { "mapCase": false } } }, - "maxDeliveryAttempts": { - "type": "integer", - "description": "The maximum number of delivery attempts for any message. The value must be\nbetween 5 and 100.\nThe number of delivery attempts is defined as 1 + (the sum of number of\nNACKs and number of times the acknowledgement deadline has been exceeded for the message).\nA NACK is any call to ModifyAckDeadline with a 0 deadline. Note that\nclient libraries may automatically extend ack_deadlines.\nThis field will be honored on a best effort basis.\nIf this parameter is 0, a default value of 5 is used.\n", + "expression": { + "type": "string", + "description": "Textual representation of an expression in Common Expression Language syntax.\n", "language": { "python": { "mapCase": false } } - } - }, - "type": "object" - }, - "gcp:pubsub/SubscriptionExpirationPolicy:SubscriptionExpirationPolicy": { - "properties": { - "ttl": { + }, + "title": { "type": "string", - "description": "Specifies the \"time-to-live\" duration for an associated resource. The\nresource expires if it is not active for a period of ttl.\nIf ttl is not set, the associated resource never expires.\nA duration in seconds with up to nine fractional digits, terminated by 's'.\nExample - \"3.5s\".\n", + "description": "A title for the expression, i.e. a short string describing its purpose.\n", "language": { "python": { "mapCase": false @@ -35396,10 +37365,11 @@ }, "type": "object", "required": [ - "ttl" + "expression", + "title" ] }, - "gcp:pubsub/SubscriptionIAMBindingCondition:SubscriptionIAMBindingCondition": { + "gcp:servicedirectory/NamespaceIamBindingCondition:NamespaceIamBindingCondition": { "properties": { "description": { "type": "string", @@ -35432,7 +37402,7 @@ "title" ] }, - "gcp:pubsub/SubscriptionIAMMemberCondition:SubscriptionIAMMemberCondition": { + "gcp:servicedirectory/NamespaceIamMemberCondition:NamespaceIamMemberCondition": { "properties": { "description": { "type": "string", @@ -35465,32 +37435,26 @@ "title" ] }, - "gcp:pubsub/SubscriptionPushConfig:SubscriptionPushConfig": { + "gcp:servicedirectory/ServiceIamBindingCondition:ServiceIamBindingCondition": { "properties": { - "attributes": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Endpoint configuration attributes.\nEvery endpoint has a set of API supported attributes that can\nbe used to control different aspects of the message delivery.\nThe currently supported attribute is x-goog-version, which you\ncan use to change the format of the pushed message. This\nattribute indicates the version of the data expected by\nthe endpoint. This controls the shape of the pushed message\n(i.e., its fields and metadata). The endpoint version is\nbased on the version of the Pub/Sub API.\nIf not present during the subscriptions.create call,\nit will default to the version of the API used to make\nsuch call. If not present during a subscriptions.modifyPushConfig\ncall, its value will not be changed. subscriptions.get\ncalls will always return a valid version, even if the\nsubscription was created without this attribute.\nThe possible values for this attribute are:\n- v1beta1: uses the push format defined in the v1beta1 Pub/Sub API.\n- v1 or v1beta2: uses the push format defined in the v1 Pub/Sub API.\n", + "description": { + "type": "string", "language": { "python": { "mapCase": false } } }, - "oidcToken": { - "$ref": "#/types/gcp:pubsub/SubscriptionPushConfigOidcToken:SubscriptionPushConfigOidcToken", - "description": "If specified, Pub/Sub will generate and attach an OIDC JWT token as\nan Authorization header in the HTTP request for every pushed message. Structure is documented below.\n", + "expression": { + "type": "string", "language": { "python": { "mapCase": false } } }, - "pushEndpoint": { + "title": { "type": "string", - "description": "A URL locating the endpoint to which messages should be pushed.\nFor example, a Webhook endpoint might use\n\"https://example.com/push\".\n", "language": { "python": { "mapCase": false @@ -35500,23 +37464,30 @@ }, "type": "object", "required": [ - "pushEndpoint" + "expression", + "title" ] }, - "gcp:pubsub/SubscriptionPushConfigOidcToken:SubscriptionPushConfigOidcToken": { + "gcp:servicedirectory/ServiceIamMemberCondition:ServiceIamMemberCondition": { "properties": { - "audience": { + "description": { "type": "string", - "description": "Audience to be used when generating OIDC token. The audience claim\nidentifies the recipients that the JWT is intended for. The audience\nvalue is a single case-sensitive string. Having multiple values (array)\nfor the audience field is not supported. More info about the OIDC JWT\ntoken audience here: https://tools.ietf.org/html/rfc7519#section-4.1.3\nNote: if not specified, the Push endpoint URL will be used.\n", "language": { "python": { "mapCase": false } } }, - "serviceAccountEmail": { + "expression": { + "type": "string", + "language": { + "python": { + "mapCase": false + } + } + }, + "title": { "type": "string", - "description": "Service account email to be used for generating the OIDC token.\nThe caller (for subscriptions.create, subscriptions.patch, and\nsubscriptions.modifyPushConfig RPCs) must have the\niam.serviceAccounts.actAs permission for the service account.\n", "language": { "python": { "mapCase": false @@ -35526,10 +37497,11 @@ }, "type": "object", "required": [ - "serviceAccountEmail" + "expression", + "title" ] }, - "gcp:pubsub/TopicIAMBindingCondition:TopicIAMBindingCondition": { + "gcp:sourcerepo/RepositoryIamBindingCondition:RepositoryIamBindingCondition": { "properties": { "description": { "type": "string", @@ -35562,7 +37534,7 @@ "title" ] }, - "gcp:pubsub/TopicIAMMemberCondition:TopicIAMMemberCondition": { + "gcp:sourcerepo/RepositoryIamMemberCondition:RepositoryIamMemberCondition": { "properties": { "description": { "type": "string", @@ -35595,14 +37567,29 @@ "title" ] }, - "gcp:pubsub/TopicMessageStoragePolicy:TopicMessageStoragePolicy": { + "gcp:sourcerepo/RepositoryPubsubConfig:RepositoryPubsubConfig": { "properties": { - "allowedPersistenceRegions": { - "type": "array", - "items": { - "type": "string" - }, - "description": "A list of IDs of GCP regions where messages that are published to\nthe topic may be persisted in storage. Messages published by\npublishers running in non-allowed GCP regions (or running outside\nof GCP altogether) will be routed for storage in one of the\nallowed regions. An empty list means that no regions are allowed,\nand is not a valid configuration.\n", + "messageFormat": { + "type": "string", + "description": "The format of the Cloud Pub/Sub messages.\n- PROTOBUF: The message payload is a serialized protocol buffer of SourceRepoEvent.\n- JSON: The message payload is a JSON string of SourceRepoEvent.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "serviceAccountEmail": { + "type": "string", + "description": "Email address of the service account used for publishing Cloud Pub/Sub messages.\nThis service account needs to be in the same project as the PubsubConfig. When added,\nthe caller needs to have iam.serviceAccounts.actAs permission on this service account.\nIf unspecified, it defaults to the compute engine default service account.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "topic": { + "type": "string", + "description": "The identifier for this object. Format specified above.\n", "language": { "python": { "mapCase": false @@ -35612,10 +37599,20 @@ }, "type": "object", "required": [ - "allowedPersistenceRegions" - ] + "messageFormat", + "topic" + ], + "language": { + "nodejs": { + "requiredOutputs": [ + "messageFormat", + "serviceAccountEmail", + "topic" + ] + } + } }, - "gcp:runtimeconfig/ConfigIamBindingCondition:ConfigIamBindingCondition": { + "gcp:spanner/DatabaseIAMBindingCondition:DatabaseIAMBindingCondition": { "properties": { "description": { "type": "string", @@ -35648,7 +37645,7 @@ "title" ] }, - "gcp:runtimeconfig/ConfigIamMemberCondition:ConfigIamMemberCondition": { + "gcp:spanner/DatabaseIAMMemberCondition:DatabaseIAMMemberCondition": { "properties": { "description": { "type": "string", @@ -35681,7 +37678,7 @@ "title" ] }, - "gcp:secretmanager/SecretIamBindingCondition:SecretIamBindingCondition": { + "gcp:spanner/InstanceIAMBindingCondition:InstanceIAMBindingCondition": { "properties": { "description": { "type": "string", @@ -35714,7 +37711,7 @@ "title" ] }, - "gcp:secretmanager/SecretIamMemberCondition:SecretIamMemberCondition": { + "gcp:spanner/InstanceIAMMemberCondition:InstanceIAMMemberCondition": { "properties": { "description": { "type": "string", @@ -35747,37 +37744,26 @@ "title" ] }, - "gcp:secretmanager/SecretReplication:SecretReplication": { + "gcp:sql/DatabaseInstanceIpAddress:DatabaseInstanceIpAddress": { "properties": { - "automatic": { - "type": "boolean", - "description": "The Secret will automatically be replicated without any restrictions.\n", + "ipAddress": { + "type": "string", "language": { "python": { "mapCase": false } } }, - "userManaged": { - "$ref": "#/types/gcp:secretmanager/SecretReplicationUserManaged:SecretReplicationUserManaged", - "description": "The Secret will automatically be replicated without any restrictions. Structure is documented below.\n", + "timeToRetire": { + "type": "string", "language": { "python": { "mapCase": false } } - } - }, - "type": "object" - }, - "gcp:secretmanager/SecretReplicationUserManaged:SecretReplicationUserManaged": { - "properties": { - "replicas": { - "type": "array", - "items": { - "$ref": "#/types/gcp:secretmanager/SecretReplicationUserManagedReplica:SecretReplicationUserManagedReplica" - }, - "description": "The list of Replicas for this Secret. Cannot be empty. Structure is documented below.\n", + }, + "type": { + "type": "string", "language": { "python": { "mapCase": false @@ -35786,50 +37772,110 @@ } }, "type": "object", - "required": [ - "replicas" - ] + "language": { + "nodejs": { + "requiredOutputs": [ + "ipAddress", + "timeToRetire", + "type" + ] + } + } }, - "gcp:secretmanager/SecretReplicationUserManagedReplica:SecretReplicationUserManagedReplica": { + "gcp:sql/DatabaseInstanceReplicaConfiguration:DatabaseInstanceReplicaConfiguration": { "properties": { - "location": { + "caCertificate": { "type": "string", - "description": "The canonical IDs of the location to replicate data. For example: \"us-east1\".\n", + "description": "PEM representation of the trusted CA's x509\ncertificate.\n", "language": { "python": { "mapCase": false } } - } - }, - "type": "object", - "required": [ - "location" - ] - }, - "gcp:serviceAccount/IAMBindingCondition:IAMBindingCondition": { - "properties": { - "description": { + }, + "clientCertificate": { "type": "string", - "description": "An optional description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.\n", + "description": "PEM representation of the slave's x509\ncertificate.\n", "language": { "python": { "mapCase": false } } }, - "expression": { + "clientKey": { "type": "string", - "description": "Textual representation of an expression in Common Expression Language syntax.\n", + "description": "PEM representation of the slave's private key. The\ncorresponding public key in encoded in the `client_certificate`.\n", "language": { "python": { "mapCase": false } } }, - "title": { + "connectRetryInterval": { + "type": "integer", + "description": "The number of seconds\nbetween connect retries.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "dumpFilePath": { "type": "string", - "description": "A title for the expression, i.e. a short string describing its purpose.\n", + "description": "Path to a SQL file in GCS from which slave\ninstances are created. Format is `gs://bucket/filename`.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "failoverTarget": { + "type": "boolean", + "description": "Specifies if the replica is the failover target.\nIf the field is set to true the replica will be designated as a failover replica.\nIf the master instance fails, the replica instance will be promoted as\nthe new master instance.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "masterHeartbeatPeriod": { + "type": "integer", + "description": "Time in ms between replication\nheartbeats.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "password": { + "type": "string", + "description": "Password for the replication connection.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "sslCipher": { + "type": "string", + "language": { + "python": { + "mapCase": false + } + } + }, + "username": { + "type": "string", + "description": "Username for replication connection.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "verifyServerCertificate": { + "type": "boolean", + "description": "True if the master's common name\nvalue is checked during the SSL handshake.\n", "language": { "python": { "mapCase": false @@ -35837,35 +37883,45 @@ } } }, - "type": "object", - "required": [ - "expression", - "title" - ] + "type": "object" }, - "gcp:serviceAccount/IAMMemberCondition:IAMMemberCondition": { + "gcp:sql/DatabaseInstanceServerCaCert:DatabaseInstanceServerCaCert": { "properties": { - "description": { + "cert": { "type": "string", - "description": "An optional description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.\n", "language": { "python": { "mapCase": false } } }, - "expression": { + "commonName": { "type": "string", - "description": "Textual representation of an expression in Common Expression Language syntax.\n", "language": { "python": { "mapCase": false } } }, - "title": { + "createTime": { + "type": "string", + "language": { + "python": { + "mapCase": false + } + } + }, + "expirationTime": { + "type": "string", + "description": "The [RFC 3339](https://tools.ietf.org/html/rfc3339)\nformatted date time string indicating when this whitelist expires.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "sha1Fingerprint": { "type": "string", - "description": "A title for the expression, i.e. a short string describing its purpose.\n", "language": { "python": { "mapCase": false @@ -35874,97 +37930,173 @@ } }, "type": "object", - "required": [ - "expression", - "title" - ] + "language": { + "nodejs": { + "requiredOutputs": [ + "cert", + "commonName", + "createTime", + "expirationTime", + "sha1Fingerprint" + ] + } + } }, - "gcp:servicedirectory/NamespaceIamBindingCondition:NamespaceIamBindingCondition": { + "gcp:sql/DatabaseInstanceSettings:DatabaseInstanceSettings": { "properties": { - "description": { + "activationPolicy": { + "type": "string", + "description": "This specifies when the instance should be\nactive. Can be either `ALWAYS`, `NEVER` or `ON_DEMAND`.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "authorizedGaeApplications": { + "type": "array", + "items": { + "type": "string" + }, + "description": "This property is only applicable to First Generation instances.\nFirst Generation instances are now deprecated, see [here](https://cloud.google.com/sql/docs/mysql/upgrade-2nd-gen)\nfor information on how to upgrade to Second Generation instances.\nA list of Google App Engine (GAE) project names that are allowed to access this instance.\n", + "deprecationMessage": "This property is only applicable to First Generation instances, and First Generation instances are now deprecated.", + "language": { + "python": { + "mapCase": false + } + } + }, + "availabilityType": { "type": "string", + "description": "The availability type of the Cloud SQL\ninstance, high availability (`REGIONAL`) or single zone (`ZONAL`).' For MySQL\ninstances, ensure that `settings.backup_configuration.enabled` and\n`settings.backup_configuration.binary_log_enabled` are both set to `true`.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "backupConfiguration": { + "$ref": "#/types/gcp:sql/DatabaseInstanceSettingsBackupConfiguration:DatabaseInstanceSettingsBackupConfiguration", + "language": { + "python": { + "mapCase": false + } + } + }, + "crashSafeReplication": { + "type": "boolean", + "description": "This property is only applicable to First Generation instances.\nFirst Generation instances are now deprecated, see [here](https://cloud.google.com/sql/docs/mysql/upgrade-2nd-gen)\nfor information on how to upgrade to Second Generation instances.\nSpecific to read instances, indicates\nwhen crash-safe replication flags are enabled.\n", + "deprecationMessage": "This property is only applicable to First Generation instances, and First Generation instances are now deprecated.", + "language": { + "python": { + "mapCase": false + } + } + }, + "databaseFlags": { + "type": "array", + "items": { + "$ref": "#/types/gcp:sql/DatabaseInstanceSettingsDatabaseFlag:DatabaseInstanceSettingsDatabaseFlag" + }, + "language": { + "python": { + "mapCase": false + } + } + }, + "diskAutoresize": { + "type": "boolean", + "description": "Configuration to increase storage size automatically. Note that future `pulumi apply` calls will attempt to resize the disk to the value specified in `disk_size` - if this is set, do not set `disk_size`.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "diskSize": { + "type": "integer", + "description": "The size of data disk, in GB. Size of a running instance cannot be reduced but can be increased.\n", "language": { "python": { "mapCase": false } } }, - "expression": { + "diskType": { "type": "string", + "description": "The type of data disk: PD_SSD or PD_HDD.\n", "language": { "python": { "mapCase": false } } }, - "title": { - "type": "string", + "ipConfiguration": { + "$ref": "#/types/gcp:sql/DatabaseInstanceSettingsIpConfiguration:DatabaseInstanceSettingsIpConfiguration", "language": { "python": { "mapCase": false } } - } - }, - "type": "object", - "required": [ - "expression", - "title" - ] - }, - "gcp:servicedirectory/NamespaceIamMemberCondition:NamespaceIamMemberCondition": { - "properties": { - "description": { - "type": "string", + }, + "locationPreference": { + "$ref": "#/types/gcp:sql/DatabaseInstanceSettingsLocationPreference:DatabaseInstanceSettingsLocationPreference", "language": { "python": { "mapCase": false } } }, - "expression": { - "type": "string", + "maintenanceWindow": { + "$ref": "#/types/gcp:sql/DatabaseInstanceSettingsMaintenanceWindow:DatabaseInstanceSettingsMaintenanceWindow", "language": { "python": { "mapCase": false } } }, - "title": { + "pricingPlan": { "type": "string", + "description": "Pricing plan for this instance, can only be `PER_USE`.\n", "language": { "python": { "mapCase": false } } - } - }, - "type": "object", - "required": [ - "expression", - "title" - ] - }, - "gcp:servicedirectory/ServiceIamBindingCondition:ServiceIamBindingCondition": { - "properties": { - "description": { + }, + "replicationType": { "type": "string", + "description": "This property is only applicable to First Generation instances.\nFirst Generation instances are now deprecated, see [here](https://cloud.google.com/sql/docs/mysql/upgrade-2nd-gen)\nfor information on how to upgrade to Second Generation instances.\nReplication type for this instance, can be one of `ASYNCHRONOUS` or `SYNCHRONOUS`.\n", + "deprecationMessage": "This property is only applicable to First Generation instances, and First Generation instances are now deprecated.", "language": { "python": { "mapCase": false } } }, - "expression": { + "tier": { "type": "string", + "description": "The machine type to use. See [tiers](https://cloud.google.com/sql/docs/admin-api/v1beta4/tiers)\nfor more details and supported versions. Postgres supports only shared-core machine types such as `db-f1-micro`,\nand custom machine types such as `db-custom-2-13312`. See the [Custom Machine Type Documentation](https://cloud.google.com/compute/docs/instances/creating-instance-with-custom-machine-type#create) to learn about specifying custom machine types.\n", "language": { "python": { "mapCase": false } } }, - "title": { - "type": "string", + "userLabels": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A set of key/value user label pairs to assign to the instance.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "version": { + "type": "integer", "language": { "python": { "mapCase": false @@ -35974,63 +38106,86 @@ }, "type": "object", "required": [ - "expression", - "title" - ] + "tier" + ], + "language": { + "nodejs": { + "requiredOutputs": [ + "activationPolicy", + "availabilityType", + "backupConfiguration", + "crashSafeReplication", + "diskSize", + "diskType", + "ipConfiguration", + "locationPreference", + "tier", + "version" + ] + } + } }, - "gcp:servicedirectory/ServiceIamMemberCondition:ServiceIamMemberCondition": { + "gcp:sql/DatabaseInstanceSettingsBackupConfiguration:DatabaseInstanceSettingsBackupConfiguration": { "properties": { - "description": { - "type": "string", + "binaryLogEnabled": { + "type": "boolean", + "description": "True if binary logging is enabled. If\n`settings.backup_configuration.enabled` is false, this must be as well.\nCannot be used with Postgres.\n", "language": { "python": { "mapCase": false } } }, - "expression": { - "type": "string", + "enabled": { + "type": "boolean", + "description": "True if backup configuration is enabled.\n", "language": { "python": { "mapCase": false } } }, - "title": { + "location": { "type": "string", "language": { "python": { "mapCase": false } } - } - }, - "type": "object", - "required": [ - "expression", - "title" - ] - }, - "gcp:sourcerepo/RepositoryIamBindingCondition:RepositoryIamBindingCondition": { - "properties": { - "description": { + }, + "startTime": { "type": "string", + "description": "`HH:MM` format time indicating when backup\nconfiguration starts.\n", "language": { "python": { "mapCase": false } } - }, - "expression": { + } + }, + "type": "object", + "language": { + "nodejs": { + "requiredOutputs": [ + "startTime" + ] + } + } + }, + "gcp:sql/DatabaseInstanceSettingsDatabaseFlag:DatabaseInstanceSettingsDatabaseFlag": { + "properties": { + "name": { "type": "string", + "description": "A name for this whitelist entry.\n", "language": { "python": { "mapCase": false } } }, - "title": { + "value": { "type": "string", + "description": "A CIDR notation IPv4 or IPv6 address that is allowed to\naccess this instance. Must be set even if other two attributes are not for\nthe whitelist to become active.\n", "language": { "python": { "mapCase": false @@ -36040,30 +38195,44 @@ }, "type": "object", "required": [ - "expression", - "title" + "name", + "value" ] }, - "gcp:sourcerepo/RepositoryIamMemberCondition:RepositoryIamMemberCondition": { + "gcp:sql/DatabaseInstanceSettingsIpConfiguration:DatabaseInstanceSettingsIpConfiguration": { "properties": { - "description": { - "type": "string", + "authorizedNetworks": { + "type": "array", + "items": { + "$ref": "#/types/gcp:sql/DatabaseInstanceSettingsIpConfigurationAuthorizedNetwork:DatabaseInstanceSettingsIpConfigurationAuthorizedNetwork" + }, "language": { "python": { "mapCase": false } } }, - "expression": { - "type": "string", + "ipv4Enabled": { + "type": "boolean", + "description": "Whether this Cloud SQL instance should be assigned\na public IPV4 address. Either `ipv4_enabled` must be enabled or a\n`private_network` must be configured.\n", "language": { "python": { "mapCase": false } } }, - "title": { + "privateNetwork": { "type": "string", + "description": "The VPC network from which the Cloud SQL\ninstance is accessible for private IP. For example, projects/myProject/global/networks/default.\nSpecifying a network enables private IP.\nEither `ipv4_enabled` must be enabled or a `private_network` must be configured.\nThis setting can be updated, but it cannot be removed after it is set.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "requireSsl": { + "type": "boolean", + "description": "True if mysqld should default to `REQUIRE X509`\nfor users connecting over IP.\n", "language": { "python": { "mapCase": false @@ -36071,35 +38240,31 @@ } } }, - "type": "object", - "required": [ - "expression", - "title" - ] + "type": "object" }, - "gcp:sourcerepo/RepositoryPubsubConfig:RepositoryPubsubConfig": { + "gcp:sql/DatabaseInstanceSettingsIpConfigurationAuthorizedNetwork:DatabaseInstanceSettingsIpConfigurationAuthorizedNetwork": { "properties": { - "messageFormat": { + "expirationTime": { "type": "string", - "description": "The format of the Cloud Pub/Sub messages.\n- PROTOBUF: The message payload is a serialized protocol buffer of SourceRepoEvent.\n- JSON: The message payload is a JSON string of SourceRepoEvent.\n", + "description": "The [RFC 3339](https://tools.ietf.org/html/rfc3339)\nformatted date time string indicating when this whitelist expires.\n", "language": { "python": { "mapCase": false } } }, - "serviceAccountEmail": { + "name": { "type": "string", - "description": "Email address of the service account used for publishing Cloud Pub/Sub messages.\nThis service account needs to be in the same project as the PubsubConfig. When added,\nthe caller needs to have iam.serviceAccounts.actAs permission on this service account.\nIf unspecified, it defaults to the compute engine default service account.\n", + "description": "A name for this whitelist entry.\n", "language": { "python": { "mapCase": false } } }, - "topic": { + "value": { "type": "string", - "description": "The identifier for this object. Format specified above.\n", + "description": "A CIDR notation IPv4 or IPv6 address that is allowed to\naccess this instance. Must be set even if other two attributes are not for\nthe whitelist to become active.\n", "language": { "python": { "mapCase": false @@ -36109,39 +38274,23 @@ }, "type": "object", "required": [ - "messageFormat", - "topic" - ], - "language": { - "nodejs": { - "requiredOutputs": [ - "messageFormat", - "serviceAccountEmail", - "topic" - ] - } - } + "value" + ] }, - "gcp:spanner/DatabaseIAMBindingCondition:DatabaseIAMBindingCondition": { + "gcp:sql/DatabaseInstanceSettingsLocationPreference:DatabaseInstanceSettingsLocationPreference": { "properties": { - "description": { - "type": "string", - "language": { - "python": { - "mapCase": false - } - } - }, - "expression": { + "followGaeApplication": { "type": "string", + "description": "A GAE application whose zone to remain\nin. Must be in the same region as this instance.\n", "language": { "python": { "mapCase": false } } }, - "title": { + "zone": { "type": "string", + "description": "The preferred compute engine\n[zone](https://cloud.google.com/compute/docs/zones?hl=en).\n", "language": { "python": { "mapCase": false @@ -36149,32 +38298,31 @@ } } }, - "type": "object", - "required": [ - "expression", - "title" - ] + "type": "object" }, - "gcp:spanner/DatabaseIAMMemberCondition:DatabaseIAMMemberCondition": { + "gcp:sql/DatabaseInstanceSettingsMaintenanceWindow:DatabaseInstanceSettingsMaintenanceWindow": { "properties": { - "description": { - "type": "string", + "day": { + "type": "integer", + "description": "Day of week (`1-7`), starting on Monday\n", "language": { "python": { "mapCase": false } } }, - "expression": { - "type": "string", + "hour": { + "type": "integer", + "description": "Hour of day (`0-23`), ignored if `day` not set\n", "language": { "python": { "mapCase": false } } }, - "title": { + "updateTrack": { "type": "string", + "description": "Receive updates earlier (`canary`) or later\n(`stable`)\n", "language": { "python": { "mapCase": false @@ -36182,65 +38330,49 @@ } } }, - "type": "object", - "required": [ - "expression", - "title" - ] + "type": "object" }, - "gcp:spanner/InstanceIAMBindingCondition:InstanceIAMBindingCondition": { + "gcp:sql/getCaCertsCert:getCaCertsCert": { "properties": { - "description": { + "cert": { "type": "string", + "description": "The CA certificate used to connect to the SQL instance via SSL.\n", "language": { "python": { "mapCase": false } } }, - "expression": { + "commonName": { "type": "string", + "description": "The CN valid for the CA cert.\n", "language": { "python": { "mapCase": false } } }, - "title": { - "type": "string", - "language": { - "python": { - "mapCase": false - } - } - } - }, - "type": "object", - "required": [ - "expression", - "title" - ] - }, - "gcp:spanner/InstanceIAMMemberCondition:InstanceIAMMemberCondition": { - "properties": { - "description": { + "createTime": { "type": "string", + "description": "Creation time of the CA cert.\n", "language": { "python": { "mapCase": false } } }, - "expression": { + "expirationTime": { "type": "string", + "description": "Expiration time of the CA cert.\n", "language": { "python": { "mapCase": false } } }, - "title": { + "sha1Fingerprint": { "type": "string", + "description": "SHA1 fingerprint of the CA cert.\n", "language": { "python": { "mapCase": false @@ -36250,11 +38382,19 @@ }, "type": "object", "required": [ - "expression", - "title" - ] + "cert", + "commonName", + "createTime", + "expirationTime", + "sha1Fingerprint" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } }, - "gcp:sql/DatabaseInstanceIpAddress:DatabaseInstanceIpAddress": { + "gcp:sql/getDatabaseInstanceIpAddress:getDatabaseInstanceIpAddress": { "properties": { "ipAddress": { "type": "string", @@ -36282,21 +38422,22 @@ } }, "type": "object", + "required": [ + "ipAddress", + "timeToRetire", + "type" + ], "language": { "nodejs": { - "requiredOutputs": [ - "ipAddress", - "timeToRetire", - "type" - ] + "requiredInputs": [] } } }, - "gcp:sql/DatabaseInstanceReplicaConfiguration:DatabaseInstanceReplicaConfiguration": { + "gcp:sql/getDatabaseInstanceReplicaConfiguration:getDatabaseInstanceReplicaConfiguration": { "properties": { "caCertificate": { "type": "string", - "description": "PEM representation of the trusted CA's x509\ncertificate.\n", + "description": "PEM representation of the trusted CA's x509 certificate.\n", "language": { "python": { "mapCase": false @@ -36305,7 +38446,7 @@ }, "clientCertificate": { "type": "string", - "description": "PEM representation of the slave's x509\ncertificate.\n", + "description": "PEM representation of the slave's x509 certificate.\n", "language": { "python": { "mapCase": false @@ -36314,7 +38455,7 @@ }, "clientKey": { "type": "string", - "description": "PEM representation of the slave's private key. The\ncorresponding public key in encoded in the `client_certificate`.\n", + "description": "PEM representation of the slave's private key.\n", "language": { "python": { "mapCase": false @@ -36323,7 +38464,7 @@ }, "connectRetryInterval": { "type": "integer", - "description": "The number of seconds\nbetween connect retries.\n", + "description": "The number of seconds between connect retries.\n", "language": { "python": { "mapCase": false @@ -36332,7 +38473,7 @@ }, "dumpFilePath": { "type": "string", - "description": "Path to a SQL file in GCS from which slave\ninstances are created. Format is `gs://bucket/filename`.\n", + "description": "Path to a SQL file in GCS from which slave instances are created.\n", "language": { "python": { "mapCase": false @@ -36341,7 +38482,7 @@ }, "failoverTarget": { "type": "boolean", - "description": "Specifies if the replica is the failover target.\nIf the field is set to true the replica will be designated as a failover replica.\nIf the master instance fails, the replica instance will be promoted as\nthe new master instance.\n", + "description": "Specifies if the replica is the failover target.\n", "language": { "python": { "mapCase": false @@ -36350,7 +38491,7 @@ }, "masterHeartbeatPeriod": { "type": "integer", - "description": "Time in ms between replication\nheartbeats.\n", + "description": "Time in ms between replication heartbeats.\n", "language": { "python": { "mapCase": false @@ -36385,7 +38526,7 @@ }, "verifyServerCertificate": { "type": "boolean", - "description": "True if the master's common name\nvalue is checked during the SSL handshake.\n", + "description": "True if the master's common name value is checked during the SSL handshake.\n", "language": { "python": { "mapCase": false @@ -36393,9 +38534,27 @@ } } }, - "type": "object" + "type": "object", + "required": [ + "caCertificate", + "clientCertificate", + "clientKey", + "connectRetryInterval", + "dumpFilePath", + "failoverTarget", + "masterHeartbeatPeriod", + "password", + "sslCipher", + "username", + "verifyServerCertificate" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } }, - "gcp:sql/DatabaseInstanceServerCaCert:DatabaseInstanceServerCaCert": { + "gcp:sql/getDatabaseInstanceServerCaCert:getDatabaseInstanceServerCaCert": { "properties": { "cert": { "type": "string", @@ -36440,19 +38599,20 @@ } }, "type": "object", + "required": [ + "cert", + "commonName", + "createTime", + "expirationTime", + "sha1Fingerprint" + ], "language": { "nodejs": { - "requiredOutputs": [ - "cert", - "commonName", - "createTime", - "expirationTime", - "sha1Fingerprint" - ] + "requiredInputs": [] } } }, - "gcp:sql/DatabaseInstanceSettings:DatabaseInstanceSettings": { + "gcp:sql/getDatabaseInstanceSetting:getDatabaseInstanceSetting": { "properties": { "activationPolicy": { "type": "string", @@ -36468,8 +38628,7 @@ "items": { "type": "string" }, - "description": "This property is only applicable to First Generation instances.\nFirst Generation instances are now deprecated, see [here](https://cloud.google.com/sql/docs/mysql/upgrade-2nd-gen)\nfor information on how to upgrade to Second Generation instances.\nA list of Google App Engine (GAE) project names that are allowed to access this instance.\n", - "deprecationMessage": "This property is only applicable to First Generation instances, and First Generation instances are now deprecated.", + "description": "(Deprecated) This property is only applicable to First Generation instances.\nFirst Generation instances are now deprecated, see [here](https://cloud.google.com/sql/docs/mysql/upgrade-2nd-gen)\nfor information on how to upgrade to Second Generation instances.\nA list of Google App Engine (GAE) project names that are allowed to access this instance.\n", "language": { "python": { "mapCase": false @@ -36478,15 +38637,18 @@ }, "availabilityType": { "type": "string", - "description": "The availability type of the Cloud SQL\ninstance, high availability (`REGIONAL`) or single zone (`ZONAL`).' For MySQL\ninstances, ensure that `settings.backup_configuration.enabled` and\n`settings.backup_configuration.binary_log_enabled` are both set to `true`.\n", + "description": "The availability type of the Cloud SQL\ninstance, high availability (`REGIONAL`) or single zone (`ZONAL`).\n", "language": { "python": { "mapCase": false } } }, - "backupConfiguration": { - "$ref": "#/types/gcp:sql/DatabaseInstanceSettingsBackupConfiguration:DatabaseInstanceSettingsBackupConfiguration", + "backupConfigurations": { + "type": "array", + "items": { + "$ref": "#/types/gcp:sql/getDatabaseInstanceSettingBackupConfiguration:getDatabaseInstanceSettingBackupConfiguration" + }, "language": { "python": { "mapCase": false @@ -36495,8 +38657,7 @@ }, "crashSafeReplication": { "type": "boolean", - "description": "This property is only applicable to First Generation instances.\nFirst Generation instances are now deprecated, see [here](https://cloud.google.com/sql/docs/mysql/upgrade-2nd-gen)\nfor information on how to upgrade to Second Generation instances.\nSpecific to read instances, indicates\nwhen crash-safe replication flags are enabled.\n", - "deprecationMessage": "This property is only applicable to First Generation instances, and First Generation instances are now deprecated.", + "description": "(Deprecated) This property is only applicable to First Generation instances.\nFirst Generation instances are now deprecated, see [here](https://cloud.google.com/sql/docs/mysql/upgrade-2nd-gen)\n", "language": { "python": { "mapCase": false @@ -36506,7 +38667,7 @@ "databaseFlags": { "type": "array", "items": { - "$ref": "#/types/gcp:sql/DatabaseInstanceSettingsDatabaseFlag:DatabaseInstanceSettingsDatabaseFlag" + "$ref": "#/types/gcp:sql/getDatabaseInstanceSettingDatabaseFlag:getDatabaseInstanceSettingDatabaseFlag" }, "language": { "python": { @@ -36516,7 +38677,7 @@ }, "diskAutoresize": { "type": "boolean", - "description": "Configuration to increase storage size automatically. Note that future `pulumi apply` calls will attempt to resize the disk to the value specified in `disk_size` - if this is set, do not set `disk_size`.\n", + "description": "Configuration to increase storage size automatically.\n", "language": { "python": { "mapCase": false @@ -36525,7 +38686,7 @@ }, "diskSize": { "type": "integer", - "description": "The size of data disk, in GB. Size of a running instance cannot be reduced but can be increased.\n", + "description": "The size of data disk, in GB.\n", "language": { "python": { "mapCase": false @@ -36534,31 +38695,40 @@ }, "diskType": { "type": "string", - "description": "The type of data disk: PD_SSD or PD_HDD.\n", + "description": "The type of data disk.\n", "language": { "python": { "mapCase": false } } }, - "ipConfiguration": { - "$ref": "#/types/gcp:sql/DatabaseInstanceSettingsIpConfiguration:DatabaseInstanceSettingsIpConfiguration", + "ipConfigurations": { + "type": "array", + "items": { + "$ref": "#/types/gcp:sql/getDatabaseInstanceSettingIpConfiguration:getDatabaseInstanceSettingIpConfiguration" + }, "language": { "python": { "mapCase": false } } }, - "locationPreference": { - "$ref": "#/types/gcp:sql/DatabaseInstanceSettingsLocationPreference:DatabaseInstanceSettingsLocationPreference", + "locationPreferences": { + "type": "array", + "items": { + "$ref": "#/types/gcp:sql/getDatabaseInstanceSettingLocationPreference:getDatabaseInstanceSettingLocationPreference" + }, "language": { "python": { "mapCase": false } } }, - "maintenanceWindow": { - "$ref": "#/types/gcp:sql/DatabaseInstanceSettingsMaintenanceWindow:DatabaseInstanceSettingsMaintenanceWindow", + "maintenanceWindows": { + "type": "array", + "items": { + "$ref": "#/types/gcp:sql/getDatabaseInstanceSettingMaintenanceWindow:getDatabaseInstanceSettingMaintenanceWindow" + }, "language": { "python": { "mapCase": false @@ -36567,7 +38737,7 @@ }, "pricingPlan": { "type": "string", - "description": "Pricing plan for this instance, can only be `PER_USE`.\n", + "description": "Pricing plan for this instance.\n", "language": { "python": { "mapCase": false @@ -36576,8 +38746,7 @@ }, "replicationType": { "type": "string", - "description": "This property is only applicable to First Generation instances.\nFirst Generation instances are now deprecated, see [here](https://cloud.google.com/sql/docs/mysql/upgrade-2nd-gen)\nfor information on how to upgrade to Second Generation instances.\nReplication type for this instance, can be one of `ASYNCHRONOUS` or `SYNCHRONOUS`.\n", - "deprecationMessage": "This property is only applicable to First Generation instances, and First Generation instances are now deprecated.", + "description": "This property is only applicable to First Generation instances.\nFirst Generation instances are now deprecated, see [here](https://cloud.google.com/sql/docs/mysql/upgrade-2nd-gen)\n", "language": { "python": { "mapCase": false @@ -36586,7 +38755,7 @@ }, "tier": { "type": "string", - "description": "The machine type to use. See [tiers](https://cloud.google.com/sql/docs/admin-api/v1beta4/tiers)\nfor more details and supported versions. Postgres supports only shared-core machine types such as `db-f1-micro`,\nand custom machine types such as `db-custom-2-13312`. See the [Custom Machine Type Documentation](https://cloud.google.com/compute/docs/instances/creating-instance-with-custom-machine-type#create) to learn about specifying custom machine types.\n", + "description": "The machine type to use.\n", "language": { "python": { "mapCase": false @@ -36616,30 +38785,35 @@ }, "type": "object", "required": [ - "tier" + "activationPolicy", + "authorizedGaeApplications", + "availabilityType", + "backupConfigurations", + "crashSafeReplication", + "databaseFlags", + "diskAutoresize", + "diskSize", + "diskType", + "ipConfigurations", + "locationPreferences", + "maintenanceWindows", + "pricingPlan", + "replicationType", + "tier", + "userLabels", + "version" ], "language": { "nodejs": { - "requiredOutputs": [ - "activationPolicy", - "availabilityType", - "backupConfiguration", - "crashSafeReplication", - "diskSize", - "diskType", - "ipConfiguration", - "locationPreference", - "tier", - "version" - ] + "requiredInputs": [] } } }, - "gcp:sql/DatabaseInstanceSettingsBackupConfiguration:DatabaseInstanceSettingsBackupConfiguration": { + "gcp:sql/getDatabaseInstanceSettingBackupConfiguration:getDatabaseInstanceSettingBackupConfiguration": { "properties": { "binaryLogEnabled": { "type": "boolean", - "description": "True if binary logging is enabled. If\n`settings.backup_configuration.enabled` is false, this must be as well.\nCannot be used with Postgres.\n", + "description": "True if binary logging is enabled.\n", "language": { "python": { "mapCase": false @@ -36665,7 +38839,7 @@ }, "startTime": { "type": "string", - "description": "`HH:MM` format time indicating when backup\nconfiguration starts.\n", + "description": "`HH:MM` format time indicating when backup configuration starts.\n", "language": { "python": { "mapCase": false @@ -36674,19 +38848,23 @@ } }, "type": "object", + "required": [ + "binaryLogEnabled", + "enabled", + "location", + "startTime" + ], "language": { "nodejs": { - "requiredOutputs": [ - "startTime" - ] + "requiredInputs": [] } } }, - "gcp:sql/DatabaseInstanceSettingsDatabaseFlag:DatabaseInstanceSettingsDatabaseFlag": { + "gcp:sql/getDatabaseInstanceSettingDatabaseFlag:getDatabaseInstanceSettingDatabaseFlag": { "properties": { "name": { "type": "string", - "description": "A name for this whitelist entry.\n", + "description": "The name of the instance.\n", "language": { "python": { "mapCase": false @@ -36695,7 +38873,7 @@ }, "value": { "type": "string", - "description": "A CIDR notation IPv4 or IPv6 address that is allowed to\naccess this instance. Must be set even if other two attributes are not for\nthe whitelist to become active.\n", + "description": "A CIDR notation IPv4 or IPv6 address that is allowed to access this instance.\n", "language": { "python": { "mapCase": false @@ -36707,14 +38885,19 @@ "required": [ "name", "value" - ] + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } }, - "gcp:sql/DatabaseInstanceSettingsIpConfiguration:DatabaseInstanceSettingsIpConfiguration": { + "gcp:sql/getDatabaseInstanceSettingIpConfiguration:getDatabaseInstanceSettingIpConfiguration": { "properties": { "authorizedNetworks": { "type": "array", "items": { - "$ref": "#/types/gcp:sql/DatabaseInstanceSettingsIpConfigurationAuthorizedNetwork:DatabaseInstanceSettingsIpConfigurationAuthorizedNetwork" + "$ref": "#/types/gcp:sql/getDatabaseInstanceSettingIpConfigurationAuthorizedNetwork:getDatabaseInstanceSettingIpConfigurationAuthorizedNetwork" }, "language": { "python": { @@ -36724,7 +38907,7 @@ }, "ipv4Enabled": { "type": "boolean", - "description": "Whether this Cloud SQL instance should be assigned\na public IPV4 address. Either `ipv4_enabled` must be enabled or a\n`private_network` must be configured.\n", + "description": "Whether this Cloud SQL instance should be assigned a public IPV4 address.\n", "language": { "python": { "mapCase": false @@ -36733,7 +38916,7 @@ }, "privateNetwork": { "type": "string", - "description": "The VPC network from which the Cloud SQL\ninstance is accessible for private IP. For example, projects/myProject/global/networks/default.\nSpecifying a network enables private IP.\nEither `ipv4_enabled` must be enabled or a `private_network` must be configured.\nThis setting can be updated, but it cannot be removed after it is set.\n", + "description": "The VPC network from which the Cloud SQL instance is accessible for private IP.\n", "language": { "python": { "mapCase": false @@ -36742,7 +38925,7 @@ }, "requireSsl": { "type": "boolean", - "description": "True if mysqld should default to `REQUIRE X509`\nfor users connecting over IP.\n", + "description": "True if mysqld default to `REQUIRE X509` for users connecting over IP.\n", "language": { "python": { "mapCase": false @@ -36750,9 +38933,20 @@ } } }, - "type": "object" + "type": "object", + "required": [ + "authorizedNetworks", + "ipv4Enabled", + "privateNetwork", + "requireSsl" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } }, - "gcp:sql/DatabaseInstanceSettingsIpConfigurationAuthorizedNetwork:DatabaseInstanceSettingsIpConfigurationAuthorizedNetwork": { + "gcp:sql/getDatabaseInstanceSettingIpConfigurationAuthorizedNetwork:getDatabaseInstanceSettingIpConfigurationAuthorizedNetwork": { "properties": { "expirationTime": { "type": "string", @@ -36765,7 +38959,7 @@ }, "name": { "type": "string", - "description": "A name for this whitelist entry.\n", + "description": "The name of the instance.\n", "language": { "python": { "mapCase": false @@ -36774,7 +38968,7 @@ }, "value": { "type": "string", - "description": "A CIDR notation IPv4 or IPv6 address that is allowed to\naccess this instance. Must be set even if other two attributes are not for\nthe whitelist to become active.\n", + "description": "A CIDR notation IPv4 or IPv6 address that is allowed to access this instance.\n", "language": { "python": { "mapCase": false @@ -36784,14 +38978,21 @@ }, "type": "object", "required": [ + "expirationTime", + "name", "value" - ] + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } }, - "gcp:sql/DatabaseInstanceSettingsLocationPreference:DatabaseInstanceSettingsLocationPreference": { + "gcp:sql/getDatabaseInstanceSettingLocationPreference:getDatabaseInstanceSettingLocationPreference": { "properties": { "followGaeApplication": { "type": "string", - "description": "A GAE application whose zone to remain\nin. Must be in the same region as this instance.\n", + "description": "A GAE application whose zone to remain in.\n", "language": { "python": { "mapCase": false @@ -36800,7 +39001,7 @@ }, "zone": { "type": "string", - "description": "The preferred compute engine\n[zone](https://cloud.google.com/compute/docs/zones?hl=en).\n", + "description": "The preferred compute engine.\n", "language": { "python": { "mapCase": false @@ -36808,13 +39009,22 @@ } } }, - "type": "object" + "type": "object", + "required": [ + "followGaeApplication", + "zone" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } }, - "gcp:sql/DatabaseInstanceSettingsMaintenanceWindow:DatabaseInstanceSettingsMaintenanceWindow": { + "gcp:sql/getDatabaseInstanceSettingMaintenanceWindow:getDatabaseInstanceSettingMaintenanceWindow": { "properties": { "day": { "type": "integer", - "description": "Day of week (`1-7`), starting on Monday\n", + "description": "Day of week (`1-7`), starting on Monday.\n", "language": { "python": { "mapCase": false @@ -36823,7 +39033,7 @@ }, "hour": { "type": "integer", - "description": "Hour of day (`0-23`), ignored if `day` not set\n", + "description": "Hour of day (`0-23`), ignored if `day` not set.\n", "language": { "python": { "mapCase": false @@ -36832,57 +39042,7 @@ }, "updateTrack": { "type": "string", - "description": "Receive updates earlier (`canary`) or later\n(`stable`)\n", - "language": { - "python": { - "mapCase": false - } - } - } - }, - "type": "object" - }, - "gcp:sql/getCaCertsCert:getCaCertsCert": { - "properties": { - "cert": { - "type": "string", - "description": "The CA certificate used to connect to the SQL instance via SSL.\n", - "language": { - "python": { - "mapCase": false - } - } - }, - "commonName": { - "type": "string", - "description": "The CN valid for the CA cert.\n", - "language": { - "python": { - "mapCase": false - } - } - }, - "createTime": { - "type": "string", - "description": "Creation time of the CA cert.\n", - "language": { - "python": { - "mapCase": false - } - } - }, - "expirationTime": { - "type": "string", - "description": "Expiration time of the CA cert.\n", - "language": { - "python": { - "mapCase": false - } - } - }, - "sha1Fingerprint": { - "type": "string", - "description": "SHA1 fingerprint of the CA cert.\n", + "description": "Receive updates earlier (`canary`) or later (`stable`).\n", "language": { "python": { "mapCase": false @@ -36892,11 +39052,9 @@ }, "type": "object", "required": [ - "cert", - "commonName", - "createTime", - "expirationTime", - "sha1Fingerprint" + "day", + "hour", + "updateTrack" ], "language": { "nodejs": { @@ -37782,6 +39940,9 @@ "binaryAuthorizationCustomEndpoint": { "type": "string" }, + "cloudAssetCustomEndpoint": { + "type": "string" + }, "cloudBillingCustomEndpoint": { "type": "string" }, @@ -42796,6 +44957,420 @@ "type": "object" } }, + "gcp:cloudasset/folderFeed:FolderFeed": { + "description": "Describes a Cloud Asset Inventory feed used to to listen to asset updates.\n\n\nTo get more information about FolderFeed, see:\n\n* [API documentation](https://cloud.google.com/asset-inventory/docs/reference/rest/)\n* How-to Guides\n * [Official Documentation](https://cloud.google.com/asset-inventory/docs)\n\n{{% examples %}}\n## Example Usage\n{{% /examples %}}", + "properties": { + "assetNames": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of the full names of the assets to receive updates. You must specify either or both of\nassetNames and assetTypes. Only asset updates matching specified assetNames and assetTypes are\nexported to the feed. For example: //compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1.\nSee https://cloud.google.com/apis/design/resourceNames#fullResourceName for more info.\n" + }, + "assetTypes": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of types of the assets to receive updates. You must specify either or both of assetNames\nand assetTypes. Only asset updates matching specified assetNames and assetTypes are exported to\nthe feed. For example: \"compute.googleapis.com/Disk\"\nSee https://cloud.google.com/asset-inventory/docs/supported-asset-types for a list of all\nsupported asset types.\n" + }, + "billingProject": { + "type": "string", + "description": "The project whose identity will be used when sending messages to the\ndestination pubsub topic. It also specifies the project for API\nenablement check, quota, and billing.\n" + }, + "contentType": { + "type": "string", + "description": "Asset content type. If not specified, no content but the asset name and type will be returned.\n" + }, + "feedId": { + "type": "string", + "description": "This is the client-assigned asset feed identifier and it needs to be unique under a specific parent.\n" + }, + "feedOutputConfig": { + "$ref": "#/types/gcp:cloudasset/FolderFeedFeedOutputConfig:FolderFeedFeedOutputConfig", + "description": "Output configuration for asset feed destination. Structure is documented below.\n" + }, + "folder": { + "type": "string", + "description": "The folder this feed should be created in.\n" + }, + "folderId": { + "type": "string", + "description": "The ID of the folder where this feed has been created. Both [FOLDER_NUMBER] and folders/[FOLDER_NUMBER] are accepted.\n" + }, + "name": { + "type": "string", + "description": "The format will be folders/{folder_number}/feeds/{client-assigned_feed_identifier}.\n" + } + }, + "required": [ + "billingProject", + "feedId", + "feedOutputConfig", + "folder", + "folderId", + "name" + ], + "inputProperties": { + "assetNames": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of the full names of the assets to receive updates. You must specify either or both of\nassetNames and assetTypes. Only asset updates matching specified assetNames and assetTypes are\nexported to the feed. For example: //compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1.\nSee https://cloud.google.com/apis/design/resourceNames#fullResourceName for more info.\n" + }, + "assetTypes": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of types of the assets to receive updates. You must specify either or both of assetNames\nand assetTypes. Only asset updates matching specified assetNames and assetTypes are exported to\nthe feed. For example: \"compute.googleapis.com/Disk\"\nSee https://cloud.google.com/asset-inventory/docs/supported-asset-types for a list of all\nsupported asset types.\n" + }, + "billingProject": { + "type": "string", + "description": "The project whose identity will be used when sending messages to the\ndestination pubsub topic. It also specifies the project for API\nenablement check, quota, and billing.\n" + }, + "contentType": { + "type": "string", + "description": "Asset content type. If not specified, no content but the asset name and type will be returned.\n" + }, + "feedId": { + "type": "string", + "description": "This is the client-assigned asset feed identifier and it needs to be unique under a specific parent.\n" + }, + "feedOutputConfig": { + "$ref": "#/types/gcp:cloudasset/FolderFeedFeedOutputConfig:FolderFeedFeedOutputConfig", + "description": "Output configuration for asset feed destination. Structure is documented below.\n" + }, + "folder": { + "type": "string", + "description": "The folder this feed should be created in.\n" + } + }, + "requiredInputs": [ + "billingProject", + "feedId", + "feedOutputConfig", + "folder" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering FolderFeed resources.\n", + "properties": { + "assetNames": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of the full names of the assets to receive updates. You must specify either or both of\nassetNames and assetTypes. Only asset updates matching specified assetNames and assetTypes are\nexported to the feed. For example: //compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1.\nSee https://cloud.google.com/apis/design/resourceNames#fullResourceName for more info.\n" + }, + "assetTypes": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of types of the assets to receive updates. You must specify either or both of assetNames\nand assetTypes. Only asset updates matching specified assetNames and assetTypes are exported to\nthe feed. For example: \"compute.googleapis.com/Disk\"\nSee https://cloud.google.com/asset-inventory/docs/supported-asset-types for a list of all\nsupported asset types.\n" + }, + "billingProject": { + "type": "string", + "description": "The project whose identity will be used when sending messages to the\ndestination pubsub topic. It also specifies the project for API\nenablement check, quota, and billing.\n" + }, + "contentType": { + "type": "string", + "description": "Asset content type. If not specified, no content but the asset name and type will be returned.\n" + }, + "feedId": { + "type": "string", + "description": "This is the client-assigned asset feed identifier and it needs to be unique under a specific parent.\n" + }, + "feedOutputConfig": { + "$ref": "#/types/gcp:cloudasset/FolderFeedFeedOutputConfig:FolderFeedFeedOutputConfig", + "description": "Output configuration for asset feed destination. Structure is documented below.\n" + }, + "folder": { + "type": "string", + "description": "The folder this feed should be created in.\n" + }, + "folderId": { + "type": "string", + "description": "The ID of the folder where this feed has been created. Both [FOLDER_NUMBER] and folders/[FOLDER_NUMBER] are accepted.\n" + }, + "name": { + "type": "string", + "description": "The format will be folders/{folder_number}/feeds/{client-assigned_feed_identifier}.\n" + } + }, + "type": "object" + } + }, + "gcp:cloudasset/organizationFeed:OrganizationFeed": { + "description": "Describes a Cloud Asset Inventory feed used to to listen to asset updates.\n\n\nTo get more information about OrganizationFeed, see:\n\n* [API documentation](https://cloud.google.com/asset-inventory/docs/reference/rest/)\n* How-to Guides\n * [Official Documentation](https://cloud.google.com/asset-inventory/docs)\n\n{{% examples %}}\n## Example Usage\n{{% /examples %}}", + "properties": { + "assetNames": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of the full names of the assets to receive updates. You must specify either or both of\nassetNames and assetTypes. Only asset updates matching specified assetNames and assetTypes are\nexported to the feed. For example: //compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1.\nSee https://cloud.google.com/apis/design/resourceNames#fullResourceName for more info.\n" + }, + "assetTypes": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of types of the assets to receive updates. You must specify either or both of assetNames\nand assetTypes. Only asset updates matching specified assetNames and assetTypes are exported to\nthe feed. For example: \"compute.googleapis.com/Disk\"\nSee https://cloud.google.com/asset-inventory/docs/supported-asset-types for a list of all\nsupported asset types.\n" + }, + "billingProject": { + "type": "string", + "description": "The project whose identity will be used when sending messages to the\ndestination pubsub topic. It also specifies the project for API\nenablement check, quota, and billing.\n" + }, + "contentType": { + "type": "string", + "description": "Asset content type. If not specified, no content but the asset name and type will be returned.\n" + }, + "feedId": { + "type": "string", + "description": "This is the client-assigned asset feed identifier and it needs to be unique under a specific parent.\n" + }, + "feedOutputConfig": { + "$ref": "#/types/gcp:cloudasset/OrganizationFeedFeedOutputConfig:OrganizationFeedFeedOutputConfig", + "description": "Output configuration for asset feed destination. Structure is documented below.\n" + }, + "name": { + "type": "string", + "description": "The format will be organizations/{organization_number}/feeds/{client-assigned_feed_identifier}.\n" + }, + "orgId": { + "type": "string", + "description": "The organization this feed should be created in.\n" + } + }, + "required": [ + "billingProject", + "feedId", + "feedOutputConfig", + "name", + "orgId" + ], + "inputProperties": { + "assetNames": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of the full names of the assets to receive updates. You must specify either or both of\nassetNames and assetTypes. Only asset updates matching specified assetNames and assetTypes are\nexported to the feed. For example: //compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1.\nSee https://cloud.google.com/apis/design/resourceNames#fullResourceName for more info.\n" + }, + "assetTypes": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of types of the assets to receive updates. You must specify either or both of assetNames\nand assetTypes. Only asset updates matching specified assetNames and assetTypes are exported to\nthe feed. For example: \"compute.googleapis.com/Disk\"\nSee https://cloud.google.com/asset-inventory/docs/supported-asset-types for a list of all\nsupported asset types.\n" + }, + "billingProject": { + "type": "string", + "description": "The project whose identity will be used when sending messages to the\ndestination pubsub topic. It also specifies the project for API\nenablement check, quota, and billing.\n" + }, + "contentType": { + "type": "string", + "description": "Asset content type. If not specified, no content but the asset name and type will be returned.\n" + }, + "feedId": { + "type": "string", + "description": "This is the client-assigned asset feed identifier and it needs to be unique under a specific parent.\n" + }, + "feedOutputConfig": { + "$ref": "#/types/gcp:cloudasset/OrganizationFeedFeedOutputConfig:OrganizationFeedFeedOutputConfig", + "description": "Output configuration for asset feed destination. Structure is documented below.\n" + }, + "orgId": { + "type": "string", + "description": "The organization this feed should be created in.\n" + } + }, + "requiredInputs": [ + "billingProject", + "feedId", + "feedOutputConfig", + "orgId" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering OrganizationFeed resources.\n", + "properties": { + "assetNames": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of the full names of the assets to receive updates. You must specify either or both of\nassetNames and assetTypes. Only asset updates matching specified assetNames and assetTypes are\nexported to the feed. For example: //compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1.\nSee https://cloud.google.com/apis/design/resourceNames#fullResourceName for more info.\n" + }, + "assetTypes": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of types of the assets to receive updates. You must specify either or both of assetNames\nand assetTypes. Only asset updates matching specified assetNames and assetTypes are exported to\nthe feed. For example: \"compute.googleapis.com/Disk\"\nSee https://cloud.google.com/asset-inventory/docs/supported-asset-types for a list of all\nsupported asset types.\n" + }, + "billingProject": { + "type": "string", + "description": "The project whose identity will be used when sending messages to the\ndestination pubsub topic. It also specifies the project for API\nenablement check, quota, and billing.\n" + }, + "contentType": { + "type": "string", + "description": "Asset content type. If not specified, no content but the asset name and type will be returned.\n" + }, + "feedId": { + "type": "string", + "description": "This is the client-assigned asset feed identifier and it needs to be unique under a specific parent.\n" + }, + "feedOutputConfig": { + "$ref": "#/types/gcp:cloudasset/OrganizationFeedFeedOutputConfig:OrganizationFeedFeedOutputConfig", + "description": "Output configuration for asset feed destination. Structure is documented below.\n" + }, + "name": { + "type": "string", + "description": "The format will be organizations/{organization_number}/feeds/{client-assigned_feed_identifier}.\n" + }, + "orgId": { + "type": "string", + "description": "The organization this feed should be created in.\n" + } + }, + "type": "object" + } + }, + "gcp:cloudasset/projectFeed:ProjectFeed": { + "description": "Describes a Cloud Asset Inventory feed used to to listen to asset updates.\n\n\nTo get more information about ProjectFeed, see:\n\n* [API documentation](https://cloud.google.com/asset-inventory/docs/reference/rest/)\n* How-to Guides\n * [Official Documentation](https://cloud.google.com/asset-inventory/docs)\n\n{{% examples %}}\n## Example Usage\n{{% /examples %}}", + "properties": { + "assetNames": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of the full names of the assets to receive updates. You must specify either or both of\nassetNames and assetTypes. Only asset updates matching specified assetNames and assetTypes are\nexported to the feed. For example: //compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1.\nSee https://cloud.google.com/apis/design/resourceNames#fullResourceName for more info.\n" + }, + "assetTypes": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of types of the assets to receive updates. You must specify either or both of assetNames\nand assetTypes. Only asset updates matching specified assetNames and assetTypes are exported to\nthe feed. For example: \"compute.googleapis.com/Disk\"\nSee https://cloud.google.com/asset-inventory/docs/supported-asset-types for a list of all\nsupported asset types.\n" + }, + "billingProject": { + "type": "string", + "description": "The project whose identity will be used when sending messages to the\ndestination pubsub topic. It also specifies the project for API\nenablement check, quota, and billing. If not specified, the resource's\nproject will be used.\n" + }, + "contentType": { + "type": "string", + "description": "Asset content type. If not specified, no content but the asset name and type will be returned.\n" + }, + "feedId": { + "type": "string", + "description": "This is the client-assigned asset feed identifier and it needs to be unique under a specific parent.\n" + }, + "feedOutputConfig": { + "$ref": "#/types/gcp:cloudasset/ProjectFeedFeedOutputConfig:ProjectFeedFeedOutputConfig", + "description": "Output configuration for asset feed destination. Structure is documented below.\n" + }, + "name": { + "type": "string", + "description": "The format will be projects/{projectNumber}/feeds/{client-assigned_feed_identifier}.\n" + }, + "project": { + "type": "string", + "description": "The ID of the project in which the resource belongs.\nIf it is not provided, the provider project is used.\n" + } + }, + "required": [ + "feedId", + "feedOutputConfig", + "name", + "project" + ], + "inputProperties": { + "assetNames": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of the full names of the assets to receive updates. You must specify either or both of\nassetNames and assetTypes. Only asset updates matching specified assetNames and assetTypes are\nexported to the feed. For example: //compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1.\nSee https://cloud.google.com/apis/design/resourceNames#fullResourceName for more info.\n" + }, + "assetTypes": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of types of the assets to receive updates. You must specify either or both of assetNames\nand assetTypes. Only asset updates matching specified assetNames and assetTypes are exported to\nthe feed. For example: \"compute.googleapis.com/Disk\"\nSee https://cloud.google.com/asset-inventory/docs/supported-asset-types for a list of all\nsupported asset types.\n" + }, + "billingProject": { + "type": "string", + "description": "The project whose identity will be used when sending messages to the\ndestination pubsub topic. It also specifies the project for API\nenablement check, quota, and billing. If not specified, the resource's\nproject will be used.\n" + }, + "contentType": { + "type": "string", + "description": "Asset content type. If not specified, no content but the asset name and type will be returned.\n" + }, + "feedId": { + "type": "string", + "description": "This is the client-assigned asset feed identifier and it needs to be unique under a specific parent.\n" + }, + "feedOutputConfig": { + "$ref": "#/types/gcp:cloudasset/ProjectFeedFeedOutputConfig:ProjectFeedFeedOutputConfig", + "description": "Output configuration for asset feed destination. Structure is documented below.\n" + }, + "project": { + "type": "string", + "description": "The ID of the project in which the resource belongs.\nIf it is not provided, the provider project is used.\n" + } + }, + "requiredInputs": [ + "feedId", + "feedOutputConfig" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering ProjectFeed resources.\n", + "properties": { + "assetNames": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of the full names of the assets to receive updates. You must specify either or both of\nassetNames and assetTypes. Only asset updates matching specified assetNames and assetTypes are\nexported to the feed. For example: //compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1.\nSee https://cloud.google.com/apis/design/resourceNames#fullResourceName for more info.\n" + }, + "assetTypes": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of types of the assets to receive updates. You must specify either or both of assetNames\nand assetTypes. Only asset updates matching specified assetNames and assetTypes are exported to\nthe feed. For example: \"compute.googleapis.com/Disk\"\nSee https://cloud.google.com/asset-inventory/docs/supported-asset-types for a list of all\nsupported asset types.\n" + }, + "billingProject": { + "type": "string", + "description": "The project whose identity will be used when sending messages to the\ndestination pubsub topic. It also specifies the project for API\nenablement check, quota, and billing. If not specified, the resource's\nproject will be used.\n" + }, + "contentType": { + "type": "string", + "description": "Asset content type. If not specified, no content but the asset name and type will be returned.\n" + }, + "feedId": { + "type": "string", + "description": "This is the client-assigned asset feed identifier and it needs to be unique under a specific parent.\n" + }, + "feedOutputConfig": { + "$ref": "#/types/gcp:cloudasset/ProjectFeedFeedOutputConfig:ProjectFeedFeedOutputConfig", + "description": "Output configuration for asset feed destination. Structure is documented below.\n" + }, + "name": { + "type": "string", + "description": "The format will be projects/{projectNumber}/feeds/{client-assigned_feed_identifier}.\n" + }, + "project": { + "type": "string", + "description": "The ID of the project in which the resource belongs.\nIf it is not provided, the provider project is used.\n" + } + }, + "type": "object" + } + }, "gcp:cloudbuild/trigger:Trigger": { "description": "Configuration for an automated build in response to source repository changes.\n\n\nTo get more information about Trigger, see:\n\n* [API documentation](https://cloud.google.com/cloud-build/docs/api/reference/rest/)\n* How-to Guides\n * [Automating builds using build triggers](https://cloud.google.com/cloud-build/docs/running-builds/automate-builds)\n\n{{% examples %}}\n## Example Usage\n{{% /examples %}}", "properties": { @@ -43049,7 +45624,7 @@ }, "runtime": { "type": "string", - "description": "The runtime in which the function is going to run.\nEg. `\"nodejs8\"`, `\"nodejs10\"`, `\"python37\"`, `\"go111\"`.\n" + "description": "The runtime in which the function is going to run.\nEg. `\"nodejs8\"`, `\"nodejs10\"`, `\"python37\"`, `\"go111\"`, `\"go113\"`.\n" }, "serviceAccountEmail": { "type": "string", @@ -43151,7 +45726,7 @@ }, "runtime": { "type": "string", - "description": "The runtime in which the function is going to run.\nEg. `\"nodejs8\"`, `\"nodejs10\"`, `\"python37\"`, `\"go111\"`.\n" + "description": "The runtime in which the function is going to run.\nEg. `\"nodejs8\"`, `\"nodejs10\"`, `\"python37\"`, `\"go111\"`, `\"go113\"`.\n" }, "serviceAccountEmail": { "type": "string", @@ -43248,7 +45823,7 @@ }, "runtime": { "type": "string", - "description": "The runtime in which the function is going to run.\nEg. `\"nodejs8\"`, `\"nodejs10\"`, `\"python37\"`, `\"go111\"`.\n" + "description": "The runtime in which the function is going to run.\nEg. `\"nodejs8\"`, `\"nodejs10\"`, `\"python37\"`, `\"go111\"`, `\"go113\"`.\n" }, "serviceAccountEmail": { "type": "string", @@ -45424,7 +47999,7 @@ }, "healthChecks": { "type": "string", - "description": "The set of URLs to the HttpHealthCheck or HttpsHealthCheck resource\nfor health checking this BackendService. Currently at most one health\ncheck can be specified, and a health check is required.\nFor internal load balancing, a URL to a HealthCheck resource must be specified instead.\n" + "description": "The set of URLs to the HttpHealthCheck or HttpsHealthCheck resource\nfor health checking this BackendService. Currently at most one health\ncheck can be specified.\nA health check must be specified unless the backend service uses an internet NEG as a backend.\nFor internal load balancing, a URL to a HealthCheck resource must be specified instead.\n" }, "iap": { "$ref": "#/types/gcp:compute/BackendServiceIap:BackendServiceIap", @@ -45483,7 +48058,6 @@ "cdnPolicy", "creationTimestamp", "fingerprint", - "healthChecks", "logConfig", "name", "portName", @@ -45538,7 +48112,7 @@ }, "healthChecks": { "type": "string", - "description": "The set of URLs to the HttpHealthCheck or HttpsHealthCheck resource\nfor health checking this BackendService. Currently at most one health\ncheck can be specified, and a health check is required.\nFor internal load balancing, a URL to a HealthCheck resource must be specified instead.\n" + "description": "The set of URLs to the HttpHealthCheck or HttpsHealthCheck resource\nfor health checking this BackendService. Currently at most one health\ncheck can be specified.\nA health check must be specified unless the backend service uses an internet NEG as a backend.\nFor internal load balancing, a URL to a HealthCheck resource must be specified instead.\n" }, "iap": { "$ref": "#/types/gcp:compute/BackendServiceIap:BackendServiceIap", @@ -45589,9 +48163,6 @@ "description": "How many seconds to wait for the backend before considering it a\nfailed request. Default is 30 seconds. Valid range is [1, 86400].\n" } }, - "requiredInputs": [ - "healthChecks" - ], "stateInputs": { "description": "Input properties used for looking up and filtering BackendService resources.\n", "properties": { @@ -45647,7 +48218,7 @@ }, "healthChecks": { "type": "string", - "description": "The set of URLs to the HttpHealthCheck or HttpsHealthCheck resource\nfor health checking this BackendService. Currently at most one health\ncheck can be specified, and a health check is required.\nFor internal load balancing, a URL to a HealthCheck resource must be specified instead.\n" + "description": "The set of URLs to the HttpHealthCheck or HttpsHealthCheck resource\nfor health checking this BackendService. Currently at most one health\ncheck can be specified.\nA health check must be specified unless the backend service uses an internet NEG as a backend.\nFor internal load balancing, a URL to a HealthCheck resource must be specified instead.\n" }, "iap": { "$ref": "#/types/gcp:compute/BackendServiceIap:BackendServiceIap", @@ -57781,6 +60352,10 @@ "type": "integer", "description": "The default maximum number of pods\nper node in this cluster. This doesn't work on \"routes-based\" clusters, clusters\nthat don't have IP Aliasing enabled. See the [official documentation](https://cloud.google.com/kubernetes-engine/docs/how-to/flexible-pod-cidr)\nfor more information.\n" }, + "defaultSnatStatus": { + "$ref": "#/types/gcp:container/ClusterDefaultSnatStatus:ClusterDefaultSnatStatus", + "description": ")\n[GKE SNAT](https://cloud.google.com/kubernetes-engine/docs/how-to/ip-masquerade-agent#how_ipmasq_works) DefaultSnatStatus contains the desired state of whether default sNAT should be disabled on the cluster, [API doc](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1beta1/projects.locations.clusters#networkconfig).\n" + }, "description": { "type": "string", "description": "Description of the cluster.\n" @@ -57965,6 +60540,7 @@ "clusterTelemetry", "databaseEncryption", "defaultMaxPodsPerNode", + "defaultSnatStatus", "endpoint", "instanceGroupUrls", "labelFingerprint", @@ -58017,6 +60593,10 @@ "type": "integer", "description": "The default maximum number of pods\nper node in this cluster. This doesn't work on \"routes-based\" clusters, clusters\nthat don't have IP Aliasing enabled. See the [official documentation](https://cloud.google.com/kubernetes-engine/docs/how-to/flexible-pod-cidr)\nfor more information.\n" }, + "defaultSnatStatus": { + "$ref": "#/types/gcp:container/ClusterDefaultSnatStatus:ClusterDefaultSnatStatus", + "description": ")\n[GKE SNAT](https://cloud.google.com/kubernetes-engine/docs/how-to/ip-masquerade-agent#how_ipmasq_works) DefaultSnatStatus contains the desired state of whether default sNAT should be disabled on the cluster, [API doc](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1beta1/projects.locations.clusters#networkconfig).\n" + }, "description": { "type": "string", "description": "Description of the cluster.\n" @@ -58194,6 +60774,10 @@ "type": "integer", "description": "The default maximum number of pods\nper node in this cluster. This doesn't work on \"routes-based\" clusters, clusters\nthat don't have IP Aliasing enabled. See the [official documentation](https://cloud.google.com/kubernetes-engine/docs/how-to/flexible-pod-cidr)\nfor more information.\n" }, + "defaultSnatStatus": { + "$ref": "#/types/gcp:container/ClusterDefaultSnatStatus:ClusterDefaultSnatStatus", + "description": ")\n[GKE SNAT](https://cloud.google.com/kubernetes-engine/docs/how-to/ip-masquerade-agent#how_ipmasq_works) DefaultSnatStatus contains the desired state of whether default sNAT should be disabled on the cluster, [API doc](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1beta1/projects.locations.clusters#networkconfig).\n" + }, "description": { "type": "string", "description": "Description of the cluster.\n" @@ -71356,6 +73940,187 @@ "type": "object" } }, + "gcp:monitoring/metricDescriptor:MetricDescriptor": { + "description": "Defines a metric type and its schema. Once a metric descriptor is created, deleting or altering it stops data collection and makes the metric type's existing data unusable.\n\n\nTo get more information about MetricDescriptor, see:\n\n* [API documentation](https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.metricDescriptors)\n* How-to Guides\n * [Official Documentation](https://cloud.google.com/monitoring/custom-metrics/)\n\n{{% examples %}}\n## Example Usage\n{{% /examples %}}", + "properties": { + "description": { + "type": "string", + "description": "A human-readable description for the label.\n" + }, + "displayName": { + "type": "string", + "description": "A concise name for the metric, which can be displayed in user interfaces. Use sentence case without an ending period, for example \"Request count\".\n" + }, + "labels": { + "type": "array", + "items": { + "$ref": "#/types/gcp:monitoring/MetricDescriptorLabel:MetricDescriptorLabel" + }, + "description": "The set of labels that can be used to describe a specific instance of this metric type. In order to delete a label, the entire resource must be deleted, then created with the desired labels. Structure is documented below.\n" + }, + "launchStage": { + "type": "string", + "description": "The launch stage of the metric definition.\n" + }, + "metadata": { + "$ref": "#/types/gcp:monitoring/MetricDescriptorMetadata:MetricDescriptorMetadata", + "description": "Metadata which can be used to guide usage of the metric. Structure is documented below.\n" + }, + "metricKind": { + "type": "string", + "description": "Whether the metric records instantaneous values, changes to a value, etc. Some combinations of metricKind and valueType might not be supported.\n" + }, + "monitoredResourceTypes": { + "type": "array", + "items": { + "type": "string" + }, + "description": "If present, then a time series, which is identified partially by a metric type and a MonitoredResourceDescriptor, that\nis associated with this metric type can only be associated with one of the monitored resource types listed here. This\nfield allows time series to be associated with the intersection of this metric type and the monitored resource types in\nthis list.\n" + }, + "name": { + "type": "string", + "description": "The resource name of the metric descriptor.\n" + }, + "project": { + "type": "string", + "description": "The ID of the project in which the resource belongs.\nIf it is not provided, the provider project is used.\n" + }, + "type": { + "type": "string", + "description": "The metric type, including its DNS name prefix. The type is not URL-encoded. All service defined metrics must be prefixed with the service name, in the format of {service name}/{relative metric name}, such as cloudsql.googleapis.com/database/cpu/utilization. The relative metric name must have only upper and lower-case letters, digits, '/' and underscores '_' are allowed. Additionally, the maximum number of characters allowed for the relative_metric_name is 100. All user-defined metric types have the DNS name custom.googleapis.com, external.googleapis.com, or logging.googleapis.com/user/.\n" + }, + "unit": { + "type": "string", + "description": "The units in which the metric value is reported. It is only applicable if the\nvalueType is INT64, DOUBLE, or DISTRIBUTION. The unit defines the representation of\nthe stored metric values.\nDifferent systems may scale the values to be more easily displayed (so a value of\n0.02KBy might be displayed as 20By, and a value of 3523KBy might be displayed as\n3.5MBy). However, if the unit is KBy, then the value of the metric is always in\nthousands of bytes, no matter how it may be displayed.\nIf you want a custom metric to record the exact number of CPU-seconds used by a job,\nyou can create an INT64 CUMULATIVE metric whose unit is s{CPU} (or equivalently\n1s{CPU} or just s). If the job uses 12,005 CPU-seconds, then the value is written as\n12005.\nAlternatively, if you want a custom metric to record data in a more granular way, you\ncan create a DOUBLE CUMULATIVE metric whose unit is ks{CPU}, and then write the value\n12.005 (which is 12005/1000), or use Kis{CPU} and write 11.723 (which is 12005/1024).\nThe supported units are a subset of The Unified Code for Units of Measure standard.\nMore info can be found in the API documentation\n(https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.metricDescriptors).\n" + }, + "valueType": { + "type": "string", + "description": "The type of data that can be assigned to the label.\n" + } + }, + "required": [ + "description", + "displayName", + "metricKind", + "monitoredResourceTypes", + "name", + "project", + "type", + "valueType" + ], + "inputProperties": { + "description": { + "type": "string", + "description": "A human-readable description for the label.\n" + }, + "displayName": { + "type": "string", + "description": "A concise name for the metric, which can be displayed in user interfaces. Use sentence case without an ending period, for example \"Request count\".\n" + }, + "labels": { + "type": "array", + "items": { + "$ref": "#/types/gcp:monitoring/MetricDescriptorLabel:MetricDescriptorLabel" + }, + "description": "The set of labels that can be used to describe a specific instance of this metric type. In order to delete a label, the entire resource must be deleted, then created with the desired labels. Structure is documented below.\n" + }, + "launchStage": { + "type": "string", + "description": "The launch stage of the metric definition.\n" + }, + "metadata": { + "$ref": "#/types/gcp:monitoring/MetricDescriptorMetadata:MetricDescriptorMetadata", + "description": "Metadata which can be used to guide usage of the metric. Structure is documented below.\n" + }, + "metricKind": { + "type": "string", + "description": "Whether the metric records instantaneous values, changes to a value, etc. Some combinations of metricKind and valueType might not be supported.\n" + }, + "project": { + "type": "string", + "description": "The ID of the project in which the resource belongs.\nIf it is not provided, the provider project is used.\n" + }, + "type": { + "type": "string", + "description": "The metric type, including its DNS name prefix. The type is not URL-encoded. All service defined metrics must be prefixed with the service name, in the format of {service name}/{relative metric name}, such as cloudsql.googleapis.com/database/cpu/utilization. The relative metric name must have only upper and lower-case letters, digits, '/' and underscores '_' are allowed. Additionally, the maximum number of characters allowed for the relative_metric_name is 100. All user-defined metric types have the DNS name custom.googleapis.com, external.googleapis.com, or logging.googleapis.com/user/.\n" + }, + "unit": { + "type": "string", + "description": "The units in which the metric value is reported. It is only applicable if the\nvalueType is INT64, DOUBLE, or DISTRIBUTION. The unit defines the representation of\nthe stored metric values.\nDifferent systems may scale the values to be more easily displayed (so a value of\n0.02KBy might be displayed as 20By, and a value of 3523KBy might be displayed as\n3.5MBy). However, if the unit is KBy, then the value of the metric is always in\nthousands of bytes, no matter how it may be displayed.\nIf you want a custom metric to record the exact number of CPU-seconds used by a job,\nyou can create an INT64 CUMULATIVE metric whose unit is s{CPU} (or equivalently\n1s{CPU} or just s). If the job uses 12,005 CPU-seconds, then the value is written as\n12005.\nAlternatively, if you want a custom metric to record data in a more granular way, you\ncan create a DOUBLE CUMULATIVE metric whose unit is ks{CPU}, and then write the value\n12.005 (which is 12005/1000), or use Kis{CPU} and write 11.723 (which is 12005/1024).\nThe supported units are a subset of The Unified Code for Units of Measure standard.\nMore info can be found in the API documentation\n(https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.metricDescriptors).\n" + }, + "valueType": { + "type": "string", + "description": "The type of data that can be assigned to the label.\n" + } + }, + "requiredInputs": [ + "description", + "displayName", + "metricKind", + "type", + "valueType" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering MetricDescriptor resources.\n", + "properties": { + "description": { + "type": "string", + "description": "A human-readable description for the label.\n" + }, + "displayName": { + "type": "string", + "description": "A concise name for the metric, which can be displayed in user interfaces. Use sentence case without an ending period, for example \"Request count\".\n" + }, + "labels": { + "type": "array", + "items": { + "$ref": "#/types/gcp:monitoring/MetricDescriptorLabel:MetricDescriptorLabel" + }, + "description": "The set of labels that can be used to describe a specific instance of this metric type. In order to delete a label, the entire resource must be deleted, then created with the desired labels. Structure is documented below.\n" + }, + "launchStage": { + "type": "string", + "description": "The launch stage of the metric definition.\n" + }, + "metadata": { + "$ref": "#/types/gcp:monitoring/MetricDescriptorMetadata:MetricDescriptorMetadata", + "description": "Metadata which can be used to guide usage of the metric. Structure is documented below.\n" + }, + "metricKind": { + "type": "string", + "description": "Whether the metric records instantaneous values, changes to a value, etc. Some combinations of metricKind and valueType might not be supported.\n" + }, + "monitoredResourceTypes": { + "type": "array", + "items": { + "type": "string" + }, + "description": "If present, then a time series, which is identified partially by a metric type and a MonitoredResourceDescriptor, that\nis associated with this metric type can only be associated with one of the monitored resource types listed here. This\nfield allows time series to be associated with the intersection of this metric type and the monitored resource types in\nthis list.\n" + }, + "name": { + "type": "string", + "description": "The resource name of the metric descriptor.\n" + }, + "project": { + "type": "string", + "description": "The ID of the project in which the resource belongs.\nIf it is not provided, the provider project is used.\n" + }, + "type": { + "type": "string", + "description": "The metric type, including its DNS name prefix. The type is not URL-encoded. All service defined metrics must be prefixed with the service name, in the format of {service name}/{relative metric name}, such as cloudsql.googleapis.com/database/cpu/utilization. The relative metric name must have only upper and lower-case letters, digits, '/' and underscores '_' are allowed. Additionally, the maximum number of characters allowed for the relative_metric_name is 100. All user-defined metric types have the DNS name custom.googleapis.com, external.googleapis.com, or logging.googleapis.com/user/.\n" + }, + "unit": { + "type": "string", + "description": "The units in which the metric value is reported. It is only applicable if the\nvalueType is INT64, DOUBLE, or DISTRIBUTION. The unit defines the representation of\nthe stored metric values.\nDifferent systems may scale the values to be more easily displayed (so a value of\n0.02KBy might be displayed as 20By, and a value of 3523KBy might be displayed as\n3.5MBy). However, if the unit is KBy, then the value of the metric is always in\nthousands of bytes, no matter how it may be displayed.\nIf you want a custom metric to record the exact number of CPU-seconds used by a job,\nyou can create an INT64 CUMULATIVE metric whose unit is s{CPU} (or equivalently\n1s{CPU} or just s). If the job uses 12,005 CPU-seconds, then the value is written as\n12005.\nAlternatively, if you want a custom metric to record data in a more granular way, you\ncan create a DOUBLE CUMULATIVE metric whose unit is ks{CPU}, and then write the value\n12.005 (which is 12005/1000), or use Kis{CPU} and write 11.723 (which is 12005/1024).\nThe supported units are a subset of The Unified Code for Units of Measure standard.\nMore info can be found in the API documentation\n(https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.metricDescriptors).\n" + }, + "valueType": { + "type": "string", + "description": "The type of data that can be assigned to the label.\n" + } + }, + "type": "object" + } + }, "gcp:monitoring/notificationChannel:NotificationChannel": { "description": "A NotificationChannel is a medium through which an alert is delivered\nwhen a policy violation is detected. Examples of channels include email, SMS,\nand third-party messaging applications. Fields containing sensitive information\nlike authentication tokens or contact info are only partially populated on retrieval.\n\nNotification Channels are designed to be flexible and are made up of a supported `type`\nand labels to configure that channel. Each `type` has specific labels that need to be\npresent for that channel to be correctly configured. The labels that are required to be\npresent for one channel `type` are often different than those required for another.\nDue to these loose constraints it's often best to set up a channel through the UI\nand import it to the provider when setting up a brand new channel type to determine which\nlabels are required.\n\nA list of supported channels per project the `list` endpoint can be\naccessed programmatically or through the api explorer at https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.notificationChannelDescriptors/list .\nThis provides the channel type and all of the required labels that must be passed.\n\n\nTo get more information about NotificationChannel, see:\n\n* [API documentation](https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.notificationChannels)\n* How-to Guides\n * [Notification Options](https://cloud.google.com/monitoring/support/notification-options)\n * [Monitoring API Documentation](https://cloud.google.com/monitoring/api/v3/)\n\n{{% examples %}}\n## Example Usage\n{{% /examples %}}", "properties": { @@ -72547,6 +75312,10 @@ "type": "string", "description": "The folder’s display name.\nA folder’s display name must be unique amongst its siblings, e.g. no two folders with the same parent can share the same display name. The display name must start and end with a letter or digit, may contain letters, digits, spaces, hyphens and underscores and can be no longer than 30 characters.\n" }, + "folderId": { + "type": "string", + "description": "The folder id from the name \"folders/{folder_id}\"\n" + }, "lifecycleState": { "type": "string", "description": "The lifecycle state of the folder such as `ACTIVE` or `DELETE_REQUESTED`.\n" @@ -72563,6 +75332,7 @@ "required": [ "createTime", "displayName", + "folderId", "lifecycleState", "name", "parent" @@ -72592,6 +75362,10 @@ "type": "string", "description": "The folder’s display name.\nA folder’s display name must be unique amongst its siblings, e.g. no two folders with the same parent can share the same display name. The display name must start and end with a letter or digit, may contain letters, digits, spaces, hyphens and underscores and can be no longer than 30 characters.\n" }, + "folderId": { + "type": "string", + "description": "The folder id from the name \"folders/{folder_id}\"\n" + }, "lifecycleState": { "type": "string", "description": "The lifecycle state of the folder such as `ACTIVE` or `DELETE_REQUESTED`.\n" @@ -73273,6 +76047,178 @@ "type": "object" } }, + "gcp:osconfig/guestPolicies:GuestPolicies": { + "properties": { + "assignment": { + "$ref": "#/types/gcp:osconfig/GuestPoliciesAssignment:GuestPoliciesAssignment", + "description": "Specifies the VM instances that are assigned to this policy. This allows you to target sets\nor groups of VM instances by different parameters such as labels, names, OS, or zones.\nIf left empty, all VM instances underneath this policy are targeted.\nAt the same level in the resource hierarchy (that is within a project), the service prevents\nthe creation of multiple policies that conflict with each other.\nFor more information, see how the service\n[handles assignment conflicts](https://cloud.google.com/compute/docs/os-config-management/create-guest-policy#handle-conflicts). Structure is documented below.\n" + }, + "createTime": { + "type": "string", + "description": "Time this guest policy was created. A timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds. Example:\n\"2014-10-02T15:01:23.045123456Z\".\n" + }, + "description": { + "type": "string", + "description": "Description of the guest policy. Length of the description is limited to 1024 characters.\n" + }, + "etag": { + "type": "string", + "description": "The etag for this guest policy. If this is provided on update, it must match the server's etag.\n" + }, + "guestPolicyId": { + "type": "string", + "description": "The logical name of the guest policy in the project with the following restrictions:\n* Must contain only lowercase letters, numbers, and hyphens.\n* Must start with a letter.\n* Must be between 1-63 characters.\n* Must end with a number or a letter.\n* Must be unique within the project.\n" + }, + "name": { + "type": "string", + "description": "Unique identifier for the recipe. Only one recipe with a given name is installed on an instance.\nNames are also used to identify resources which helps to determine whether guest policies have conflicts.\nThis means that requests to create multiple recipes with the same name and version are rejected since they\ncould potentially have conflicting assignments.\n" + }, + "packageRepositories": { + "type": "array", + "items": { + "$ref": "#/types/gcp:osconfig/GuestPoliciesPackageRepository:GuestPoliciesPackageRepository" + }, + "description": "A list of package repositories to configure on the VM instance.\nThis is done before any other configs are applied so they can use these repos.\nPackage repositories are only configured if the corresponding package manager(s) are available. Structure is documented below.\n" + }, + "packages": { + "type": "array", + "items": { + "$ref": "#/types/gcp:osconfig/GuestPoliciesPackage:GuestPoliciesPackage" + }, + "description": "The software packages to be managed by this policy. Structure is documented below.\n" + }, + "project": { + "type": "string", + "description": "The ID of the project in which the resource belongs.\nIf it is not provided, the provider project is used.\n" + }, + "recipes": { + "type": "array", + "items": { + "$ref": "#/types/gcp:osconfig/GuestPoliciesRecipe:GuestPoliciesRecipe" + }, + "description": "A list of Recipes to install on the VM instance. Structure is documented below.\n" + }, + "updateTime": { + "type": "string", + "description": "Last time this guest policy was updated. A timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds. Example:\n\"2014-10-02T15:01:23.045123456Z\".\n" + } + }, + "required": [ + "assignment", + "createTime", + "etag", + "guestPolicyId", + "name", + "project", + "updateTime" + ], + "inputProperties": { + "assignment": { + "$ref": "#/types/gcp:osconfig/GuestPoliciesAssignment:GuestPoliciesAssignment", + "description": "Specifies the VM instances that are assigned to this policy. This allows you to target sets\nor groups of VM instances by different parameters such as labels, names, OS, or zones.\nIf left empty, all VM instances underneath this policy are targeted.\nAt the same level in the resource hierarchy (that is within a project), the service prevents\nthe creation of multiple policies that conflict with each other.\nFor more information, see how the service\n[handles assignment conflicts](https://cloud.google.com/compute/docs/os-config-management/create-guest-policy#handle-conflicts). Structure is documented below.\n" + }, + "description": { + "type": "string", + "description": "Description of the guest policy. Length of the description is limited to 1024 characters.\n" + }, + "etag": { + "type": "string", + "description": "The etag for this guest policy. If this is provided on update, it must match the server's etag.\n" + }, + "guestPolicyId": { + "type": "string", + "description": "The logical name of the guest policy in the project with the following restrictions:\n* Must contain only lowercase letters, numbers, and hyphens.\n* Must start with a letter.\n* Must be between 1-63 characters.\n* Must end with a number or a letter.\n* Must be unique within the project.\n" + }, + "packageRepositories": { + "type": "array", + "items": { + "$ref": "#/types/gcp:osconfig/GuestPoliciesPackageRepository:GuestPoliciesPackageRepository" + }, + "description": "A list of package repositories to configure on the VM instance.\nThis is done before any other configs are applied so they can use these repos.\nPackage repositories are only configured if the corresponding package manager(s) are available. Structure is documented below.\n" + }, + "packages": { + "type": "array", + "items": { + "$ref": "#/types/gcp:osconfig/GuestPoliciesPackage:GuestPoliciesPackage" + }, + "description": "The software packages to be managed by this policy. Structure is documented below.\n" + }, + "project": { + "type": "string", + "description": "The ID of the project in which the resource belongs.\nIf it is not provided, the provider project is used.\n" + }, + "recipes": { + "type": "array", + "items": { + "$ref": "#/types/gcp:osconfig/GuestPoliciesRecipe:GuestPoliciesRecipe" + }, + "description": "A list of Recipes to install on the VM instance. Structure is documented below.\n" + } + }, + "requiredInputs": [ + "assignment", + "guestPolicyId" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering GuestPolicies resources.\n", + "properties": { + "assignment": { + "$ref": "#/types/gcp:osconfig/GuestPoliciesAssignment:GuestPoliciesAssignment", + "description": "Specifies the VM instances that are assigned to this policy. This allows you to target sets\nor groups of VM instances by different parameters such as labels, names, OS, or zones.\nIf left empty, all VM instances underneath this policy are targeted.\nAt the same level in the resource hierarchy (that is within a project), the service prevents\nthe creation of multiple policies that conflict with each other.\nFor more information, see how the service\n[handles assignment conflicts](https://cloud.google.com/compute/docs/os-config-management/create-guest-policy#handle-conflicts). Structure is documented below.\n" + }, + "createTime": { + "type": "string", + "description": "Time this guest policy was created. A timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds. Example:\n\"2014-10-02T15:01:23.045123456Z\".\n" + }, + "description": { + "type": "string", + "description": "Description of the guest policy. Length of the description is limited to 1024 characters.\n" + }, + "etag": { + "type": "string", + "description": "The etag for this guest policy. If this is provided on update, it must match the server's etag.\n" + }, + "guestPolicyId": { + "type": "string", + "description": "The logical name of the guest policy in the project with the following restrictions:\n* Must contain only lowercase letters, numbers, and hyphens.\n* Must start with a letter.\n* Must be between 1-63 characters.\n* Must end with a number or a letter.\n* Must be unique within the project.\n" + }, + "name": { + "type": "string", + "description": "Unique identifier for the recipe. Only one recipe with a given name is installed on an instance.\nNames are also used to identify resources which helps to determine whether guest policies have conflicts.\nThis means that requests to create multiple recipes with the same name and version are rejected since they\ncould potentially have conflicting assignments.\n" + }, + "packageRepositories": { + "type": "array", + "items": { + "$ref": "#/types/gcp:osconfig/GuestPoliciesPackageRepository:GuestPoliciesPackageRepository" + }, + "description": "A list of package repositories to configure on the VM instance.\nThis is done before any other configs are applied so they can use these repos.\nPackage repositories are only configured if the corresponding package manager(s) are available. Structure is documented below.\n" + }, + "packages": { + "type": "array", + "items": { + "$ref": "#/types/gcp:osconfig/GuestPoliciesPackage:GuestPoliciesPackage" + }, + "description": "The software packages to be managed by this policy. Structure is documented below.\n" + }, + "project": { + "type": "string", + "description": "The ID of the project in which the resource belongs.\nIf it is not provided, the provider project is used.\n" + }, + "recipes": { + "type": "array", + "items": { + "$ref": "#/types/gcp:osconfig/GuestPoliciesRecipe:GuestPoliciesRecipe" + }, + "description": "A list of Recipes to install on the VM instance. Structure is documented below.\n" + }, + "updateTime": { + "type": "string", + "description": "Last time this guest policy was updated. A timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds. Example:\n\"2014-10-02T15:01:23.045123456Z\".\n" + } + }, + "type": "object" + } + }, "gcp:osconfig/patchDeployment:PatchDeployment": { "description": "Patch deployments are configurations that individual patch jobs use to complete a patch.\nThese configurations include instance filter, package repository settings, and a schedule.\n\n\nTo get more information about PatchDeployment, see:\n\n* [API documentation](https://cloud.google.com/compute/docs/osconfig/rest)\n* How-to Guides\n * [Official Documentation](https://cloud.google.com/compute/docs/os-patch-management)\n\n{{% examples %}}\n## Example Usage\n{{% /examples %}}", "properties": { @@ -83220,6 +86166,12 @@ "defaultMaxPodsPerNode": { "type": "integer" }, + "defaultSnatStatuses": { + "type": "array", + "items": { + "$ref": "#/types/gcp:container/getClusterDefaultSnatStatus:getClusterDefaultSnatStatus" + } + }, "description": { "type": "string" }, @@ -83412,6 +86364,7 @@ "clusterTelemetries", "databaseEncryptions", "defaultMaxPodsPerNode", + "defaultSnatStatuses", "description", "enableBinaryAuthorization", "enableIntranodeVisibility", @@ -84833,6 +87786,9 @@ "folder": { "type": "string" }, + "folderId": { + "type": "string" + }, "id": { "type": "string", "description": "The provider-assigned unique ID for this managed resource.\n" @@ -84862,6 +87818,7 @@ "createTime", "displayName", "folder", + "folderId", "lifecycleState", "name", "organization", @@ -85661,6 +88618,127 @@ ] } }, + "gcp:sql/getDatabaseInstance:getDatabaseInstance": { + "description": "Use this data source to get information about a Cloud SQL instance\n", + "inputs": { + "description": "A collection of arguments for invoking getDatabaseInstance.\n", + "properties": { + "name": { + "type": "string", + "description": "The name of the instance.\n" + } + }, + "type": "object", + "required": [ + "name" + ] + }, + "outputs": { + "description": "A collection of values returned by getDatabaseInstance.\n", + "properties": { + "connectionName": { + "type": "string", + "description": "The connection name of the instance to be used in connection strings.\n" + }, + "databaseVersion": { + "type": "string", + "description": "The MySQL, PostgreSQL or SQL Server (beta) version to use.\n" + }, + "encryptionKeyName": { + "type": "string" + }, + "firstIpAddress": { + "type": "string", + "description": "The first IPv4 address of any type assigned.\n" + }, + "id": { + "type": "string", + "description": "The provider-assigned unique ID for this managed resource.\n" + }, + "ipAddresses": { + "type": "array", + "items": { + "$ref": "#/types/gcp:sql/getDatabaseInstanceIpAddress:getDatabaseInstanceIpAddress" + } + }, + "masterInstanceName": { + "type": "string", + "description": "The name of the instance that will act as\nthe master in the replication setup.\n" + }, + "name": { + "type": "string", + "description": "A name for this whitelist entry.\n" + }, + "privateIpAddress": { + "type": "string", + "description": "The first private (`PRIVATE`) IPv4 address assigned.\n" + }, + "project": { + "type": "string" + }, + "publicIpAddress": { + "type": "string", + "description": "The first public (`PRIMARY`) IPv4 address assigned.\n" + }, + "region": { + "type": "string" + }, + "replicaConfigurations": { + "type": "array", + "items": { + "$ref": "#/types/gcp:sql/getDatabaseInstanceReplicaConfiguration:getDatabaseInstanceReplicaConfiguration" + }, + "description": "The configuration for replication. The\nconfiguration is detailed below.\n" + }, + "rootPassword": { + "type": "string", + "description": "Initial root password. Required for MS SQL Server, ignored by MySQL and PostgreSQL.\n" + }, + "selfLink": { + "type": "string", + "description": "The URI of the created resource.\n" + }, + "serverCaCerts": { + "type": "array", + "items": { + "$ref": "#/types/gcp:sql/getDatabaseInstanceServerCaCert:getDatabaseInstanceServerCaCert" + } + }, + "serviceAccountEmailAddress": { + "type": "string", + "description": "The service account email address assigned to the instance.\n" + }, + "settings": { + "type": "array", + "items": { + "$ref": "#/types/gcp:sql/getDatabaseInstanceSetting:getDatabaseInstanceSetting" + }, + "description": "The settings to use for the database. The\nconfiguration is detailed below.\n" + } + }, + "type": "object", + "required": [ + "connectionName", + "databaseVersion", + "encryptionKeyName", + "firstIpAddress", + "ipAddresses", + "masterInstanceName", + "name", + "privateIpAddress", + "project", + "publicIpAddress", + "region", + "replicaConfigurations", + "rootPassword", + "selfLink", + "serverCaCerts", + "serviceAccountEmailAddress", + "settings", + "id" + ] + } + }, "gcp:storage/getBucketObject:getBucketObject": { "description": "Gets an existing object inside an existing bucket in Google Cloud Storage service (GCS).\nSee [the official documentation](https://cloud.google.com/storage/docs/key-terms#objects)\nand\n[API](https://cloud.google.com/storage/docs/json_api/v1/objects).\n\n", "inputs": { @@ -85994,6 +89072,7 @@ "bigtable": "BigTable", "billing": "Billing", "binaryauthorization": "BinaryAuthorization", + "cloudasset": "CloudAsset", "cloudbuild": "CloudBuild", "cloudfunctions": "CloudFunctions", "cloudidentity": "CloudIdentity", diff --git a/provider/go.mod b/provider/go.mod index fb8da1b75b..36183ad4c9 100644 --- a/provider/go.mod +++ b/provider/go.mod @@ -12,6 +12,6 @@ require ( replace ( github.com/Azure/go-autorest => github.com/Azure/go-autorest v12.4.3+incompatible github.com/hashicorp/vault => github.com/hashicorp/vault v1.2.0 - github.com/terraform-providers/terraform-provider-google-beta => github.com/pulumi/terraform-provider-google-beta v0.0.0-20200720135636-7408ffc50b46 + github.com/terraform-providers/terraform-provider-google-beta => github.com/pulumi/terraform-provider-google-beta v0.0.0-20200727210524-5e1c545f84af google.golang.org/api => google.golang.org/api v0.26.0 ) diff --git a/provider/go.sum b/provider/go.sum index 3d13c954df..da3b2eccbf 100644 --- a/provider/go.sum +++ b/provider/go.sum @@ -574,6 +574,8 @@ github.com/pulumi/terraform-provider-google-beta v0.0.0-20200714072805-05922cba8 github.com/pulumi/terraform-provider-google-beta v0.0.0-20200714072805-05922cba8311/go.mod h1:wPW6rbiohjQ+VJz90Gxc0U6vfyXFXRa4fOVgBM4UZ8M= github.com/pulumi/terraform-provider-google-beta v0.0.0-20200720135636-7408ffc50b46 h1:WB0rs3N/ccwi5U76ctkR9PZFXVs12aq0iJ3bNBkj16A= github.com/pulumi/terraform-provider-google-beta v0.0.0-20200720135636-7408ffc50b46/go.mod h1:QvqbJCLadu2/MEDMjWS5FhGGtVsyiH2x/kugX/pYweg= +github.com/pulumi/terraform-provider-google-beta v0.0.0-20200727210524-5e1c545f84af h1:ftqiisU0X32b2MCJChvLgs0zPcV+3CnwmRJZQEmkySY= +github.com/pulumi/terraform-provider-google-beta v0.0.0-20200727210524-5e1c545f84af/go.mod h1:kf0ennph7pjXoSmoUup2J964i28MPOwPvf+nPh1zouw= github.com/pulumi/tf2pulumi v0.8.1-0.20200610210702-8e5d1a569c4a h1:CUbap8oEhlXRiqVBcAGiW63iXuDY7iIwQLM4r7y8lw8= github.com/pulumi/tf2pulumi v0.8.1-0.20200610210702-8e5d1a569c4a/go.mod h1:lE39suxXfTqjNHg8PxtPUdek3wnTTdnoYXVpQdFGmEo= github.com/pulumi/tf2pulumi v0.8.1-0.20200630203740-1846524be4ec h1:C0l29EHsfhH+reeRSmqr0sIzJipQpXssof3YZurRrVo= @@ -677,6 +679,7 @@ github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQ github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/zclconf/go-cty v1.0.0/go.mod h1:xnAOWiHeOqg2nWS62VtQ7pbOu17FtxJNW8RLEih+O3s= github.com/zclconf/go-cty v1.1.0/go.mod h1:xnAOWiHeOqg2nWS62VtQ7pbOu17FtxJNW8RLEih+O3s= github.com/zclconf/go-cty v1.2.0/go.mod h1:hOPWgoHbaTUnI5k4D2ld+GRpFJSCe6bCM7m1q/N4PQ8= @@ -716,6 +719,8 @@ golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20191206172530-e9b2fee46413/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200317142112-1b76d66859c6 h1:TjszyFsQsyZNHwdVdZ5m7bjmreu0znc2kRYsEml9/Ww= golang.org/x/crypto v0.0.0-20200317142112-1b76d66859c6/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9 h1:psW17arqaxU48Z5kZ0CQnkZWQJsqcURM6tKiBApRjXI= +golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= 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= @@ -750,6 +755,8 @@ golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzB golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= golang.org/x/mod v0.2.0 h1:KU7oHjnv3XNWfa5COkzUifxZmxp1TyI7ImMXqFxLwvQ= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.3.0 h1:RM4zey1++hCTbCVQfnWeKs9/IEsaBLA8vTkd0WVtmH4= +golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/net v0.0.0-20170915142106-8351a756f30f/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180811021610-c39426892332/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -780,6 +787,8 @@ golang.org/x/net v0.0.0-20200301022130-244492dfa37a h1:GuSPYbZzB5/dcLNCwLQLsg3ob golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e h1:3G+cUijn7XD+S4eJFddp53Pv7+slrESplyjG25HgL+k= golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200625001655-4c5254603344 h1:vGXIOMxbNfDTk/aXCmfdLgkrSV+Z2tcbze+pEc3v5W4= +golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= 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-20190402181905-9f3314589c9a/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -795,6 +804,7 @@ golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a h1:WXEvlFVvvGxCJLG6REjsT03iWnKLEWinaScsxF2Vm2o= golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20171026204733-164713f0dfce/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -891,6 +901,7 @@ golang.org/x/tools v0.0.0-20200224181240-023911ca70b2 h1:L/G4KZvrQn7FWLN/LlulBtB golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4 h1:kDtqNkeBrZb8B+atrj50B5XLHpzXXqcCdZPP/ApQ5NY= golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= +golang.org/x/tools v0.0.0-20200717024301-6ddee64345a6/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= 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 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= diff --git a/provider/resources.go b/provider/resources.go index 1e4f52eb16..1548a9615c 100644 --- a/provider/resources.go +++ b/provider/resources.go @@ -26,6 +26,7 @@ const ( gcpBigTable = "BigTable" // BitTable resources gcpBilling = "Billing" // Billing resources gcpBinaryAuthorization = "BinaryAuthorization" // Binary Authorization resources + gcpCloudAsset = "CloudAsset" // CloudAsset resources gcpCloudBuild = "CloudBuild" // CloudBuild resources gcpCloudFunctions = "CloudFunctions" // CloudFunction resources gcpCloudIdentity = "CloudIdentity" // CloudIdentity resources @@ -812,8 +813,9 @@ func Provider() tfbridge.ProviderInfo { Source: "monitoring_service.html.markdown", }, }, - "google_monitoring_slo": {Tok: gcpResource(gcpMonitoring, "Slo")}, - "google_monitoring_dashboard": {Tok: gcpResource(gcpMonitoring, "Dashboard")}, + "google_monitoring_slo": {Tok: gcpResource(gcpMonitoring, "Slo")}, + "google_monitoring_dashboard": {Tok: gcpResource(gcpMonitoring, "Dashboard")}, + "google_monitoring_metric_descriptor": {Tok: gcpResource(gcpMonitoring, "MetricDescriptor")}, // PubSub resources "google_pubsub_topic": {Tok: gcpResource(gcpPubSub, "Topic")}, @@ -1412,6 +1414,7 @@ func Provider() tfbridge.ProviderInfo { // OS Config "google_os_config_patch_deployment": {Tok: gcpResource(gcpOsConfig, "PatchDeployment")}, + "google_os_config_guest_policies": {Tok: gcpResource(gcpOsConfig, "GuestPolicies")}, // Service Directory "google_service_directory_endpoint": {Tok: gcpResource(gcpServiceDirectory, "Endpoint")}, @@ -1521,6 +1524,11 @@ func Provider() tfbridge.ProviderInfo { // CloudIOT "google_cloudiot_device": {Tok: gcpResource(gcpIot, "Device")}, + + // CloudAsset + "google_cloud_asset_folder_feed": {Tok: gcpResource(gcpCloudAsset, "FolderFeed")}, + "google_cloud_asset_organization_feed": {Tok: gcpResource(gcpCloudAsset, "OrganizationFeed")}, + "google_cloud_asset_project_feed": {Tok: gcpResource(gcpCloudAsset, "ProjectFeed")}, }, DataSources: map[string]*tfbridge.DataSourceInfo{ "google_billing_account": { @@ -1884,6 +1892,9 @@ func Provider() tfbridge.ProviderInfo { Source: "datasource_google_sql_ca_certs.html.markdown", }, }, + "google_sql_database_instance": { + Tok: gcpDataSource(gcpSQL, "getDatabaseInstance"), + }, "google_monitoring_notification_channel": { Tok: gcpDataSource(gcpMonitoring, "getNotificationChannel"), Docs: &tfbridge.DocInfo{ diff --git a/sdk/dotnet/CloudAsset/FolderFeed.cs b/sdk/dotnet/CloudAsset/FolderFeed.cs new file mode 100644 index 0000000000..4c83dde4c3 --- /dev/null +++ b/sdk/dotnet/CloudAsset/FolderFeed.cs @@ -0,0 +1,283 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.CloudAsset +{ + /// + /// Describes a Cloud Asset Inventory feed used to to listen to asset updates. + /// + /// To get more information about FolderFeed, see: + /// + /// * [API documentation](https://cloud.google.com/asset-inventory/docs/reference/rest/) + /// * How-to Guides + /// * [Official Documentation](https://cloud.google.com/asset-inventory/docs) + /// + /// ## Example Usage + /// + public partial class FolderFeed : Pulumi.CustomResource + { + /// + /// A list of the full names of the assets to receive updates. You must specify either or both of + /// assetNames and assetTypes. Only asset updates matching specified assetNames and assetTypes are + /// exported to the feed. For example: //compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1. + /// See https://cloud.google.com/apis/design/resourceNames#fullResourceName for more info. + /// + [Output("assetNames")] + public Output> AssetNames { get; private set; } = null!; + + /// + /// A list of types of the assets to receive updates. You must specify either or both of assetNames + /// and assetTypes. Only asset updates matching specified assetNames and assetTypes are exported to + /// the feed. For example: "compute.googleapis.com/Disk" + /// See https://cloud.google.com/asset-inventory/docs/supported-asset-types for a list of all + /// supported asset types. + /// + [Output("assetTypes")] + public Output> AssetTypes { get; private set; } = null!; + + /// + /// The project whose identity will be used when sending messages to the + /// destination pubsub topic. It also specifies the project for API + /// enablement check, quota, and billing. + /// + [Output("billingProject")] + public Output BillingProject { get; private set; } = null!; + + /// + /// Asset content type. If not specified, no content but the asset name and type will be returned. + /// + [Output("contentType")] + public Output ContentType { get; private set; } = null!; + + /// + /// This is the client-assigned asset feed identifier and it needs to be unique under a specific parent. + /// + [Output("feedId")] + public Output FeedId { get; private set; } = null!; + + /// + /// Output configuration for asset feed destination. Structure is documented below. + /// + [Output("feedOutputConfig")] + public Output FeedOutputConfig { get; private set; } = null!; + + /// + /// The folder this feed should be created in. + /// + [Output("folder")] + public Output Folder { get; private set; } = null!; + + /// + /// The ID of the folder where this feed has been created. Both [FOLDER_NUMBER] and folders/[FOLDER_NUMBER] are accepted. + /// + [Output("folderId")] + public Output FolderId { get; private set; } = null!; + + /// + /// The format will be folders/{folder_number}/feeds/{client-assigned_feed_identifier}. + /// + [Output("name")] + public Output Name { get; private set; } = null!; + + + /// + /// Create a FolderFeed resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public FolderFeed(string name, FolderFeedArgs args, CustomResourceOptions? options = null) + : base("gcp:cloudasset/folderFeed:FolderFeed", name, args ?? new FolderFeedArgs(), MakeResourceOptions(options, "")) + { + } + + private FolderFeed(string name, Input id, FolderFeedState? state = null, CustomResourceOptions? options = null) + : base("gcp:cloudasset/folderFeed:FolderFeed", name, state, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing FolderFeed resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// Any extra arguments used during the lookup. + /// A bag of options that control this resource's behavior + public static FolderFeed Get(string name, Input id, FolderFeedState? state = null, CustomResourceOptions? options = null) + { + return new FolderFeed(name, id, state, options); + } + } + + public sealed class FolderFeedArgs : Pulumi.ResourceArgs + { + [Input("assetNames")] + private InputList? _assetNames; + + /// + /// A list of the full names of the assets to receive updates. You must specify either or both of + /// assetNames and assetTypes. Only asset updates matching specified assetNames and assetTypes are + /// exported to the feed. For example: //compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1. + /// See https://cloud.google.com/apis/design/resourceNames#fullResourceName for more info. + /// + public InputList AssetNames + { + get => _assetNames ?? (_assetNames = new InputList()); + set => _assetNames = value; + } + + [Input("assetTypes")] + private InputList? _assetTypes; + + /// + /// A list of types of the assets to receive updates. You must specify either or both of assetNames + /// and assetTypes. Only asset updates matching specified assetNames and assetTypes are exported to + /// the feed. For example: "compute.googleapis.com/Disk" + /// See https://cloud.google.com/asset-inventory/docs/supported-asset-types for a list of all + /// supported asset types. + /// + public InputList AssetTypes + { + get => _assetTypes ?? (_assetTypes = new InputList()); + set => _assetTypes = value; + } + + /// + /// The project whose identity will be used when sending messages to the + /// destination pubsub topic. It also specifies the project for API + /// enablement check, quota, and billing. + /// + [Input("billingProject", required: true)] + public Input BillingProject { get; set; } = null!; + + /// + /// Asset content type. If not specified, no content but the asset name and type will be returned. + /// + [Input("contentType")] + public Input? ContentType { get; set; } + + /// + /// This is the client-assigned asset feed identifier and it needs to be unique under a specific parent. + /// + [Input("feedId", required: true)] + public Input FeedId { get; set; } = null!; + + /// + /// Output configuration for asset feed destination. Structure is documented below. + /// + [Input("feedOutputConfig", required: true)] + public Input FeedOutputConfig { get; set; } = null!; + + /// + /// The folder this feed should be created in. + /// + [Input("folder", required: true)] + public Input Folder { get; set; } = null!; + + public FolderFeedArgs() + { + } + } + + public sealed class FolderFeedState : Pulumi.ResourceArgs + { + [Input("assetNames")] + private InputList? _assetNames; + + /// + /// A list of the full names of the assets to receive updates. You must specify either or both of + /// assetNames and assetTypes. Only asset updates matching specified assetNames and assetTypes are + /// exported to the feed. For example: //compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1. + /// See https://cloud.google.com/apis/design/resourceNames#fullResourceName for more info. + /// + public InputList AssetNames + { + get => _assetNames ?? (_assetNames = new InputList()); + set => _assetNames = value; + } + + [Input("assetTypes")] + private InputList? _assetTypes; + + /// + /// A list of types of the assets to receive updates. You must specify either or both of assetNames + /// and assetTypes. Only asset updates matching specified assetNames and assetTypes are exported to + /// the feed. For example: "compute.googleapis.com/Disk" + /// See https://cloud.google.com/asset-inventory/docs/supported-asset-types for a list of all + /// supported asset types. + /// + public InputList AssetTypes + { + get => _assetTypes ?? (_assetTypes = new InputList()); + set => _assetTypes = value; + } + + /// + /// The project whose identity will be used when sending messages to the + /// destination pubsub topic. It also specifies the project for API + /// enablement check, quota, and billing. + /// + [Input("billingProject")] + public Input? BillingProject { get; set; } + + /// + /// Asset content type. If not specified, no content but the asset name and type will be returned. + /// + [Input("contentType")] + public Input? ContentType { get; set; } + + /// + /// This is the client-assigned asset feed identifier and it needs to be unique under a specific parent. + /// + [Input("feedId")] + public Input? FeedId { get; set; } + + /// + /// Output configuration for asset feed destination. Structure is documented below. + /// + [Input("feedOutputConfig")] + public Input? FeedOutputConfig { get; set; } + + /// + /// The folder this feed should be created in. + /// + [Input("folder")] + public Input? Folder { get; set; } + + /// + /// The ID of the folder where this feed has been created. Both [FOLDER_NUMBER] and folders/[FOLDER_NUMBER] are accepted. + /// + [Input("folderId")] + public Input? FolderId { get; set; } + + /// + /// The format will be folders/{folder_number}/feeds/{client-assigned_feed_identifier}. + /// + [Input("name")] + public Input? Name { get; set; } + + public FolderFeedState() + { + } + } +} diff --git a/sdk/dotnet/CloudAsset/Inputs/FolderFeedFeedOutputConfigArgs.cs b/sdk/dotnet/CloudAsset/Inputs/FolderFeedFeedOutputConfigArgs.cs new file mode 100644 index 0000000000..17198727a5 --- /dev/null +++ b/sdk/dotnet/CloudAsset/Inputs/FolderFeedFeedOutputConfigArgs.cs @@ -0,0 +1,25 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.CloudAsset.Inputs +{ + + public sealed class FolderFeedFeedOutputConfigArgs : Pulumi.ResourceArgs + { + /// + /// Destination on Cloud Pubsub. Structure is documented below. + /// + [Input("pubsubDestination", required: true)] + public Input PubsubDestination { get; set; } = null!; + + public FolderFeedFeedOutputConfigArgs() + { + } + } +} diff --git a/sdk/dotnet/CloudAsset/Inputs/FolderFeedFeedOutputConfigGetArgs.cs b/sdk/dotnet/CloudAsset/Inputs/FolderFeedFeedOutputConfigGetArgs.cs new file mode 100644 index 0000000000..7078f6bd32 --- /dev/null +++ b/sdk/dotnet/CloudAsset/Inputs/FolderFeedFeedOutputConfigGetArgs.cs @@ -0,0 +1,25 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.CloudAsset.Inputs +{ + + public sealed class FolderFeedFeedOutputConfigGetArgs : Pulumi.ResourceArgs + { + /// + /// Destination on Cloud Pubsub. Structure is documented below. + /// + [Input("pubsubDestination", required: true)] + public Input PubsubDestination { get; set; } = null!; + + public FolderFeedFeedOutputConfigGetArgs() + { + } + } +} diff --git a/sdk/dotnet/CloudAsset/Inputs/FolderFeedFeedOutputConfigPubsubDestinationArgs.cs b/sdk/dotnet/CloudAsset/Inputs/FolderFeedFeedOutputConfigPubsubDestinationArgs.cs new file mode 100644 index 0000000000..89778a5f3d --- /dev/null +++ b/sdk/dotnet/CloudAsset/Inputs/FolderFeedFeedOutputConfigPubsubDestinationArgs.cs @@ -0,0 +1,25 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.CloudAsset.Inputs +{ + + public sealed class FolderFeedFeedOutputConfigPubsubDestinationArgs : Pulumi.ResourceArgs + { + /// + /// Destination on Cloud Pubsub topic. + /// + [Input("topic", required: true)] + public Input Topic { get; set; } = null!; + + public FolderFeedFeedOutputConfigPubsubDestinationArgs() + { + } + } +} diff --git a/sdk/dotnet/CloudAsset/Inputs/FolderFeedFeedOutputConfigPubsubDestinationGetArgs.cs b/sdk/dotnet/CloudAsset/Inputs/FolderFeedFeedOutputConfigPubsubDestinationGetArgs.cs new file mode 100644 index 0000000000..9b94aebc70 --- /dev/null +++ b/sdk/dotnet/CloudAsset/Inputs/FolderFeedFeedOutputConfigPubsubDestinationGetArgs.cs @@ -0,0 +1,25 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.CloudAsset.Inputs +{ + + public sealed class FolderFeedFeedOutputConfigPubsubDestinationGetArgs : Pulumi.ResourceArgs + { + /// + /// Destination on Cloud Pubsub topic. + /// + [Input("topic", required: true)] + public Input Topic { get; set; } = null!; + + public FolderFeedFeedOutputConfigPubsubDestinationGetArgs() + { + } + } +} diff --git a/sdk/dotnet/CloudAsset/Inputs/OrganizationFeedFeedOutputConfigArgs.cs b/sdk/dotnet/CloudAsset/Inputs/OrganizationFeedFeedOutputConfigArgs.cs new file mode 100644 index 0000000000..57ced0fa54 --- /dev/null +++ b/sdk/dotnet/CloudAsset/Inputs/OrganizationFeedFeedOutputConfigArgs.cs @@ -0,0 +1,25 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.CloudAsset.Inputs +{ + + public sealed class OrganizationFeedFeedOutputConfigArgs : Pulumi.ResourceArgs + { + /// + /// Destination on Cloud Pubsub. Structure is documented below. + /// + [Input("pubsubDestination", required: true)] + public Input PubsubDestination { get; set; } = null!; + + public OrganizationFeedFeedOutputConfigArgs() + { + } + } +} diff --git a/sdk/dotnet/CloudAsset/Inputs/OrganizationFeedFeedOutputConfigGetArgs.cs b/sdk/dotnet/CloudAsset/Inputs/OrganizationFeedFeedOutputConfigGetArgs.cs new file mode 100644 index 0000000000..b7f458cee7 --- /dev/null +++ b/sdk/dotnet/CloudAsset/Inputs/OrganizationFeedFeedOutputConfigGetArgs.cs @@ -0,0 +1,25 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.CloudAsset.Inputs +{ + + public sealed class OrganizationFeedFeedOutputConfigGetArgs : Pulumi.ResourceArgs + { + /// + /// Destination on Cloud Pubsub. Structure is documented below. + /// + [Input("pubsubDestination", required: true)] + public Input PubsubDestination { get; set; } = null!; + + public OrganizationFeedFeedOutputConfigGetArgs() + { + } + } +} diff --git a/sdk/dotnet/CloudAsset/Inputs/OrganizationFeedFeedOutputConfigPubsubDestinationArgs.cs b/sdk/dotnet/CloudAsset/Inputs/OrganizationFeedFeedOutputConfigPubsubDestinationArgs.cs new file mode 100644 index 0000000000..48abab8f3b --- /dev/null +++ b/sdk/dotnet/CloudAsset/Inputs/OrganizationFeedFeedOutputConfigPubsubDestinationArgs.cs @@ -0,0 +1,25 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.CloudAsset.Inputs +{ + + public sealed class OrganizationFeedFeedOutputConfigPubsubDestinationArgs : Pulumi.ResourceArgs + { + /// + /// Destination on Cloud Pubsub topic. + /// + [Input("topic", required: true)] + public Input Topic { get; set; } = null!; + + public OrganizationFeedFeedOutputConfigPubsubDestinationArgs() + { + } + } +} diff --git a/sdk/dotnet/CloudAsset/Inputs/OrganizationFeedFeedOutputConfigPubsubDestinationGetArgs.cs b/sdk/dotnet/CloudAsset/Inputs/OrganizationFeedFeedOutputConfigPubsubDestinationGetArgs.cs new file mode 100644 index 0000000000..d30b485969 --- /dev/null +++ b/sdk/dotnet/CloudAsset/Inputs/OrganizationFeedFeedOutputConfigPubsubDestinationGetArgs.cs @@ -0,0 +1,25 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.CloudAsset.Inputs +{ + + public sealed class OrganizationFeedFeedOutputConfigPubsubDestinationGetArgs : Pulumi.ResourceArgs + { + /// + /// Destination on Cloud Pubsub topic. + /// + [Input("topic", required: true)] + public Input Topic { get; set; } = null!; + + public OrganizationFeedFeedOutputConfigPubsubDestinationGetArgs() + { + } + } +} diff --git a/sdk/dotnet/CloudAsset/Inputs/ProjectFeedFeedOutputConfigArgs.cs b/sdk/dotnet/CloudAsset/Inputs/ProjectFeedFeedOutputConfigArgs.cs new file mode 100644 index 0000000000..49145e513f --- /dev/null +++ b/sdk/dotnet/CloudAsset/Inputs/ProjectFeedFeedOutputConfigArgs.cs @@ -0,0 +1,25 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.CloudAsset.Inputs +{ + + public sealed class ProjectFeedFeedOutputConfigArgs : Pulumi.ResourceArgs + { + /// + /// Destination on Cloud Pubsub. Structure is documented below. + /// + [Input("pubsubDestination", required: true)] + public Input PubsubDestination { get; set; } = null!; + + public ProjectFeedFeedOutputConfigArgs() + { + } + } +} diff --git a/sdk/dotnet/CloudAsset/Inputs/ProjectFeedFeedOutputConfigGetArgs.cs b/sdk/dotnet/CloudAsset/Inputs/ProjectFeedFeedOutputConfigGetArgs.cs new file mode 100644 index 0000000000..df66b4c7c8 --- /dev/null +++ b/sdk/dotnet/CloudAsset/Inputs/ProjectFeedFeedOutputConfigGetArgs.cs @@ -0,0 +1,25 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.CloudAsset.Inputs +{ + + public sealed class ProjectFeedFeedOutputConfigGetArgs : Pulumi.ResourceArgs + { + /// + /// Destination on Cloud Pubsub. Structure is documented below. + /// + [Input("pubsubDestination", required: true)] + public Input PubsubDestination { get; set; } = null!; + + public ProjectFeedFeedOutputConfigGetArgs() + { + } + } +} diff --git a/sdk/dotnet/CloudAsset/Inputs/ProjectFeedFeedOutputConfigPubsubDestinationArgs.cs b/sdk/dotnet/CloudAsset/Inputs/ProjectFeedFeedOutputConfigPubsubDestinationArgs.cs new file mode 100644 index 0000000000..5cce274846 --- /dev/null +++ b/sdk/dotnet/CloudAsset/Inputs/ProjectFeedFeedOutputConfigPubsubDestinationArgs.cs @@ -0,0 +1,25 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.CloudAsset.Inputs +{ + + public sealed class ProjectFeedFeedOutputConfigPubsubDestinationArgs : Pulumi.ResourceArgs + { + /// + /// Destination on Cloud Pubsub topic. + /// + [Input("topic", required: true)] + public Input Topic { get; set; } = null!; + + public ProjectFeedFeedOutputConfigPubsubDestinationArgs() + { + } + } +} diff --git a/sdk/dotnet/CloudAsset/Inputs/ProjectFeedFeedOutputConfigPubsubDestinationGetArgs.cs b/sdk/dotnet/CloudAsset/Inputs/ProjectFeedFeedOutputConfigPubsubDestinationGetArgs.cs new file mode 100644 index 0000000000..71e75560e4 --- /dev/null +++ b/sdk/dotnet/CloudAsset/Inputs/ProjectFeedFeedOutputConfigPubsubDestinationGetArgs.cs @@ -0,0 +1,25 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.CloudAsset.Inputs +{ + + public sealed class ProjectFeedFeedOutputConfigPubsubDestinationGetArgs : Pulumi.ResourceArgs + { + /// + /// Destination on Cloud Pubsub topic. + /// + [Input("topic", required: true)] + public Input Topic { get; set; } = null!; + + public ProjectFeedFeedOutputConfigPubsubDestinationGetArgs() + { + } + } +} diff --git a/sdk/dotnet/CloudAsset/OrganizationFeed.cs b/sdk/dotnet/CloudAsset/OrganizationFeed.cs new file mode 100644 index 0000000000..1be39e5961 --- /dev/null +++ b/sdk/dotnet/CloudAsset/OrganizationFeed.cs @@ -0,0 +1,271 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.CloudAsset +{ + /// + /// Describes a Cloud Asset Inventory feed used to to listen to asset updates. + /// + /// To get more information about OrganizationFeed, see: + /// + /// * [API documentation](https://cloud.google.com/asset-inventory/docs/reference/rest/) + /// * How-to Guides + /// * [Official Documentation](https://cloud.google.com/asset-inventory/docs) + /// + /// ## Example Usage + /// + public partial class OrganizationFeed : Pulumi.CustomResource + { + /// + /// A list of the full names of the assets to receive updates. You must specify either or both of + /// assetNames and assetTypes. Only asset updates matching specified assetNames and assetTypes are + /// exported to the feed. For example: //compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1. + /// See https://cloud.google.com/apis/design/resourceNames#fullResourceName for more info. + /// + [Output("assetNames")] + public Output> AssetNames { get; private set; } = null!; + + /// + /// A list of types of the assets to receive updates. You must specify either or both of assetNames + /// and assetTypes. Only asset updates matching specified assetNames and assetTypes are exported to + /// the feed. For example: "compute.googleapis.com/Disk" + /// See https://cloud.google.com/asset-inventory/docs/supported-asset-types for a list of all + /// supported asset types. + /// + [Output("assetTypes")] + public Output> AssetTypes { get; private set; } = null!; + + /// + /// The project whose identity will be used when sending messages to the + /// destination pubsub topic. It also specifies the project for API + /// enablement check, quota, and billing. + /// + [Output("billingProject")] + public Output BillingProject { get; private set; } = null!; + + /// + /// Asset content type. If not specified, no content but the asset name and type will be returned. + /// + [Output("contentType")] + public Output ContentType { get; private set; } = null!; + + /// + /// This is the client-assigned asset feed identifier and it needs to be unique under a specific parent. + /// + [Output("feedId")] + public Output FeedId { get; private set; } = null!; + + /// + /// Output configuration for asset feed destination. Structure is documented below. + /// + [Output("feedOutputConfig")] + public Output FeedOutputConfig { get; private set; } = null!; + + /// + /// The format will be organizations/{organization_number}/feeds/{client-assigned_feed_identifier}. + /// + [Output("name")] + public Output Name { get; private set; } = null!; + + /// + /// The organization this feed should be created in. + /// + [Output("orgId")] + public Output OrgId { get; private set; } = null!; + + + /// + /// Create a OrganizationFeed resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public OrganizationFeed(string name, OrganizationFeedArgs args, CustomResourceOptions? options = null) + : base("gcp:cloudasset/organizationFeed:OrganizationFeed", name, args ?? new OrganizationFeedArgs(), MakeResourceOptions(options, "")) + { + } + + private OrganizationFeed(string name, Input id, OrganizationFeedState? state = null, CustomResourceOptions? options = null) + : base("gcp:cloudasset/organizationFeed:OrganizationFeed", name, state, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing OrganizationFeed resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// Any extra arguments used during the lookup. + /// A bag of options that control this resource's behavior + public static OrganizationFeed Get(string name, Input id, OrganizationFeedState? state = null, CustomResourceOptions? options = null) + { + return new OrganizationFeed(name, id, state, options); + } + } + + public sealed class OrganizationFeedArgs : Pulumi.ResourceArgs + { + [Input("assetNames")] + private InputList? _assetNames; + + /// + /// A list of the full names of the assets to receive updates. You must specify either or both of + /// assetNames and assetTypes. Only asset updates matching specified assetNames and assetTypes are + /// exported to the feed. For example: //compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1. + /// See https://cloud.google.com/apis/design/resourceNames#fullResourceName for more info. + /// + public InputList AssetNames + { + get => _assetNames ?? (_assetNames = new InputList()); + set => _assetNames = value; + } + + [Input("assetTypes")] + private InputList? _assetTypes; + + /// + /// A list of types of the assets to receive updates. You must specify either or both of assetNames + /// and assetTypes. Only asset updates matching specified assetNames and assetTypes are exported to + /// the feed. For example: "compute.googleapis.com/Disk" + /// See https://cloud.google.com/asset-inventory/docs/supported-asset-types for a list of all + /// supported asset types. + /// + public InputList AssetTypes + { + get => _assetTypes ?? (_assetTypes = new InputList()); + set => _assetTypes = value; + } + + /// + /// The project whose identity will be used when sending messages to the + /// destination pubsub topic. It also specifies the project for API + /// enablement check, quota, and billing. + /// + [Input("billingProject", required: true)] + public Input BillingProject { get; set; } = null!; + + /// + /// Asset content type. If not specified, no content but the asset name and type will be returned. + /// + [Input("contentType")] + public Input? ContentType { get; set; } + + /// + /// This is the client-assigned asset feed identifier and it needs to be unique under a specific parent. + /// + [Input("feedId", required: true)] + public Input FeedId { get; set; } = null!; + + /// + /// Output configuration for asset feed destination. Structure is documented below. + /// + [Input("feedOutputConfig", required: true)] + public Input FeedOutputConfig { get; set; } = null!; + + /// + /// The organization this feed should be created in. + /// + [Input("orgId", required: true)] + public Input OrgId { get; set; } = null!; + + public OrganizationFeedArgs() + { + } + } + + public sealed class OrganizationFeedState : Pulumi.ResourceArgs + { + [Input("assetNames")] + private InputList? _assetNames; + + /// + /// A list of the full names of the assets to receive updates. You must specify either or both of + /// assetNames and assetTypes. Only asset updates matching specified assetNames and assetTypes are + /// exported to the feed. For example: //compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1. + /// See https://cloud.google.com/apis/design/resourceNames#fullResourceName for more info. + /// + public InputList AssetNames + { + get => _assetNames ?? (_assetNames = new InputList()); + set => _assetNames = value; + } + + [Input("assetTypes")] + private InputList? _assetTypes; + + /// + /// A list of types of the assets to receive updates. You must specify either or both of assetNames + /// and assetTypes. Only asset updates matching specified assetNames and assetTypes are exported to + /// the feed. For example: "compute.googleapis.com/Disk" + /// See https://cloud.google.com/asset-inventory/docs/supported-asset-types for a list of all + /// supported asset types. + /// + public InputList AssetTypes + { + get => _assetTypes ?? (_assetTypes = new InputList()); + set => _assetTypes = value; + } + + /// + /// The project whose identity will be used when sending messages to the + /// destination pubsub topic. It also specifies the project for API + /// enablement check, quota, and billing. + /// + [Input("billingProject")] + public Input? BillingProject { get; set; } + + /// + /// Asset content type. If not specified, no content but the asset name and type will be returned. + /// + [Input("contentType")] + public Input? ContentType { get; set; } + + /// + /// This is the client-assigned asset feed identifier and it needs to be unique under a specific parent. + /// + [Input("feedId")] + public Input? FeedId { get; set; } + + /// + /// Output configuration for asset feed destination. Structure is documented below. + /// + [Input("feedOutputConfig")] + public Input? FeedOutputConfig { get; set; } + + /// + /// The format will be organizations/{organization_number}/feeds/{client-assigned_feed_identifier}. + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// The organization this feed should be created in. + /// + [Input("orgId")] + public Input? OrgId { get; set; } + + public OrganizationFeedState() + { + } + } +} diff --git a/sdk/dotnet/CloudAsset/Outputs/FolderFeedFeedOutputConfig.cs b/sdk/dotnet/CloudAsset/Outputs/FolderFeedFeedOutputConfig.cs new file mode 100644 index 0000000000..e938c8e4f7 --- /dev/null +++ b/sdk/dotnet/CloudAsset/Outputs/FolderFeedFeedOutputConfig.cs @@ -0,0 +1,27 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.CloudAsset.Outputs +{ + + [OutputType] + public sealed class FolderFeedFeedOutputConfig + { + /// + /// Destination on Cloud Pubsub. Structure is documented below. + /// + public readonly Outputs.FolderFeedFeedOutputConfigPubsubDestination PubsubDestination; + + [OutputConstructor] + private FolderFeedFeedOutputConfig(Outputs.FolderFeedFeedOutputConfigPubsubDestination pubsubDestination) + { + PubsubDestination = pubsubDestination; + } + } +} diff --git a/sdk/dotnet/CloudAsset/Outputs/FolderFeedFeedOutputConfigPubsubDestination.cs b/sdk/dotnet/CloudAsset/Outputs/FolderFeedFeedOutputConfigPubsubDestination.cs new file mode 100644 index 0000000000..569d43db4e --- /dev/null +++ b/sdk/dotnet/CloudAsset/Outputs/FolderFeedFeedOutputConfigPubsubDestination.cs @@ -0,0 +1,27 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.CloudAsset.Outputs +{ + + [OutputType] + public sealed class FolderFeedFeedOutputConfigPubsubDestination + { + /// + /// Destination on Cloud Pubsub topic. + /// + public readonly string Topic; + + [OutputConstructor] + private FolderFeedFeedOutputConfigPubsubDestination(string topic) + { + Topic = topic; + } + } +} diff --git a/sdk/dotnet/CloudAsset/Outputs/OrganizationFeedFeedOutputConfig.cs b/sdk/dotnet/CloudAsset/Outputs/OrganizationFeedFeedOutputConfig.cs new file mode 100644 index 0000000000..3e6fb38517 --- /dev/null +++ b/sdk/dotnet/CloudAsset/Outputs/OrganizationFeedFeedOutputConfig.cs @@ -0,0 +1,27 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.CloudAsset.Outputs +{ + + [OutputType] + public sealed class OrganizationFeedFeedOutputConfig + { + /// + /// Destination on Cloud Pubsub. Structure is documented below. + /// + public readonly Outputs.OrganizationFeedFeedOutputConfigPubsubDestination PubsubDestination; + + [OutputConstructor] + private OrganizationFeedFeedOutputConfig(Outputs.OrganizationFeedFeedOutputConfigPubsubDestination pubsubDestination) + { + PubsubDestination = pubsubDestination; + } + } +} diff --git a/sdk/dotnet/CloudAsset/Outputs/OrganizationFeedFeedOutputConfigPubsubDestination.cs b/sdk/dotnet/CloudAsset/Outputs/OrganizationFeedFeedOutputConfigPubsubDestination.cs new file mode 100644 index 0000000000..cdb5b3f280 --- /dev/null +++ b/sdk/dotnet/CloudAsset/Outputs/OrganizationFeedFeedOutputConfigPubsubDestination.cs @@ -0,0 +1,27 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.CloudAsset.Outputs +{ + + [OutputType] + public sealed class OrganizationFeedFeedOutputConfigPubsubDestination + { + /// + /// Destination on Cloud Pubsub topic. + /// + public readonly string Topic; + + [OutputConstructor] + private OrganizationFeedFeedOutputConfigPubsubDestination(string topic) + { + Topic = topic; + } + } +} diff --git a/sdk/dotnet/CloudAsset/Outputs/ProjectFeedFeedOutputConfig.cs b/sdk/dotnet/CloudAsset/Outputs/ProjectFeedFeedOutputConfig.cs new file mode 100644 index 0000000000..8c04c759ab --- /dev/null +++ b/sdk/dotnet/CloudAsset/Outputs/ProjectFeedFeedOutputConfig.cs @@ -0,0 +1,27 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.CloudAsset.Outputs +{ + + [OutputType] + public sealed class ProjectFeedFeedOutputConfig + { + /// + /// Destination on Cloud Pubsub. Structure is documented below. + /// + public readonly Outputs.ProjectFeedFeedOutputConfigPubsubDestination PubsubDestination; + + [OutputConstructor] + private ProjectFeedFeedOutputConfig(Outputs.ProjectFeedFeedOutputConfigPubsubDestination pubsubDestination) + { + PubsubDestination = pubsubDestination; + } + } +} diff --git a/sdk/dotnet/CloudAsset/Outputs/ProjectFeedFeedOutputConfigPubsubDestination.cs b/sdk/dotnet/CloudAsset/Outputs/ProjectFeedFeedOutputConfigPubsubDestination.cs new file mode 100644 index 0000000000..61b04f203e --- /dev/null +++ b/sdk/dotnet/CloudAsset/Outputs/ProjectFeedFeedOutputConfigPubsubDestination.cs @@ -0,0 +1,27 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.CloudAsset.Outputs +{ + + [OutputType] + public sealed class ProjectFeedFeedOutputConfigPubsubDestination + { + /// + /// Destination on Cloud Pubsub topic. + /// + public readonly string Topic; + + [OutputConstructor] + private ProjectFeedFeedOutputConfigPubsubDestination(string topic) + { + Topic = topic; + } + } +} diff --git a/sdk/dotnet/CloudAsset/ProjectFeed.cs b/sdk/dotnet/CloudAsset/ProjectFeed.cs new file mode 100644 index 0000000000..9a0417d75e --- /dev/null +++ b/sdk/dotnet/CloudAsset/ProjectFeed.cs @@ -0,0 +1,277 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.CloudAsset +{ + /// + /// Describes a Cloud Asset Inventory feed used to to listen to asset updates. + /// + /// To get more information about ProjectFeed, see: + /// + /// * [API documentation](https://cloud.google.com/asset-inventory/docs/reference/rest/) + /// * How-to Guides + /// * [Official Documentation](https://cloud.google.com/asset-inventory/docs) + /// + /// ## Example Usage + /// + public partial class ProjectFeed : Pulumi.CustomResource + { + /// + /// A list of the full names of the assets to receive updates. You must specify either or both of + /// assetNames and assetTypes. Only asset updates matching specified assetNames and assetTypes are + /// exported to the feed. For example: //compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1. + /// See https://cloud.google.com/apis/design/resourceNames#fullResourceName for more info. + /// + [Output("assetNames")] + public Output> AssetNames { get; private set; } = null!; + + /// + /// A list of types of the assets to receive updates. You must specify either or both of assetNames + /// and assetTypes. Only asset updates matching specified assetNames and assetTypes are exported to + /// the feed. For example: "compute.googleapis.com/Disk" + /// See https://cloud.google.com/asset-inventory/docs/supported-asset-types for a list of all + /// supported asset types. + /// + [Output("assetTypes")] + public Output> AssetTypes { get; private set; } = null!; + + /// + /// The project whose identity will be used when sending messages to the + /// destination pubsub topic. It also specifies the project for API + /// enablement check, quota, and billing. If not specified, the resource's + /// project will be used. + /// + [Output("billingProject")] + public Output BillingProject { get; private set; } = null!; + + /// + /// Asset content type. If not specified, no content but the asset name and type will be returned. + /// + [Output("contentType")] + public Output ContentType { get; private set; } = null!; + + /// + /// This is the client-assigned asset feed identifier and it needs to be unique under a specific parent. + /// + [Output("feedId")] + public Output FeedId { get; private set; } = null!; + + /// + /// Output configuration for asset feed destination. Structure is documented below. + /// + [Output("feedOutputConfig")] + public Output FeedOutputConfig { get; private set; } = null!; + + /// + /// The format will be projects/{projectNumber}/feeds/{client-assigned_feed_identifier}. + /// + [Output("name")] + public Output Name { get; private set; } = null!; + + /// + /// The ID of the project in which the resource belongs. + /// If it is not provided, the provider project is used. + /// + [Output("project")] + public Output Project { get; private set; } = null!; + + + /// + /// Create a ProjectFeed resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public ProjectFeed(string name, ProjectFeedArgs args, CustomResourceOptions? options = null) + : base("gcp:cloudasset/projectFeed:ProjectFeed", name, args ?? new ProjectFeedArgs(), MakeResourceOptions(options, "")) + { + } + + private ProjectFeed(string name, Input id, ProjectFeedState? state = null, CustomResourceOptions? options = null) + : base("gcp:cloudasset/projectFeed:ProjectFeed", name, state, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing ProjectFeed resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// Any extra arguments used during the lookup. + /// A bag of options that control this resource's behavior + public static ProjectFeed Get(string name, Input id, ProjectFeedState? state = null, CustomResourceOptions? options = null) + { + return new ProjectFeed(name, id, state, options); + } + } + + public sealed class ProjectFeedArgs : Pulumi.ResourceArgs + { + [Input("assetNames")] + private InputList? _assetNames; + + /// + /// A list of the full names of the assets to receive updates. You must specify either or both of + /// assetNames and assetTypes. Only asset updates matching specified assetNames and assetTypes are + /// exported to the feed. For example: //compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1. + /// See https://cloud.google.com/apis/design/resourceNames#fullResourceName for more info. + /// + public InputList AssetNames + { + get => _assetNames ?? (_assetNames = new InputList()); + set => _assetNames = value; + } + + [Input("assetTypes")] + private InputList? _assetTypes; + + /// + /// A list of types of the assets to receive updates. You must specify either or both of assetNames + /// and assetTypes. Only asset updates matching specified assetNames and assetTypes are exported to + /// the feed. For example: "compute.googleapis.com/Disk" + /// See https://cloud.google.com/asset-inventory/docs/supported-asset-types for a list of all + /// supported asset types. + /// + public InputList AssetTypes + { + get => _assetTypes ?? (_assetTypes = new InputList()); + set => _assetTypes = value; + } + + /// + /// The project whose identity will be used when sending messages to the + /// destination pubsub topic. It also specifies the project for API + /// enablement check, quota, and billing. If not specified, the resource's + /// project will be used. + /// + [Input("billingProject")] + public Input? BillingProject { get; set; } + + /// + /// Asset content type. If not specified, no content but the asset name and type will be returned. + /// + [Input("contentType")] + public Input? ContentType { get; set; } + + /// + /// This is the client-assigned asset feed identifier and it needs to be unique under a specific parent. + /// + [Input("feedId", required: true)] + public Input FeedId { get; set; } = null!; + + /// + /// Output configuration for asset feed destination. Structure is documented below. + /// + [Input("feedOutputConfig", required: true)] + public Input FeedOutputConfig { get; set; } = null!; + + /// + /// The ID of the project in which the resource belongs. + /// If it is not provided, the provider project is used. + /// + [Input("project")] + public Input? Project { get; set; } + + public ProjectFeedArgs() + { + } + } + + public sealed class ProjectFeedState : Pulumi.ResourceArgs + { + [Input("assetNames")] + private InputList? _assetNames; + + /// + /// A list of the full names of the assets to receive updates. You must specify either or both of + /// assetNames and assetTypes. Only asset updates matching specified assetNames and assetTypes are + /// exported to the feed. For example: //compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1. + /// See https://cloud.google.com/apis/design/resourceNames#fullResourceName for more info. + /// + public InputList AssetNames + { + get => _assetNames ?? (_assetNames = new InputList()); + set => _assetNames = value; + } + + [Input("assetTypes")] + private InputList? _assetTypes; + + /// + /// A list of types of the assets to receive updates. You must specify either or both of assetNames + /// and assetTypes. Only asset updates matching specified assetNames and assetTypes are exported to + /// the feed. For example: "compute.googleapis.com/Disk" + /// See https://cloud.google.com/asset-inventory/docs/supported-asset-types for a list of all + /// supported asset types. + /// + public InputList AssetTypes + { + get => _assetTypes ?? (_assetTypes = new InputList()); + set => _assetTypes = value; + } + + /// + /// The project whose identity will be used when sending messages to the + /// destination pubsub topic. It also specifies the project for API + /// enablement check, quota, and billing. If not specified, the resource's + /// project will be used. + /// + [Input("billingProject")] + public Input? BillingProject { get; set; } + + /// + /// Asset content type. If not specified, no content but the asset name and type will be returned. + /// + [Input("contentType")] + public Input? ContentType { get; set; } + + /// + /// This is the client-assigned asset feed identifier and it needs to be unique under a specific parent. + /// + [Input("feedId")] + public Input? FeedId { get; set; } + + /// + /// Output configuration for asset feed destination. Structure is documented below. + /// + [Input("feedOutputConfig")] + public Input? FeedOutputConfig { get; set; } + + /// + /// The format will be projects/{projectNumber}/feeds/{client-assigned_feed_identifier}. + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// The ID of the project in which the resource belongs. + /// If it is not provided, the provider project is used. + /// + [Input("project")] + public Input? Project { get; set; } + + public ProjectFeedState() + { + } + } +} diff --git a/sdk/dotnet/CloudAsset/README.md b/sdk/dotnet/CloudAsset/README.md new file mode 100644 index 0000000000..061b113996 --- /dev/null +++ b/sdk/dotnet/CloudAsset/README.md @@ -0,0 +1 @@ +A Pulumi package for creating and managing Google Cloud Platform resources. diff --git a/sdk/dotnet/CloudFunctions/Function.cs b/sdk/dotnet/CloudFunctions/Function.cs index f144323c87..9552b7f99a 100644 --- a/sdk/dotnet/CloudFunctions/Function.cs +++ b/sdk/dotnet/CloudFunctions/Function.cs @@ -99,7 +99,7 @@ public partial class Function : Pulumi.CustomResource /// /// The runtime in which the function is going to run. - /// Eg. `"nodejs8"`, `"nodejs10"`, `"python37"`, `"go111"`. + /// Eg. `"nodejs8"`, `"nodejs10"`, `"python37"`, `"go111"`, `"go113"`. /// [Output("runtime")] public Output Runtime { get; private set; } = null!; @@ -285,7 +285,7 @@ public InputMap Labels /// /// The runtime in which the function is going to run. - /// Eg. `"nodejs8"`, `"nodejs10"`, `"python37"`, `"go111"`. + /// Eg. `"nodejs8"`, `"nodejs10"`, `"python37"`, `"go111"`, `"go113"`. /// [Input("runtime", required: true)] public Input Runtime { get; set; } = null!; @@ -432,7 +432,7 @@ public InputMap Labels /// /// The runtime in which the function is going to run. - /// Eg. `"nodejs8"`, `"nodejs10"`, `"python37"`, `"go111"`. + /// Eg. `"nodejs8"`, `"nodejs10"`, `"python37"`, `"go111"`, `"go113"`. /// [Input("runtime")] public Input? Runtime { get; set; } diff --git a/sdk/dotnet/Compute/BackendService.cs b/sdk/dotnet/Compute/BackendService.cs index 99f4064d84..6cf00d7240 100644 --- a/sdk/dotnet/Compute/BackendService.cs +++ b/sdk/dotnet/Compute/BackendService.cs @@ -111,11 +111,12 @@ public partial class BackendService : Pulumi.CustomResource /// /// The set of URLs to the HttpHealthCheck or HttpsHealthCheck resource /// for health checking this BackendService. Currently at most one health - /// check can be specified, and a health check is required. + /// check can be specified. + /// A health check must be specified unless the backend service uses an internet NEG as a backend. /// For internal load balancing, a URL to a HealthCheck resource must be specified instead. /// [Output("healthChecks")] - public Output HealthChecks { get; private set; } = null!; + public Output HealthChecks { get; private set; } = null!; /// /// Settings for enabling Cloud Identity Aware Proxy Structure is documented below. @@ -236,7 +237,7 @@ public partial class BackendService : Pulumi.CustomResource /// The unique name of the resource /// The arguments used to populate this resource's properties /// A bag of options that control this resource's behavior - public BackendService(string name, BackendServiceArgs args, CustomResourceOptions? options = null) + public BackendService(string name, BackendServiceArgs? args = null, CustomResourceOptions? options = null) : base("gcp:compute/backendService:BackendService", name, args ?? new BackendServiceArgs(), MakeResourceOptions(options, "")) { } @@ -358,11 +359,12 @@ public InputList CustomRequestHeaders /// /// The set of URLs to the HttpHealthCheck or HttpsHealthCheck resource /// for health checking this BackendService. Currently at most one health - /// check can be specified, and a health check is required. + /// check can be specified. + /// A health check must be specified unless the backend service uses an internet NEG as a backend. /// For internal load balancing, a URL to a HealthCheck resource must be specified instead. /// - [Input("healthChecks", required: true)] - public Input HealthChecks { get; set; } = null!; + [Input("healthChecks")] + public Input? HealthChecks { get; set; } /// /// Settings for enabling Cloud Identity Aware Proxy Structure is documented below. @@ -572,7 +574,8 @@ public InputList CustomRequestHeaders /// /// The set of URLs to the HttpHealthCheck or HttpsHealthCheck resource /// for health checking this BackendService. Currently at most one health - /// check can be specified, and a health check is required. + /// check can be specified. + /// A health check must be specified unless the backend service uses an internet NEG as a backend. /// For internal load balancing, a URL to a HealthCheck resource must be specified instead. /// [Input("healthChecks")] diff --git a/sdk/dotnet/Config/Config.cs b/sdk/dotnet/Config/Config.cs index 6b28c08818..de5c6a9dab 100644 --- a/sdk/dotnet/Config/Config.cs +++ b/sdk/dotnet/Config/Config.cs @@ -32,6 +32,8 @@ public static class Config public static string? BinaryAuthorizationCustomEndpoint { get; set; } = __config.Get("binaryAuthorizationCustomEndpoint"); + public static string? CloudAssetCustomEndpoint { get; set; } = __config.Get("cloudAssetCustomEndpoint"); + public static string? CloudBillingCustomEndpoint { get; set; } = __config.Get("cloudBillingCustomEndpoint"); public static string? CloudBuildCustomEndpoint { get; set; } = __config.Get("cloudBuildCustomEndpoint"); diff --git a/sdk/dotnet/Container/Cluster.cs b/sdk/dotnet/Container/Cluster.cs index 93d179068a..26b28be714 100644 --- a/sdk/dotnet/Container/Cluster.cs +++ b/sdk/dotnet/Container/Cluster.cs @@ -79,6 +79,13 @@ public partial class Cluster : Pulumi.CustomResource [Output("defaultMaxPodsPerNode")] public Output DefaultMaxPodsPerNode { get; private set; } = null!; + /// + /// ) + /// [GKE SNAT](https://cloud.google.com/kubernetes-engine/docs/how-to/ip-masquerade-agent#how_ipmasq_works) DefaultSnatStatus contains the desired state of whether default sNAT should be disabled on the cluster, [API doc](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1beta1/projects.locations.clusters#networkconfig). + /// + [Output("defaultSnatStatus")] + public Output DefaultSnatStatus { get; private set; } = null!; + /// /// Description of the cluster. /// @@ -524,6 +531,13 @@ public sealed class ClusterArgs : Pulumi.ResourceArgs [Input("defaultMaxPodsPerNode")] public Input? DefaultMaxPodsPerNode { get; set; } + /// + /// ) + /// [GKE SNAT](https://cloud.google.com/kubernetes-engine/docs/how-to/ip-masquerade-agent#how_ipmasq_works) DefaultSnatStatus contains the desired state of whether default sNAT should be disabled on the cluster, [API doc](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1beta1/projects.locations.clusters#networkconfig). + /// + [Input("defaultSnatStatus")] + public Input? DefaultSnatStatus { get; set; } + /// /// Description of the cluster. /// @@ -901,6 +915,13 @@ public sealed class ClusterState : Pulumi.ResourceArgs [Input("defaultMaxPodsPerNode")] public Input? DefaultMaxPodsPerNode { get; set; } + /// + /// ) + /// [GKE SNAT](https://cloud.google.com/kubernetes-engine/docs/how-to/ip-masquerade-agent#how_ipmasq_works) DefaultSnatStatus contains the desired state of whether default sNAT should be disabled on the cluster, [API doc](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1beta1/projects.locations.clusters#networkconfig). + /// + [Input("defaultSnatStatus")] + public Input? DefaultSnatStatus { get; set; } + /// /// Description of the cluster. /// diff --git a/sdk/dotnet/Container/GetCluster.cs b/sdk/dotnet/Container/GetCluster.cs index 5a6c57bf12..0cf84a67eb 100644 --- a/sdk/dotnet/Container/GetCluster.cs +++ b/sdk/dotnet/Container/GetCluster.cs @@ -73,6 +73,7 @@ public sealed class GetClusterResult public readonly ImmutableArray ClusterTelemetries; public readonly ImmutableArray DatabaseEncryptions; public readonly int DefaultMaxPodsPerNode; + public readonly ImmutableArray DefaultSnatStatuses; public readonly string Description; public readonly bool EnableBinaryAuthorization; public readonly bool EnableIntranodeVisibility; @@ -139,6 +140,8 @@ private GetClusterResult( int defaultMaxPodsPerNode, + ImmutableArray defaultSnatStatuses, + string description, bool enableBinaryAuthorization, @@ -235,6 +238,7 @@ private GetClusterResult( ClusterTelemetries = clusterTelemetries; DatabaseEncryptions = databaseEncryptions; DefaultMaxPodsPerNode = defaultMaxPodsPerNode; + DefaultSnatStatuses = defaultSnatStatuses; Description = description; EnableBinaryAuthorization = enableBinaryAuthorization; EnableIntranodeVisibility = enableIntranodeVisibility; diff --git a/sdk/dotnet/Container/Inputs/ClusterDefaultSnatStatusArgs.cs b/sdk/dotnet/Container/Inputs/ClusterDefaultSnatStatusArgs.cs new file mode 100644 index 0000000000..d90e17cec2 --- /dev/null +++ b/sdk/dotnet/Container/Inputs/ClusterDefaultSnatStatusArgs.cs @@ -0,0 +1,26 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Container.Inputs +{ + + public sealed class ClusterDefaultSnatStatusArgs : Pulumi.ResourceArgs + { + /// + /// The status of the Istio addon, which makes it easy to set up Istio for services in a + /// cluster. It is disabled by default. Set `disabled = false` to enable. + /// + [Input("disabled", required: true)] + public Input Disabled { get; set; } = null!; + + public ClusterDefaultSnatStatusArgs() + { + } + } +} diff --git a/sdk/dotnet/Container/Inputs/ClusterDefaultSnatStatusGetArgs.cs b/sdk/dotnet/Container/Inputs/ClusterDefaultSnatStatusGetArgs.cs new file mode 100644 index 0000000000..477a3c08ba --- /dev/null +++ b/sdk/dotnet/Container/Inputs/ClusterDefaultSnatStatusGetArgs.cs @@ -0,0 +1,26 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Container.Inputs +{ + + public sealed class ClusterDefaultSnatStatusGetArgs : Pulumi.ResourceArgs + { + /// + /// The status of the Istio addon, which makes it easy to set up Istio for services in a + /// cluster. It is disabled by default. Set `disabled = false` to enable. + /// + [Input("disabled", required: true)] + public Input Disabled { get; set; } = null!; + + public ClusterDefaultSnatStatusGetArgs() + { + } + } +} diff --git a/sdk/dotnet/Container/Outputs/ClusterDefaultSnatStatus.cs b/sdk/dotnet/Container/Outputs/ClusterDefaultSnatStatus.cs new file mode 100644 index 0000000000..88ee37f846 --- /dev/null +++ b/sdk/dotnet/Container/Outputs/ClusterDefaultSnatStatus.cs @@ -0,0 +1,28 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Container.Outputs +{ + + [OutputType] + public sealed class ClusterDefaultSnatStatus + { + /// + /// The status of the Istio addon, which makes it easy to set up Istio for services in a + /// cluster. It is disabled by default. Set `disabled = false` to enable. + /// + public readonly bool Disabled; + + [OutputConstructor] + private ClusterDefaultSnatStatus(bool disabled) + { + Disabled = disabled; + } + } +} diff --git a/sdk/dotnet/Container/Outputs/GetClusterDefaultSnatStatusResult.cs b/sdk/dotnet/Container/Outputs/GetClusterDefaultSnatStatusResult.cs new file mode 100644 index 0000000000..9a22ea111f --- /dev/null +++ b/sdk/dotnet/Container/Outputs/GetClusterDefaultSnatStatusResult.cs @@ -0,0 +1,24 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Container.Outputs +{ + + [OutputType] + public sealed class GetClusterDefaultSnatStatusResult + { + public readonly bool Disabled; + + [OutputConstructor] + private GetClusterDefaultSnatStatusResult(bool disabled) + { + Disabled = disabled; + } + } +} diff --git a/sdk/dotnet/Filestore/Inputs/InstanceFileSharesArgs.cs b/sdk/dotnet/Filestore/Inputs/InstanceFileSharesArgs.cs index 47ea718790..d04f442f0e 100644 --- a/sdk/dotnet/Filestore/Inputs/InstanceFileSharesArgs.cs +++ b/sdk/dotnet/Filestore/Inputs/InstanceFileSharesArgs.cs @@ -25,6 +25,14 @@ public sealed class InstanceFileSharesArgs : Pulumi.ResourceArgs [Input("name", required: true)] public Input Name { get; set; } = null!; + [Input("nfsExportOptions")] + private InputList? _nfsExportOptions; + public InputList NfsExportOptions + { + get => _nfsExportOptions ?? (_nfsExportOptions = new InputList()); + set => _nfsExportOptions = value; + } + public InstanceFileSharesArgs() { } diff --git a/sdk/dotnet/Filestore/Inputs/InstanceFileSharesGetArgs.cs b/sdk/dotnet/Filestore/Inputs/InstanceFileSharesGetArgs.cs index 6473e96621..37842ffbb2 100644 --- a/sdk/dotnet/Filestore/Inputs/InstanceFileSharesGetArgs.cs +++ b/sdk/dotnet/Filestore/Inputs/InstanceFileSharesGetArgs.cs @@ -25,6 +25,14 @@ public sealed class InstanceFileSharesGetArgs : Pulumi.ResourceArgs [Input("name", required: true)] public Input Name { get; set; } = null!; + [Input("nfsExportOptions")] + private InputList? _nfsExportOptions; + public InputList NfsExportOptions + { + get => _nfsExportOptions ?? (_nfsExportOptions = new InputList()); + set => _nfsExportOptions = value; + } + public InstanceFileSharesGetArgs() { } diff --git a/sdk/dotnet/Filestore/Inputs/InstanceFileSharesNfsExportOptionArgs.cs b/sdk/dotnet/Filestore/Inputs/InstanceFileSharesNfsExportOptionArgs.cs new file mode 100644 index 0000000000..6f730b939b --- /dev/null +++ b/sdk/dotnet/Filestore/Inputs/InstanceFileSharesNfsExportOptionArgs.cs @@ -0,0 +1,63 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Filestore.Inputs +{ + + public sealed class InstanceFileSharesNfsExportOptionArgs : Pulumi.ResourceArgs + { + /// + /// Either READ_ONLY, for allowing only read requests on the exported directory, + /// or READ_WRITE, for allowing both read and write requests. The default is READ_WRITE. + /// + [Input("accessMode")] + public Input? AccessMode { get; set; } + + /// + /// An integer representing the anonymous group id with a default value of 65534. + /// Anon_gid may only be set with squashMode of ROOT_SQUASH. An error will be returned + /// if this field is specified for other squashMode settings. + /// + [Input("anonGid")] + public Input? AnonGid { get; set; } + + /// + /// An integer representing the anonymous user id with a default value of 65534. + /// Anon_uid may only be set with squashMode of ROOT_SQUASH. An error will be returned + /// if this field is specified for other squashMode settings. + /// + [Input("anonUid")] + public Input? AnonUid { get; set; } + + [Input("ipRanges")] + private InputList? _ipRanges; + + /// + /// List of either IPv4 addresses, or ranges in CIDR notation which may mount the file share. + /// Overlapping IP ranges are not allowed, both within and across NfsExportOptions. An error will be returned. + /// The limit is 64 IP ranges/addresses for each FileShareConfig among all NfsExportOptions. + /// + public InputList IpRanges + { + get => _ipRanges ?? (_ipRanges = new InputList()); + set => _ipRanges = value; + } + + /// + /// Either NO_ROOT_SQUASH, for allowing root access on the exported directory, or ROOT_SQUASH, + /// for not allowing root access. The default is NO_ROOT_SQUASH. + /// + [Input("squashMode")] + public Input? SquashMode { get; set; } + + public InstanceFileSharesNfsExportOptionArgs() + { + } + } +} diff --git a/sdk/dotnet/Filestore/Inputs/InstanceFileSharesNfsExportOptionGetArgs.cs b/sdk/dotnet/Filestore/Inputs/InstanceFileSharesNfsExportOptionGetArgs.cs new file mode 100644 index 0000000000..925a40eebe --- /dev/null +++ b/sdk/dotnet/Filestore/Inputs/InstanceFileSharesNfsExportOptionGetArgs.cs @@ -0,0 +1,63 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Filestore.Inputs +{ + + public sealed class InstanceFileSharesNfsExportOptionGetArgs : Pulumi.ResourceArgs + { + /// + /// Either READ_ONLY, for allowing only read requests on the exported directory, + /// or READ_WRITE, for allowing both read and write requests. The default is READ_WRITE. + /// + [Input("accessMode")] + public Input? AccessMode { get; set; } + + /// + /// An integer representing the anonymous group id with a default value of 65534. + /// Anon_gid may only be set with squashMode of ROOT_SQUASH. An error will be returned + /// if this field is specified for other squashMode settings. + /// + [Input("anonGid")] + public Input? AnonGid { get; set; } + + /// + /// An integer representing the anonymous user id with a default value of 65534. + /// Anon_uid may only be set with squashMode of ROOT_SQUASH. An error will be returned + /// if this field is specified for other squashMode settings. + /// + [Input("anonUid")] + public Input? AnonUid { get; set; } + + [Input("ipRanges")] + private InputList? _ipRanges; + + /// + /// List of either IPv4 addresses, or ranges in CIDR notation which may mount the file share. + /// Overlapping IP ranges are not allowed, both within and across NfsExportOptions. An error will be returned. + /// The limit is 64 IP ranges/addresses for each FileShareConfig among all NfsExportOptions. + /// + public InputList IpRanges + { + get => _ipRanges ?? (_ipRanges = new InputList()); + set => _ipRanges = value; + } + + /// + /// Either NO_ROOT_SQUASH, for allowing root access on the exported directory, or ROOT_SQUASH, + /// for not allowing root access. The default is NO_ROOT_SQUASH. + /// + [Input("squashMode")] + public Input? SquashMode { get; set; } + + public InstanceFileSharesNfsExportOptionGetArgs() + { + } + } +} diff --git a/sdk/dotnet/Filestore/Outputs/InstanceFileShares.cs b/sdk/dotnet/Filestore/Outputs/InstanceFileShares.cs index bca221b230..c717ead55f 100644 --- a/sdk/dotnet/Filestore/Outputs/InstanceFileShares.cs +++ b/sdk/dotnet/Filestore/Outputs/InstanceFileShares.cs @@ -22,15 +22,19 @@ public sealed class InstanceFileShares /// The name of the fileshare (16 characters or less) /// public readonly string Name; + public readonly ImmutableArray NfsExportOptions; [OutputConstructor] private InstanceFileShares( int capacityGb, - string name) + string name, + + ImmutableArray nfsExportOptions) { CapacityGb = capacityGb; Name = name; + NfsExportOptions = nfsExportOptions; } } } diff --git a/sdk/dotnet/Filestore/Outputs/InstanceFileSharesNfsExportOption.cs b/sdk/dotnet/Filestore/Outputs/InstanceFileSharesNfsExportOption.cs new file mode 100644 index 0000000000..2e67b33a01 --- /dev/null +++ b/sdk/dotnet/Filestore/Outputs/InstanceFileSharesNfsExportOption.cs @@ -0,0 +1,64 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Filestore.Outputs +{ + + [OutputType] + public sealed class InstanceFileSharesNfsExportOption + { + /// + /// Either READ_ONLY, for allowing only read requests on the exported directory, + /// or READ_WRITE, for allowing both read and write requests. The default is READ_WRITE. + /// + public readonly string? AccessMode; + /// + /// An integer representing the anonymous group id with a default value of 65534. + /// Anon_gid may only be set with squashMode of ROOT_SQUASH. An error will be returned + /// if this field is specified for other squashMode settings. + /// + public readonly int? AnonGid; + /// + /// An integer representing the anonymous user id with a default value of 65534. + /// Anon_uid may only be set with squashMode of ROOT_SQUASH. An error will be returned + /// if this field is specified for other squashMode settings. + /// + public readonly int? AnonUid; + /// + /// List of either IPv4 addresses, or ranges in CIDR notation which may mount the file share. + /// Overlapping IP ranges are not allowed, both within and across NfsExportOptions. An error will be returned. + /// The limit is 64 IP ranges/addresses for each FileShareConfig among all NfsExportOptions. + /// + public readonly ImmutableArray IpRanges; + /// + /// Either NO_ROOT_SQUASH, for allowing root access on the exported directory, or ROOT_SQUASH, + /// for not allowing root access. The default is NO_ROOT_SQUASH. + /// + public readonly string? SquashMode; + + [OutputConstructor] + private InstanceFileSharesNfsExportOption( + string? accessMode, + + int? anonGid, + + int? anonUid, + + ImmutableArray ipRanges, + + string? squashMode) + { + AccessMode = accessMode; + AnonGid = anonGid; + AnonUid = anonUid; + IpRanges = ipRanges; + SquashMode = squashMode; + } + } +} diff --git a/sdk/dotnet/Monitoring/Inputs/MetricDescriptorLabelArgs.cs b/sdk/dotnet/Monitoring/Inputs/MetricDescriptorLabelArgs.cs new file mode 100644 index 0000000000..d6b4b0fd1d --- /dev/null +++ b/sdk/dotnet/Monitoring/Inputs/MetricDescriptorLabelArgs.cs @@ -0,0 +1,37 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Monitoring.Inputs +{ + + public sealed class MetricDescriptorLabelArgs : Pulumi.ResourceArgs + { + /// + /// A human-readable description for the label. + /// + [Input("description")] + public Input? Description { get; set; } + + /// + /// The key for this label. The key must not exceed 100 characters. The first character of the key must be an upper- or lower-case letter, the remaining characters must be letters, digits or underscores, and the key must match the regular expression [a-zA-Z][a-zA-Z0-9_]* + /// + [Input("key", required: true)] + public Input Key { get; set; } = null!; + + /// + /// The type of data that can be assigned to the label. + /// + [Input("valueType")] + public Input? ValueType { get; set; } + + public MetricDescriptorLabelArgs() + { + } + } +} diff --git a/sdk/dotnet/Monitoring/Inputs/MetricDescriptorLabelGetArgs.cs b/sdk/dotnet/Monitoring/Inputs/MetricDescriptorLabelGetArgs.cs new file mode 100644 index 0000000000..88833980b7 --- /dev/null +++ b/sdk/dotnet/Monitoring/Inputs/MetricDescriptorLabelGetArgs.cs @@ -0,0 +1,37 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Monitoring.Inputs +{ + + public sealed class MetricDescriptorLabelGetArgs : Pulumi.ResourceArgs + { + /// + /// A human-readable description for the label. + /// + [Input("description")] + public Input? Description { get; set; } + + /// + /// The key for this label. The key must not exceed 100 characters. The first character of the key must be an upper- or lower-case letter, the remaining characters must be letters, digits or underscores, and the key must match the regular expression [a-zA-Z][a-zA-Z0-9_]* + /// + [Input("key", required: true)] + public Input Key { get; set; } = null!; + + /// + /// The type of data that can be assigned to the label. + /// + [Input("valueType")] + public Input? ValueType { get; set; } + + public MetricDescriptorLabelGetArgs() + { + } + } +} diff --git a/sdk/dotnet/Monitoring/Inputs/MetricDescriptorMetadataArgs.cs b/sdk/dotnet/Monitoring/Inputs/MetricDescriptorMetadataArgs.cs new file mode 100644 index 0000000000..80606a709a --- /dev/null +++ b/sdk/dotnet/Monitoring/Inputs/MetricDescriptorMetadataArgs.cs @@ -0,0 +1,31 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Monitoring.Inputs +{ + + public sealed class MetricDescriptorMetadataArgs : Pulumi.ResourceArgs + { + /// + /// The delay of data points caused by ingestion. Data points older than this age are guaranteed to be ingested and available to be read, excluding data loss due to errors. In `[duration format](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf?&_ga=2.264881487.1507873253.1593446723-935052455.1591817775#google.protobuf.Duration)`. + /// + [Input("ingestDelay")] + public Input? IngestDelay { get; set; } + + /// + /// The sampling period of metric data points. For metrics which are written periodically, consecutive data points are stored at this time interval, excluding data loss due to errors. Metrics with a higher granularity have a smaller sampling period. In `[duration format](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf?&_ga=2.264881487.1507873253.1593446723-935052455.1591817775#google.protobuf.Duration)`. + /// + [Input("samplePeriod")] + public Input? SamplePeriod { get; set; } + + public MetricDescriptorMetadataArgs() + { + } + } +} diff --git a/sdk/dotnet/Monitoring/Inputs/MetricDescriptorMetadataGetArgs.cs b/sdk/dotnet/Monitoring/Inputs/MetricDescriptorMetadataGetArgs.cs new file mode 100644 index 0000000000..bd6f987d29 --- /dev/null +++ b/sdk/dotnet/Monitoring/Inputs/MetricDescriptorMetadataGetArgs.cs @@ -0,0 +1,31 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Monitoring.Inputs +{ + + public sealed class MetricDescriptorMetadataGetArgs : Pulumi.ResourceArgs + { + /// + /// The delay of data points caused by ingestion. Data points older than this age are guaranteed to be ingested and available to be read, excluding data loss due to errors. In `[duration format](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf?&_ga=2.264881487.1507873253.1593446723-935052455.1591817775#google.protobuf.Duration)`. + /// + [Input("ingestDelay")] + public Input? IngestDelay { get; set; } + + /// + /// The sampling period of metric data points. For metrics which are written periodically, consecutive data points are stored at this time interval, excluding data loss due to errors. Metrics with a higher granularity have a smaller sampling period. In `[duration format](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf?&_ga=2.264881487.1507873253.1593446723-935052455.1591817775#google.protobuf.Duration)`. + /// + [Input("samplePeriod")] + public Input? SamplePeriod { get; set; } + + public MetricDescriptorMetadataGetArgs() + { + } + } +} diff --git a/sdk/dotnet/Monitoring/MetricDescriptor.cs b/sdk/dotnet/Monitoring/MetricDescriptor.cs new file mode 100644 index 0000000000..64875de148 --- /dev/null +++ b/sdk/dotnet/Monitoring/MetricDescriptor.cs @@ -0,0 +1,361 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Monitoring +{ + /// + /// Defines a metric type and its schema. Once a metric descriptor is created, deleting or altering it stops data collection and makes the metric type's existing data unusable. + /// + /// To get more information about MetricDescriptor, see: + /// + /// * [API documentation](https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.metricDescriptors) + /// * How-to Guides + /// * [Official Documentation](https://cloud.google.com/monitoring/custom-metrics/) + /// + /// ## Example Usage + /// + public partial class MetricDescriptor : Pulumi.CustomResource + { + /// + /// A human-readable description for the label. + /// + [Output("description")] + public Output Description { get; private set; } = null!; + + /// + /// A concise name for the metric, which can be displayed in user interfaces. Use sentence case without an ending period, for example "Request count". + /// + [Output("displayName")] + public Output DisplayName { get; private set; } = null!; + + /// + /// The set of labels that can be used to describe a specific instance of this metric type. In order to delete a label, the entire resource must be deleted, then created with the desired labels. Structure is documented below. + /// + [Output("labels")] + public Output> Labels { get; private set; } = null!; + + /// + /// The launch stage of the metric definition. + /// + [Output("launchStage")] + public Output LaunchStage { get; private set; } = null!; + + /// + /// Metadata which can be used to guide usage of the metric. Structure is documented below. + /// + [Output("metadata")] + public Output Metadata { get; private set; } = null!; + + /// + /// Whether the metric records instantaneous values, changes to a value, etc. Some combinations of metricKind and valueType might not be supported. + /// + [Output("metricKind")] + public Output MetricKind { get; private set; } = null!; + + /// + /// If present, then a time series, which is identified partially by a metric type and a MonitoredResourceDescriptor, that + /// is associated with this metric type can only be associated with one of the monitored resource types listed here. This + /// field allows time series to be associated with the intersection of this metric type and the monitored resource types in + /// this list. + /// + [Output("monitoredResourceTypes")] + public Output> MonitoredResourceTypes { get; private set; } = null!; + + /// + /// The resource name of the metric descriptor. + /// + [Output("name")] + public Output Name { get; private set; } = null!; + + /// + /// The ID of the project in which the resource belongs. + /// If it is not provided, the provider project is used. + /// + [Output("project")] + public Output Project { get; private set; } = null!; + + /// + /// The metric type, including its DNS name prefix. The type is not URL-encoded. All service defined metrics must be prefixed with the service name, in the format of {service name}/{relative metric name}, such as cloudsql.googleapis.com/database/cpu/utilization. The relative metric name must have only upper and lower-case letters, digits, '/' and underscores '_' are allowed. Additionally, the maximum number of characters allowed for the relative_metric_name is 100. All user-defined metric types have the DNS name custom.googleapis.com, external.googleapis.com, or logging.googleapis.com/user/. + /// + [Output("type")] + public Output Type { get; private set; } = null!; + + /// + /// The units in which the metric value is reported. It is only applicable if the + /// valueType is INT64, DOUBLE, or DISTRIBUTION. The unit defines the representation of + /// the stored metric values. + /// Different systems may scale the values to be more easily displayed (so a value of + /// 0.02KBy might be displayed as 20By, and a value of 3523KBy might be displayed as + /// 3.5MBy). However, if the unit is KBy, then the value of the metric is always in + /// thousands of bytes, no matter how it may be displayed. + /// If you want a custom metric to record the exact number of CPU-seconds used by a job, + /// you can create an INT64 CUMULATIVE metric whose unit is s{CPU} (or equivalently + /// 1s{CPU} or just s). If the job uses 12,005 CPU-seconds, then the value is written as + /// 12005. + /// Alternatively, if you want a custom metric to record data in a more granular way, you + /// can create a DOUBLE CUMULATIVE metric whose unit is ks{CPU}, and then write the value + /// 12.005 (which is 12005/1000), or use Kis{CPU} and write 11.723 (which is 12005/1024). + /// The supported units are a subset of The Unified Code for Units of Measure standard. + /// More info can be found in the API documentation + /// (https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.metricDescriptors). + /// + [Output("unit")] + public Output Unit { get; private set; } = null!; + + /// + /// The type of data that can be assigned to the label. + /// + [Output("valueType")] + public Output ValueType { get; private set; } = null!; + + + /// + /// Create a MetricDescriptor resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public MetricDescriptor(string name, MetricDescriptorArgs args, CustomResourceOptions? options = null) + : base("gcp:monitoring/metricDescriptor:MetricDescriptor", name, args ?? new MetricDescriptorArgs(), MakeResourceOptions(options, "")) + { + } + + private MetricDescriptor(string name, Input id, MetricDescriptorState? state = null, CustomResourceOptions? options = null) + : base("gcp:monitoring/metricDescriptor:MetricDescriptor", name, state, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing MetricDescriptor resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// Any extra arguments used during the lookup. + /// A bag of options that control this resource's behavior + public static MetricDescriptor Get(string name, Input id, MetricDescriptorState? state = null, CustomResourceOptions? options = null) + { + return new MetricDescriptor(name, id, state, options); + } + } + + public sealed class MetricDescriptorArgs : Pulumi.ResourceArgs + { + /// + /// A human-readable description for the label. + /// + [Input("description", required: true)] + public Input Description { get; set; } = null!; + + /// + /// A concise name for the metric, which can be displayed in user interfaces. Use sentence case without an ending period, for example "Request count". + /// + [Input("displayName", required: true)] + public Input DisplayName { get; set; } = null!; + + [Input("labels")] + private InputList? _labels; + + /// + /// The set of labels that can be used to describe a specific instance of this metric type. In order to delete a label, the entire resource must be deleted, then created with the desired labels. Structure is documented below. + /// + public InputList Labels + { + get => _labels ?? (_labels = new InputList()); + set => _labels = value; + } + + /// + /// The launch stage of the metric definition. + /// + [Input("launchStage")] + public Input? LaunchStage { get; set; } + + /// + /// Metadata which can be used to guide usage of the metric. Structure is documented below. + /// + [Input("metadata")] + public Input? Metadata { get; set; } + + /// + /// Whether the metric records instantaneous values, changes to a value, etc. Some combinations of metricKind and valueType might not be supported. + /// + [Input("metricKind", required: true)] + public Input MetricKind { get; set; } = null!; + + /// + /// The ID of the project in which the resource belongs. + /// If it is not provided, the provider project is used. + /// + [Input("project")] + public Input? Project { get; set; } + + /// + /// The metric type, including its DNS name prefix. The type is not URL-encoded. All service defined metrics must be prefixed with the service name, in the format of {service name}/{relative metric name}, such as cloudsql.googleapis.com/database/cpu/utilization. The relative metric name must have only upper and lower-case letters, digits, '/' and underscores '_' are allowed. Additionally, the maximum number of characters allowed for the relative_metric_name is 100. All user-defined metric types have the DNS name custom.googleapis.com, external.googleapis.com, or logging.googleapis.com/user/. + /// + [Input("type", required: true)] + public Input Type { get; set; } = null!; + + /// + /// The units in which the metric value is reported. It is only applicable if the + /// valueType is INT64, DOUBLE, or DISTRIBUTION. The unit defines the representation of + /// the stored metric values. + /// Different systems may scale the values to be more easily displayed (so a value of + /// 0.02KBy might be displayed as 20By, and a value of 3523KBy might be displayed as + /// 3.5MBy). However, if the unit is KBy, then the value of the metric is always in + /// thousands of bytes, no matter how it may be displayed. + /// If you want a custom metric to record the exact number of CPU-seconds used by a job, + /// you can create an INT64 CUMULATIVE metric whose unit is s{CPU} (or equivalently + /// 1s{CPU} or just s). If the job uses 12,005 CPU-seconds, then the value is written as + /// 12005. + /// Alternatively, if you want a custom metric to record data in a more granular way, you + /// can create a DOUBLE CUMULATIVE metric whose unit is ks{CPU}, and then write the value + /// 12.005 (which is 12005/1000), or use Kis{CPU} and write 11.723 (which is 12005/1024). + /// The supported units are a subset of The Unified Code for Units of Measure standard. + /// More info can be found in the API documentation + /// (https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.metricDescriptors). + /// + [Input("unit")] + public Input? Unit { get; set; } + + /// + /// The type of data that can be assigned to the label. + /// + [Input("valueType", required: true)] + public Input ValueType { get; set; } = null!; + + public MetricDescriptorArgs() + { + } + } + + public sealed class MetricDescriptorState : Pulumi.ResourceArgs + { + /// + /// A human-readable description for the label. + /// + [Input("description")] + public Input? Description { get; set; } + + /// + /// A concise name for the metric, which can be displayed in user interfaces. Use sentence case without an ending period, for example "Request count". + /// + [Input("displayName")] + public Input? DisplayName { get; set; } + + [Input("labels")] + private InputList? _labels; + + /// + /// The set of labels that can be used to describe a specific instance of this metric type. In order to delete a label, the entire resource must be deleted, then created with the desired labels. Structure is documented below. + /// + public InputList Labels + { + get => _labels ?? (_labels = new InputList()); + set => _labels = value; + } + + /// + /// The launch stage of the metric definition. + /// + [Input("launchStage")] + public Input? LaunchStage { get; set; } + + /// + /// Metadata which can be used to guide usage of the metric. Structure is documented below. + /// + [Input("metadata")] + public Input? Metadata { get; set; } + + /// + /// Whether the metric records instantaneous values, changes to a value, etc. Some combinations of metricKind and valueType might not be supported. + /// + [Input("metricKind")] + public Input? MetricKind { get; set; } + + [Input("monitoredResourceTypes")] + private InputList? _monitoredResourceTypes; + + /// + /// If present, then a time series, which is identified partially by a metric type and a MonitoredResourceDescriptor, that + /// is associated with this metric type can only be associated with one of the monitored resource types listed here. This + /// field allows time series to be associated with the intersection of this metric type and the monitored resource types in + /// this list. + /// + public InputList MonitoredResourceTypes + { + get => _monitoredResourceTypes ?? (_monitoredResourceTypes = new InputList()); + set => _monitoredResourceTypes = value; + } + + /// + /// The resource name of the metric descriptor. + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// The ID of the project in which the resource belongs. + /// If it is not provided, the provider project is used. + /// + [Input("project")] + public Input? Project { get; set; } + + /// + /// The metric type, including its DNS name prefix. The type is not URL-encoded. All service defined metrics must be prefixed with the service name, in the format of {service name}/{relative metric name}, such as cloudsql.googleapis.com/database/cpu/utilization. The relative metric name must have only upper and lower-case letters, digits, '/' and underscores '_' are allowed. Additionally, the maximum number of characters allowed for the relative_metric_name is 100. All user-defined metric types have the DNS name custom.googleapis.com, external.googleapis.com, or logging.googleapis.com/user/. + /// + [Input("type")] + public Input? Type { get; set; } + + /// + /// The units in which the metric value is reported. It is only applicable if the + /// valueType is INT64, DOUBLE, or DISTRIBUTION. The unit defines the representation of + /// the stored metric values. + /// Different systems may scale the values to be more easily displayed (so a value of + /// 0.02KBy might be displayed as 20By, and a value of 3523KBy might be displayed as + /// 3.5MBy). However, if the unit is KBy, then the value of the metric is always in + /// thousands of bytes, no matter how it may be displayed. + /// If you want a custom metric to record the exact number of CPU-seconds used by a job, + /// you can create an INT64 CUMULATIVE metric whose unit is s{CPU} (or equivalently + /// 1s{CPU} or just s). If the job uses 12,005 CPU-seconds, then the value is written as + /// 12005. + /// Alternatively, if you want a custom metric to record data in a more granular way, you + /// can create a DOUBLE CUMULATIVE metric whose unit is ks{CPU}, and then write the value + /// 12.005 (which is 12005/1000), or use Kis{CPU} and write 11.723 (which is 12005/1024). + /// The supported units are a subset of The Unified Code for Units of Measure standard. + /// More info can be found in the API documentation + /// (https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.metricDescriptors). + /// + [Input("unit")] + public Input? Unit { get; set; } + + /// + /// The type of data that can be assigned to the label. + /// + [Input("valueType")] + public Input? ValueType { get; set; } + + public MetricDescriptorState() + { + } + } +} diff --git a/sdk/dotnet/Monitoring/Outputs/MetricDescriptorLabel.cs b/sdk/dotnet/Monitoring/Outputs/MetricDescriptorLabel.cs new file mode 100644 index 0000000000..a8cbbc6028 --- /dev/null +++ b/sdk/dotnet/Monitoring/Outputs/MetricDescriptorLabel.cs @@ -0,0 +1,42 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Monitoring.Outputs +{ + + [OutputType] + public sealed class MetricDescriptorLabel + { + /// + /// A human-readable description for the label. + /// + public readonly string? Description; + /// + /// The key for this label. The key must not exceed 100 characters. The first character of the key must be an upper- or lower-case letter, the remaining characters must be letters, digits or underscores, and the key must match the regular expression [a-zA-Z][a-zA-Z0-9_]* + /// + public readonly string Key; + /// + /// The type of data that can be assigned to the label. + /// + public readonly string? ValueType; + + [OutputConstructor] + private MetricDescriptorLabel( + string? description, + + string key, + + string? valueType) + { + Description = description; + Key = key; + ValueType = valueType; + } + } +} diff --git a/sdk/dotnet/Monitoring/Outputs/MetricDescriptorMetadata.cs b/sdk/dotnet/Monitoring/Outputs/MetricDescriptorMetadata.cs new file mode 100644 index 0000000000..3aa84ee406 --- /dev/null +++ b/sdk/dotnet/Monitoring/Outputs/MetricDescriptorMetadata.cs @@ -0,0 +1,35 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Monitoring.Outputs +{ + + [OutputType] + public sealed class MetricDescriptorMetadata + { + /// + /// The delay of data points caused by ingestion. Data points older than this age are guaranteed to be ingested and available to be read, excluding data loss due to errors. In `[duration format](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf?&_ga=2.264881487.1507873253.1593446723-935052455.1591817775#google.protobuf.Duration)`. + /// + public readonly string? IngestDelay; + /// + /// The sampling period of metric data points. For metrics which are written periodically, consecutive data points are stored at this time interval, excluding data loss due to errors. Metrics with a higher granularity have a smaller sampling period. In `[duration format](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf?&_ga=2.264881487.1507873253.1593446723-935052455.1591817775#google.protobuf.Duration)`. + /// + public readonly string? SamplePeriod; + + [OutputConstructor] + private MetricDescriptorMetadata( + string? ingestDelay, + + string? samplePeriod) + { + IngestDelay = ingestDelay; + SamplePeriod = samplePeriod; + } + } +} diff --git a/sdk/dotnet/Organizations/Folder.cs b/sdk/dotnet/Organizations/Folder.cs index b923ab0158..c2439038db 100644 --- a/sdk/dotnet/Organizations/Folder.cs +++ b/sdk/dotnet/Organizations/Folder.cs @@ -40,6 +40,12 @@ public partial class Folder : Pulumi.CustomResource [Output("displayName")] public Output DisplayName { get; private set; } = null!; + /// + /// The folder id from the name "folders/{folder_id}" + /// + [Output("folderId")] + public Output FolderId { get; private set; } = null!; + /// /// The lifecycle state of the folder such as `ACTIVE` or `DELETE_REQUESTED`. /// @@ -140,6 +146,12 @@ public sealed class FolderState : Pulumi.ResourceArgs [Input("displayName")] public Input? DisplayName { get; set; } + /// + /// The folder id from the name "folders/{folder_id}" + /// + [Input("folderId")] + public Input? FolderId { get; set; } + /// /// The lifecycle state of the folder such as `ACTIVE` or `DELETE_REQUESTED`. /// diff --git a/sdk/dotnet/Organizations/GetFolder.cs b/sdk/dotnet/Organizations/GetFolder.cs index 9095c64104..aed6feb9e9 100644 --- a/sdk/dotnet/Organizations/GetFolder.cs +++ b/sdk/dotnet/Organizations/GetFolder.cs @@ -51,6 +51,7 @@ public sealed class GetFolderResult /// public readonly string DisplayName; public readonly string Folder; + public readonly string FolderId; /// /// The provider-assigned unique ID for this managed resource. /// @@ -81,6 +82,8 @@ private GetFolderResult( string folder, + string folderId, + string id, string lifecycleState, @@ -96,6 +99,7 @@ private GetFolderResult( CreateTime = createTime; DisplayName = displayName; Folder = folder; + FolderId = folderId; Id = id; LifecycleState = lifecycleState; LookupOrganization = lookupOrganization; diff --git a/sdk/dotnet/OsConfig/GuestPolicies.cs b/sdk/dotnet/OsConfig/GuestPolicies.cs new file mode 100644 index 0000000000..e169b4973a --- /dev/null +++ b/sdk/dotnet/OsConfig/GuestPolicies.cs @@ -0,0 +1,339 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.OsConfig +{ + public partial class GuestPolicies : Pulumi.CustomResource + { + /// + /// Specifies the VM instances that are assigned to this policy. This allows you to target sets + /// or groups of VM instances by different parameters such as labels, names, OS, or zones. + /// If left empty, all VM instances underneath this policy are targeted. + /// At the same level in the resource hierarchy (that is within a project), the service prevents + /// the creation of multiple policies that conflict with each other. + /// For more information, see how the service + /// [handles assignment conflicts](https://cloud.google.com/compute/docs/os-config-management/create-guest-policy#handle-conflicts). Structure is documented below. + /// + [Output("assignment")] + public Output Assignment { get; private set; } = null!; + + /// + /// Time this guest policy was created. A timestamp in RFC3339 UTC "Zulu" format, accurate to nanoseconds. Example: + /// "2014-10-02T15:01:23.045123456Z". + /// + [Output("createTime")] + public Output CreateTime { get; private set; } = null!; + + /// + /// Description of the guest policy. Length of the description is limited to 1024 characters. + /// + [Output("description")] + public Output Description { get; private set; } = null!; + + /// + /// The etag for this guest policy. If this is provided on update, it must match the server's etag. + /// + [Output("etag")] + public Output Etag { get; private set; } = null!; + + /// + /// The logical name of the guest policy in the project with the following restrictions: + /// * Must contain only lowercase letters, numbers, and hyphens. + /// * Must start with a letter. + /// * Must be between 1-63 characters. + /// * Must end with a number or a letter. + /// * Must be unique within the project. + /// + [Output("guestPolicyId")] + public Output GuestPolicyId { get; private set; } = null!; + + /// + /// Unique identifier for the recipe. Only one recipe with a given name is installed on an instance. + /// Names are also used to identify resources which helps to determine whether guest policies have conflicts. + /// This means that requests to create multiple recipes with the same name and version are rejected since they + /// could potentially have conflicting assignments. + /// + [Output("name")] + public Output Name { get; private set; } = null!; + + /// + /// A list of package repositories to configure on the VM instance. + /// This is done before any other configs are applied so they can use these repos. + /// Package repositories are only configured if the corresponding package manager(s) are available. Structure is documented below. + /// + [Output("packageRepositories")] + public Output> PackageRepositories { get; private set; } = null!; + + /// + /// The software packages to be managed by this policy. Structure is documented below. + /// + [Output("packages")] + public Output> Packages { get; private set; } = null!; + + /// + /// The ID of the project in which the resource belongs. + /// If it is not provided, the provider project is used. + /// + [Output("project")] + public Output Project { get; private set; } = null!; + + /// + /// A list of Recipes to install on the VM instance. Structure is documented below. + /// + [Output("recipes")] + public Output> Recipes { get; private set; } = null!; + + /// + /// Last time this guest policy was updated. A timestamp in RFC3339 UTC "Zulu" format, accurate to nanoseconds. Example: + /// "2014-10-02T15:01:23.045123456Z". + /// + [Output("updateTime")] + public Output UpdateTime { get; private set; } = null!; + + + /// + /// Create a GuestPolicies resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public GuestPolicies(string name, GuestPoliciesArgs args, CustomResourceOptions? options = null) + : base("gcp:osconfig/guestPolicies:GuestPolicies", name, args ?? new GuestPoliciesArgs(), MakeResourceOptions(options, "")) + { + } + + private GuestPolicies(string name, Input id, GuestPoliciesState? state = null, CustomResourceOptions? options = null) + : base("gcp:osconfig/guestPolicies:GuestPolicies", name, state, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing GuestPolicies resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// Any extra arguments used during the lookup. + /// A bag of options that control this resource's behavior + public static GuestPolicies Get(string name, Input id, GuestPoliciesState? state = null, CustomResourceOptions? options = null) + { + return new GuestPolicies(name, id, state, options); + } + } + + public sealed class GuestPoliciesArgs : Pulumi.ResourceArgs + { + /// + /// Specifies the VM instances that are assigned to this policy. This allows you to target sets + /// or groups of VM instances by different parameters such as labels, names, OS, or zones. + /// If left empty, all VM instances underneath this policy are targeted. + /// At the same level in the resource hierarchy (that is within a project), the service prevents + /// the creation of multiple policies that conflict with each other. + /// For more information, see how the service + /// [handles assignment conflicts](https://cloud.google.com/compute/docs/os-config-management/create-guest-policy#handle-conflicts). Structure is documented below. + /// + [Input("assignment", required: true)] + public Input Assignment { get; set; } = null!; + + /// + /// Description of the guest policy. Length of the description is limited to 1024 characters. + /// + [Input("description")] + public Input? Description { get; set; } + + /// + /// The etag for this guest policy. If this is provided on update, it must match the server's etag. + /// + [Input("etag")] + public Input? Etag { get; set; } + + /// + /// The logical name of the guest policy in the project with the following restrictions: + /// * Must contain only lowercase letters, numbers, and hyphens. + /// * Must start with a letter. + /// * Must be between 1-63 characters. + /// * Must end with a number or a letter. + /// * Must be unique within the project. + /// + [Input("guestPolicyId", required: true)] + public Input GuestPolicyId { get; set; } = null!; + + [Input("packageRepositories")] + private InputList? _packageRepositories; + + /// + /// A list of package repositories to configure on the VM instance. + /// This is done before any other configs are applied so they can use these repos. + /// Package repositories are only configured if the corresponding package manager(s) are available. Structure is documented below. + /// + public InputList PackageRepositories + { + get => _packageRepositories ?? (_packageRepositories = new InputList()); + set => _packageRepositories = value; + } + + [Input("packages")] + private InputList? _packages; + + /// + /// The software packages to be managed by this policy. Structure is documented below. + /// + public InputList Packages + { + get => _packages ?? (_packages = new InputList()); + set => _packages = value; + } + + /// + /// The ID of the project in which the resource belongs. + /// If it is not provided, the provider project is used. + /// + [Input("project")] + public Input? Project { get; set; } + + [Input("recipes")] + private InputList? _recipes; + + /// + /// A list of Recipes to install on the VM instance. Structure is documented below. + /// + public InputList Recipes + { + get => _recipes ?? (_recipes = new InputList()); + set => _recipes = value; + } + + public GuestPoliciesArgs() + { + } + } + + public sealed class GuestPoliciesState : Pulumi.ResourceArgs + { + /// + /// Specifies the VM instances that are assigned to this policy. This allows you to target sets + /// or groups of VM instances by different parameters such as labels, names, OS, or zones. + /// If left empty, all VM instances underneath this policy are targeted. + /// At the same level in the resource hierarchy (that is within a project), the service prevents + /// the creation of multiple policies that conflict with each other. + /// For more information, see how the service + /// [handles assignment conflicts](https://cloud.google.com/compute/docs/os-config-management/create-guest-policy#handle-conflicts). Structure is documented below. + /// + [Input("assignment")] + public Input? Assignment { get; set; } + + /// + /// Time this guest policy was created. A timestamp in RFC3339 UTC "Zulu" format, accurate to nanoseconds. Example: + /// "2014-10-02T15:01:23.045123456Z". + /// + [Input("createTime")] + public Input? CreateTime { get; set; } + + /// + /// Description of the guest policy. Length of the description is limited to 1024 characters. + /// + [Input("description")] + public Input? Description { get; set; } + + /// + /// The etag for this guest policy. If this is provided on update, it must match the server's etag. + /// + [Input("etag")] + public Input? Etag { get; set; } + + /// + /// The logical name of the guest policy in the project with the following restrictions: + /// * Must contain only lowercase letters, numbers, and hyphens. + /// * Must start with a letter. + /// * Must be between 1-63 characters. + /// * Must end with a number or a letter. + /// * Must be unique within the project. + /// + [Input("guestPolicyId")] + public Input? GuestPolicyId { get; set; } + + /// + /// Unique identifier for the recipe. Only one recipe with a given name is installed on an instance. + /// Names are also used to identify resources which helps to determine whether guest policies have conflicts. + /// This means that requests to create multiple recipes with the same name and version are rejected since they + /// could potentially have conflicting assignments. + /// + [Input("name")] + public Input? Name { get; set; } + + [Input("packageRepositories")] + private InputList? _packageRepositories; + + /// + /// A list of package repositories to configure on the VM instance. + /// This is done before any other configs are applied so they can use these repos. + /// Package repositories are only configured if the corresponding package manager(s) are available. Structure is documented below. + /// + public InputList PackageRepositories + { + get => _packageRepositories ?? (_packageRepositories = new InputList()); + set => _packageRepositories = value; + } + + [Input("packages")] + private InputList? _packages; + + /// + /// The software packages to be managed by this policy. Structure is documented below. + /// + public InputList Packages + { + get => _packages ?? (_packages = new InputList()); + set => _packages = value; + } + + /// + /// The ID of the project in which the resource belongs. + /// If it is not provided, the provider project is used. + /// + [Input("project")] + public Input? Project { get; set; } + + [Input("recipes")] + private InputList? _recipes; + + /// + /// A list of Recipes to install on the VM instance. Structure is documented below. + /// + public InputList Recipes + { + get => _recipes ?? (_recipes = new InputList()); + set => _recipes = value; + } + + /// + /// Last time this guest policy was updated. A timestamp in RFC3339 UTC "Zulu" format, accurate to nanoseconds. Example: + /// "2014-10-02T15:01:23.045123456Z". + /// + [Input("updateTime")] + public Input? UpdateTime { get; set; } + + public GuestPoliciesState() + { + } + } +} diff --git a/sdk/dotnet/OsConfig/Inputs/GuestPoliciesAssignmentArgs.cs b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesAssignmentArgs.cs new file mode 100644 index 0000000000..ce8ed470d2 --- /dev/null +++ b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesAssignmentArgs.cs @@ -0,0 +1,89 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.OsConfig.Inputs +{ + + public sealed class GuestPoliciesAssignmentArgs : Pulumi.ResourceArgs + { + [Input("groupLabels")] + private InputList? _groupLabels; + + /// + /// Targets instances matching at least one of these label sets. This allows an assignment to target disparate groups, + /// for example "env=prod or env=staging". Structure is documented below. + /// + public InputList GroupLabels + { + get => _groupLabels ?? (_groupLabels = new InputList()); + set => _groupLabels = value; + } + + [Input("instanceNamePrefixes")] + private InputList? _instanceNamePrefixes; + + /// + /// Targets VM instances whose name starts with one of these prefixes. + /// Like labels, this is another way to group VM instances when targeting configs, + /// for example prefix="prod-". + /// Only supported for project-level policies. + /// + public InputList InstanceNamePrefixes + { + get => _instanceNamePrefixes ?? (_instanceNamePrefixes = new InputList()); + set => _instanceNamePrefixes = value; + } + + [Input("instances")] + private InputList? _instances; + + /// + /// Targets any of the instances specified. Instances are specified by their URI in the form + /// zones/[ZONE]/instances/[INSTANCE_NAME]. + /// Instance targeting is uncommon and is supported to facilitate the management of changes + /// by the instance or to target specific VM instances for development and testing. + /// Only supported for project-level policies and must reference instances within this project. + /// + public InputList Instances + { + get => _instances ?? (_instances = new InputList()); + set => _instances = value; + } + + [Input("osTypes")] + private InputList? _osTypes; + + /// + /// Targets VM instances matching at least one of the following OS types. + /// VM instances must match all supplied criteria for a given OsType to be included. Structure is documented below. + /// + public InputList OsTypes + { + get => _osTypes ?? (_osTypes = new InputList()); + set => _osTypes = value; + } + + [Input("zones")] + private InputList? _zones; + + /// + /// Targets instances in any of these zones. Leave empty to target instances in any zone. + /// Zonal targeting is uncommon and is supported to facilitate the management of changes by zone. + /// + public InputList Zones + { + get => _zones ?? (_zones = new InputList()); + set => _zones = value; + } + + public GuestPoliciesAssignmentArgs() + { + } + } +} diff --git a/sdk/dotnet/OsConfig/Inputs/GuestPoliciesAssignmentGetArgs.cs b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesAssignmentGetArgs.cs new file mode 100644 index 0000000000..373c85ca70 --- /dev/null +++ b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesAssignmentGetArgs.cs @@ -0,0 +1,89 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.OsConfig.Inputs +{ + + public sealed class GuestPoliciesAssignmentGetArgs : Pulumi.ResourceArgs + { + [Input("groupLabels")] + private InputList? _groupLabels; + + /// + /// Targets instances matching at least one of these label sets. This allows an assignment to target disparate groups, + /// for example "env=prod or env=staging". Structure is documented below. + /// + public InputList GroupLabels + { + get => _groupLabels ?? (_groupLabels = new InputList()); + set => _groupLabels = value; + } + + [Input("instanceNamePrefixes")] + private InputList? _instanceNamePrefixes; + + /// + /// Targets VM instances whose name starts with one of these prefixes. + /// Like labels, this is another way to group VM instances when targeting configs, + /// for example prefix="prod-". + /// Only supported for project-level policies. + /// + public InputList InstanceNamePrefixes + { + get => _instanceNamePrefixes ?? (_instanceNamePrefixes = new InputList()); + set => _instanceNamePrefixes = value; + } + + [Input("instances")] + private InputList? _instances; + + /// + /// Targets any of the instances specified. Instances are specified by their URI in the form + /// zones/[ZONE]/instances/[INSTANCE_NAME]. + /// Instance targeting is uncommon and is supported to facilitate the management of changes + /// by the instance or to target specific VM instances for development and testing. + /// Only supported for project-level policies and must reference instances within this project. + /// + public InputList Instances + { + get => _instances ?? (_instances = new InputList()); + set => _instances = value; + } + + [Input("osTypes")] + private InputList? _osTypes; + + /// + /// Targets VM instances matching at least one of the following OS types. + /// VM instances must match all supplied criteria for a given OsType to be included. Structure is documented below. + /// + public InputList OsTypes + { + get => _osTypes ?? (_osTypes = new InputList()); + set => _osTypes = value; + } + + [Input("zones")] + private InputList? _zones; + + /// + /// Targets instances in any of these zones. Leave empty to target instances in any zone. + /// Zonal targeting is uncommon and is supported to facilitate the management of changes by zone. + /// + public InputList Zones + { + get => _zones ?? (_zones = new InputList()); + set => _zones = value; + } + + public GuestPoliciesAssignmentGetArgs() + { + } + } +} diff --git a/sdk/dotnet/OsConfig/Inputs/GuestPoliciesAssignmentGroupLabelArgs.cs b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesAssignmentGroupLabelArgs.cs new file mode 100644 index 0000000000..aa1d2d213c --- /dev/null +++ b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesAssignmentGroupLabelArgs.cs @@ -0,0 +1,31 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.OsConfig.Inputs +{ + + public sealed class GuestPoliciesAssignmentGroupLabelArgs : Pulumi.ResourceArgs + { + [Input("labels", required: true)] + private InputMap? _labels; + + /// + /// Google Compute Engine instance labels that must be present for an instance to be included in this assignment group. + /// + public InputMap Labels + { + get => _labels ?? (_labels = new InputMap()); + set => _labels = value; + } + + public GuestPoliciesAssignmentGroupLabelArgs() + { + } + } +} diff --git a/sdk/dotnet/OsConfig/Inputs/GuestPoliciesAssignmentGroupLabelGetArgs.cs b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesAssignmentGroupLabelGetArgs.cs new file mode 100644 index 0000000000..fadb591d7e --- /dev/null +++ b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesAssignmentGroupLabelGetArgs.cs @@ -0,0 +1,31 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.OsConfig.Inputs +{ + + public sealed class GuestPoliciesAssignmentGroupLabelGetArgs : Pulumi.ResourceArgs + { + [Input("labels", required: true)] + private InputMap? _labels; + + /// + /// Google Compute Engine instance labels that must be present for an instance to be included in this assignment group. + /// + public InputMap Labels + { + get => _labels ?? (_labels = new InputMap()); + set => _labels = value; + } + + public GuestPoliciesAssignmentGroupLabelGetArgs() + { + } + } +} diff --git a/sdk/dotnet/OsConfig/Inputs/GuestPoliciesAssignmentOsTypeArgs.cs b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesAssignmentOsTypeArgs.cs new file mode 100644 index 0000000000..4e091a9528 --- /dev/null +++ b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesAssignmentOsTypeArgs.cs @@ -0,0 +1,37 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.OsConfig.Inputs +{ + + public sealed class GuestPoliciesAssignmentOsTypeArgs : Pulumi.ResourceArgs + { + /// + /// Targets VM instances with OS Inventory enabled and having the following OS architecture. + /// + [Input("osArchitecture")] + public Input? OsArchitecture { get; set; } + + /// + /// Targets VM instances with OS Inventory enabled and having the following OS short name, for example "debian" or "windows". + /// + [Input("osShortName")] + public Input? OsShortName { get; set; } + + /// + /// Targets VM instances with OS Inventory enabled and having the following following OS version. + /// + [Input("osVersion")] + public Input? OsVersion { get; set; } + + public GuestPoliciesAssignmentOsTypeArgs() + { + } + } +} diff --git a/sdk/dotnet/OsConfig/Inputs/GuestPoliciesAssignmentOsTypeGetArgs.cs b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesAssignmentOsTypeGetArgs.cs new file mode 100644 index 0000000000..15b190b088 --- /dev/null +++ b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesAssignmentOsTypeGetArgs.cs @@ -0,0 +1,37 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.OsConfig.Inputs +{ + + public sealed class GuestPoliciesAssignmentOsTypeGetArgs : Pulumi.ResourceArgs + { + /// + /// Targets VM instances with OS Inventory enabled and having the following OS architecture. + /// + [Input("osArchitecture")] + public Input? OsArchitecture { get; set; } + + /// + /// Targets VM instances with OS Inventory enabled and having the following OS short name, for example "debian" or "windows". + /// + [Input("osShortName")] + public Input? OsShortName { get; set; } + + /// + /// Targets VM instances with OS Inventory enabled and having the following following OS version. + /// + [Input("osVersion")] + public Input? OsVersion { get; set; } + + public GuestPoliciesAssignmentOsTypeGetArgs() + { + } + } +} diff --git a/sdk/dotnet/OsConfig/Inputs/GuestPoliciesPackageArgs.cs b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesPackageArgs.cs new file mode 100644 index 0000000000..3e096d6159 --- /dev/null +++ b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesPackageArgs.cs @@ -0,0 +1,48 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.OsConfig.Inputs +{ + + public sealed class GuestPoliciesPackageArgs : Pulumi.ResourceArgs + { + /// + /// Default is INSTALLED. The desired state the agent should maintain for this recipe. + /// INSTALLED: The software recipe is installed on the instance but won't be updated to new versions. + /// INSTALLED_KEEP_UPDATED: The software recipe is installed on the instance. The recipe is updated to a higher version, + /// if a higher version of the recipe is assigned to this instance. + /// REMOVE: Remove is unsupported for software recipes and attempts to create or update a recipe to the REMOVE state is rejected. + /// + [Input("desiredState")] + public Input? DesiredState { get; set; } + + /// + /// Type of package manager that can be used to install this package. If a system does not have the package manager, + /// the package is not installed or removed no error message is returned. By default, or if you specify ANY, + /// the agent attempts to install and remove this package using the default package manager. + /// This is useful when creating a policy that applies to different types of systems. + /// The default behavior is ANY. + /// + [Input("manager")] + public Input? Manager { get; set; } + + /// + /// Unique identifier for the recipe. Only one recipe with a given name is installed on an instance. + /// Names are also used to identify resources which helps to determine whether guest policies have conflicts. + /// This means that requests to create multiple recipes with the same name and version are rejected since they + /// could potentially have conflicting assignments. + /// + [Input("name", required: true)] + public Input Name { get; set; } = null!; + + public GuestPoliciesPackageArgs() + { + } + } +} diff --git a/sdk/dotnet/OsConfig/Inputs/GuestPoliciesPackageGetArgs.cs b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesPackageGetArgs.cs new file mode 100644 index 0000000000..16a2df9286 --- /dev/null +++ b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesPackageGetArgs.cs @@ -0,0 +1,48 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.OsConfig.Inputs +{ + + public sealed class GuestPoliciesPackageGetArgs : Pulumi.ResourceArgs + { + /// + /// Default is INSTALLED. The desired state the agent should maintain for this recipe. + /// INSTALLED: The software recipe is installed on the instance but won't be updated to new versions. + /// INSTALLED_KEEP_UPDATED: The software recipe is installed on the instance. The recipe is updated to a higher version, + /// if a higher version of the recipe is assigned to this instance. + /// REMOVE: Remove is unsupported for software recipes and attempts to create or update a recipe to the REMOVE state is rejected. + /// + [Input("desiredState")] + public Input? DesiredState { get; set; } + + /// + /// Type of package manager that can be used to install this package. If a system does not have the package manager, + /// the package is not installed or removed no error message is returned. By default, or if you specify ANY, + /// the agent attempts to install and remove this package using the default package manager. + /// This is useful when creating a policy that applies to different types of systems. + /// The default behavior is ANY. + /// + [Input("manager")] + public Input? Manager { get; set; } + + /// + /// Unique identifier for the recipe. Only one recipe with a given name is installed on an instance. + /// Names are also used to identify resources which helps to determine whether guest policies have conflicts. + /// This means that requests to create multiple recipes with the same name and version are rejected since they + /// could potentially have conflicting assignments. + /// + [Input("name", required: true)] + public Input Name { get; set; } = null!; + + public GuestPoliciesPackageGetArgs() + { + } + } +} diff --git a/sdk/dotnet/OsConfig/Inputs/GuestPoliciesPackageRepositoryAptArgs.cs b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesPackageRepositoryAptArgs.cs new file mode 100644 index 0000000000..853ff6d005 --- /dev/null +++ b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesPackageRepositoryAptArgs.cs @@ -0,0 +1,56 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.OsConfig.Inputs +{ + + public sealed class GuestPoliciesPackageRepositoryAptArgs : Pulumi.ResourceArgs + { + /// + /// Type of archive files in this repository. The default behavior is DEB. + /// + [Input("archiveType")] + public Input? ArchiveType { get; set; } + + [Input("components", required: true)] + private InputList? _components; + + /// + /// List of components for this repository. Must contain at least one item. + /// + public InputList Components + { + get => _components ?? (_components = new InputList()); + set => _components = value; + } + + /// + /// Distribution of this repository. + /// + [Input("distribution", required: true)] + public Input Distribution { get; set; } = null!; + + /// + /// URI of the key file for this repository. The agent maintains a keyring at + /// /etc/apt/trusted.gpg.d/osconfig_agent_managed.gpg containing all the keys in any applied guest policy. + /// + [Input("gpgKey")] + public Input? GpgKey { get; set; } + + /// + /// URI from which to fetch the object. It should contain both the protocol and path following the format {protocol}://{location}. + /// + [Input("uri", required: true)] + public Input Uri { get; set; } = null!; + + public GuestPoliciesPackageRepositoryAptArgs() + { + } + } +} diff --git a/sdk/dotnet/OsConfig/Inputs/GuestPoliciesPackageRepositoryAptGetArgs.cs b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesPackageRepositoryAptGetArgs.cs new file mode 100644 index 0000000000..19d1b3673f --- /dev/null +++ b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesPackageRepositoryAptGetArgs.cs @@ -0,0 +1,56 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.OsConfig.Inputs +{ + + public sealed class GuestPoliciesPackageRepositoryAptGetArgs : Pulumi.ResourceArgs + { + /// + /// Type of archive files in this repository. The default behavior is DEB. + /// + [Input("archiveType")] + public Input? ArchiveType { get; set; } + + [Input("components", required: true)] + private InputList? _components; + + /// + /// List of components for this repository. Must contain at least one item. + /// + public InputList Components + { + get => _components ?? (_components = new InputList()); + set => _components = value; + } + + /// + /// Distribution of this repository. + /// + [Input("distribution", required: true)] + public Input Distribution { get; set; } = null!; + + /// + /// URI of the key file for this repository. The agent maintains a keyring at + /// /etc/apt/trusted.gpg.d/osconfig_agent_managed.gpg containing all the keys in any applied guest policy. + /// + [Input("gpgKey")] + public Input? GpgKey { get; set; } + + /// + /// URI from which to fetch the object. It should contain both the protocol and path following the format {protocol}://{location}. + /// + [Input("uri", required: true)] + public Input Uri { get; set; } = null!; + + public GuestPoliciesPackageRepositoryAptGetArgs() + { + } + } +} diff --git a/sdk/dotnet/OsConfig/Inputs/GuestPoliciesPackageRepositoryArgs.cs b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesPackageRepositoryArgs.cs new file mode 100644 index 0000000000..be085cae7a --- /dev/null +++ b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesPackageRepositoryArgs.cs @@ -0,0 +1,43 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.OsConfig.Inputs +{ + + public sealed class GuestPoliciesPackageRepositoryArgs : Pulumi.ResourceArgs + { + /// + /// An Apt Repository. Structure is documented below. + /// + [Input("apt")] + public Input? Apt { get; set; } + + /// + /// A Goo Repository. Structure is documented below. + /// + [Input("goo")] + public Input? Goo { get; set; } + + /// + /// A Yum Repository. Structure is documented below. + /// + [Input("yum")] + public Input? Yum { get; set; } + + /// + /// A Zypper Repository. Structure is documented below. + /// + [Input("zypper")] + public Input? Zypper { get; set; } + + public GuestPoliciesPackageRepositoryArgs() + { + } + } +} diff --git a/sdk/dotnet/OsConfig/Inputs/GuestPoliciesPackageRepositoryGetArgs.cs b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesPackageRepositoryGetArgs.cs new file mode 100644 index 0000000000..f19062fcc5 --- /dev/null +++ b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesPackageRepositoryGetArgs.cs @@ -0,0 +1,43 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.OsConfig.Inputs +{ + + public sealed class GuestPoliciesPackageRepositoryGetArgs : Pulumi.ResourceArgs + { + /// + /// An Apt Repository. Structure is documented below. + /// + [Input("apt")] + public Input? Apt { get; set; } + + /// + /// A Goo Repository. Structure is documented below. + /// + [Input("goo")] + public Input? Goo { get; set; } + + /// + /// A Yum Repository. Structure is documented below. + /// + [Input("yum")] + public Input? Yum { get; set; } + + /// + /// A Zypper Repository. Structure is documented below. + /// + [Input("zypper")] + public Input? Zypper { get; set; } + + public GuestPoliciesPackageRepositoryGetArgs() + { + } + } +} diff --git a/sdk/dotnet/OsConfig/Inputs/GuestPoliciesPackageRepositoryGooArgs.cs b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesPackageRepositoryGooArgs.cs new file mode 100644 index 0000000000..de6e94fb17 --- /dev/null +++ b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesPackageRepositoryGooArgs.cs @@ -0,0 +1,34 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.OsConfig.Inputs +{ + + public sealed class GuestPoliciesPackageRepositoryGooArgs : Pulumi.ResourceArgs + { + /// + /// Unique identifier for the recipe. Only one recipe with a given name is installed on an instance. + /// Names are also used to identify resources which helps to determine whether guest policies have conflicts. + /// This means that requests to create multiple recipes with the same name and version are rejected since they + /// could potentially have conflicting assignments. + /// + [Input("name", required: true)] + public Input Name { get; set; } = null!; + + /// + /// The url of the repository. + /// + [Input("url", required: true)] + public Input Url { get; set; } = null!; + + public GuestPoliciesPackageRepositoryGooArgs() + { + } + } +} diff --git a/sdk/dotnet/OsConfig/Inputs/GuestPoliciesPackageRepositoryGooGetArgs.cs b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesPackageRepositoryGooGetArgs.cs new file mode 100644 index 0000000000..ae670c29f8 --- /dev/null +++ b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesPackageRepositoryGooGetArgs.cs @@ -0,0 +1,34 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.OsConfig.Inputs +{ + + public sealed class GuestPoliciesPackageRepositoryGooGetArgs : Pulumi.ResourceArgs + { + /// + /// Unique identifier for the recipe. Only one recipe with a given name is installed on an instance. + /// Names are also used to identify resources which helps to determine whether guest policies have conflicts. + /// This means that requests to create multiple recipes with the same name and version are rejected since they + /// could potentially have conflicting assignments. + /// + [Input("name", required: true)] + public Input Name { get; set; } = null!; + + /// + /// The url of the repository. + /// + [Input("url", required: true)] + public Input Url { get; set; } = null!; + + public GuestPoliciesPackageRepositoryGooGetArgs() + { + } + } +} diff --git a/sdk/dotnet/OsConfig/Inputs/GuestPoliciesPackageRepositoryYumArgs.cs b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesPackageRepositoryYumArgs.cs new file mode 100644 index 0000000000..0e441bc891 --- /dev/null +++ b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesPackageRepositoryYumArgs.cs @@ -0,0 +1,50 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.OsConfig.Inputs +{ + + public sealed class GuestPoliciesPackageRepositoryYumArgs : Pulumi.ResourceArgs + { + /// + /// The location of the repository directory. + /// + [Input("baseUrl", required: true)] + public Input BaseUrl { get; set; } = null!; + + /// + /// The display name of the repository. + /// + [Input("displayName")] + public Input? DisplayName { get; set; } + + [Input("gpgKeys")] + private InputList? _gpgKeys; + + /// + /// URIs of GPG keys. + /// + public InputList GpgKeys + { + get => _gpgKeys ?? (_gpgKeys = new InputList()); + set => _gpgKeys = value; + } + + /// + /// Id of the artifact, which the installation and update steps of this recipe can reference. + /// Artifacts in a recipe cannot have the same id. + /// + [Input("id", required: true)] + public Input Id { get; set; } = null!; + + public GuestPoliciesPackageRepositoryYumArgs() + { + } + } +} diff --git a/sdk/dotnet/OsConfig/Inputs/GuestPoliciesPackageRepositoryYumGetArgs.cs b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesPackageRepositoryYumGetArgs.cs new file mode 100644 index 0000000000..0452e9988e --- /dev/null +++ b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesPackageRepositoryYumGetArgs.cs @@ -0,0 +1,50 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.OsConfig.Inputs +{ + + public sealed class GuestPoliciesPackageRepositoryYumGetArgs : Pulumi.ResourceArgs + { + /// + /// The location of the repository directory. + /// + [Input("baseUrl", required: true)] + public Input BaseUrl { get; set; } = null!; + + /// + /// The display name of the repository. + /// + [Input("displayName")] + public Input? DisplayName { get; set; } + + [Input("gpgKeys")] + private InputList? _gpgKeys; + + /// + /// URIs of GPG keys. + /// + public InputList GpgKeys + { + get => _gpgKeys ?? (_gpgKeys = new InputList()); + set => _gpgKeys = value; + } + + /// + /// Id of the artifact, which the installation and update steps of this recipe can reference. + /// Artifacts in a recipe cannot have the same id. + /// + [Input("id", required: true)] + public Input Id { get; set; } = null!; + + public GuestPoliciesPackageRepositoryYumGetArgs() + { + } + } +} diff --git a/sdk/dotnet/OsConfig/Inputs/GuestPoliciesPackageRepositoryZypperArgs.cs b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesPackageRepositoryZypperArgs.cs new file mode 100644 index 0000000000..3de16ff0a4 --- /dev/null +++ b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesPackageRepositoryZypperArgs.cs @@ -0,0 +1,50 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.OsConfig.Inputs +{ + + public sealed class GuestPoliciesPackageRepositoryZypperArgs : Pulumi.ResourceArgs + { + /// + /// The location of the repository directory. + /// + [Input("baseUrl", required: true)] + public Input BaseUrl { get; set; } = null!; + + /// + /// The display name of the repository. + /// + [Input("displayName")] + public Input? DisplayName { get; set; } + + [Input("gpgKeys")] + private InputList? _gpgKeys; + + /// + /// URIs of GPG keys. + /// + public InputList GpgKeys + { + get => _gpgKeys ?? (_gpgKeys = new InputList()); + set => _gpgKeys = value; + } + + /// + /// Id of the artifact, which the installation and update steps of this recipe can reference. + /// Artifacts in a recipe cannot have the same id. + /// + [Input("id", required: true)] + public Input Id { get; set; } = null!; + + public GuestPoliciesPackageRepositoryZypperArgs() + { + } + } +} diff --git a/sdk/dotnet/OsConfig/Inputs/GuestPoliciesPackageRepositoryZypperGetArgs.cs b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesPackageRepositoryZypperGetArgs.cs new file mode 100644 index 0000000000..e68b2deaaf --- /dev/null +++ b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesPackageRepositoryZypperGetArgs.cs @@ -0,0 +1,50 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.OsConfig.Inputs +{ + + public sealed class GuestPoliciesPackageRepositoryZypperGetArgs : Pulumi.ResourceArgs + { + /// + /// The location of the repository directory. + /// + [Input("baseUrl", required: true)] + public Input BaseUrl { get; set; } = null!; + + /// + /// The display name of the repository. + /// + [Input("displayName")] + public Input? DisplayName { get; set; } + + [Input("gpgKeys")] + private InputList? _gpgKeys; + + /// + /// URIs of GPG keys. + /// + public InputList GpgKeys + { + get => _gpgKeys ?? (_gpgKeys = new InputList()); + set => _gpgKeys = value; + } + + /// + /// Id of the artifact, which the installation and update steps of this recipe can reference. + /// Artifacts in a recipe cannot have the same id. + /// + [Input("id", required: true)] + public Input Id { get; set; } = null!; + + public GuestPoliciesPackageRepositoryZypperGetArgs() + { + } + } +} diff --git a/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeArgs.cs b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeArgs.cs new file mode 100644 index 0000000000..65b75fc96d --- /dev/null +++ b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeArgs.cs @@ -0,0 +1,82 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.OsConfig.Inputs +{ + + public sealed class GuestPoliciesRecipeArgs : Pulumi.ResourceArgs + { + [Input("artifacts")] + private InputList? _artifacts; + + /// + /// Resources available to be used in the steps in the recipe. Structure is documented below. + /// + public InputList Artifacts + { + get => _artifacts ?? (_artifacts = new InputList()); + set => _artifacts = value; + } + + /// + /// Default is INSTALLED. The desired state the agent should maintain for this recipe. + /// INSTALLED: The software recipe is installed on the instance but won't be updated to new versions. + /// INSTALLED_KEEP_UPDATED: The software recipe is installed on the instance. The recipe is updated to a higher version, + /// if a higher version of the recipe is assigned to this instance. + /// REMOVE: Remove is unsupported for software recipes and attempts to create or update a recipe to the REMOVE state is rejected. + /// + [Input("desiredState")] + public Input? DesiredState { get; set; } + + [Input("installSteps")] + private InputList? _installSteps; + + /// + /// Actions to be taken for installing this recipe. On failure it stops executing steps and does not attempt another installation. + /// Any steps taken (including partially completed steps) are not rolled back. Structure is documented below. + /// + public InputList InstallSteps + { + get => _installSteps ?? (_installSteps = new InputList()); + set => _installSteps = value; + } + + /// + /// Unique identifier for the recipe. Only one recipe with a given name is installed on an instance. + /// Names are also used to identify resources which helps to determine whether guest policies have conflicts. + /// This means that requests to create multiple recipes with the same name and version are rejected since they + /// could potentially have conflicting assignments. + /// + [Input("name", required: true)] + public Input Name { get; set; } = null!; + + [Input("updateSteps")] + private InputList? _updateSteps; + + /// + /// Actions to be taken for updating this recipe. On failure it stops executing steps and does not attempt another update for this recipe. + /// Any steps taken (including partially completed steps) are not rolled back. Structure is documented below. + /// + public InputList UpdateSteps + { + get => _updateSteps ?? (_updateSteps = new InputList()); + set => _updateSteps = value; + } + + /// + /// The version of this software recipe. Version can be up to 4 period separated numbers (e.g. 12.34.56.78). + /// + [Input("version")] + public Input? Version { get; set; } + + public GuestPoliciesRecipeArgs() + { + } + } +} diff --git a/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeArtifactArgs.cs b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeArtifactArgs.cs new file mode 100644 index 0000000000..8561283dc5 --- /dev/null +++ b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeArtifactArgs.cs @@ -0,0 +1,46 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.OsConfig.Inputs +{ + + public sealed class GuestPoliciesRecipeArtifactArgs : Pulumi.ResourceArgs + { + /// + /// Defaults to false. When false, recipes are subject to validations based on the artifact type: + /// Remote: A checksum must be specified, and only protocols with transport-layer security are permitted. + /// GCS: An object generation number must be specified. + /// + [Input("allowInsecure")] + public Input? AllowInsecure { get; set; } + + /// + /// A Google Cloud Storage artifact. Structure is documented below. + /// + [Input("gcs")] + public Input? Gcs { get; set; } + + /// + /// Id of the artifact, which the installation and update steps of this recipe can reference. + /// Artifacts in a recipe cannot have the same id. + /// + [Input("id", required: true)] + public Input Id { get; set; } = null!; + + /// + /// A generic remote artifact. Structure is documented below. + /// + [Input("remote")] + public Input? Remote { get; set; } + + public GuestPoliciesRecipeArtifactArgs() + { + } + } +} diff --git a/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeArtifactGcsArgs.cs b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeArtifactGcsArgs.cs new file mode 100644 index 0000000000..30c436b950 --- /dev/null +++ b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeArtifactGcsArgs.cs @@ -0,0 +1,40 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.OsConfig.Inputs +{ + + public sealed class GuestPoliciesRecipeArtifactGcsArgs : Pulumi.ResourceArgs + { + /// + /// Bucket of the Google Cloud Storage object. Given an example URL: https://storage.googleapis.com/my-bucket/foo/bar#1234567 + /// this value would be my-bucket. + /// + [Input("bucket")] + public Input? Bucket { get; set; } + + /// + /// Must be provided if allowInsecure is false. Generation number of the Google Cloud Storage object. + /// https://storage.googleapis.com/my-bucket/foo/bar#1234567 this value would be 1234567. + /// + [Input("generation")] + public Input? Generation { get; set; } + + /// + /// Name of the Google Cloud Storage object. Given an example URL: https://storage.googleapis.com/my-bucket/foo/bar#1234567 + /// this value would be foo/bar. + /// + [Input("object")] + public Input? Object { get; set; } + + public GuestPoliciesRecipeArtifactGcsArgs() + { + } + } +} diff --git a/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeArtifactGcsGetArgs.cs b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeArtifactGcsGetArgs.cs new file mode 100644 index 0000000000..d8211f4d75 --- /dev/null +++ b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeArtifactGcsGetArgs.cs @@ -0,0 +1,40 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.OsConfig.Inputs +{ + + public sealed class GuestPoliciesRecipeArtifactGcsGetArgs : Pulumi.ResourceArgs + { + /// + /// Bucket of the Google Cloud Storage object. Given an example URL: https://storage.googleapis.com/my-bucket/foo/bar#1234567 + /// this value would be my-bucket. + /// + [Input("bucket")] + public Input? Bucket { get; set; } + + /// + /// Must be provided if allowInsecure is false. Generation number of the Google Cloud Storage object. + /// https://storage.googleapis.com/my-bucket/foo/bar#1234567 this value would be 1234567. + /// + [Input("generation")] + public Input? Generation { get; set; } + + /// + /// Name of the Google Cloud Storage object. Given an example URL: https://storage.googleapis.com/my-bucket/foo/bar#1234567 + /// this value would be foo/bar. + /// + [Input("object")] + public Input? Object { get; set; } + + public GuestPoliciesRecipeArtifactGcsGetArgs() + { + } + } +} diff --git a/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeArtifactGetArgs.cs b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeArtifactGetArgs.cs new file mode 100644 index 0000000000..a315314c8d --- /dev/null +++ b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeArtifactGetArgs.cs @@ -0,0 +1,46 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.OsConfig.Inputs +{ + + public sealed class GuestPoliciesRecipeArtifactGetArgs : Pulumi.ResourceArgs + { + /// + /// Defaults to false. When false, recipes are subject to validations based on the artifact type: + /// Remote: A checksum must be specified, and only protocols with transport-layer security are permitted. + /// GCS: An object generation number must be specified. + /// + [Input("allowInsecure")] + public Input? AllowInsecure { get; set; } + + /// + /// A Google Cloud Storage artifact. Structure is documented below. + /// + [Input("gcs")] + public Input? Gcs { get; set; } + + /// + /// Id of the artifact, which the installation and update steps of this recipe can reference. + /// Artifacts in a recipe cannot have the same id. + /// + [Input("id", required: true)] + public Input Id { get; set; } = null!; + + /// + /// A generic remote artifact. Structure is documented below. + /// + [Input("remote")] + public Input? Remote { get; set; } + + public GuestPoliciesRecipeArtifactGetArgs() + { + } + } +} diff --git a/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeArtifactRemoteArgs.cs b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeArtifactRemoteArgs.cs new file mode 100644 index 0000000000..2361c512e6 --- /dev/null +++ b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeArtifactRemoteArgs.cs @@ -0,0 +1,33 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.OsConfig.Inputs +{ + + public sealed class GuestPoliciesRecipeArtifactRemoteArgs : Pulumi.ResourceArgs + { + /// + /// Must be provided if allowInsecure is false. SHA256 checksum in hex format, to compare to the checksum of the artifact. + /// If the checksum is not empty and it doesn't match the artifact then the recipe installation fails before running any + /// of the steps. + /// + [Input("checkSum")] + public Input? CheckSum { get; set; } + + /// + /// URI from which to fetch the object. It should contain both the protocol and path following the format {protocol}://{location}. + /// + [Input("uri")] + public Input? Uri { get; set; } + + public GuestPoliciesRecipeArtifactRemoteArgs() + { + } + } +} diff --git a/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeArtifactRemoteGetArgs.cs b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeArtifactRemoteGetArgs.cs new file mode 100644 index 0000000000..a9ca14e6a5 --- /dev/null +++ b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeArtifactRemoteGetArgs.cs @@ -0,0 +1,33 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.OsConfig.Inputs +{ + + public sealed class GuestPoliciesRecipeArtifactRemoteGetArgs : Pulumi.ResourceArgs + { + /// + /// Must be provided if allowInsecure is false. SHA256 checksum in hex format, to compare to the checksum of the artifact. + /// If the checksum is not empty and it doesn't match the artifact then the recipe installation fails before running any + /// of the steps. + /// + [Input("checkSum")] + public Input? CheckSum { get; set; } + + /// + /// URI from which to fetch the object. It should contain both the protocol and path following the format {protocol}://{location}. + /// + [Input("uri")] + public Input? Uri { get; set; } + + public GuestPoliciesRecipeArtifactRemoteGetArgs() + { + } + } +} diff --git a/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeGetArgs.cs b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeGetArgs.cs new file mode 100644 index 0000000000..01fd3c5396 --- /dev/null +++ b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeGetArgs.cs @@ -0,0 +1,82 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.OsConfig.Inputs +{ + + public sealed class GuestPoliciesRecipeGetArgs : Pulumi.ResourceArgs + { + [Input("artifacts")] + private InputList? _artifacts; + + /// + /// Resources available to be used in the steps in the recipe. Structure is documented below. + /// + public InputList Artifacts + { + get => _artifacts ?? (_artifacts = new InputList()); + set => _artifacts = value; + } + + /// + /// Default is INSTALLED. The desired state the agent should maintain for this recipe. + /// INSTALLED: The software recipe is installed on the instance but won't be updated to new versions. + /// INSTALLED_KEEP_UPDATED: The software recipe is installed on the instance. The recipe is updated to a higher version, + /// if a higher version of the recipe is assigned to this instance. + /// REMOVE: Remove is unsupported for software recipes and attempts to create or update a recipe to the REMOVE state is rejected. + /// + [Input("desiredState")] + public Input? DesiredState { get; set; } + + [Input("installSteps")] + private InputList? _installSteps; + + /// + /// Actions to be taken for installing this recipe. On failure it stops executing steps and does not attempt another installation. + /// Any steps taken (including partially completed steps) are not rolled back. Structure is documented below. + /// + public InputList InstallSteps + { + get => _installSteps ?? (_installSteps = new InputList()); + set => _installSteps = value; + } + + /// + /// Unique identifier for the recipe. Only one recipe with a given name is installed on an instance. + /// Names are also used to identify resources which helps to determine whether guest policies have conflicts. + /// This means that requests to create multiple recipes with the same name and version are rejected since they + /// could potentially have conflicting assignments. + /// + [Input("name", required: true)] + public Input Name { get; set; } = null!; + + [Input("updateSteps")] + private InputList? _updateSteps; + + /// + /// Actions to be taken for updating this recipe. On failure it stops executing steps and does not attempt another update for this recipe. + /// Any steps taken (including partially completed steps) are not rolled back. Structure is documented below. + /// + public InputList UpdateSteps + { + get => _updateSteps ?? (_updateSteps = new InputList()); + set => _updateSteps = value; + } + + /// + /// The version of this software recipe. Version can be up to 4 period separated numbers (e.g. 12.34.56.78). + /// + [Input("version")] + public Input? Version { get; set; } + + public GuestPoliciesRecipeGetArgs() + { + } + } +} diff --git a/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeInstallStepArchiveExtractionArgs.cs b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeInstallStepArchiveExtractionArgs.cs new file mode 100644 index 0000000000..edb1a2f121 --- /dev/null +++ b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeInstallStepArchiveExtractionArgs.cs @@ -0,0 +1,37 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.OsConfig.Inputs +{ + + public sealed class GuestPoliciesRecipeInstallStepArchiveExtractionArgs : Pulumi.ResourceArgs + { + /// + /// The id of the relevant artifact in the recipe. + /// + [Input("artifactId", required: true)] + public Input ArtifactId { get; set; } = null!; + + /// + /// Directory to extract archive to. Defaults to / on Linux or C:\ on Windows. + /// + [Input("destination")] + public Input? Destination { get; set; } + + /// + /// The type of the archive to extract. + /// + [Input("type", required: true)] + public Input Type { get; set; } = null!; + + public GuestPoliciesRecipeInstallStepArchiveExtractionArgs() + { + } + } +} diff --git a/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeInstallStepArchiveExtractionGetArgs.cs b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeInstallStepArchiveExtractionGetArgs.cs new file mode 100644 index 0000000000..890d5f5055 --- /dev/null +++ b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeInstallStepArchiveExtractionGetArgs.cs @@ -0,0 +1,37 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.OsConfig.Inputs +{ + + public sealed class GuestPoliciesRecipeInstallStepArchiveExtractionGetArgs : Pulumi.ResourceArgs + { + /// + /// The id of the relevant artifact in the recipe. + /// + [Input("artifactId", required: true)] + public Input ArtifactId { get; set; } = null!; + + /// + /// Directory to extract archive to. Defaults to / on Linux or C:\ on Windows. + /// + [Input("destination")] + public Input? Destination { get; set; } + + /// + /// The type of the archive to extract. + /// + [Input("type", required: true)] + public Input Type { get; set; } = null!; + + public GuestPoliciesRecipeInstallStepArchiveExtractionGetArgs() + { + } + } +} diff --git a/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeInstallStepArgs.cs b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeInstallStepArgs.cs new file mode 100644 index 0000000000..653a54f58c --- /dev/null +++ b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeInstallStepArgs.cs @@ -0,0 +1,61 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.OsConfig.Inputs +{ + + public sealed class GuestPoliciesRecipeInstallStepArgs : Pulumi.ResourceArgs + { + /// + /// Extracts an archive into the specified directory. Structure is documented below. + /// + [Input("archiveExtraction")] + public Input? ArchiveExtraction { get; set; } + + /// + /// Installs a deb file via dpkg. Structure is documented below. + /// + [Input("dpkgInstallation")] + public Input? DpkgInstallation { get; set; } + + /// + /// Copies a file onto the instance. Structure is documented below. + /// + [Input("fileCopy")] + public Input? FileCopy { get; set; } + + /// + /// Executes an artifact or local file. Structure is documented below. + /// + [Input("fileExec")] + public Input? FileExec { get; set; } + + /// + /// Installs an MSI file. Structure is documented below. + /// + [Input("msiInstallation")] + public Input? MsiInstallation { get; set; } + + /// + /// Installs an rpm file via the rpm utility. Structure is documented below. + /// + [Input("rpmInstallation")] + public Input? RpmInstallation { get; set; } + + /// + /// Runs commands in a shell. Structure is documented below. + /// + [Input("scriptRun")] + public Input? ScriptRun { get; set; } + + public GuestPoliciesRecipeInstallStepArgs() + { + } + } +} diff --git a/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeInstallStepDpkgInstallationArgs.cs b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeInstallStepDpkgInstallationArgs.cs new file mode 100644 index 0000000000..3a07b5c257 --- /dev/null +++ b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeInstallStepDpkgInstallationArgs.cs @@ -0,0 +1,25 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.OsConfig.Inputs +{ + + public sealed class GuestPoliciesRecipeInstallStepDpkgInstallationArgs : Pulumi.ResourceArgs + { + /// + /// The id of the relevant artifact in the recipe. + /// + [Input("artifactId", required: true)] + public Input ArtifactId { get; set; } = null!; + + public GuestPoliciesRecipeInstallStepDpkgInstallationArgs() + { + } + } +} diff --git a/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeInstallStepDpkgInstallationGetArgs.cs b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeInstallStepDpkgInstallationGetArgs.cs new file mode 100644 index 0000000000..8c63c5faf6 --- /dev/null +++ b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeInstallStepDpkgInstallationGetArgs.cs @@ -0,0 +1,25 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.OsConfig.Inputs +{ + + public sealed class GuestPoliciesRecipeInstallStepDpkgInstallationGetArgs : Pulumi.ResourceArgs + { + /// + /// The id of the relevant artifact in the recipe. + /// + [Input("artifactId", required: true)] + public Input ArtifactId { get; set; } = null!; + + public GuestPoliciesRecipeInstallStepDpkgInstallationGetArgs() + { + } + } +} diff --git a/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeInstallStepFileCopyArgs.cs b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeInstallStepFileCopyArgs.cs new file mode 100644 index 0000000000..b17a6b84e9 --- /dev/null +++ b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeInstallStepFileCopyArgs.cs @@ -0,0 +1,49 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.OsConfig.Inputs +{ + + public sealed class GuestPoliciesRecipeInstallStepFileCopyArgs : Pulumi.ResourceArgs + { + /// + /// The id of the relevant artifact in the recipe. + /// + [Input("artifactId", required: true)] + public Input ArtifactId { get; set; } = null!; + + /// + /// Directory to extract archive to. Defaults to / on Linux or C:\ on Windows. + /// + [Input("destination", required: true)] + public Input Destination { get; set; } = null!; + + /// + /// Whether to allow this step to overwrite existing files.If this is false and the file already exists the file + /// is not overwritten and the step is considered a success. Defaults to false. + /// + [Input("overwrite")] + public Input? Overwrite { get; set; } + + /// + /// Consists of three octal digits which represent, in order, the permissions of the owner, group, and other users + /// for the file (similarly to the numeric mode used in the linux chmod utility). Each digit represents a three bit + /// number with the 4 bit corresponding to the read permissions, the 2 bit corresponds to the write bit, and the one + /// bit corresponds to the execute permission. Default behavior is 755. + /// Below are some examples of permissions and their associated values: + /// read, write, and execute: 7 read and execute: 5 read and write: 6 read only: 4 + /// + [Input("permissions")] + public Input? Permissions { get; set; } + + public GuestPoliciesRecipeInstallStepFileCopyArgs() + { + } + } +} diff --git a/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeInstallStepFileCopyGetArgs.cs b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeInstallStepFileCopyGetArgs.cs new file mode 100644 index 0000000000..a51c417ade --- /dev/null +++ b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeInstallStepFileCopyGetArgs.cs @@ -0,0 +1,49 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.OsConfig.Inputs +{ + + public sealed class GuestPoliciesRecipeInstallStepFileCopyGetArgs : Pulumi.ResourceArgs + { + /// + /// The id of the relevant artifact in the recipe. + /// + [Input("artifactId", required: true)] + public Input ArtifactId { get; set; } = null!; + + /// + /// Directory to extract archive to. Defaults to / on Linux or C:\ on Windows. + /// + [Input("destination", required: true)] + public Input Destination { get; set; } = null!; + + /// + /// Whether to allow this step to overwrite existing files.If this is false and the file already exists the file + /// is not overwritten and the step is considered a success. Defaults to false. + /// + [Input("overwrite")] + public Input? Overwrite { get; set; } + + /// + /// Consists of three octal digits which represent, in order, the permissions of the owner, group, and other users + /// for the file (similarly to the numeric mode used in the linux chmod utility). Each digit represents a three bit + /// number with the 4 bit corresponding to the read permissions, the 2 bit corresponds to the write bit, and the one + /// bit corresponds to the execute permission. Default behavior is 755. + /// Below are some examples of permissions and their associated values: + /// read, write, and execute: 7 read and execute: 5 read and write: 6 read only: 4 + /// + [Input("permissions")] + public Input? Permissions { get; set; } + + public GuestPoliciesRecipeInstallStepFileCopyGetArgs() + { + } + } +} diff --git a/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeInstallStepFileExecArgs.cs b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeInstallStepFileExecArgs.cs new file mode 100644 index 0000000000..a70607727b --- /dev/null +++ b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeInstallStepFileExecArgs.cs @@ -0,0 +1,49 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.OsConfig.Inputs +{ + + public sealed class GuestPoliciesRecipeInstallStepFileExecArgs : Pulumi.ResourceArgs + { + /// + /// Return codes that indicate that the software installed or updated successfully. Behaviour defaults to [0] + /// + [Input("allowedExitCodes")] + public Input? AllowedExitCodes { get; set; } + + [Input("args")] + private InputList? _args; + + /// + /// Arguments to be passed to the provided executable. + /// + public InputList Args + { + get => _args ?? (_args = new InputList()); + set => _args = value; + } + + /// + /// The id of the relevant artifact in the recipe. + /// + [Input("artifactId")] + public Input? ArtifactId { get; set; } + + /// + /// The absolute path of the file on the local filesystem. + /// + [Input("localPath")] + public Input? LocalPath { get; set; } + + public GuestPoliciesRecipeInstallStepFileExecArgs() + { + } + } +} diff --git a/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeInstallStepFileExecGetArgs.cs b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeInstallStepFileExecGetArgs.cs new file mode 100644 index 0000000000..2be4dc0d80 --- /dev/null +++ b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeInstallStepFileExecGetArgs.cs @@ -0,0 +1,49 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.OsConfig.Inputs +{ + + public sealed class GuestPoliciesRecipeInstallStepFileExecGetArgs : Pulumi.ResourceArgs + { + /// + /// Return codes that indicate that the software installed or updated successfully. Behaviour defaults to [0] + /// + [Input("allowedExitCodes")] + public Input? AllowedExitCodes { get; set; } + + [Input("args")] + private InputList? _args; + + /// + /// Arguments to be passed to the provided executable. + /// + public InputList Args + { + get => _args ?? (_args = new InputList()); + set => _args = value; + } + + /// + /// The id of the relevant artifact in the recipe. + /// + [Input("artifactId")] + public Input? ArtifactId { get; set; } + + /// + /// The absolute path of the file on the local filesystem. + /// + [Input("localPath")] + public Input? LocalPath { get; set; } + + public GuestPoliciesRecipeInstallStepFileExecGetArgs() + { + } + } +} diff --git a/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeInstallStepGetArgs.cs b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeInstallStepGetArgs.cs new file mode 100644 index 0000000000..0152e2a7c2 --- /dev/null +++ b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeInstallStepGetArgs.cs @@ -0,0 +1,61 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.OsConfig.Inputs +{ + + public sealed class GuestPoliciesRecipeInstallStepGetArgs : Pulumi.ResourceArgs + { + /// + /// Extracts an archive into the specified directory. Structure is documented below. + /// + [Input("archiveExtraction")] + public Input? ArchiveExtraction { get; set; } + + /// + /// Installs a deb file via dpkg. Structure is documented below. + /// + [Input("dpkgInstallation")] + public Input? DpkgInstallation { get; set; } + + /// + /// Copies a file onto the instance. Structure is documented below. + /// + [Input("fileCopy")] + public Input? FileCopy { get; set; } + + /// + /// Executes an artifact or local file. Structure is documented below. + /// + [Input("fileExec")] + public Input? FileExec { get; set; } + + /// + /// Installs an MSI file. Structure is documented below. + /// + [Input("msiInstallation")] + public Input? MsiInstallation { get; set; } + + /// + /// Installs an rpm file via the rpm utility. Structure is documented below. + /// + [Input("rpmInstallation")] + public Input? RpmInstallation { get; set; } + + /// + /// Runs commands in a shell. Structure is documented below. + /// + [Input("scriptRun")] + public Input? ScriptRun { get; set; } + + public GuestPoliciesRecipeInstallStepGetArgs() + { + } + } +} diff --git a/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeInstallStepMsiInstallationArgs.cs b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeInstallStepMsiInstallationArgs.cs new file mode 100644 index 0000000000..45f8b5b06f --- /dev/null +++ b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeInstallStepMsiInstallationArgs.cs @@ -0,0 +1,49 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.OsConfig.Inputs +{ + + public sealed class GuestPoliciesRecipeInstallStepMsiInstallationArgs : Pulumi.ResourceArgs + { + [Input("allowedExitCodes")] + private InputList? _allowedExitCodes; + + /// + /// Return codes that indicate that the software installed or updated successfully. Behaviour defaults to [0] + /// + public InputList AllowedExitCodes + { + get => _allowedExitCodes ?? (_allowedExitCodes = new InputList()); + set => _allowedExitCodes = value; + } + + /// + /// The id of the relevant artifact in the recipe. + /// + [Input("artifactId", required: true)] + public Input ArtifactId { get; set; } = null!; + + [Input("flags")] + private InputList? _flags; + + /// + /// The flags to use when installing the MSI. Defaults to the install flag. + /// + public InputList Flags + { + get => _flags ?? (_flags = new InputList()); + set => _flags = value; + } + + public GuestPoliciesRecipeInstallStepMsiInstallationArgs() + { + } + } +} diff --git a/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeInstallStepMsiInstallationGetArgs.cs b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeInstallStepMsiInstallationGetArgs.cs new file mode 100644 index 0000000000..ce07021e83 --- /dev/null +++ b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeInstallStepMsiInstallationGetArgs.cs @@ -0,0 +1,49 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.OsConfig.Inputs +{ + + public sealed class GuestPoliciesRecipeInstallStepMsiInstallationGetArgs : Pulumi.ResourceArgs + { + [Input("allowedExitCodes")] + private InputList? _allowedExitCodes; + + /// + /// Return codes that indicate that the software installed or updated successfully. Behaviour defaults to [0] + /// + public InputList AllowedExitCodes + { + get => _allowedExitCodes ?? (_allowedExitCodes = new InputList()); + set => _allowedExitCodes = value; + } + + /// + /// The id of the relevant artifact in the recipe. + /// + [Input("artifactId", required: true)] + public Input ArtifactId { get; set; } = null!; + + [Input("flags")] + private InputList? _flags; + + /// + /// The flags to use when installing the MSI. Defaults to the install flag. + /// + public InputList Flags + { + get => _flags ?? (_flags = new InputList()); + set => _flags = value; + } + + public GuestPoliciesRecipeInstallStepMsiInstallationGetArgs() + { + } + } +} diff --git a/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeInstallStepRpmInstallationArgs.cs b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeInstallStepRpmInstallationArgs.cs new file mode 100644 index 0000000000..6700e39d43 --- /dev/null +++ b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeInstallStepRpmInstallationArgs.cs @@ -0,0 +1,25 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.OsConfig.Inputs +{ + + public sealed class GuestPoliciesRecipeInstallStepRpmInstallationArgs : Pulumi.ResourceArgs + { + /// + /// The id of the relevant artifact in the recipe. + /// + [Input("artifactId", required: true)] + public Input ArtifactId { get; set; } = null!; + + public GuestPoliciesRecipeInstallStepRpmInstallationArgs() + { + } + } +} diff --git a/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeInstallStepRpmInstallationGetArgs.cs b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeInstallStepRpmInstallationGetArgs.cs new file mode 100644 index 0000000000..9882d4543f --- /dev/null +++ b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeInstallStepRpmInstallationGetArgs.cs @@ -0,0 +1,25 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.OsConfig.Inputs +{ + + public sealed class GuestPoliciesRecipeInstallStepRpmInstallationGetArgs : Pulumi.ResourceArgs + { + /// + /// The id of the relevant artifact in the recipe. + /// + [Input("artifactId", required: true)] + public Input ArtifactId { get; set; } = null!; + + public GuestPoliciesRecipeInstallStepRpmInstallationGetArgs() + { + } + } +} diff --git a/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeInstallStepScriptRunArgs.cs b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeInstallStepScriptRunArgs.cs new file mode 100644 index 0000000000..06dfb18687 --- /dev/null +++ b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeInstallStepScriptRunArgs.cs @@ -0,0 +1,44 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.OsConfig.Inputs +{ + + public sealed class GuestPoliciesRecipeInstallStepScriptRunArgs : Pulumi.ResourceArgs + { + [Input("allowedExitCodes")] + private InputList? _allowedExitCodes; + + /// + /// Return codes that indicate that the software installed or updated successfully. Behaviour defaults to [0] + /// + public InputList AllowedExitCodes + { + get => _allowedExitCodes ?? (_allowedExitCodes = new InputList()); + set => _allowedExitCodes = value; + } + + /// + /// The script interpreter to use to run the script. If no interpreter is specified the script is executed directly, + /// which likely only succeed for scripts with shebang lines. + /// + [Input("interpreter")] + public Input? Interpreter { get; set; } + + /// + /// The shell script to be executed. + /// + [Input("script", required: true)] + public Input Script { get; set; } = null!; + + public GuestPoliciesRecipeInstallStepScriptRunArgs() + { + } + } +} diff --git a/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeInstallStepScriptRunGetArgs.cs b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeInstallStepScriptRunGetArgs.cs new file mode 100644 index 0000000000..3d12a2e921 --- /dev/null +++ b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeInstallStepScriptRunGetArgs.cs @@ -0,0 +1,44 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.OsConfig.Inputs +{ + + public sealed class GuestPoliciesRecipeInstallStepScriptRunGetArgs : Pulumi.ResourceArgs + { + [Input("allowedExitCodes")] + private InputList? _allowedExitCodes; + + /// + /// Return codes that indicate that the software installed or updated successfully. Behaviour defaults to [0] + /// + public InputList AllowedExitCodes + { + get => _allowedExitCodes ?? (_allowedExitCodes = new InputList()); + set => _allowedExitCodes = value; + } + + /// + /// The script interpreter to use to run the script. If no interpreter is specified the script is executed directly, + /// which likely only succeed for scripts with shebang lines. + /// + [Input("interpreter")] + public Input? Interpreter { get; set; } + + /// + /// The shell script to be executed. + /// + [Input("script", required: true)] + public Input Script { get; set; } = null!; + + public GuestPoliciesRecipeInstallStepScriptRunGetArgs() + { + } + } +} diff --git a/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeUpdateStepArchiveExtractionArgs.cs b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeUpdateStepArchiveExtractionArgs.cs new file mode 100644 index 0000000000..5c42a53d3f --- /dev/null +++ b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeUpdateStepArchiveExtractionArgs.cs @@ -0,0 +1,37 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.OsConfig.Inputs +{ + + public sealed class GuestPoliciesRecipeUpdateStepArchiveExtractionArgs : Pulumi.ResourceArgs + { + /// + /// The id of the relevant artifact in the recipe. + /// + [Input("artifactId", required: true)] + public Input ArtifactId { get; set; } = null!; + + /// + /// Directory to extract archive to. Defaults to / on Linux or C:\ on Windows. + /// + [Input("destination")] + public Input? Destination { get; set; } + + /// + /// The type of the archive to extract. + /// + [Input("type", required: true)] + public Input Type { get; set; } = null!; + + public GuestPoliciesRecipeUpdateStepArchiveExtractionArgs() + { + } + } +} diff --git a/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeUpdateStepArchiveExtractionGetArgs.cs b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeUpdateStepArchiveExtractionGetArgs.cs new file mode 100644 index 0000000000..218fe9b2e8 --- /dev/null +++ b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeUpdateStepArchiveExtractionGetArgs.cs @@ -0,0 +1,37 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.OsConfig.Inputs +{ + + public sealed class GuestPoliciesRecipeUpdateStepArchiveExtractionGetArgs : Pulumi.ResourceArgs + { + /// + /// The id of the relevant artifact in the recipe. + /// + [Input("artifactId", required: true)] + public Input ArtifactId { get; set; } = null!; + + /// + /// Directory to extract archive to. Defaults to / on Linux or C:\ on Windows. + /// + [Input("destination")] + public Input? Destination { get; set; } + + /// + /// The type of the archive to extract. + /// + [Input("type", required: true)] + public Input Type { get; set; } = null!; + + public GuestPoliciesRecipeUpdateStepArchiveExtractionGetArgs() + { + } + } +} diff --git a/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeUpdateStepArgs.cs b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeUpdateStepArgs.cs new file mode 100644 index 0000000000..92622993e6 --- /dev/null +++ b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeUpdateStepArgs.cs @@ -0,0 +1,61 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.OsConfig.Inputs +{ + + public sealed class GuestPoliciesRecipeUpdateStepArgs : Pulumi.ResourceArgs + { + /// + /// Extracts an archive into the specified directory. Structure is documented below. + /// + [Input("archiveExtraction")] + public Input? ArchiveExtraction { get; set; } + + /// + /// Installs a deb file via dpkg. Structure is documented below. + /// + [Input("dpkgInstallation")] + public Input? DpkgInstallation { get; set; } + + /// + /// Copies a file onto the instance. Structure is documented below. + /// + [Input("fileCopy")] + public Input? FileCopy { get; set; } + + /// + /// Executes an artifact or local file. Structure is documented below. + /// + [Input("fileExec")] + public Input? FileExec { get; set; } + + /// + /// Installs an MSI file. Structure is documented below. + /// + [Input("msiInstallation")] + public Input? MsiInstallation { get; set; } + + /// + /// Installs an rpm file via the rpm utility. Structure is documented below. + /// + [Input("rpmInstallation")] + public Input? RpmInstallation { get; set; } + + /// + /// Runs commands in a shell. Structure is documented below. + /// + [Input("scriptRun")] + public Input? ScriptRun { get; set; } + + public GuestPoliciesRecipeUpdateStepArgs() + { + } + } +} diff --git a/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeUpdateStepDpkgInstallationArgs.cs b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeUpdateStepDpkgInstallationArgs.cs new file mode 100644 index 0000000000..0afa1f7d7e --- /dev/null +++ b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeUpdateStepDpkgInstallationArgs.cs @@ -0,0 +1,25 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.OsConfig.Inputs +{ + + public sealed class GuestPoliciesRecipeUpdateStepDpkgInstallationArgs : Pulumi.ResourceArgs + { + /// + /// The id of the relevant artifact in the recipe. + /// + [Input("artifactId", required: true)] + public Input ArtifactId { get; set; } = null!; + + public GuestPoliciesRecipeUpdateStepDpkgInstallationArgs() + { + } + } +} diff --git a/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeUpdateStepDpkgInstallationGetArgs.cs b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeUpdateStepDpkgInstallationGetArgs.cs new file mode 100644 index 0000000000..8b2f1e3742 --- /dev/null +++ b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeUpdateStepDpkgInstallationGetArgs.cs @@ -0,0 +1,25 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.OsConfig.Inputs +{ + + public sealed class GuestPoliciesRecipeUpdateStepDpkgInstallationGetArgs : Pulumi.ResourceArgs + { + /// + /// The id of the relevant artifact in the recipe. + /// + [Input("artifactId", required: true)] + public Input ArtifactId { get; set; } = null!; + + public GuestPoliciesRecipeUpdateStepDpkgInstallationGetArgs() + { + } + } +} diff --git a/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeUpdateStepFileCopyArgs.cs b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeUpdateStepFileCopyArgs.cs new file mode 100644 index 0000000000..c873f2c431 --- /dev/null +++ b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeUpdateStepFileCopyArgs.cs @@ -0,0 +1,49 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.OsConfig.Inputs +{ + + public sealed class GuestPoliciesRecipeUpdateStepFileCopyArgs : Pulumi.ResourceArgs + { + /// + /// The id of the relevant artifact in the recipe. + /// + [Input("artifactId", required: true)] + public Input ArtifactId { get; set; } = null!; + + /// + /// Directory to extract archive to. Defaults to / on Linux or C:\ on Windows. + /// + [Input("destination", required: true)] + public Input Destination { get; set; } = null!; + + /// + /// Whether to allow this step to overwrite existing files.If this is false and the file already exists the file + /// is not overwritten and the step is considered a success. Defaults to false. + /// + [Input("overwrite")] + public Input? Overwrite { get; set; } + + /// + /// Consists of three octal digits which represent, in order, the permissions of the owner, group, and other users + /// for the file (similarly to the numeric mode used in the linux chmod utility). Each digit represents a three bit + /// number with the 4 bit corresponding to the read permissions, the 2 bit corresponds to the write bit, and the one + /// bit corresponds to the execute permission. Default behavior is 755. + /// Below are some examples of permissions and their associated values: + /// read, write, and execute: 7 read and execute: 5 read and write: 6 read only: 4 + /// + [Input("permissions")] + public Input? Permissions { get; set; } + + public GuestPoliciesRecipeUpdateStepFileCopyArgs() + { + } + } +} diff --git a/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeUpdateStepFileCopyGetArgs.cs b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeUpdateStepFileCopyGetArgs.cs new file mode 100644 index 0000000000..3760d963a7 --- /dev/null +++ b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeUpdateStepFileCopyGetArgs.cs @@ -0,0 +1,49 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.OsConfig.Inputs +{ + + public sealed class GuestPoliciesRecipeUpdateStepFileCopyGetArgs : Pulumi.ResourceArgs + { + /// + /// The id of the relevant artifact in the recipe. + /// + [Input("artifactId", required: true)] + public Input ArtifactId { get; set; } = null!; + + /// + /// Directory to extract archive to. Defaults to / on Linux or C:\ on Windows. + /// + [Input("destination", required: true)] + public Input Destination { get; set; } = null!; + + /// + /// Whether to allow this step to overwrite existing files.If this is false and the file already exists the file + /// is not overwritten and the step is considered a success. Defaults to false. + /// + [Input("overwrite")] + public Input? Overwrite { get; set; } + + /// + /// Consists of three octal digits which represent, in order, the permissions of the owner, group, and other users + /// for the file (similarly to the numeric mode used in the linux chmod utility). Each digit represents a three bit + /// number with the 4 bit corresponding to the read permissions, the 2 bit corresponds to the write bit, and the one + /// bit corresponds to the execute permission. Default behavior is 755. + /// Below are some examples of permissions and their associated values: + /// read, write, and execute: 7 read and execute: 5 read and write: 6 read only: 4 + /// + [Input("permissions")] + public Input? Permissions { get; set; } + + public GuestPoliciesRecipeUpdateStepFileCopyGetArgs() + { + } + } +} diff --git a/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeUpdateStepFileExecArgs.cs b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeUpdateStepFileExecArgs.cs new file mode 100644 index 0000000000..c40ca2f0db --- /dev/null +++ b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeUpdateStepFileExecArgs.cs @@ -0,0 +1,55 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.OsConfig.Inputs +{ + + public sealed class GuestPoliciesRecipeUpdateStepFileExecArgs : Pulumi.ResourceArgs + { + [Input("allowedExitCodes")] + private InputList? _allowedExitCodes; + + /// + /// Return codes that indicate that the software installed or updated successfully. Behaviour defaults to [0] + /// + public InputList AllowedExitCodes + { + get => _allowedExitCodes ?? (_allowedExitCodes = new InputList()); + set => _allowedExitCodes = value; + } + + [Input("args")] + private InputList? _args; + + /// + /// Arguments to be passed to the provided executable. + /// + public InputList Args + { + get => _args ?? (_args = new InputList()); + set => _args = value; + } + + /// + /// The id of the relevant artifact in the recipe. + /// + [Input("artifactId")] + public Input? ArtifactId { get; set; } + + /// + /// The absolute path of the file on the local filesystem. + /// + [Input("localPath")] + public Input? LocalPath { get; set; } + + public GuestPoliciesRecipeUpdateStepFileExecArgs() + { + } + } +} diff --git a/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeUpdateStepFileExecGetArgs.cs b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeUpdateStepFileExecGetArgs.cs new file mode 100644 index 0000000000..956664823e --- /dev/null +++ b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeUpdateStepFileExecGetArgs.cs @@ -0,0 +1,55 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.OsConfig.Inputs +{ + + public sealed class GuestPoliciesRecipeUpdateStepFileExecGetArgs : Pulumi.ResourceArgs + { + [Input("allowedExitCodes")] + private InputList? _allowedExitCodes; + + /// + /// Return codes that indicate that the software installed or updated successfully. Behaviour defaults to [0] + /// + public InputList AllowedExitCodes + { + get => _allowedExitCodes ?? (_allowedExitCodes = new InputList()); + set => _allowedExitCodes = value; + } + + [Input("args")] + private InputList? _args; + + /// + /// Arguments to be passed to the provided executable. + /// + public InputList Args + { + get => _args ?? (_args = new InputList()); + set => _args = value; + } + + /// + /// The id of the relevant artifact in the recipe. + /// + [Input("artifactId")] + public Input? ArtifactId { get; set; } + + /// + /// The absolute path of the file on the local filesystem. + /// + [Input("localPath")] + public Input? LocalPath { get; set; } + + public GuestPoliciesRecipeUpdateStepFileExecGetArgs() + { + } + } +} diff --git a/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeUpdateStepGetArgs.cs b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeUpdateStepGetArgs.cs new file mode 100644 index 0000000000..1eef14ac0d --- /dev/null +++ b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeUpdateStepGetArgs.cs @@ -0,0 +1,61 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.OsConfig.Inputs +{ + + public sealed class GuestPoliciesRecipeUpdateStepGetArgs : Pulumi.ResourceArgs + { + /// + /// Extracts an archive into the specified directory. Structure is documented below. + /// + [Input("archiveExtraction")] + public Input? ArchiveExtraction { get; set; } + + /// + /// Installs a deb file via dpkg. Structure is documented below. + /// + [Input("dpkgInstallation")] + public Input? DpkgInstallation { get; set; } + + /// + /// Copies a file onto the instance. Structure is documented below. + /// + [Input("fileCopy")] + public Input? FileCopy { get; set; } + + /// + /// Executes an artifact or local file. Structure is documented below. + /// + [Input("fileExec")] + public Input? FileExec { get; set; } + + /// + /// Installs an MSI file. Structure is documented below. + /// + [Input("msiInstallation")] + public Input? MsiInstallation { get; set; } + + /// + /// Installs an rpm file via the rpm utility. Structure is documented below. + /// + [Input("rpmInstallation")] + public Input? RpmInstallation { get; set; } + + /// + /// Runs commands in a shell. Structure is documented below. + /// + [Input("scriptRun")] + public Input? ScriptRun { get; set; } + + public GuestPoliciesRecipeUpdateStepGetArgs() + { + } + } +} diff --git a/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeUpdateStepMsiInstallationArgs.cs b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeUpdateStepMsiInstallationArgs.cs new file mode 100644 index 0000000000..28d58d8c46 --- /dev/null +++ b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeUpdateStepMsiInstallationArgs.cs @@ -0,0 +1,49 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.OsConfig.Inputs +{ + + public sealed class GuestPoliciesRecipeUpdateStepMsiInstallationArgs : Pulumi.ResourceArgs + { + [Input("allowedExitCodes")] + private InputList? _allowedExitCodes; + + /// + /// Return codes that indicate that the software installed or updated successfully. Behaviour defaults to [0] + /// + public InputList AllowedExitCodes + { + get => _allowedExitCodes ?? (_allowedExitCodes = new InputList()); + set => _allowedExitCodes = value; + } + + /// + /// The id of the relevant artifact in the recipe. + /// + [Input("artifactId", required: true)] + public Input ArtifactId { get; set; } = null!; + + [Input("flags")] + private InputList? _flags; + + /// + /// The flags to use when installing the MSI. Defaults to the install flag. + /// + public InputList Flags + { + get => _flags ?? (_flags = new InputList()); + set => _flags = value; + } + + public GuestPoliciesRecipeUpdateStepMsiInstallationArgs() + { + } + } +} diff --git a/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeUpdateStepMsiInstallationGetArgs.cs b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeUpdateStepMsiInstallationGetArgs.cs new file mode 100644 index 0000000000..1c94bfe88e --- /dev/null +++ b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeUpdateStepMsiInstallationGetArgs.cs @@ -0,0 +1,49 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.OsConfig.Inputs +{ + + public sealed class GuestPoliciesRecipeUpdateStepMsiInstallationGetArgs : Pulumi.ResourceArgs + { + [Input("allowedExitCodes")] + private InputList? _allowedExitCodes; + + /// + /// Return codes that indicate that the software installed or updated successfully. Behaviour defaults to [0] + /// + public InputList AllowedExitCodes + { + get => _allowedExitCodes ?? (_allowedExitCodes = new InputList()); + set => _allowedExitCodes = value; + } + + /// + /// The id of the relevant artifact in the recipe. + /// + [Input("artifactId", required: true)] + public Input ArtifactId { get; set; } = null!; + + [Input("flags")] + private InputList? _flags; + + /// + /// The flags to use when installing the MSI. Defaults to the install flag. + /// + public InputList Flags + { + get => _flags ?? (_flags = new InputList()); + set => _flags = value; + } + + public GuestPoliciesRecipeUpdateStepMsiInstallationGetArgs() + { + } + } +} diff --git a/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeUpdateStepRpmInstallationArgs.cs b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeUpdateStepRpmInstallationArgs.cs new file mode 100644 index 0000000000..92445a4d6b --- /dev/null +++ b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeUpdateStepRpmInstallationArgs.cs @@ -0,0 +1,25 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.OsConfig.Inputs +{ + + public sealed class GuestPoliciesRecipeUpdateStepRpmInstallationArgs : Pulumi.ResourceArgs + { + /// + /// The id of the relevant artifact in the recipe. + /// + [Input("artifactId", required: true)] + public Input ArtifactId { get; set; } = null!; + + public GuestPoliciesRecipeUpdateStepRpmInstallationArgs() + { + } + } +} diff --git a/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeUpdateStepRpmInstallationGetArgs.cs b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeUpdateStepRpmInstallationGetArgs.cs new file mode 100644 index 0000000000..8963e36033 --- /dev/null +++ b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeUpdateStepRpmInstallationGetArgs.cs @@ -0,0 +1,25 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.OsConfig.Inputs +{ + + public sealed class GuestPoliciesRecipeUpdateStepRpmInstallationGetArgs : Pulumi.ResourceArgs + { + /// + /// The id of the relevant artifact in the recipe. + /// + [Input("artifactId", required: true)] + public Input ArtifactId { get; set; } = null!; + + public GuestPoliciesRecipeUpdateStepRpmInstallationGetArgs() + { + } + } +} diff --git a/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeUpdateStepScriptRunArgs.cs b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeUpdateStepScriptRunArgs.cs new file mode 100644 index 0000000000..044ee2ad60 --- /dev/null +++ b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeUpdateStepScriptRunArgs.cs @@ -0,0 +1,44 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.OsConfig.Inputs +{ + + public sealed class GuestPoliciesRecipeUpdateStepScriptRunArgs : Pulumi.ResourceArgs + { + [Input("allowedExitCodes")] + private InputList? _allowedExitCodes; + + /// + /// Return codes that indicate that the software installed or updated successfully. Behaviour defaults to [0] + /// + public InputList AllowedExitCodes + { + get => _allowedExitCodes ?? (_allowedExitCodes = new InputList()); + set => _allowedExitCodes = value; + } + + /// + /// The script interpreter to use to run the script. If no interpreter is specified the script is executed directly, + /// which likely only succeed for scripts with shebang lines. + /// + [Input("interpreter")] + public Input? Interpreter { get; set; } + + /// + /// The shell script to be executed. + /// + [Input("script", required: true)] + public Input Script { get; set; } = null!; + + public GuestPoliciesRecipeUpdateStepScriptRunArgs() + { + } + } +} diff --git a/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeUpdateStepScriptRunGetArgs.cs b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeUpdateStepScriptRunGetArgs.cs new file mode 100644 index 0000000000..d73ddd9cf0 --- /dev/null +++ b/sdk/dotnet/OsConfig/Inputs/GuestPoliciesRecipeUpdateStepScriptRunGetArgs.cs @@ -0,0 +1,44 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.OsConfig.Inputs +{ + + public sealed class GuestPoliciesRecipeUpdateStepScriptRunGetArgs : Pulumi.ResourceArgs + { + [Input("allowedExitCodes")] + private InputList? _allowedExitCodes; + + /// + /// Return codes that indicate that the software installed or updated successfully. Behaviour defaults to [0] + /// + public InputList AllowedExitCodes + { + get => _allowedExitCodes ?? (_allowedExitCodes = new InputList()); + set => _allowedExitCodes = value; + } + + /// + /// The script interpreter to use to run the script. If no interpreter is specified the script is executed directly, + /// which likely only succeed for scripts with shebang lines. + /// + [Input("interpreter")] + public Input? Interpreter { get; set; } + + /// + /// The shell script to be executed. + /// + [Input("script", required: true)] + public Input Script { get; set; } = null!; + + public GuestPoliciesRecipeUpdateStepScriptRunGetArgs() + { + } + } +} diff --git a/sdk/dotnet/OsConfig/Outputs/GuestPoliciesAssignment.cs b/sdk/dotnet/OsConfig/Outputs/GuestPoliciesAssignment.cs new file mode 100644 index 0000000000..21ff8d8686 --- /dev/null +++ b/sdk/dotnet/OsConfig/Outputs/GuestPoliciesAssignment.cs @@ -0,0 +1,66 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.OsConfig.Outputs +{ + + [OutputType] + public sealed class GuestPoliciesAssignment + { + /// + /// Targets instances matching at least one of these label sets. This allows an assignment to target disparate groups, + /// for example "env=prod or env=staging". Structure is documented below. + /// + public readonly ImmutableArray GroupLabels; + /// + /// Targets VM instances whose name starts with one of these prefixes. + /// Like labels, this is another way to group VM instances when targeting configs, + /// for example prefix="prod-". + /// Only supported for project-level policies. + /// + public readonly ImmutableArray InstanceNamePrefixes; + /// + /// Targets any of the instances specified. Instances are specified by their URI in the form + /// zones/[ZONE]/instances/[INSTANCE_NAME]. + /// Instance targeting is uncommon and is supported to facilitate the management of changes + /// by the instance or to target specific VM instances for development and testing. + /// Only supported for project-level policies and must reference instances within this project. + /// + public readonly ImmutableArray Instances; + /// + /// Targets VM instances matching at least one of the following OS types. + /// VM instances must match all supplied criteria for a given OsType to be included. Structure is documented below. + /// + public readonly ImmutableArray OsTypes; + /// + /// Targets instances in any of these zones. Leave empty to target instances in any zone. + /// Zonal targeting is uncommon and is supported to facilitate the management of changes by zone. + /// + public readonly ImmutableArray Zones; + + [OutputConstructor] + private GuestPoliciesAssignment( + ImmutableArray groupLabels, + + ImmutableArray instanceNamePrefixes, + + ImmutableArray instances, + + ImmutableArray osTypes, + + ImmutableArray zones) + { + GroupLabels = groupLabels; + InstanceNamePrefixes = instanceNamePrefixes; + Instances = instances; + OsTypes = osTypes; + Zones = zones; + } + } +} diff --git a/sdk/dotnet/OsConfig/Outputs/GuestPoliciesAssignmentGroupLabel.cs b/sdk/dotnet/OsConfig/Outputs/GuestPoliciesAssignmentGroupLabel.cs new file mode 100644 index 0000000000..19ff6d0c2d --- /dev/null +++ b/sdk/dotnet/OsConfig/Outputs/GuestPoliciesAssignmentGroupLabel.cs @@ -0,0 +1,27 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.OsConfig.Outputs +{ + + [OutputType] + public sealed class GuestPoliciesAssignmentGroupLabel + { + /// + /// Google Compute Engine instance labels that must be present for an instance to be included in this assignment group. + /// + public readonly ImmutableDictionary Labels; + + [OutputConstructor] + private GuestPoliciesAssignmentGroupLabel(ImmutableDictionary labels) + { + Labels = labels; + } + } +} diff --git a/sdk/dotnet/OsConfig/Outputs/GuestPoliciesAssignmentOsType.cs b/sdk/dotnet/OsConfig/Outputs/GuestPoliciesAssignmentOsType.cs new file mode 100644 index 0000000000..337fe7397f --- /dev/null +++ b/sdk/dotnet/OsConfig/Outputs/GuestPoliciesAssignmentOsType.cs @@ -0,0 +1,42 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.OsConfig.Outputs +{ + + [OutputType] + public sealed class GuestPoliciesAssignmentOsType + { + /// + /// Targets VM instances with OS Inventory enabled and having the following OS architecture. + /// + public readonly string? OsArchitecture; + /// + /// Targets VM instances with OS Inventory enabled and having the following OS short name, for example "debian" or "windows". + /// + public readonly string? OsShortName; + /// + /// Targets VM instances with OS Inventory enabled and having the following following OS version. + /// + public readonly string? OsVersion; + + [OutputConstructor] + private GuestPoliciesAssignmentOsType( + string? osArchitecture, + + string? osShortName, + + string? osVersion) + { + OsArchitecture = osArchitecture; + OsShortName = osShortName; + OsVersion = osVersion; + } + } +} diff --git a/sdk/dotnet/OsConfig/Outputs/GuestPoliciesPackage.cs b/sdk/dotnet/OsConfig/Outputs/GuestPoliciesPackage.cs new file mode 100644 index 0000000000..700bd5517e --- /dev/null +++ b/sdk/dotnet/OsConfig/Outputs/GuestPoliciesPackage.cs @@ -0,0 +1,53 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.OsConfig.Outputs +{ + + [OutputType] + public sealed class GuestPoliciesPackage + { + /// + /// Default is INSTALLED. The desired state the agent should maintain for this recipe. + /// INSTALLED: The software recipe is installed on the instance but won't be updated to new versions. + /// INSTALLED_KEEP_UPDATED: The software recipe is installed on the instance. The recipe is updated to a higher version, + /// if a higher version of the recipe is assigned to this instance. + /// REMOVE: Remove is unsupported for software recipes and attempts to create or update a recipe to the REMOVE state is rejected. + /// + public readonly string? DesiredState; + /// + /// Type of package manager that can be used to install this package. If a system does not have the package manager, + /// the package is not installed or removed no error message is returned. By default, or if you specify ANY, + /// the agent attempts to install and remove this package using the default package manager. + /// This is useful when creating a policy that applies to different types of systems. + /// The default behavior is ANY. + /// + public readonly string? Manager; + /// + /// Unique identifier for the recipe. Only one recipe with a given name is installed on an instance. + /// Names are also used to identify resources which helps to determine whether guest policies have conflicts. + /// This means that requests to create multiple recipes with the same name and version are rejected since they + /// could potentially have conflicting assignments. + /// + public readonly string Name; + + [OutputConstructor] + private GuestPoliciesPackage( + string? desiredState, + + string? manager, + + string name) + { + DesiredState = desiredState; + Manager = manager; + Name = name; + } + } +} diff --git a/sdk/dotnet/OsConfig/Outputs/GuestPoliciesPackageRepository.cs b/sdk/dotnet/OsConfig/Outputs/GuestPoliciesPackageRepository.cs new file mode 100644 index 0000000000..908c7a96d1 --- /dev/null +++ b/sdk/dotnet/OsConfig/Outputs/GuestPoliciesPackageRepository.cs @@ -0,0 +1,49 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.OsConfig.Outputs +{ + + [OutputType] + public sealed class GuestPoliciesPackageRepository + { + /// + /// An Apt Repository. Structure is documented below. + /// + public readonly Outputs.GuestPoliciesPackageRepositoryApt? Apt; + /// + /// A Goo Repository. Structure is documented below. + /// + public readonly Outputs.GuestPoliciesPackageRepositoryGoo? Goo; + /// + /// A Yum Repository. Structure is documented below. + /// + public readonly Outputs.GuestPoliciesPackageRepositoryYum? Yum; + /// + /// A Zypper Repository. Structure is documented below. + /// + public readonly Outputs.GuestPoliciesPackageRepositoryZypper? Zypper; + + [OutputConstructor] + private GuestPoliciesPackageRepository( + Outputs.GuestPoliciesPackageRepositoryApt? apt, + + Outputs.GuestPoliciesPackageRepositoryGoo? goo, + + Outputs.GuestPoliciesPackageRepositoryYum? yum, + + Outputs.GuestPoliciesPackageRepositoryZypper? zypper) + { + Apt = apt; + Goo = goo; + Yum = yum; + Zypper = zypper; + } + } +} diff --git a/sdk/dotnet/OsConfig/Outputs/GuestPoliciesPackageRepositoryApt.cs b/sdk/dotnet/OsConfig/Outputs/GuestPoliciesPackageRepositoryApt.cs new file mode 100644 index 0000000000..d9f6ab4bac --- /dev/null +++ b/sdk/dotnet/OsConfig/Outputs/GuestPoliciesPackageRepositoryApt.cs @@ -0,0 +1,57 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.OsConfig.Outputs +{ + + [OutputType] + public sealed class GuestPoliciesPackageRepositoryApt + { + /// + /// Type of archive files in this repository. The default behavior is DEB. + /// + public readonly string? ArchiveType; + /// + /// List of components for this repository. Must contain at least one item. + /// + public readonly ImmutableArray Components; + /// + /// Distribution of this repository. + /// + public readonly string Distribution; + /// + /// URI of the key file for this repository. The agent maintains a keyring at + /// /etc/apt/trusted.gpg.d/osconfig_agent_managed.gpg containing all the keys in any applied guest policy. + /// + public readonly string? GpgKey; + /// + /// URI from which to fetch the object. It should contain both the protocol and path following the format {protocol}://{location}. + /// + public readonly string Uri; + + [OutputConstructor] + private GuestPoliciesPackageRepositoryApt( + string? archiveType, + + ImmutableArray components, + + string distribution, + + string? gpgKey, + + string uri) + { + ArchiveType = archiveType; + Components = components; + Distribution = distribution; + GpgKey = gpgKey; + Uri = uri; + } + } +} diff --git a/sdk/dotnet/OsConfig/Outputs/GuestPoliciesPackageRepositoryGoo.cs b/sdk/dotnet/OsConfig/Outputs/GuestPoliciesPackageRepositoryGoo.cs new file mode 100644 index 0000000000..2579afde88 --- /dev/null +++ b/sdk/dotnet/OsConfig/Outputs/GuestPoliciesPackageRepositoryGoo.cs @@ -0,0 +1,38 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.OsConfig.Outputs +{ + + [OutputType] + public sealed class GuestPoliciesPackageRepositoryGoo + { + /// + /// Unique identifier for the recipe. Only one recipe with a given name is installed on an instance. + /// Names are also used to identify resources which helps to determine whether guest policies have conflicts. + /// This means that requests to create multiple recipes with the same name and version are rejected since they + /// could potentially have conflicting assignments. + /// + public readonly string Name; + /// + /// The url of the repository. + /// + public readonly string Url; + + [OutputConstructor] + private GuestPoliciesPackageRepositoryGoo( + string name, + + string url) + { + Name = name; + Url = url; + } + } +} diff --git a/sdk/dotnet/OsConfig/Outputs/GuestPoliciesPackageRepositoryYum.cs b/sdk/dotnet/OsConfig/Outputs/GuestPoliciesPackageRepositoryYum.cs new file mode 100644 index 0000000000..64e0b7df97 --- /dev/null +++ b/sdk/dotnet/OsConfig/Outputs/GuestPoliciesPackageRepositoryYum.cs @@ -0,0 +1,50 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.OsConfig.Outputs +{ + + [OutputType] + public sealed class GuestPoliciesPackageRepositoryYum + { + /// + /// The location of the repository directory. + /// + public readonly string BaseUrl; + /// + /// The display name of the repository. + /// + public readonly string? DisplayName; + /// + /// URIs of GPG keys. + /// + public readonly ImmutableArray GpgKeys; + /// + /// Id of the artifact, which the installation and update steps of this recipe can reference. + /// Artifacts in a recipe cannot have the same id. + /// + public readonly string Id; + + [OutputConstructor] + private GuestPoliciesPackageRepositoryYum( + string baseUrl, + + string? displayName, + + ImmutableArray gpgKeys, + + string id) + { + BaseUrl = baseUrl; + DisplayName = displayName; + GpgKeys = gpgKeys; + Id = id; + } + } +} diff --git a/sdk/dotnet/OsConfig/Outputs/GuestPoliciesPackageRepositoryZypper.cs b/sdk/dotnet/OsConfig/Outputs/GuestPoliciesPackageRepositoryZypper.cs new file mode 100644 index 0000000000..0f7a19131a --- /dev/null +++ b/sdk/dotnet/OsConfig/Outputs/GuestPoliciesPackageRepositoryZypper.cs @@ -0,0 +1,50 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.OsConfig.Outputs +{ + + [OutputType] + public sealed class GuestPoliciesPackageRepositoryZypper + { + /// + /// The location of the repository directory. + /// + public readonly string BaseUrl; + /// + /// The display name of the repository. + /// + public readonly string? DisplayName; + /// + /// URIs of GPG keys. + /// + public readonly ImmutableArray GpgKeys; + /// + /// Id of the artifact, which the installation and update steps of this recipe can reference. + /// Artifacts in a recipe cannot have the same id. + /// + public readonly string Id; + + [OutputConstructor] + private GuestPoliciesPackageRepositoryZypper( + string baseUrl, + + string? displayName, + + ImmutableArray gpgKeys, + + string id) + { + BaseUrl = baseUrl; + DisplayName = displayName; + GpgKeys = gpgKeys; + Id = id; + } + } +} diff --git a/sdk/dotnet/OsConfig/Outputs/GuestPoliciesRecipe.cs b/sdk/dotnet/OsConfig/Outputs/GuestPoliciesRecipe.cs new file mode 100644 index 0000000000..e477856a27 --- /dev/null +++ b/sdk/dotnet/OsConfig/Outputs/GuestPoliciesRecipe.cs @@ -0,0 +1,72 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.OsConfig.Outputs +{ + + [OutputType] + public sealed class GuestPoliciesRecipe + { + /// + /// Resources available to be used in the steps in the recipe. Structure is documented below. + /// + public readonly ImmutableArray Artifacts; + /// + /// Default is INSTALLED. The desired state the agent should maintain for this recipe. + /// INSTALLED: The software recipe is installed on the instance but won't be updated to new versions. + /// INSTALLED_KEEP_UPDATED: The software recipe is installed on the instance. The recipe is updated to a higher version, + /// if a higher version of the recipe is assigned to this instance. + /// REMOVE: Remove is unsupported for software recipes and attempts to create or update a recipe to the REMOVE state is rejected. + /// + public readonly string? DesiredState; + /// + /// Actions to be taken for installing this recipe. On failure it stops executing steps and does not attempt another installation. + /// Any steps taken (including partially completed steps) are not rolled back. Structure is documented below. + /// + public readonly ImmutableArray InstallSteps; + /// + /// Unique identifier for the recipe. Only one recipe with a given name is installed on an instance. + /// Names are also used to identify resources which helps to determine whether guest policies have conflicts. + /// This means that requests to create multiple recipes with the same name and version are rejected since they + /// could potentially have conflicting assignments. + /// + public readonly string Name; + /// + /// Actions to be taken for updating this recipe. On failure it stops executing steps and does not attempt another update for this recipe. + /// Any steps taken (including partially completed steps) are not rolled back. Structure is documented below. + /// + public readonly ImmutableArray UpdateSteps; + /// + /// The version of this software recipe. Version can be up to 4 period separated numbers (e.g. 12.34.56.78). + /// + public readonly string? Version; + + [OutputConstructor] + private GuestPoliciesRecipe( + ImmutableArray artifacts, + + string? desiredState, + + ImmutableArray installSteps, + + string name, + + ImmutableArray updateSteps, + + string? version) + { + Artifacts = artifacts; + DesiredState = desiredState; + InstallSteps = installSteps; + Name = name; + UpdateSteps = updateSteps; + Version = version; + } + } +} diff --git a/sdk/dotnet/OsConfig/Outputs/GuestPoliciesRecipeArtifact.cs b/sdk/dotnet/OsConfig/Outputs/GuestPoliciesRecipeArtifact.cs new file mode 100644 index 0000000000..4e29f27107 --- /dev/null +++ b/sdk/dotnet/OsConfig/Outputs/GuestPoliciesRecipeArtifact.cs @@ -0,0 +1,52 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.OsConfig.Outputs +{ + + [OutputType] + public sealed class GuestPoliciesRecipeArtifact + { + /// + /// Defaults to false. When false, recipes are subject to validations based on the artifact type: + /// Remote: A checksum must be specified, and only protocols with transport-layer security are permitted. + /// GCS: An object generation number must be specified. + /// + public readonly bool? AllowInsecure; + /// + /// A Google Cloud Storage artifact. Structure is documented below. + /// + public readonly Outputs.GuestPoliciesRecipeArtifactGcs? Gcs; + /// + /// Id of the artifact, which the installation and update steps of this recipe can reference. + /// Artifacts in a recipe cannot have the same id. + /// + public readonly string Id; + /// + /// A generic remote artifact. Structure is documented below. + /// + public readonly Outputs.GuestPoliciesRecipeArtifactRemote? Remote; + + [OutputConstructor] + private GuestPoliciesRecipeArtifact( + bool? allowInsecure, + + Outputs.GuestPoliciesRecipeArtifactGcs? gcs, + + string id, + + Outputs.GuestPoliciesRecipeArtifactRemote? remote) + { + AllowInsecure = allowInsecure; + Gcs = gcs; + Id = id; + Remote = remote; + } + } +} diff --git a/sdk/dotnet/OsConfig/Outputs/GuestPoliciesRecipeArtifactGcs.cs b/sdk/dotnet/OsConfig/Outputs/GuestPoliciesRecipeArtifactGcs.cs new file mode 100644 index 0000000000..79ff7eba3e --- /dev/null +++ b/sdk/dotnet/OsConfig/Outputs/GuestPoliciesRecipeArtifactGcs.cs @@ -0,0 +1,45 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.OsConfig.Outputs +{ + + [OutputType] + public sealed class GuestPoliciesRecipeArtifactGcs + { + /// + /// Bucket of the Google Cloud Storage object. Given an example URL: https://storage.googleapis.com/my-bucket/foo/bar#1234567 + /// this value would be my-bucket. + /// + public readonly string? Bucket; + /// + /// Must be provided if allowInsecure is false. Generation number of the Google Cloud Storage object. + /// https://storage.googleapis.com/my-bucket/foo/bar#1234567 this value would be 1234567. + /// + public readonly int? Generation; + /// + /// Name of the Google Cloud Storage object. Given an example URL: https://storage.googleapis.com/my-bucket/foo/bar#1234567 + /// this value would be foo/bar. + /// + public readonly string? Object; + + [OutputConstructor] + private GuestPoliciesRecipeArtifactGcs( + string? bucket, + + int? generation, + + string? @object) + { + Bucket = bucket; + Generation = generation; + Object = @object; + } + } +} diff --git a/sdk/dotnet/OsConfig/Outputs/GuestPoliciesRecipeArtifactRemote.cs b/sdk/dotnet/OsConfig/Outputs/GuestPoliciesRecipeArtifactRemote.cs new file mode 100644 index 0000000000..90dbb9ac87 --- /dev/null +++ b/sdk/dotnet/OsConfig/Outputs/GuestPoliciesRecipeArtifactRemote.cs @@ -0,0 +1,37 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.OsConfig.Outputs +{ + + [OutputType] + public sealed class GuestPoliciesRecipeArtifactRemote + { + /// + /// Must be provided if allowInsecure is false. SHA256 checksum in hex format, to compare to the checksum of the artifact. + /// If the checksum is not empty and it doesn't match the artifact then the recipe installation fails before running any + /// of the steps. + /// + public readonly string? CheckSum; + /// + /// URI from which to fetch the object. It should contain both the protocol and path following the format {protocol}://{location}. + /// + public readonly string? Uri; + + [OutputConstructor] + private GuestPoliciesRecipeArtifactRemote( + string? checkSum, + + string? uri) + { + CheckSum = checkSum; + Uri = uri; + } + } +} diff --git a/sdk/dotnet/OsConfig/Outputs/GuestPoliciesRecipeInstallStep.cs b/sdk/dotnet/OsConfig/Outputs/GuestPoliciesRecipeInstallStep.cs new file mode 100644 index 0000000000..6b3bc84cbe --- /dev/null +++ b/sdk/dotnet/OsConfig/Outputs/GuestPoliciesRecipeInstallStep.cs @@ -0,0 +1,70 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.OsConfig.Outputs +{ + + [OutputType] + public sealed class GuestPoliciesRecipeInstallStep + { + /// + /// Extracts an archive into the specified directory. Structure is documented below. + /// + public readonly Outputs.GuestPoliciesRecipeInstallStepArchiveExtraction? ArchiveExtraction; + /// + /// Installs a deb file via dpkg. Structure is documented below. + /// + public readonly Outputs.GuestPoliciesRecipeInstallStepDpkgInstallation? DpkgInstallation; + /// + /// Copies a file onto the instance. Structure is documented below. + /// + public readonly Outputs.GuestPoliciesRecipeInstallStepFileCopy? FileCopy; + /// + /// Executes an artifact or local file. Structure is documented below. + /// + public readonly Outputs.GuestPoliciesRecipeInstallStepFileExec? FileExec; + /// + /// Installs an MSI file. Structure is documented below. + /// + public readonly Outputs.GuestPoliciesRecipeInstallStepMsiInstallation? MsiInstallation; + /// + /// Installs an rpm file via the rpm utility. Structure is documented below. + /// + public readonly Outputs.GuestPoliciesRecipeInstallStepRpmInstallation? RpmInstallation; + /// + /// Runs commands in a shell. Structure is documented below. + /// + public readonly Outputs.GuestPoliciesRecipeInstallStepScriptRun? ScriptRun; + + [OutputConstructor] + private GuestPoliciesRecipeInstallStep( + Outputs.GuestPoliciesRecipeInstallStepArchiveExtraction? archiveExtraction, + + Outputs.GuestPoliciesRecipeInstallStepDpkgInstallation? dpkgInstallation, + + Outputs.GuestPoliciesRecipeInstallStepFileCopy? fileCopy, + + Outputs.GuestPoliciesRecipeInstallStepFileExec? fileExec, + + Outputs.GuestPoliciesRecipeInstallStepMsiInstallation? msiInstallation, + + Outputs.GuestPoliciesRecipeInstallStepRpmInstallation? rpmInstallation, + + Outputs.GuestPoliciesRecipeInstallStepScriptRun? scriptRun) + { + ArchiveExtraction = archiveExtraction; + DpkgInstallation = dpkgInstallation; + FileCopy = fileCopy; + FileExec = fileExec; + MsiInstallation = msiInstallation; + RpmInstallation = rpmInstallation; + ScriptRun = scriptRun; + } + } +} diff --git a/sdk/dotnet/OsConfig/Outputs/GuestPoliciesRecipeInstallStepArchiveExtraction.cs b/sdk/dotnet/OsConfig/Outputs/GuestPoliciesRecipeInstallStepArchiveExtraction.cs new file mode 100644 index 0000000000..992e3ba7ea --- /dev/null +++ b/sdk/dotnet/OsConfig/Outputs/GuestPoliciesRecipeInstallStepArchiveExtraction.cs @@ -0,0 +1,42 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.OsConfig.Outputs +{ + + [OutputType] + public sealed class GuestPoliciesRecipeInstallStepArchiveExtraction + { + /// + /// The id of the relevant artifact in the recipe. + /// + public readonly string ArtifactId; + /// + /// Directory to extract archive to. Defaults to / on Linux or C:\ on Windows. + /// + public readonly string? Destination; + /// + /// The type of the archive to extract. + /// + public readonly string Type; + + [OutputConstructor] + private GuestPoliciesRecipeInstallStepArchiveExtraction( + string artifactId, + + string? destination, + + string type) + { + ArtifactId = artifactId; + Destination = destination; + Type = type; + } + } +} diff --git a/sdk/dotnet/OsConfig/Outputs/GuestPoliciesRecipeInstallStepDpkgInstallation.cs b/sdk/dotnet/OsConfig/Outputs/GuestPoliciesRecipeInstallStepDpkgInstallation.cs new file mode 100644 index 0000000000..768adf1e34 --- /dev/null +++ b/sdk/dotnet/OsConfig/Outputs/GuestPoliciesRecipeInstallStepDpkgInstallation.cs @@ -0,0 +1,27 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.OsConfig.Outputs +{ + + [OutputType] + public sealed class GuestPoliciesRecipeInstallStepDpkgInstallation + { + /// + /// The id of the relevant artifact in the recipe. + /// + public readonly string ArtifactId; + + [OutputConstructor] + private GuestPoliciesRecipeInstallStepDpkgInstallation(string artifactId) + { + ArtifactId = artifactId; + } + } +} diff --git a/sdk/dotnet/OsConfig/Outputs/GuestPoliciesRecipeInstallStepFileCopy.cs b/sdk/dotnet/OsConfig/Outputs/GuestPoliciesRecipeInstallStepFileCopy.cs new file mode 100644 index 0000000000..b290db2239 --- /dev/null +++ b/sdk/dotnet/OsConfig/Outputs/GuestPoliciesRecipeInstallStepFileCopy.cs @@ -0,0 +1,55 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.OsConfig.Outputs +{ + + [OutputType] + public sealed class GuestPoliciesRecipeInstallStepFileCopy + { + /// + /// The id of the relevant artifact in the recipe. + /// + public readonly string ArtifactId; + /// + /// Directory to extract archive to. Defaults to / on Linux or C:\ on Windows. + /// + public readonly string Destination; + /// + /// Whether to allow this step to overwrite existing files.If this is false and the file already exists the file + /// is not overwritten and the step is considered a success. Defaults to false. + /// + public readonly bool? Overwrite; + /// + /// Consists of three octal digits which represent, in order, the permissions of the owner, group, and other users + /// for the file (similarly to the numeric mode used in the linux chmod utility). Each digit represents a three bit + /// number with the 4 bit corresponding to the read permissions, the 2 bit corresponds to the write bit, and the one + /// bit corresponds to the execute permission. Default behavior is 755. + /// Below are some examples of permissions and their associated values: + /// read, write, and execute: 7 read and execute: 5 read and write: 6 read only: 4 + /// + public readonly string? Permissions; + + [OutputConstructor] + private GuestPoliciesRecipeInstallStepFileCopy( + string artifactId, + + string destination, + + bool? overwrite, + + string? permissions) + { + ArtifactId = artifactId; + Destination = destination; + Overwrite = overwrite; + Permissions = permissions; + } + } +} diff --git a/sdk/dotnet/OsConfig/Outputs/GuestPoliciesRecipeInstallStepFileExec.cs b/sdk/dotnet/OsConfig/Outputs/GuestPoliciesRecipeInstallStepFileExec.cs new file mode 100644 index 0000000000..bb90062680 --- /dev/null +++ b/sdk/dotnet/OsConfig/Outputs/GuestPoliciesRecipeInstallStepFileExec.cs @@ -0,0 +1,49 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.OsConfig.Outputs +{ + + [OutputType] + public sealed class GuestPoliciesRecipeInstallStepFileExec + { + /// + /// Return codes that indicate that the software installed or updated successfully. Behaviour defaults to [0] + /// + public readonly string? AllowedExitCodes; + /// + /// Arguments to be passed to the provided executable. + /// + public readonly ImmutableArray Args; + /// + /// The id of the relevant artifact in the recipe. + /// + public readonly string? ArtifactId; + /// + /// The absolute path of the file on the local filesystem. + /// + public readonly string? LocalPath; + + [OutputConstructor] + private GuestPoliciesRecipeInstallStepFileExec( + string? allowedExitCodes, + + ImmutableArray args, + + string? artifactId, + + string? localPath) + { + AllowedExitCodes = allowedExitCodes; + Args = args; + ArtifactId = artifactId; + LocalPath = localPath; + } + } +} diff --git a/sdk/dotnet/OsConfig/Outputs/GuestPoliciesRecipeInstallStepMsiInstallation.cs b/sdk/dotnet/OsConfig/Outputs/GuestPoliciesRecipeInstallStepMsiInstallation.cs new file mode 100644 index 0000000000..41fe9be3f5 --- /dev/null +++ b/sdk/dotnet/OsConfig/Outputs/GuestPoliciesRecipeInstallStepMsiInstallation.cs @@ -0,0 +1,42 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.OsConfig.Outputs +{ + + [OutputType] + public sealed class GuestPoliciesRecipeInstallStepMsiInstallation + { + /// + /// Return codes that indicate that the software installed or updated successfully. Behaviour defaults to [0] + /// + public readonly ImmutableArray AllowedExitCodes; + /// + /// The id of the relevant artifact in the recipe. + /// + public readonly string ArtifactId; + /// + /// The flags to use when installing the MSI. Defaults to the install flag. + /// + public readonly ImmutableArray Flags; + + [OutputConstructor] + private GuestPoliciesRecipeInstallStepMsiInstallation( + ImmutableArray allowedExitCodes, + + string artifactId, + + ImmutableArray flags) + { + AllowedExitCodes = allowedExitCodes; + ArtifactId = artifactId; + Flags = flags; + } + } +} diff --git a/sdk/dotnet/OsConfig/Outputs/GuestPoliciesRecipeInstallStepRpmInstallation.cs b/sdk/dotnet/OsConfig/Outputs/GuestPoliciesRecipeInstallStepRpmInstallation.cs new file mode 100644 index 0000000000..774f80304d --- /dev/null +++ b/sdk/dotnet/OsConfig/Outputs/GuestPoliciesRecipeInstallStepRpmInstallation.cs @@ -0,0 +1,27 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.OsConfig.Outputs +{ + + [OutputType] + public sealed class GuestPoliciesRecipeInstallStepRpmInstallation + { + /// + /// The id of the relevant artifact in the recipe. + /// + public readonly string ArtifactId; + + [OutputConstructor] + private GuestPoliciesRecipeInstallStepRpmInstallation(string artifactId) + { + ArtifactId = artifactId; + } + } +} diff --git a/sdk/dotnet/OsConfig/Outputs/GuestPoliciesRecipeInstallStepScriptRun.cs b/sdk/dotnet/OsConfig/Outputs/GuestPoliciesRecipeInstallStepScriptRun.cs new file mode 100644 index 0000000000..a8040869e5 --- /dev/null +++ b/sdk/dotnet/OsConfig/Outputs/GuestPoliciesRecipeInstallStepScriptRun.cs @@ -0,0 +1,43 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.OsConfig.Outputs +{ + + [OutputType] + public sealed class GuestPoliciesRecipeInstallStepScriptRun + { + /// + /// Return codes that indicate that the software installed or updated successfully. Behaviour defaults to [0] + /// + public readonly ImmutableArray AllowedExitCodes; + /// + /// The script interpreter to use to run the script. If no interpreter is specified the script is executed directly, + /// which likely only succeed for scripts with shebang lines. + /// + public readonly string? Interpreter; + /// + /// The shell script to be executed. + /// + public readonly string Script; + + [OutputConstructor] + private GuestPoliciesRecipeInstallStepScriptRun( + ImmutableArray allowedExitCodes, + + string? interpreter, + + string script) + { + AllowedExitCodes = allowedExitCodes; + Interpreter = interpreter; + Script = script; + } + } +} diff --git a/sdk/dotnet/OsConfig/Outputs/GuestPoliciesRecipeUpdateStep.cs b/sdk/dotnet/OsConfig/Outputs/GuestPoliciesRecipeUpdateStep.cs new file mode 100644 index 0000000000..487be493bd --- /dev/null +++ b/sdk/dotnet/OsConfig/Outputs/GuestPoliciesRecipeUpdateStep.cs @@ -0,0 +1,70 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.OsConfig.Outputs +{ + + [OutputType] + public sealed class GuestPoliciesRecipeUpdateStep + { + /// + /// Extracts an archive into the specified directory. Structure is documented below. + /// + public readonly Outputs.GuestPoliciesRecipeUpdateStepArchiveExtraction? ArchiveExtraction; + /// + /// Installs a deb file via dpkg. Structure is documented below. + /// + public readonly Outputs.GuestPoliciesRecipeUpdateStepDpkgInstallation? DpkgInstallation; + /// + /// Copies a file onto the instance. Structure is documented below. + /// + public readonly Outputs.GuestPoliciesRecipeUpdateStepFileCopy? FileCopy; + /// + /// Executes an artifact or local file. Structure is documented below. + /// + public readonly Outputs.GuestPoliciesRecipeUpdateStepFileExec? FileExec; + /// + /// Installs an MSI file. Structure is documented below. + /// + public readonly Outputs.GuestPoliciesRecipeUpdateStepMsiInstallation? MsiInstallation; + /// + /// Installs an rpm file via the rpm utility. Structure is documented below. + /// + public readonly Outputs.GuestPoliciesRecipeUpdateStepRpmInstallation? RpmInstallation; + /// + /// Runs commands in a shell. Structure is documented below. + /// + public readonly Outputs.GuestPoliciesRecipeUpdateStepScriptRun? ScriptRun; + + [OutputConstructor] + private GuestPoliciesRecipeUpdateStep( + Outputs.GuestPoliciesRecipeUpdateStepArchiveExtraction? archiveExtraction, + + Outputs.GuestPoliciesRecipeUpdateStepDpkgInstallation? dpkgInstallation, + + Outputs.GuestPoliciesRecipeUpdateStepFileCopy? fileCopy, + + Outputs.GuestPoliciesRecipeUpdateStepFileExec? fileExec, + + Outputs.GuestPoliciesRecipeUpdateStepMsiInstallation? msiInstallation, + + Outputs.GuestPoliciesRecipeUpdateStepRpmInstallation? rpmInstallation, + + Outputs.GuestPoliciesRecipeUpdateStepScriptRun? scriptRun) + { + ArchiveExtraction = archiveExtraction; + DpkgInstallation = dpkgInstallation; + FileCopy = fileCopy; + FileExec = fileExec; + MsiInstallation = msiInstallation; + RpmInstallation = rpmInstallation; + ScriptRun = scriptRun; + } + } +} diff --git a/sdk/dotnet/OsConfig/Outputs/GuestPoliciesRecipeUpdateStepArchiveExtraction.cs b/sdk/dotnet/OsConfig/Outputs/GuestPoliciesRecipeUpdateStepArchiveExtraction.cs new file mode 100644 index 0000000000..b94f95fd66 --- /dev/null +++ b/sdk/dotnet/OsConfig/Outputs/GuestPoliciesRecipeUpdateStepArchiveExtraction.cs @@ -0,0 +1,42 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.OsConfig.Outputs +{ + + [OutputType] + public sealed class GuestPoliciesRecipeUpdateStepArchiveExtraction + { + /// + /// The id of the relevant artifact in the recipe. + /// + public readonly string ArtifactId; + /// + /// Directory to extract archive to. Defaults to / on Linux or C:\ on Windows. + /// + public readonly string? Destination; + /// + /// The type of the archive to extract. + /// + public readonly string Type; + + [OutputConstructor] + private GuestPoliciesRecipeUpdateStepArchiveExtraction( + string artifactId, + + string? destination, + + string type) + { + ArtifactId = artifactId; + Destination = destination; + Type = type; + } + } +} diff --git a/sdk/dotnet/OsConfig/Outputs/GuestPoliciesRecipeUpdateStepDpkgInstallation.cs b/sdk/dotnet/OsConfig/Outputs/GuestPoliciesRecipeUpdateStepDpkgInstallation.cs new file mode 100644 index 0000000000..54aa41b69a --- /dev/null +++ b/sdk/dotnet/OsConfig/Outputs/GuestPoliciesRecipeUpdateStepDpkgInstallation.cs @@ -0,0 +1,27 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.OsConfig.Outputs +{ + + [OutputType] + public sealed class GuestPoliciesRecipeUpdateStepDpkgInstallation + { + /// + /// The id of the relevant artifact in the recipe. + /// + public readonly string ArtifactId; + + [OutputConstructor] + private GuestPoliciesRecipeUpdateStepDpkgInstallation(string artifactId) + { + ArtifactId = artifactId; + } + } +} diff --git a/sdk/dotnet/OsConfig/Outputs/GuestPoliciesRecipeUpdateStepFileCopy.cs b/sdk/dotnet/OsConfig/Outputs/GuestPoliciesRecipeUpdateStepFileCopy.cs new file mode 100644 index 0000000000..5182a8fef5 --- /dev/null +++ b/sdk/dotnet/OsConfig/Outputs/GuestPoliciesRecipeUpdateStepFileCopy.cs @@ -0,0 +1,55 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.OsConfig.Outputs +{ + + [OutputType] + public sealed class GuestPoliciesRecipeUpdateStepFileCopy + { + /// + /// The id of the relevant artifact in the recipe. + /// + public readonly string ArtifactId; + /// + /// Directory to extract archive to. Defaults to / on Linux or C:\ on Windows. + /// + public readonly string Destination; + /// + /// Whether to allow this step to overwrite existing files.If this is false and the file already exists the file + /// is not overwritten and the step is considered a success. Defaults to false. + /// + public readonly bool? Overwrite; + /// + /// Consists of three octal digits which represent, in order, the permissions of the owner, group, and other users + /// for the file (similarly to the numeric mode used in the linux chmod utility). Each digit represents a three bit + /// number with the 4 bit corresponding to the read permissions, the 2 bit corresponds to the write bit, and the one + /// bit corresponds to the execute permission. Default behavior is 755. + /// Below are some examples of permissions and their associated values: + /// read, write, and execute: 7 read and execute: 5 read and write: 6 read only: 4 + /// + public readonly string? Permissions; + + [OutputConstructor] + private GuestPoliciesRecipeUpdateStepFileCopy( + string artifactId, + + string destination, + + bool? overwrite, + + string? permissions) + { + ArtifactId = artifactId; + Destination = destination; + Overwrite = overwrite; + Permissions = permissions; + } + } +} diff --git a/sdk/dotnet/OsConfig/Outputs/GuestPoliciesRecipeUpdateStepFileExec.cs b/sdk/dotnet/OsConfig/Outputs/GuestPoliciesRecipeUpdateStepFileExec.cs new file mode 100644 index 0000000000..aebcc07ad9 --- /dev/null +++ b/sdk/dotnet/OsConfig/Outputs/GuestPoliciesRecipeUpdateStepFileExec.cs @@ -0,0 +1,49 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.OsConfig.Outputs +{ + + [OutputType] + public sealed class GuestPoliciesRecipeUpdateStepFileExec + { + /// + /// Return codes that indicate that the software installed or updated successfully. Behaviour defaults to [0] + /// + public readonly ImmutableArray AllowedExitCodes; + /// + /// Arguments to be passed to the provided executable. + /// + public readonly ImmutableArray Args; + /// + /// The id of the relevant artifact in the recipe. + /// + public readonly string? ArtifactId; + /// + /// The absolute path of the file on the local filesystem. + /// + public readonly string? LocalPath; + + [OutputConstructor] + private GuestPoliciesRecipeUpdateStepFileExec( + ImmutableArray allowedExitCodes, + + ImmutableArray args, + + string? artifactId, + + string? localPath) + { + AllowedExitCodes = allowedExitCodes; + Args = args; + ArtifactId = artifactId; + LocalPath = localPath; + } + } +} diff --git a/sdk/dotnet/OsConfig/Outputs/GuestPoliciesRecipeUpdateStepMsiInstallation.cs b/sdk/dotnet/OsConfig/Outputs/GuestPoliciesRecipeUpdateStepMsiInstallation.cs new file mode 100644 index 0000000000..62ce036dde --- /dev/null +++ b/sdk/dotnet/OsConfig/Outputs/GuestPoliciesRecipeUpdateStepMsiInstallation.cs @@ -0,0 +1,42 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.OsConfig.Outputs +{ + + [OutputType] + public sealed class GuestPoliciesRecipeUpdateStepMsiInstallation + { + /// + /// Return codes that indicate that the software installed or updated successfully. Behaviour defaults to [0] + /// + public readonly ImmutableArray AllowedExitCodes; + /// + /// The id of the relevant artifact in the recipe. + /// + public readonly string ArtifactId; + /// + /// The flags to use when installing the MSI. Defaults to the install flag. + /// + public readonly ImmutableArray Flags; + + [OutputConstructor] + private GuestPoliciesRecipeUpdateStepMsiInstallation( + ImmutableArray allowedExitCodes, + + string artifactId, + + ImmutableArray flags) + { + AllowedExitCodes = allowedExitCodes; + ArtifactId = artifactId; + Flags = flags; + } + } +} diff --git a/sdk/dotnet/OsConfig/Outputs/GuestPoliciesRecipeUpdateStepRpmInstallation.cs b/sdk/dotnet/OsConfig/Outputs/GuestPoliciesRecipeUpdateStepRpmInstallation.cs new file mode 100644 index 0000000000..6410774414 --- /dev/null +++ b/sdk/dotnet/OsConfig/Outputs/GuestPoliciesRecipeUpdateStepRpmInstallation.cs @@ -0,0 +1,27 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.OsConfig.Outputs +{ + + [OutputType] + public sealed class GuestPoliciesRecipeUpdateStepRpmInstallation + { + /// + /// The id of the relevant artifact in the recipe. + /// + public readonly string ArtifactId; + + [OutputConstructor] + private GuestPoliciesRecipeUpdateStepRpmInstallation(string artifactId) + { + ArtifactId = artifactId; + } + } +} diff --git a/sdk/dotnet/OsConfig/Outputs/GuestPoliciesRecipeUpdateStepScriptRun.cs b/sdk/dotnet/OsConfig/Outputs/GuestPoliciesRecipeUpdateStepScriptRun.cs new file mode 100644 index 0000000000..850aeacda6 --- /dev/null +++ b/sdk/dotnet/OsConfig/Outputs/GuestPoliciesRecipeUpdateStepScriptRun.cs @@ -0,0 +1,43 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.OsConfig.Outputs +{ + + [OutputType] + public sealed class GuestPoliciesRecipeUpdateStepScriptRun + { + /// + /// Return codes that indicate that the software installed or updated successfully. Behaviour defaults to [0] + /// + public readonly ImmutableArray AllowedExitCodes; + /// + /// The script interpreter to use to run the script. If no interpreter is specified the script is executed directly, + /// which likely only succeed for scripts with shebang lines. + /// + public readonly string? Interpreter; + /// + /// The shell script to be executed. + /// + public readonly string Script; + + [OutputConstructor] + private GuestPoliciesRecipeUpdateStepScriptRun( + ImmutableArray allowedExitCodes, + + string? interpreter, + + string script) + { + AllowedExitCodes = allowedExitCodes; + Interpreter = interpreter; + Script = script; + } + } +} diff --git a/sdk/dotnet/Provider.cs b/sdk/dotnet/Provider.cs index 779f69cb6c..c0d2d5e14e 100644 --- a/sdk/dotnet/Provider.cs +++ b/sdk/dotnet/Provider.cs @@ -80,6 +80,9 @@ public sealed class ProviderArgs : Pulumi.ResourceArgs [Input("binaryAuthorizationCustomEndpoint")] public Input? BinaryAuthorizationCustomEndpoint { get; set; } + [Input("cloudAssetCustomEndpoint")] + public Input? CloudAssetCustomEndpoint { get; set; } + [Input("cloudBillingCustomEndpoint")] public Input? CloudBillingCustomEndpoint { get; set; } diff --git a/sdk/dotnet/Sql/GetDatabaseInstance.cs b/sdk/dotnet/Sql/GetDatabaseInstance.cs new file mode 100644 index 0000000000..26fb685652 --- /dev/null +++ b/sdk/dotnet/Sql/GetDatabaseInstance.cs @@ -0,0 +1,158 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Sql +{ + public static class GetDatabaseInstance + { + /// + /// Use this data source to get information about a Cloud SQL instance + /// + public static Task InvokeAsync(GetDatabaseInstanceArgs args, InvokeOptions? options = null) + => Pulumi.Deployment.Instance.InvokeAsync("gcp:sql/getDatabaseInstance:getDatabaseInstance", args ?? new GetDatabaseInstanceArgs(), options.WithVersion()); + } + + + public sealed class GetDatabaseInstanceArgs : Pulumi.InvokeArgs + { + /// + /// The name of the instance. + /// + [Input("name", required: true)] + public string Name { get; set; } = null!; + + public GetDatabaseInstanceArgs() + { + } + } + + + [OutputType] + public sealed class GetDatabaseInstanceResult + { + /// + /// The connection name of the instance to be used in connection strings. + /// + public readonly string ConnectionName; + /// + /// The MySQL, PostgreSQL or SQL Server (beta) version to use. + /// + public readonly string DatabaseVersion; + public readonly string EncryptionKeyName; + /// + /// The first IPv4 address of any type assigned. + /// + public readonly string FirstIpAddress; + /// + /// The provider-assigned unique ID for this managed resource. + /// + public readonly string Id; + public readonly ImmutableArray IpAddresses; + /// + /// The name of the instance that will act as + /// the master in the replication setup. + /// + public readonly string MasterInstanceName; + /// + /// A name for this whitelist entry. + /// + public readonly string Name; + /// + /// The first private (`PRIVATE`) IPv4 address assigned. + /// + public readonly string PrivateIpAddress; + public readonly string Project; + /// + /// The first public (`PRIMARY`) IPv4 address assigned. + /// + public readonly string PublicIpAddress; + public readonly string Region; + /// + /// The configuration for replication. The + /// configuration is detailed below. + /// + public readonly ImmutableArray ReplicaConfigurations; + /// + /// Initial root password. Required for MS SQL Server, ignored by MySQL and PostgreSQL. + /// + public readonly string RootPassword; + /// + /// The URI of the created resource. + /// + public readonly string SelfLink; + public readonly ImmutableArray ServerCaCerts; + /// + /// The service account email address assigned to the instance. + /// + public readonly string ServiceAccountEmailAddress; + /// + /// The settings to use for the database. The + /// configuration is detailed below. + /// + public readonly ImmutableArray Settings; + + [OutputConstructor] + private GetDatabaseInstanceResult( + string connectionName, + + string databaseVersion, + + string encryptionKeyName, + + string firstIpAddress, + + string id, + + ImmutableArray ipAddresses, + + string masterInstanceName, + + string name, + + string privateIpAddress, + + string project, + + string publicIpAddress, + + string region, + + ImmutableArray replicaConfigurations, + + string rootPassword, + + string selfLink, + + ImmutableArray serverCaCerts, + + string serviceAccountEmailAddress, + + ImmutableArray settings) + { + ConnectionName = connectionName; + DatabaseVersion = databaseVersion; + EncryptionKeyName = encryptionKeyName; + FirstIpAddress = firstIpAddress; + Id = id; + IpAddresses = ipAddresses; + MasterInstanceName = masterInstanceName; + Name = name; + PrivateIpAddress = privateIpAddress; + Project = project; + PublicIpAddress = publicIpAddress; + Region = region; + ReplicaConfigurations = replicaConfigurations; + RootPassword = rootPassword; + SelfLink = selfLink; + ServerCaCerts = serverCaCerts; + ServiceAccountEmailAddress = serviceAccountEmailAddress; + Settings = settings; + } + } +} diff --git a/sdk/dotnet/Sql/Outputs/GetDatabaseInstanceIpAddressResult.cs b/sdk/dotnet/Sql/Outputs/GetDatabaseInstanceIpAddressResult.cs new file mode 100644 index 0000000000..4224022710 --- /dev/null +++ b/sdk/dotnet/Sql/Outputs/GetDatabaseInstanceIpAddressResult.cs @@ -0,0 +1,33 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Sql.Outputs +{ + + [OutputType] + public sealed class GetDatabaseInstanceIpAddressResult + { + public readonly string IpAddress; + public readonly string TimeToRetire; + public readonly string Type; + + [OutputConstructor] + private GetDatabaseInstanceIpAddressResult( + string ipAddress, + + string timeToRetire, + + string type) + { + IpAddress = ipAddress; + TimeToRetire = timeToRetire; + Type = type; + } + } +} diff --git a/sdk/dotnet/Sql/Outputs/GetDatabaseInstanceReplicaConfigurationResult.cs b/sdk/dotnet/Sql/Outputs/GetDatabaseInstanceReplicaConfigurationResult.cs new file mode 100644 index 0000000000..7319218640 --- /dev/null +++ b/sdk/dotnet/Sql/Outputs/GetDatabaseInstanceReplicaConfigurationResult.cs @@ -0,0 +1,95 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Sql.Outputs +{ + + [OutputType] + public sealed class GetDatabaseInstanceReplicaConfigurationResult + { + /// + /// PEM representation of the trusted CA's x509 certificate. + /// + public readonly string CaCertificate; + /// + /// PEM representation of the slave's x509 certificate. + /// + public readonly string ClientCertificate; + /// + /// PEM representation of the slave's private key. + /// + public readonly string ClientKey; + /// + /// The number of seconds between connect retries. + /// + public readonly int ConnectRetryInterval; + /// + /// Path to a SQL file in GCS from which slave instances are created. + /// + public readonly string DumpFilePath; + /// + /// Specifies if the replica is the failover target. + /// + public readonly bool FailoverTarget; + /// + /// Time in ms between replication heartbeats. + /// + public readonly int MasterHeartbeatPeriod; + /// + /// Password for the replication connection. + /// + public readonly string Password; + public readonly string SslCipher; + /// + /// Username for replication connection. + /// + public readonly string Username; + /// + /// True if the master's common name value is checked during the SSL handshake. + /// + public readonly bool VerifyServerCertificate; + + [OutputConstructor] + private GetDatabaseInstanceReplicaConfigurationResult( + string caCertificate, + + string clientCertificate, + + string clientKey, + + int connectRetryInterval, + + string dumpFilePath, + + bool failoverTarget, + + int masterHeartbeatPeriod, + + string password, + + string sslCipher, + + string username, + + bool verifyServerCertificate) + { + CaCertificate = caCertificate; + ClientCertificate = clientCertificate; + ClientKey = clientKey; + ConnectRetryInterval = connectRetryInterval; + DumpFilePath = dumpFilePath; + FailoverTarget = failoverTarget; + MasterHeartbeatPeriod = masterHeartbeatPeriod; + Password = password; + SslCipher = sslCipher; + Username = username; + VerifyServerCertificate = verifyServerCertificate; + } + } +} diff --git a/sdk/dotnet/Sql/Outputs/GetDatabaseInstanceServerCaCertResult.cs b/sdk/dotnet/Sql/Outputs/GetDatabaseInstanceServerCaCertResult.cs new file mode 100644 index 0000000000..af96b760f4 --- /dev/null +++ b/sdk/dotnet/Sql/Outputs/GetDatabaseInstanceServerCaCertResult.cs @@ -0,0 +1,45 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Sql.Outputs +{ + + [OutputType] + public sealed class GetDatabaseInstanceServerCaCertResult + { + public readonly string Cert; + public readonly string CommonName; + public readonly string CreateTime; + /// + /// The [RFC 3339](https://tools.ietf.org/html/rfc3339) + /// formatted date time string indicating when this whitelist expires. + /// + public readonly string ExpirationTime; + public readonly string Sha1Fingerprint; + + [OutputConstructor] + private GetDatabaseInstanceServerCaCertResult( + string cert, + + string commonName, + + string createTime, + + string expirationTime, + + string sha1Fingerprint) + { + Cert = cert; + CommonName = commonName; + CreateTime = createTime; + ExpirationTime = expirationTime; + Sha1Fingerprint = sha1Fingerprint; + } + } +} diff --git a/sdk/dotnet/Sql/Outputs/GetDatabaseInstanceSettingBackupConfigurationResult.cs b/sdk/dotnet/Sql/Outputs/GetDatabaseInstanceSettingBackupConfigurationResult.cs new file mode 100644 index 0000000000..3de81c12ad --- /dev/null +++ b/sdk/dotnet/Sql/Outputs/GetDatabaseInstanceSettingBackupConfigurationResult.cs @@ -0,0 +1,46 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Sql.Outputs +{ + + [OutputType] + public sealed class GetDatabaseInstanceSettingBackupConfigurationResult + { + /// + /// True if binary logging is enabled. + /// + public readonly bool BinaryLogEnabled; + /// + /// True if backup configuration is enabled. + /// + public readonly bool Enabled; + public readonly string Location; + /// + /// `HH:MM` format time indicating when backup configuration starts. + /// + public readonly string StartTime; + + [OutputConstructor] + private GetDatabaseInstanceSettingBackupConfigurationResult( + bool binaryLogEnabled, + + bool enabled, + + string location, + + string startTime) + { + BinaryLogEnabled = binaryLogEnabled; + Enabled = enabled; + Location = location; + StartTime = startTime; + } + } +} diff --git a/sdk/dotnet/Sql/Outputs/GetDatabaseInstanceSettingDatabaseFlagResult.cs b/sdk/dotnet/Sql/Outputs/GetDatabaseInstanceSettingDatabaseFlagResult.cs new file mode 100644 index 0000000000..46d1f678af --- /dev/null +++ b/sdk/dotnet/Sql/Outputs/GetDatabaseInstanceSettingDatabaseFlagResult.cs @@ -0,0 +1,35 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Sql.Outputs +{ + + [OutputType] + public sealed class GetDatabaseInstanceSettingDatabaseFlagResult + { + /// + /// The name of the instance. + /// + public readonly string Name; + /// + /// A CIDR notation IPv4 or IPv6 address that is allowed to access this instance. + /// + public readonly string Value; + + [OutputConstructor] + private GetDatabaseInstanceSettingDatabaseFlagResult( + string name, + + string value) + { + Name = name; + Value = value; + } + } +} diff --git a/sdk/dotnet/Sql/Outputs/GetDatabaseInstanceSettingIpConfigurationAuthorizedNetworkResult.cs b/sdk/dotnet/Sql/Outputs/GetDatabaseInstanceSettingIpConfigurationAuthorizedNetworkResult.cs new file mode 100644 index 0000000000..cdc54de26a --- /dev/null +++ b/sdk/dotnet/Sql/Outputs/GetDatabaseInstanceSettingIpConfigurationAuthorizedNetworkResult.cs @@ -0,0 +1,43 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Sql.Outputs +{ + + [OutputType] + public sealed class GetDatabaseInstanceSettingIpConfigurationAuthorizedNetworkResult + { + /// + /// The [RFC 3339](https://tools.ietf.org/html/rfc3339) + /// formatted date time string indicating when this whitelist expires. + /// + public readonly string ExpirationTime; + /// + /// The name of the instance. + /// + public readonly string Name; + /// + /// A CIDR notation IPv4 or IPv6 address that is allowed to access this instance. + /// + public readonly string Value; + + [OutputConstructor] + private GetDatabaseInstanceSettingIpConfigurationAuthorizedNetworkResult( + string expirationTime, + + string name, + + string value) + { + ExpirationTime = expirationTime; + Name = name; + Value = value; + } + } +} diff --git a/sdk/dotnet/Sql/Outputs/GetDatabaseInstanceSettingIpConfigurationResult.cs b/sdk/dotnet/Sql/Outputs/GetDatabaseInstanceSettingIpConfigurationResult.cs new file mode 100644 index 0000000000..f7ca8d53ef --- /dev/null +++ b/sdk/dotnet/Sql/Outputs/GetDatabaseInstanceSettingIpConfigurationResult.cs @@ -0,0 +1,46 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Sql.Outputs +{ + + [OutputType] + public sealed class GetDatabaseInstanceSettingIpConfigurationResult + { + public readonly ImmutableArray AuthorizedNetworks; + /// + /// Whether this Cloud SQL instance should be assigned a public IPV4 address. + /// + public readonly bool Ipv4Enabled; + /// + /// The VPC network from which the Cloud SQL instance is accessible for private IP. + /// + public readonly string PrivateNetwork; + /// + /// True if mysqld default to `REQUIRE X509` for users connecting over IP. + /// + public readonly bool RequireSsl; + + [OutputConstructor] + private GetDatabaseInstanceSettingIpConfigurationResult( + ImmutableArray authorizedNetworks, + + bool ipv4Enabled, + + string privateNetwork, + + bool requireSsl) + { + AuthorizedNetworks = authorizedNetworks; + Ipv4Enabled = ipv4Enabled; + PrivateNetwork = privateNetwork; + RequireSsl = requireSsl; + } + } +} diff --git a/sdk/dotnet/Sql/Outputs/GetDatabaseInstanceSettingLocationPreferenceResult.cs b/sdk/dotnet/Sql/Outputs/GetDatabaseInstanceSettingLocationPreferenceResult.cs new file mode 100644 index 0000000000..322e47fca6 --- /dev/null +++ b/sdk/dotnet/Sql/Outputs/GetDatabaseInstanceSettingLocationPreferenceResult.cs @@ -0,0 +1,35 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Sql.Outputs +{ + + [OutputType] + public sealed class GetDatabaseInstanceSettingLocationPreferenceResult + { + /// + /// A GAE application whose zone to remain in. + /// + public readonly string FollowGaeApplication; + /// + /// The preferred compute engine. + /// + public readonly string Zone; + + [OutputConstructor] + private GetDatabaseInstanceSettingLocationPreferenceResult( + string followGaeApplication, + + string zone) + { + FollowGaeApplication = followGaeApplication; + Zone = zone; + } + } +} diff --git a/sdk/dotnet/Sql/Outputs/GetDatabaseInstanceSettingMaintenanceWindowResult.cs b/sdk/dotnet/Sql/Outputs/GetDatabaseInstanceSettingMaintenanceWindowResult.cs new file mode 100644 index 0000000000..1ca2f6a854 --- /dev/null +++ b/sdk/dotnet/Sql/Outputs/GetDatabaseInstanceSettingMaintenanceWindowResult.cs @@ -0,0 +1,42 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Sql.Outputs +{ + + [OutputType] + public sealed class GetDatabaseInstanceSettingMaintenanceWindowResult + { + /// + /// Day of week (`1-7`), starting on Monday. + /// + public readonly int Day; + /// + /// Hour of day (`0-23`), ignored if `day` not set. + /// + public readonly int Hour; + /// + /// Receive updates earlier (`canary`) or later (`stable`). + /// + public readonly string UpdateTrack; + + [OutputConstructor] + private GetDatabaseInstanceSettingMaintenanceWindowResult( + int day, + + int hour, + + string updateTrack) + { + Day = day; + Hour = hour; + UpdateTrack = updateTrack; + } + } +} diff --git a/sdk/dotnet/Sql/Outputs/GetDatabaseInstanceSettingResult.cs b/sdk/dotnet/Sql/Outputs/GetDatabaseInstanceSettingResult.cs new file mode 100644 index 0000000000..c70bb6ffdc --- /dev/null +++ b/sdk/dotnet/Sql/Outputs/GetDatabaseInstanceSettingResult.cs @@ -0,0 +1,129 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Sql.Outputs +{ + + [OutputType] + public sealed class GetDatabaseInstanceSettingResult + { + /// + /// This specifies when the instance should be + /// active. Can be either `ALWAYS`, `NEVER` or `ON_DEMAND`. + /// + public readonly string ActivationPolicy; + /// + /// (Deprecated) This property is only applicable to First Generation instances. + /// First Generation instances are now deprecated, see [here](https://cloud.google.com/sql/docs/mysql/upgrade-2nd-gen) + /// for information on how to upgrade to Second Generation instances. + /// A list of Google App Engine (GAE) project names that are allowed to access this instance. + /// + public readonly ImmutableArray AuthorizedGaeApplications; + /// + /// The availability type of the Cloud SQL + /// instance, high availability (`REGIONAL`) or single zone (`ZONAL`). + /// + public readonly string AvailabilityType; + public readonly ImmutableArray BackupConfigurations; + /// + /// (Deprecated) This property is only applicable to First Generation instances. + /// First Generation instances are now deprecated, see [here](https://cloud.google.com/sql/docs/mysql/upgrade-2nd-gen) + /// + public readonly bool CrashSafeReplication; + public readonly ImmutableArray DatabaseFlags; + /// + /// Configuration to increase storage size automatically. + /// + public readonly bool DiskAutoresize; + /// + /// The size of data disk, in GB. + /// + public readonly int DiskSize; + /// + /// The type of data disk. + /// + public readonly string DiskType; + public readonly ImmutableArray IpConfigurations; + public readonly ImmutableArray LocationPreferences; + public readonly ImmutableArray MaintenanceWindows; + /// + /// Pricing plan for this instance. + /// + public readonly string PricingPlan; + /// + /// This property is only applicable to First Generation instances. + /// First Generation instances are now deprecated, see [here](https://cloud.google.com/sql/docs/mysql/upgrade-2nd-gen) + /// + public readonly string ReplicationType; + /// + /// The machine type to use. + /// + public readonly string Tier; + /// + /// A set of key/value user label pairs to assign to the instance. + /// + public readonly ImmutableDictionary UserLabels; + public readonly int Version; + + [OutputConstructor] + private GetDatabaseInstanceSettingResult( + string activationPolicy, + + ImmutableArray authorizedGaeApplications, + + string availabilityType, + + ImmutableArray backupConfigurations, + + bool crashSafeReplication, + + ImmutableArray databaseFlags, + + bool diskAutoresize, + + int diskSize, + + string diskType, + + ImmutableArray ipConfigurations, + + ImmutableArray locationPreferences, + + ImmutableArray maintenanceWindows, + + string pricingPlan, + + string replicationType, + + string tier, + + ImmutableDictionary userLabels, + + int version) + { + ActivationPolicy = activationPolicy; + AuthorizedGaeApplications = authorizedGaeApplications; + AvailabilityType = availabilityType; + BackupConfigurations = backupConfigurations; + CrashSafeReplication = crashSafeReplication; + DatabaseFlags = databaseFlags; + DiskAutoresize = diskAutoresize; + DiskSize = diskSize; + DiskType = diskType; + IpConfigurations = ipConfigurations; + LocationPreferences = locationPreferences; + MaintenanceWindows = maintenanceWindows; + PricingPlan = pricingPlan; + ReplicationType = replicationType; + Tier = tier; + UserLabels = userLabels; + Version = version; + } + } +} diff --git a/sdk/go/gcp/cloudasset/folderFeed.go b/sdk/go/gcp/cloudasset/folderFeed.go new file mode 100644 index 0000000000..99576f4eb3 --- /dev/null +++ b/sdk/go/gcp/cloudasset/folderFeed.go @@ -0,0 +1,212 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package cloudasset + +import ( + "reflect" + + "github.com/pkg/errors" + "github.com/pulumi/pulumi/sdk/v2/go/pulumi" +) + +// Describes a Cloud Asset Inventory feed used to to listen to asset updates. +// +// To get more information about FolderFeed, see: +// +// * [API documentation](https://cloud.google.com/asset-inventory/docs/reference/rest/) +// * How-to Guides +// * [Official Documentation](https://cloud.google.com/asset-inventory/docs) +// +// ## Example Usage +type FolderFeed struct { + pulumi.CustomResourceState + + // A list of the full names of the assets to receive updates. You must specify either or both of + // assetNames and assetTypes. Only asset updates matching specified assetNames and assetTypes are + // exported to the feed. For example: //compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1. + // See https://cloud.google.com/apis/design/resourceNames#fullResourceName for more info. + AssetNames pulumi.StringArrayOutput `pulumi:"assetNames"` + // A list of types of the assets to receive updates. You must specify either or both of assetNames + // and assetTypes. Only asset updates matching specified assetNames and assetTypes are exported to + // the feed. For example: "compute.googleapis.com/Disk" + // See https://cloud.google.com/asset-inventory/docs/supported-asset-types for a list of all + // supported asset types. + AssetTypes pulumi.StringArrayOutput `pulumi:"assetTypes"` + // The project whose identity will be used when sending messages to the + // destination pubsub topic. It also specifies the project for API + // enablement check, quota, and billing. + BillingProject pulumi.StringOutput `pulumi:"billingProject"` + // Asset content type. If not specified, no content but the asset name and type will be returned. + ContentType pulumi.StringPtrOutput `pulumi:"contentType"` + // This is the client-assigned asset feed identifier and it needs to be unique under a specific parent. + FeedId pulumi.StringOutput `pulumi:"feedId"` + // Output configuration for asset feed destination. Structure is documented below. + FeedOutputConfig FolderFeedFeedOutputConfigOutput `pulumi:"feedOutputConfig"` + // The folder this feed should be created in. + Folder pulumi.StringOutput `pulumi:"folder"` + // The ID of the folder where this feed has been created. Both [FOLDER_NUMBER] and folders/[FOLDER_NUMBER] are accepted. + FolderId pulumi.StringOutput `pulumi:"folderId"` + // The format will be folders/{folder_number}/feeds/{client-assigned_feed_identifier}. + Name pulumi.StringOutput `pulumi:"name"` +} + +// NewFolderFeed registers a new resource with the given unique name, arguments, and options. +func NewFolderFeed(ctx *pulumi.Context, + name string, args *FolderFeedArgs, opts ...pulumi.ResourceOption) (*FolderFeed, error) { + if args == nil || args.BillingProject == nil { + return nil, errors.New("missing required argument 'BillingProject'") + } + if args == nil || args.FeedId == nil { + return nil, errors.New("missing required argument 'FeedId'") + } + if args == nil || args.FeedOutputConfig == nil { + return nil, errors.New("missing required argument 'FeedOutputConfig'") + } + if args == nil || args.Folder == nil { + return nil, errors.New("missing required argument 'Folder'") + } + if args == nil { + args = &FolderFeedArgs{} + } + var resource FolderFeed + err := ctx.RegisterResource("gcp:cloudasset/folderFeed:FolderFeed", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetFolderFeed gets an existing FolderFeed resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetFolderFeed(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *FolderFeedState, opts ...pulumi.ResourceOption) (*FolderFeed, error) { + var resource FolderFeed + err := ctx.ReadResource("gcp:cloudasset/folderFeed:FolderFeed", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering FolderFeed resources. +type folderFeedState struct { + // A list of the full names of the assets to receive updates. You must specify either or both of + // assetNames and assetTypes. Only asset updates matching specified assetNames and assetTypes are + // exported to the feed. For example: //compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1. + // See https://cloud.google.com/apis/design/resourceNames#fullResourceName for more info. + AssetNames []string `pulumi:"assetNames"` + // A list of types of the assets to receive updates. You must specify either or both of assetNames + // and assetTypes. Only asset updates matching specified assetNames and assetTypes are exported to + // the feed. For example: "compute.googleapis.com/Disk" + // See https://cloud.google.com/asset-inventory/docs/supported-asset-types for a list of all + // supported asset types. + AssetTypes []string `pulumi:"assetTypes"` + // The project whose identity will be used when sending messages to the + // destination pubsub topic. It also specifies the project for API + // enablement check, quota, and billing. + BillingProject *string `pulumi:"billingProject"` + // Asset content type. If not specified, no content but the asset name and type will be returned. + ContentType *string `pulumi:"contentType"` + // This is the client-assigned asset feed identifier and it needs to be unique under a specific parent. + FeedId *string `pulumi:"feedId"` + // Output configuration for asset feed destination. Structure is documented below. + FeedOutputConfig *FolderFeedFeedOutputConfig `pulumi:"feedOutputConfig"` + // The folder this feed should be created in. + Folder *string `pulumi:"folder"` + // The ID of the folder where this feed has been created. Both [FOLDER_NUMBER] and folders/[FOLDER_NUMBER] are accepted. + FolderId *string `pulumi:"folderId"` + // The format will be folders/{folder_number}/feeds/{client-assigned_feed_identifier}. + Name *string `pulumi:"name"` +} + +type FolderFeedState struct { + // A list of the full names of the assets to receive updates. You must specify either or both of + // assetNames and assetTypes. Only asset updates matching specified assetNames and assetTypes are + // exported to the feed. For example: //compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1. + // See https://cloud.google.com/apis/design/resourceNames#fullResourceName for more info. + AssetNames pulumi.StringArrayInput + // A list of types of the assets to receive updates. You must specify either or both of assetNames + // and assetTypes. Only asset updates matching specified assetNames and assetTypes are exported to + // the feed. For example: "compute.googleapis.com/Disk" + // See https://cloud.google.com/asset-inventory/docs/supported-asset-types for a list of all + // supported asset types. + AssetTypes pulumi.StringArrayInput + // The project whose identity will be used when sending messages to the + // destination pubsub topic. It also specifies the project for API + // enablement check, quota, and billing. + BillingProject pulumi.StringPtrInput + // Asset content type. If not specified, no content but the asset name and type will be returned. + ContentType pulumi.StringPtrInput + // This is the client-assigned asset feed identifier and it needs to be unique under a specific parent. + FeedId pulumi.StringPtrInput + // Output configuration for asset feed destination. Structure is documented below. + FeedOutputConfig FolderFeedFeedOutputConfigPtrInput + // The folder this feed should be created in. + Folder pulumi.StringPtrInput + // The ID of the folder where this feed has been created. Both [FOLDER_NUMBER] and folders/[FOLDER_NUMBER] are accepted. + FolderId pulumi.StringPtrInput + // The format will be folders/{folder_number}/feeds/{client-assigned_feed_identifier}. + Name pulumi.StringPtrInput +} + +func (FolderFeedState) ElementType() reflect.Type { + return reflect.TypeOf((*folderFeedState)(nil)).Elem() +} + +type folderFeedArgs struct { + // A list of the full names of the assets to receive updates. You must specify either or both of + // assetNames and assetTypes. Only asset updates matching specified assetNames and assetTypes are + // exported to the feed. For example: //compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1. + // See https://cloud.google.com/apis/design/resourceNames#fullResourceName for more info. + AssetNames []string `pulumi:"assetNames"` + // A list of types of the assets to receive updates. You must specify either or both of assetNames + // and assetTypes. Only asset updates matching specified assetNames and assetTypes are exported to + // the feed. For example: "compute.googleapis.com/Disk" + // See https://cloud.google.com/asset-inventory/docs/supported-asset-types for a list of all + // supported asset types. + AssetTypes []string `pulumi:"assetTypes"` + // The project whose identity will be used when sending messages to the + // destination pubsub topic. It also specifies the project for API + // enablement check, quota, and billing. + BillingProject string `pulumi:"billingProject"` + // Asset content type. If not specified, no content but the asset name and type will be returned. + ContentType *string `pulumi:"contentType"` + // This is the client-assigned asset feed identifier and it needs to be unique under a specific parent. + FeedId string `pulumi:"feedId"` + // Output configuration for asset feed destination. Structure is documented below. + FeedOutputConfig FolderFeedFeedOutputConfig `pulumi:"feedOutputConfig"` + // The folder this feed should be created in. + Folder string `pulumi:"folder"` +} + +// The set of arguments for constructing a FolderFeed resource. +type FolderFeedArgs struct { + // A list of the full names of the assets to receive updates. You must specify either or both of + // assetNames and assetTypes. Only asset updates matching specified assetNames and assetTypes are + // exported to the feed. For example: //compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1. + // See https://cloud.google.com/apis/design/resourceNames#fullResourceName for more info. + AssetNames pulumi.StringArrayInput + // A list of types of the assets to receive updates. You must specify either or both of assetNames + // and assetTypes. Only asset updates matching specified assetNames and assetTypes are exported to + // the feed. For example: "compute.googleapis.com/Disk" + // See https://cloud.google.com/asset-inventory/docs/supported-asset-types for a list of all + // supported asset types. + AssetTypes pulumi.StringArrayInput + // The project whose identity will be used when sending messages to the + // destination pubsub topic. It also specifies the project for API + // enablement check, quota, and billing. + BillingProject pulumi.StringInput + // Asset content type. If not specified, no content but the asset name and type will be returned. + ContentType pulumi.StringPtrInput + // This is the client-assigned asset feed identifier and it needs to be unique under a specific parent. + FeedId pulumi.StringInput + // Output configuration for asset feed destination. Structure is documented below. + FeedOutputConfig FolderFeedFeedOutputConfigInput + // The folder this feed should be created in. + Folder pulumi.StringInput +} + +func (FolderFeedArgs) ElementType() reflect.Type { + return reflect.TypeOf((*folderFeedArgs)(nil)).Elem() +} diff --git a/sdk/go/gcp/cloudasset/organizationFeed.go b/sdk/go/gcp/cloudasset/organizationFeed.go new file mode 100644 index 0000000000..e100663ab0 --- /dev/null +++ b/sdk/go/gcp/cloudasset/organizationFeed.go @@ -0,0 +1,206 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package cloudasset + +import ( + "reflect" + + "github.com/pkg/errors" + "github.com/pulumi/pulumi/sdk/v2/go/pulumi" +) + +// Describes a Cloud Asset Inventory feed used to to listen to asset updates. +// +// To get more information about OrganizationFeed, see: +// +// * [API documentation](https://cloud.google.com/asset-inventory/docs/reference/rest/) +// * How-to Guides +// * [Official Documentation](https://cloud.google.com/asset-inventory/docs) +// +// ## Example Usage +type OrganizationFeed struct { + pulumi.CustomResourceState + + // A list of the full names of the assets to receive updates. You must specify either or both of + // assetNames and assetTypes. Only asset updates matching specified assetNames and assetTypes are + // exported to the feed. For example: //compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1. + // See https://cloud.google.com/apis/design/resourceNames#fullResourceName for more info. + AssetNames pulumi.StringArrayOutput `pulumi:"assetNames"` + // A list of types of the assets to receive updates. You must specify either or both of assetNames + // and assetTypes. Only asset updates matching specified assetNames and assetTypes are exported to + // the feed. For example: "compute.googleapis.com/Disk" + // See https://cloud.google.com/asset-inventory/docs/supported-asset-types for a list of all + // supported asset types. + AssetTypes pulumi.StringArrayOutput `pulumi:"assetTypes"` + // The project whose identity will be used when sending messages to the + // destination pubsub topic. It also specifies the project for API + // enablement check, quota, and billing. + BillingProject pulumi.StringOutput `pulumi:"billingProject"` + // Asset content type. If not specified, no content but the asset name and type will be returned. + ContentType pulumi.StringPtrOutput `pulumi:"contentType"` + // This is the client-assigned asset feed identifier and it needs to be unique under a specific parent. + FeedId pulumi.StringOutput `pulumi:"feedId"` + // Output configuration for asset feed destination. Structure is documented below. + FeedOutputConfig OrganizationFeedFeedOutputConfigOutput `pulumi:"feedOutputConfig"` + // The format will be organizations/{organization_number}/feeds/{client-assigned_feed_identifier}. + Name pulumi.StringOutput `pulumi:"name"` + // The organization this feed should be created in. + OrgId pulumi.StringOutput `pulumi:"orgId"` +} + +// NewOrganizationFeed registers a new resource with the given unique name, arguments, and options. +func NewOrganizationFeed(ctx *pulumi.Context, + name string, args *OrganizationFeedArgs, opts ...pulumi.ResourceOption) (*OrganizationFeed, error) { + if args == nil || args.BillingProject == nil { + return nil, errors.New("missing required argument 'BillingProject'") + } + if args == nil || args.FeedId == nil { + return nil, errors.New("missing required argument 'FeedId'") + } + if args == nil || args.FeedOutputConfig == nil { + return nil, errors.New("missing required argument 'FeedOutputConfig'") + } + if args == nil || args.OrgId == nil { + return nil, errors.New("missing required argument 'OrgId'") + } + if args == nil { + args = &OrganizationFeedArgs{} + } + var resource OrganizationFeed + err := ctx.RegisterResource("gcp:cloudasset/organizationFeed:OrganizationFeed", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetOrganizationFeed gets an existing OrganizationFeed resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetOrganizationFeed(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *OrganizationFeedState, opts ...pulumi.ResourceOption) (*OrganizationFeed, error) { + var resource OrganizationFeed + err := ctx.ReadResource("gcp:cloudasset/organizationFeed:OrganizationFeed", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering OrganizationFeed resources. +type organizationFeedState struct { + // A list of the full names of the assets to receive updates. You must specify either or both of + // assetNames and assetTypes. Only asset updates matching specified assetNames and assetTypes are + // exported to the feed. For example: //compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1. + // See https://cloud.google.com/apis/design/resourceNames#fullResourceName for more info. + AssetNames []string `pulumi:"assetNames"` + // A list of types of the assets to receive updates. You must specify either or both of assetNames + // and assetTypes. Only asset updates matching specified assetNames and assetTypes are exported to + // the feed. For example: "compute.googleapis.com/Disk" + // See https://cloud.google.com/asset-inventory/docs/supported-asset-types for a list of all + // supported asset types. + AssetTypes []string `pulumi:"assetTypes"` + // The project whose identity will be used when sending messages to the + // destination pubsub topic. It also specifies the project for API + // enablement check, quota, and billing. + BillingProject *string `pulumi:"billingProject"` + // Asset content type. If not specified, no content but the asset name and type will be returned. + ContentType *string `pulumi:"contentType"` + // This is the client-assigned asset feed identifier and it needs to be unique under a specific parent. + FeedId *string `pulumi:"feedId"` + // Output configuration for asset feed destination. Structure is documented below. + FeedOutputConfig *OrganizationFeedFeedOutputConfig `pulumi:"feedOutputConfig"` + // The format will be organizations/{organization_number}/feeds/{client-assigned_feed_identifier}. + Name *string `pulumi:"name"` + // The organization this feed should be created in. + OrgId *string `pulumi:"orgId"` +} + +type OrganizationFeedState struct { + // A list of the full names of the assets to receive updates. You must specify either or both of + // assetNames and assetTypes. Only asset updates matching specified assetNames and assetTypes are + // exported to the feed. For example: //compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1. + // See https://cloud.google.com/apis/design/resourceNames#fullResourceName for more info. + AssetNames pulumi.StringArrayInput + // A list of types of the assets to receive updates. You must specify either or both of assetNames + // and assetTypes. Only asset updates matching specified assetNames and assetTypes are exported to + // the feed. For example: "compute.googleapis.com/Disk" + // See https://cloud.google.com/asset-inventory/docs/supported-asset-types for a list of all + // supported asset types. + AssetTypes pulumi.StringArrayInput + // The project whose identity will be used when sending messages to the + // destination pubsub topic. It also specifies the project for API + // enablement check, quota, and billing. + BillingProject pulumi.StringPtrInput + // Asset content type. If not specified, no content but the asset name and type will be returned. + ContentType pulumi.StringPtrInput + // This is the client-assigned asset feed identifier and it needs to be unique under a specific parent. + FeedId pulumi.StringPtrInput + // Output configuration for asset feed destination. Structure is documented below. + FeedOutputConfig OrganizationFeedFeedOutputConfigPtrInput + // The format will be organizations/{organization_number}/feeds/{client-assigned_feed_identifier}. + Name pulumi.StringPtrInput + // The organization this feed should be created in. + OrgId pulumi.StringPtrInput +} + +func (OrganizationFeedState) ElementType() reflect.Type { + return reflect.TypeOf((*organizationFeedState)(nil)).Elem() +} + +type organizationFeedArgs struct { + // A list of the full names of the assets to receive updates. You must specify either or both of + // assetNames and assetTypes. Only asset updates matching specified assetNames and assetTypes are + // exported to the feed. For example: //compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1. + // See https://cloud.google.com/apis/design/resourceNames#fullResourceName for more info. + AssetNames []string `pulumi:"assetNames"` + // A list of types of the assets to receive updates. You must specify either or both of assetNames + // and assetTypes. Only asset updates matching specified assetNames and assetTypes are exported to + // the feed. For example: "compute.googleapis.com/Disk" + // See https://cloud.google.com/asset-inventory/docs/supported-asset-types for a list of all + // supported asset types. + AssetTypes []string `pulumi:"assetTypes"` + // The project whose identity will be used when sending messages to the + // destination pubsub topic. It also specifies the project for API + // enablement check, quota, and billing. + BillingProject string `pulumi:"billingProject"` + // Asset content type. If not specified, no content but the asset name and type will be returned. + ContentType *string `pulumi:"contentType"` + // This is the client-assigned asset feed identifier and it needs to be unique under a specific parent. + FeedId string `pulumi:"feedId"` + // Output configuration for asset feed destination. Structure is documented below. + FeedOutputConfig OrganizationFeedFeedOutputConfig `pulumi:"feedOutputConfig"` + // The organization this feed should be created in. + OrgId string `pulumi:"orgId"` +} + +// The set of arguments for constructing a OrganizationFeed resource. +type OrganizationFeedArgs struct { + // A list of the full names of the assets to receive updates. You must specify either or both of + // assetNames and assetTypes. Only asset updates matching specified assetNames and assetTypes are + // exported to the feed. For example: //compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1. + // See https://cloud.google.com/apis/design/resourceNames#fullResourceName for more info. + AssetNames pulumi.StringArrayInput + // A list of types of the assets to receive updates. You must specify either or both of assetNames + // and assetTypes. Only asset updates matching specified assetNames and assetTypes are exported to + // the feed. For example: "compute.googleapis.com/Disk" + // See https://cloud.google.com/asset-inventory/docs/supported-asset-types for a list of all + // supported asset types. + AssetTypes pulumi.StringArrayInput + // The project whose identity will be used when sending messages to the + // destination pubsub topic. It also specifies the project for API + // enablement check, quota, and billing. + BillingProject pulumi.StringInput + // Asset content type. If not specified, no content but the asset name and type will be returned. + ContentType pulumi.StringPtrInput + // This is the client-assigned asset feed identifier and it needs to be unique under a specific parent. + FeedId pulumi.StringInput + // Output configuration for asset feed destination. Structure is documented below. + FeedOutputConfig OrganizationFeedFeedOutputConfigInput + // The organization this feed should be created in. + OrgId pulumi.StringInput +} + +func (OrganizationFeedArgs) ElementType() reflect.Type { + return reflect.TypeOf((*organizationFeedArgs)(nil)).Elem() +} diff --git a/sdk/go/gcp/cloudasset/projectFeed.go b/sdk/go/gcp/cloudasset/projectFeed.go new file mode 100644 index 0000000000..5beac61013 --- /dev/null +++ b/sdk/go/gcp/cloudasset/projectFeed.go @@ -0,0 +1,210 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package cloudasset + +import ( + "reflect" + + "github.com/pkg/errors" + "github.com/pulumi/pulumi/sdk/v2/go/pulumi" +) + +// Describes a Cloud Asset Inventory feed used to to listen to asset updates. +// +// To get more information about ProjectFeed, see: +// +// * [API documentation](https://cloud.google.com/asset-inventory/docs/reference/rest/) +// * How-to Guides +// * [Official Documentation](https://cloud.google.com/asset-inventory/docs) +// +// ## Example Usage +type ProjectFeed struct { + pulumi.CustomResourceState + + // A list of the full names of the assets to receive updates. You must specify either or both of + // assetNames and assetTypes. Only asset updates matching specified assetNames and assetTypes are + // exported to the feed. For example: //compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1. + // See https://cloud.google.com/apis/design/resourceNames#fullResourceName for more info. + AssetNames pulumi.StringArrayOutput `pulumi:"assetNames"` + // A list of types of the assets to receive updates. You must specify either or both of assetNames + // and assetTypes. Only asset updates matching specified assetNames and assetTypes are exported to + // the feed. For example: "compute.googleapis.com/Disk" + // See https://cloud.google.com/asset-inventory/docs/supported-asset-types for a list of all + // supported asset types. + AssetTypes pulumi.StringArrayOutput `pulumi:"assetTypes"` + // The project whose identity will be used when sending messages to the + // destination pubsub topic. It also specifies the project for API + // enablement check, quota, and billing. If not specified, the resource's + // project will be used. + BillingProject pulumi.StringPtrOutput `pulumi:"billingProject"` + // Asset content type. If not specified, no content but the asset name and type will be returned. + ContentType pulumi.StringPtrOutput `pulumi:"contentType"` + // This is the client-assigned asset feed identifier and it needs to be unique under a specific parent. + FeedId pulumi.StringOutput `pulumi:"feedId"` + // Output configuration for asset feed destination. Structure is documented below. + FeedOutputConfig ProjectFeedFeedOutputConfigOutput `pulumi:"feedOutputConfig"` + // The format will be projects/{projectNumber}/feeds/{client-assigned_feed_identifier}. + Name pulumi.StringOutput `pulumi:"name"` + // The ID of the project in which the resource belongs. + // If it is not provided, the provider project is used. + Project pulumi.StringOutput `pulumi:"project"` +} + +// NewProjectFeed registers a new resource with the given unique name, arguments, and options. +func NewProjectFeed(ctx *pulumi.Context, + name string, args *ProjectFeedArgs, opts ...pulumi.ResourceOption) (*ProjectFeed, error) { + if args == nil || args.FeedId == nil { + return nil, errors.New("missing required argument 'FeedId'") + } + if args == nil || args.FeedOutputConfig == nil { + return nil, errors.New("missing required argument 'FeedOutputConfig'") + } + if args == nil { + args = &ProjectFeedArgs{} + } + var resource ProjectFeed + err := ctx.RegisterResource("gcp:cloudasset/projectFeed:ProjectFeed", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetProjectFeed gets an existing ProjectFeed resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetProjectFeed(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *ProjectFeedState, opts ...pulumi.ResourceOption) (*ProjectFeed, error) { + var resource ProjectFeed + err := ctx.ReadResource("gcp:cloudasset/projectFeed:ProjectFeed", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering ProjectFeed resources. +type projectFeedState struct { + // A list of the full names of the assets to receive updates. You must specify either or both of + // assetNames and assetTypes. Only asset updates matching specified assetNames and assetTypes are + // exported to the feed. For example: //compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1. + // See https://cloud.google.com/apis/design/resourceNames#fullResourceName for more info. + AssetNames []string `pulumi:"assetNames"` + // A list of types of the assets to receive updates. You must specify either or both of assetNames + // and assetTypes. Only asset updates matching specified assetNames and assetTypes are exported to + // the feed. For example: "compute.googleapis.com/Disk" + // See https://cloud.google.com/asset-inventory/docs/supported-asset-types for a list of all + // supported asset types. + AssetTypes []string `pulumi:"assetTypes"` + // The project whose identity will be used when sending messages to the + // destination pubsub topic. It also specifies the project for API + // enablement check, quota, and billing. If not specified, the resource's + // project will be used. + BillingProject *string `pulumi:"billingProject"` + // Asset content type. If not specified, no content but the asset name and type will be returned. + ContentType *string `pulumi:"contentType"` + // This is the client-assigned asset feed identifier and it needs to be unique under a specific parent. + FeedId *string `pulumi:"feedId"` + // Output configuration for asset feed destination. Structure is documented below. + FeedOutputConfig *ProjectFeedFeedOutputConfig `pulumi:"feedOutputConfig"` + // The format will be projects/{projectNumber}/feeds/{client-assigned_feed_identifier}. + Name *string `pulumi:"name"` + // The ID of the project in which the resource belongs. + // If it is not provided, the provider project is used. + Project *string `pulumi:"project"` +} + +type ProjectFeedState struct { + // A list of the full names of the assets to receive updates. You must specify either or both of + // assetNames and assetTypes. Only asset updates matching specified assetNames and assetTypes are + // exported to the feed. For example: //compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1. + // See https://cloud.google.com/apis/design/resourceNames#fullResourceName for more info. + AssetNames pulumi.StringArrayInput + // A list of types of the assets to receive updates. You must specify either or both of assetNames + // and assetTypes. Only asset updates matching specified assetNames and assetTypes are exported to + // the feed. For example: "compute.googleapis.com/Disk" + // See https://cloud.google.com/asset-inventory/docs/supported-asset-types for a list of all + // supported asset types. + AssetTypes pulumi.StringArrayInput + // The project whose identity will be used when sending messages to the + // destination pubsub topic. It also specifies the project for API + // enablement check, quota, and billing. If not specified, the resource's + // project will be used. + BillingProject pulumi.StringPtrInput + // Asset content type. If not specified, no content but the asset name and type will be returned. + ContentType pulumi.StringPtrInput + // This is the client-assigned asset feed identifier and it needs to be unique under a specific parent. + FeedId pulumi.StringPtrInput + // Output configuration for asset feed destination. Structure is documented below. + FeedOutputConfig ProjectFeedFeedOutputConfigPtrInput + // The format will be projects/{projectNumber}/feeds/{client-assigned_feed_identifier}. + Name pulumi.StringPtrInput + // The ID of the project in which the resource belongs. + // If it is not provided, the provider project is used. + Project pulumi.StringPtrInput +} + +func (ProjectFeedState) ElementType() reflect.Type { + return reflect.TypeOf((*projectFeedState)(nil)).Elem() +} + +type projectFeedArgs struct { + // A list of the full names of the assets to receive updates. You must specify either or both of + // assetNames and assetTypes. Only asset updates matching specified assetNames and assetTypes are + // exported to the feed. For example: //compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1. + // See https://cloud.google.com/apis/design/resourceNames#fullResourceName for more info. + AssetNames []string `pulumi:"assetNames"` + // A list of types of the assets to receive updates. You must specify either or both of assetNames + // and assetTypes. Only asset updates matching specified assetNames and assetTypes are exported to + // the feed. For example: "compute.googleapis.com/Disk" + // See https://cloud.google.com/asset-inventory/docs/supported-asset-types for a list of all + // supported asset types. + AssetTypes []string `pulumi:"assetTypes"` + // The project whose identity will be used when sending messages to the + // destination pubsub topic. It also specifies the project for API + // enablement check, quota, and billing. If not specified, the resource's + // project will be used. + BillingProject *string `pulumi:"billingProject"` + // Asset content type. If not specified, no content but the asset name and type will be returned. + ContentType *string `pulumi:"contentType"` + // This is the client-assigned asset feed identifier and it needs to be unique under a specific parent. + FeedId string `pulumi:"feedId"` + // Output configuration for asset feed destination. Structure is documented below. + FeedOutputConfig ProjectFeedFeedOutputConfig `pulumi:"feedOutputConfig"` + // The ID of the project in which the resource belongs. + // If it is not provided, the provider project is used. + Project *string `pulumi:"project"` +} + +// The set of arguments for constructing a ProjectFeed resource. +type ProjectFeedArgs struct { + // A list of the full names of the assets to receive updates. You must specify either or both of + // assetNames and assetTypes. Only asset updates matching specified assetNames and assetTypes are + // exported to the feed. For example: //compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1. + // See https://cloud.google.com/apis/design/resourceNames#fullResourceName for more info. + AssetNames pulumi.StringArrayInput + // A list of types of the assets to receive updates. You must specify either or both of assetNames + // and assetTypes. Only asset updates matching specified assetNames and assetTypes are exported to + // the feed. For example: "compute.googleapis.com/Disk" + // See https://cloud.google.com/asset-inventory/docs/supported-asset-types for a list of all + // supported asset types. + AssetTypes pulumi.StringArrayInput + // The project whose identity will be used when sending messages to the + // destination pubsub topic. It also specifies the project for API + // enablement check, quota, and billing. If not specified, the resource's + // project will be used. + BillingProject pulumi.StringPtrInput + // Asset content type. If not specified, no content but the asset name and type will be returned. + ContentType pulumi.StringPtrInput + // This is the client-assigned asset feed identifier and it needs to be unique under a specific parent. + FeedId pulumi.StringInput + // Output configuration for asset feed destination. Structure is documented below. + FeedOutputConfig ProjectFeedFeedOutputConfigInput + // The ID of the project in which the resource belongs. + // If it is not provided, the provider project is used. + Project pulumi.StringPtrInput +} + +func (ProjectFeedArgs) ElementType() reflect.Type { + return reflect.TypeOf((*projectFeedArgs)(nil)).Elem() +} diff --git a/sdk/go/gcp/cloudasset/pulumiTypes.go b/sdk/go/gcp/cloudasset/pulumiTypes.go new file mode 100644 index 0000000000..bb35414d75 --- /dev/null +++ b/sdk/go/gcp/cloudasset/pulumiTypes.go @@ -0,0 +1,824 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package cloudasset + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi/sdk/v2/go/pulumi" +) + +type FolderFeedFeedOutputConfig struct { + // Destination on Cloud Pubsub. Structure is documented below. + PubsubDestination FolderFeedFeedOutputConfigPubsubDestination `pulumi:"pubsubDestination"` +} + +// FolderFeedFeedOutputConfigInput is an input type that accepts FolderFeedFeedOutputConfigArgs and FolderFeedFeedOutputConfigOutput values. +// You can construct a concrete instance of `FolderFeedFeedOutputConfigInput` via: +// +// FolderFeedFeedOutputConfigArgs{...} +type FolderFeedFeedOutputConfigInput interface { + pulumi.Input + + ToFolderFeedFeedOutputConfigOutput() FolderFeedFeedOutputConfigOutput + ToFolderFeedFeedOutputConfigOutputWithContext(context.Context) FolderFeedFeedOutputConfigOutput +} + +type FolderFeedFeedOutputConfigArgs struct { + // Destination on Cloud Pubsub. Structure is documented below. + PubsubDestination FolderFeedFeedOutputConfigPubsubDestinationInput `pulumi:"pubsubDestination"` +} + +func (FolderFeedFeedOutputConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*FolderFeedFeedOutputConfig)(nil)).Elem() +} + +func (i FolderFeedFeedOutputConfigArgs) ToFolderFeedFeedOutputConfigOutput() FolderFeedFeedOutputConfigOutput { + return i.ToFolderFeedFeedOutputConfigOutputWithContext(context.Background()) +} + +func (i FolderFeedFeedOutputConfigArgs) ToFolderFeedFeedOutputConfigOutputWithContext(ctx context.Context) FolderFeedFeedOutputConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(FolderFeedFeedOutputConfigOutput) +} + +func (i FolderFeedFeedOutputConfigArgs) ToFolderFeedFeedOutputConfigPtrOutput() FolderFeedFeedOutputConfigPtrOutput { + return i.ToFolderFeedFeedOutputConfigPtrOutputWithContext(context.Background()) +} + +func (i FolderFeedFeedOutputConfigArgs) ToFolderFeedFeedOutputConfigPtrOutputWithContext(ctx context.Context) FolderFeedFeedOutputConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(FolderFeedFeedOutputConfigOutput).ToFolderFeedFeedOutputConfigPtrOutputWithContext(ctx) +} + +// FolderFeedFeedOutputConfigPtrInput is an input type that accepts FolderFeedFeedOutputConfigArgs, FolderFeedFeedOutputConfigPtr and FolderFeedFeedOutputConfigPtrOutput values. +// You can construct a concrete instance of `FolderFeedFeedOutputConfigPtrInput` via: +// +// FolderFeedFeedOutputConfigArgs{...} +// +// or: +// +// nil +type FolderFeedFeedOutputConfigPtrInput interface { + pulumi.Input + + ToFolderFeedFeedOutputConfigPtrOutput() FolderFeedFeedOutputConfigPtrOutput + ToFolderFeedFeedOutputConfigPtrOutputWithContext(context.Context) FolderFeedFeedOutputConfigPtrOutput +} + +type folderFeedFeedOutputConfigPtrType FolderFeedFeedOutputConfigArgs + +func FolderFeedFeedOutputConfigPtr(v *FolderFeedFeedOutputConfigArgs) FolderFeedFeedOutputConfigPtrInput { + return (*folderFeedFeedOutputConfigPtrType)(v) +} + +func (*folderFeedFeedOutputConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**FolderFeedFeedOutputConfig)(nil)).Elem() +} + +func (i *folderFeedFeedOutputConfigPtrType) ToFolderFeedFeedOutputConfigPtrOutput() FolderFeedFeedOutputConfigPtrOutput { + return i.ToFolderFeedFeedOutputConfigPtrOutputWithContext(context.Background()) +} + +func (i *folderFeedFeedOutputConfigPtrType) ToFolderFeedFeedOutputConfigPtrOutputWithContext(ctx context.Context) FolderFeedFeedOutputConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(FolderFeedFeedOutputConfigPtrOutput) +} + +type FolderFeedFeedOutputConfigOutput struct{ *pulumi.OutputState } + +func (FolderFeedFeedOutputConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*FolderFeedFeedOutputConfig)(nil)).Elem() +} + +func (o FolderFeedFeedOutputConfigOutput) ToFolderFeedFeedOutputConfigOutput() FolderFeedFeedOutputConfigOutput { + return o +} + +func (o FolderFeedFeedOutputConfigOutput) ToFolderFeedFeedOutputConfigOutputWithContext(ctx context.Context) FolderFeedFeedOutputConfigOutput { + return o +} + +func (o FolderFeedFeedOutputConfigOutput) ToFolderFeedFeedOutputConfigPtrOutput() FolderFeedFeedOutputConfigPtrOutput { + return o.ToFolderFeedFeedOutputConfigPtrOutputWithContext(context.Background()) +} + +func (o FolderFeedFeedOutputConfigOutput) ToFolderFeedFeedOutputConfigPtrOutputWithContext(ctx context.Context) FolderFeedFeedOutputConfigPtrOutput { + return o.ApplyT(func(v FolderFeedFeedOutputConfig) *FolderFeedFeedOutputConfig { + return &v + }).(FolderFeedFeedOutputConfigPtrOutput) +} + +// Destination on Cloud Pubsub. Structure is documented below. +func (o FolderFeedFeedOutputConfigOutput) PubsubDestination() FolderFeedFeedOutputConfigPubsubDestinationOutput { + return o.ApplyT(func(v FolderFeedFeedOutputConfig) FolderFeedFeedOutputConfigPubsubDestination { + return v.PubsubDestination + }).(FolderFeedFeedOutputConfigPubsubDestinationOutput) +} + +type FolderFeedFeedOutputConfigPtrOutput struct{ *pulumi.OutputState } + +func (FolderFeedFeedOutputConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**FolderFeedFeedOutputConfig)(nil)).Elem() +} + +func (o FolderFeedFeedOutputConfigPtrOutput) ToFolderFeedFeedOutputConfigPtrOutput() FolderFeedFeedOutputConfigPtrOutput { + return o +} + +func (o FolderFeedFeedOutputConfigPtrOutput) ToFolderFeedFeedOutputConfigPtrOutputWithContext(ctx context.Context) FolderFeedFeedOutputConfigPtrOutput { + return o +} + +func (o FolderFeedFeedOutputConfigPtrOutput) Elem() FolderFeedFeedOutputConfigOutput { + return o.ApplyT(func(v *FolderFeedFeedOutputConfig) FolderFeedFeedOutputConfig { return *v }).(FolderFeedFeedOutputConfigOutput) +} + +// Destination on Cloud Pubsub. Structure is documented below. +func (o FolderFeedFeedOutputConfigPtrOutput) PubsubDestination() FolderFeedFeedOutputConfigPubsubDestinationPtrOutput { + return o.ApplyT(func(v *FolderFeedFeedOutputConfig) *FolderFeedFeedOutputConfigPubsubDestination { + if v == nil { + return nil + } + return &v.PubsubDestination + }).(FolderFeedFeedOutputConfigPubsubDestinationPtrOutput) +} + +type FolderFeedFeedOutputConfigPubsubDestination struct { + // Destination on Cloud Pubsub topic. + Topic string `pulumi:"topic"` +} + +// FolderFeedFeedOutputConfigPubsubDestinationInput is an input type that accepts FolderFeedFeedOutputConfigPubsubDestinationArgs and FolderFeedFeedOutputConfigPubsubDestinationOutput values. +// You can construct a concrete instance of `FolderFeedFeedOutputConfigPubsubDestinationInput` via: +// +// FolderFeedFeedOutputConfigPubsubDestinationArgs{...} +type FolderFeedFeedOutputConfigPubsubDestinationInput interface { + pulumi.Input + + ToFolderFeedFeedOutputConfigPubsubDestinationOutput() FolderFeedFeedOutputConfigPubsubDestinationOutput + ToFolderFeedFeedOutputConfigPubsubDestinationOutputWithContext(context.Context) FolderFeedFeedOutputConfigPubsubDestinationOutput +} + +type FolderFeedFeedOutputConfigPubsubDestinationArgs struct { + // Destination on Cloud Pubsub topic. + Topic pulumi.StringInput `pulumi:"topic"` +} + +func (FolderFeedFeedOutputConfigPubsubDestinationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*FolderFeedFeedOutputConfigPubsubDestination)(nil)).Elem() +} + +func (i FolderFeedFeedOutputConfigPubsubDestinationArgs) ToFolderFeedFeedOutputConfigPubsubDestinationOutput() FolderFeedFeedOutputConfigPubsubDestinationOutput { + return i.ToFolderFeedFeedOutputConfigPubsubDestinationOutputWithContext(context.Background()) +} + +func (i FolderFeedFeedOutputConfigPubsubDestinationArgs) ToFolderFeedFeedOutputConfigPubsubDestinationOutputWithContext(ctx context.Context) FolderFeedFeedOutputConfigPubsubDestinationOutput { + return pulumi.ToOutputWithContext(ctx, i).(FolderFeedFeedOutputConfigPubsubDestinationOutput) +} + +func (i FolderFeedFeedOutputConfigPubsubDestinationArgs) ToFolderFeedFeedOutputConfigPubsubDestinationPtrOutput() FolderFeedFeedOutputConfigPubsubDestinationPtrOutput { + return i.ToFolderFeedFeedOutputConfigPubsubDestinationPtrOutputWithContext(context.Background()) +} + +func (i FolderFeedFeedOutputConfigPubsubDestinationArgs) ToFolderFeedFeedOutputConfigPubsubDestinationPtrOutputWithContext(ctx context.Context) FolderFeedFeedOutputConfigPubsubDestinationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(FolderFeedFeedOutputConfigPubsubDestinationOutput).ToFolderFeedFeedOutputConfigPubsubDestinationPtrOutputWithContext(ctx) +} + +// FolderFeedFeedOutputConfigPubsubDestinationPtrInput is an input type that accepts FolderFeedFeedOutputConfigPubsubDestinationArgs, FolderFeedFeedOutputConfigPubsubDestinationPtr and FolderFeedFeedOutputConfigPubsubDestinationPtrOutput values. +// You can construct a concrete instance of `FolderFeedFeedOutputConfigPubsubDestinationPtrInput` via: +// +// FolderFeedFeedOutputConfigPubsubDestinationArgs{...} +// +// or: +// +// nil +type FolderFeedFeedOutputConfigPubsubDestinationPtrInput interface { + pulumi.Input + + ToFolderFeedFeedOutputConfigPubsubDestinationPtrOutput() FolderFeedFeedOutputConfigPubsubDestinationPtrOutput + ToFolderFeedFeedOutputConfigPubsubDestinationPtrOutputWithContext(context.Context) FolderFeedFeedOutputConfigPubsubDestinationPtrOutput +} + +type folderFeedFeedOutputConfigPubsubDestinationPtrType FolderFeedFeedOutputConfigPubsubDestinationArgs + +func FolderFeedFeedOutputConfigPubsubDestinationPtr(v *FolderFeedFeedOutputConfigPubsubDestinationArgs) FolderFeedFeedOutputConfigPubsubDestinationPtrInput { + return (*folderFeedFeedOutputConfigPubsubDestinationPtrType)(v) +} + +func (*folderFeedFeedOutputConfigPubsubDestinationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**FolderFeedFeedOutputConfigPubsubDestination)(nil)).Elem() +} + +func (i *folderFeedFeedOutputConfigPubsubDestinationPtrType) ToFolderFeedFeedOutputConfigPubsubDestinationPtrOutput() FolderFeedFeedOutputConfigPubsubDestinationPtrOutput { + return i.ToFolderFeedFeedOutputConfigPubsubDestinationPtrOutputWithContext(context.Background()) +} + +func (i *folderFeedFeedOutputConfigPubsubDestinationPtrType) ToFolderFeedFeedOutputConfigPubsubDestinationPtrOutputWithContext(ctx context.Context) FolderFeedFeedOutputConfigPubsubDestinationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(FolderFeedFeedOutputConfigPubsubDestinationPtrOutput) +} + +type FolderFeedFeedOutputConfigPubsubDestinationOutput struct{ *pulumi.OutputState } + +func (FolderFeedFeedOutputConfigPubsubDestinationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*FolderFeedFeedOutputConfigPubsubDestination)(nil)).Elem() +} + +func (o FolderFeedFeedOutputConfigPubsubDestinationOutput) ToFolderFeedFeedOutputConfigPubsubDestinationOutput() FolderFeedFeedOutputConfigPubsubDestinationOutput { + return o +} + +func (o FolderFeedFeedOutputConfigPubsubDestinationOutput) ToFolderFeedFeedOutputConfigPubsubDestinationOutputWithContext(ctx context.Context) FolderFeedFeedOutputConfigPubsubDestinationOutput { + return o +} + +func (o FolderFeedFeedOutputConfigPubsubDestinationOutput) ToFolderFeedFeedOutputConfigPubsubDestinationPtrOutput() FolderFeedFeedOutputConfigPubsubDestinationPtrOutput { + return o.ToFolderFeedFeedOutputConfigPubsubDestinationPtrOutputWithContext(context.Background()) +} + +func (o FolderFeedFeedOutputConfigPubsubDestinationOutput) ToFolderFeedFeedOutputConfigPubsubDestinationPtrOutputWithContext(ctx context.Context) FolderFeedFeedOutputConfigPubsubDestinationPtrOutput { + return o.ApplyT(func(v FolderFeedFeedOutputConfigPubsubDestination) *FolderFeedFeedOutputConfigPubsubDestination { + return &v + }).(FolderFeedFeedOutputConfigPubsubDestinationPtrOutput) +} + +// Destination on Cloud Pubsub topic. +func (o FolderFeedFeedOutputConfigPubsubDestinationOutput) Topic() pulumi.StringOutput { + return o.ApplyT(func(v FolderFeedFeedOutputConfigPubsubDestination) string { return v.Topic }).(pulumi.StringOutput) +} + +type FolderFeedFeedOutputConfigPubsubDestinationPtrOutput struct{ *pulumi.OutputState } + +func (FolderFeedFeedOutputConfigPubsubDestinationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**FolderFeedFeedOutputConfigPubsubDestination)(nil)).Elem() +} + +func (o FolderFeedFeedOutputConfigPubsubDestinationPtrOutput) ToFolderFeedFeedOutputConfigPubsubDestinationPtrOutput() FolderFeedFeedOutputConfigPubsubDestinationPtrOutput { + return o +} + +func (o FolderFeedFeedOutputConfigPubsubDestinationPtrOutput) ToFolderFeedFeedOutputConfigPubsubDestinationPtrOutputWithContext(ctx context.Context) FolderFeedFeedOutputConfigPubsubDestinationPtrOutput { + return o +} + +func (o FolderFeedFeedOutputConfigPubsubDestinationPtrOutput) Elem() FolderFeedFeedOutputConfigPubsubDestinationOutput { + return o.ApplyT(func(v *FolderFeedFeedOutputConfigPubsubDestination) FolderFeedFeedOutputConfigPubsubDestination { + return *v + }).(FolderFeedFeedOutputConfigPubsubDestinationOutput) +} + +// Destination on Cloud Pubsub topic. +func (o FolderFeedFeedOutputConfigPubsubDestinationPtrOutput) Topic() pulumi.StringPtrOutput { + return o.ApplyT(func(v *FolderFeedFeedOutputConfigPubsubDestination) *string { + if v == nil { + return nil + } + return &v.Topic + }).(pulumi.StringPtrOutput) +} + +type OrganizationFeedFeedOutputConfig struct { + // Destination on Cloud Pubsub. Structure is documented below. + PubsubDestination OrganizationFeedFeedOutputConfigPubsubDestination `pulumi:"pubsubDestination"` +} + +// OrganizationFeedFeedOutputConfigInput is an input type that accepts OrganizationFeedFeedOutputConfigArgs and OrganizationFeedFeedOutputConfigOutput values. +// You can construct a concrete instance of `OrganizationFeedFeedOutputConfigInput` via: +// +// OrganizationFeedFeedOutputConfigArgs{...} +type OrganizationFeedFeedOutputConfigInput interface { + pulumi.Input + + ToOrganizationFeedFeedOutputConfigOutput() OrganizationFeedFeedOutputConfigOutput + ToOrganizationFeedFeedOutputConfigOutputWithContext(context.Context) OrganizationFeedFeedOutputConfigOutput +} + +type OrganizationFeedFeedOutputConfigArgs struct { + // Destination on Cloud Pubsub. Structure is documented below. + PubsubDestination OrganizationFeedFeedOutputConfigPubsubDestinationInput `pulumi:"pubsubDestination"` +} + +func (OrganizationFeedFeedOutputConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*OrganizationFeedFeedOutputConfig)(nil)).Elem() +} + +func (i OrganizationFeedFeedOutputConfigArgs) ToOrganizationFeedFeedOutputConfigOutput() OrganizationFeedFeedOutputConfigOutput { + return i.ToOrganizationFeedFeedOutputConfigOutputWithContext(context.Background()) +} + +func (i OrganizationFeedFeedOutputConfigArgs) ToOrganizationFeedFeedOutputConfigOutputWithContext(ctx context.Context) OrganizationFeedFeedOutputConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(OrganizationFeedFeedOutputConfigOutput) +} + +func (i OrganizationFeedFeedOutputConfigArgs) ToOrganizationFeedFeedOutputConfigPtrOutput() OrganizationFeedFeedOutputConfigPtrOutput { + return i.ToOrganizationFeedFeedOutputConfigPtrOutputWithContext(context.Background()) +} + +func (i OrganizationFeedFeedOutputConfigArgs) ToOrganizationFeedFeedOutputConfigPtrOutputWithContext(ctx context.Context) OrganizationFeedFeedOutputConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(OrganizationFeedFeedOutputConfigOutput).ToOrganizationFeedFeedOutputConfigPtrOutputWithContext(ctx) +} + +// OrganizationFeedFeedOutputConfigPtrInput is an input type that accepts OrganizationFeedFeedOutputConfigArgs, OrganizationFeedFeedOutputConfigPtr and OrganizationFeedFeedOutputConfigPtrOutput values. +// You can construct a concrete instance of `OrganizationFeedFeedOutputConfigPtrInput` via: +// +// OrganizationFeedFeedOutputConfigArgs{...} +// +// or: +// +// nil +type OrganizationFeedFeedOutputConfigPtrInput interface { + pulumi.Input + + ToOrganizationFeedFeedOutputConfigPtrOutput() OrganizationFeedFeedOutputConfigPtrOutput + ToOrganizationFeedFeedOutputConfigPtrOutputWithContext(context.Context) OrganizationFeedFeedOutputConfigPtrOutput +} + +type organizationFeedFeedOutputConfigPtrType OrganizationFeedFeedOutputConfigArgs + +func OrganizationFeedFeedOutputConfigPtr(v *OrganizationFeedFeedOutputConfigArgs) OrganizationFeedFeedOutputConfigPtrInput { + return (*organizationFeedFeedOutputConfigPtrType)(v) +} + +func (*organizationFeedFeedOutputConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**OrganizationFeedFeedOutputConfig)(nil)).Elem() +} + +func (i *organizationFeedFeedOutputConfigPtrType) ToOrganizationFeedFeedOutputConfigPtrOutput() OrganizationFeedFeedOutputConfigPtrOutput { + return i.ToOrganizationFeedFeedOutputConfigPtrOutputWithContext(context.Background()) +} + +func (i *organizationFeedFeedOutputConfigPtrType) ToOrganizationFeedFeedOutputConfigPtrOutputWithContext(ctx context.Context) OrganizationFeedFeedOutputConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(OrganizationFeedFeedOutputConfigPtrOutput) +} + +type OrganizationFeedFeedOutputConfigOutput struct{ *pulumi.OutputState } + +func (OrganizationFeedFeedOutputConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*OrganizationFeedFeedOutputConfig)(nil)).Elem() +} + +func (o OrganizationFeedFeedOutputConfigOutput) ToOrganizationFeedFeedOutputConfigOutput() OrganizationFeedFeedOutputConfigOutput { + return o +} + +func (o OrganizationFeedFeedOutputConfigOutput) ToOrganizationFeedFeedOutputConfigOutputWithContext(ctx context.Context) OrganizationFeedFeedOutputConfigOutput { + return o +} + +func (o OrganizationFeedFeedOutputConfigOutput) ToOrganizationFeedFeedOutputConfigPtrOutput() OrganizationFeedFeedOutputConfigPtrOutput { + return o.ToOrganizationFeedFeedOutputConfigPtrOutputWithContext(context.Background()) +} + +func (o OrganizationFeedFeedOutputConfigOutput) ToOrganizationFeedFeedOutputConfigPtrOutputWithContext(ctx context.Context) OrganizationFeedFeedOutputConfigPtrOutput { + return o.ApplyT(func(v OrganizationFeedFeedOutputConfig) *OrganizationFeedFeedOutputConfig { + return &v + }).(OrganizationFeedFeedOutputConfigPtrOutput) +} + +// Destination on Cloud Pubsub. Structure is documented below. +func (o OrganizationFeedFeedOutputConfigOutput) PubsubDestination() OrganizationFeedFeedOutputConfigPubsubDestinationOutput { + return o.ApplyT(func(v OrganizationFeedFeedOutputConfig) OrganizationFeedFeedOutputConfigPubsubDestination { + return v.PubsubDestination + }).(OrganizationFeedFeedOutputConfigPubsubDestinationOutput) +} + +type OrganizationFeedFeedOutputConfigPtrOutput struct{ *pulumi.OutputState } + +func (OrganizationFeedFeedOutputConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**OrganizationFeedFeedOutputConfig)(nil)).Elem() +} + +func (o OrganizationFeedFeedOutputConfigPtrOutput) ToOrganizationFeedFeedOutputConfigPtrOutput() OrganizationFeedFeedOutputConfigPtrOutput { + return o +} + +func (o OrganizationFeedFeedOutputConfigPtrOutput) ToOrganizationFeedFeedOutputConfigPtrOutputWithContext(ctx context.Context) OrganizationFeedFeedOutputConfigPtrOutput { + return o +} + +func (o OrganizationFeedFeedOutputConfigPtrOutput) Elem() OrganizationFeedFeedOutputConfigOutput { + return o.ApplyT(func(v *OrganizationFeedFeedOutputConfig) OrganizationFeedFeedOutputConfig { return *v }).(OrganizationFeedFeedOutputConfigOutput) +} + +// Destination on Cloud Pubsub. Structure is documented below. +func (o OrganizationFeedFeedOutputConfigPtrOutput) PubsubDestination() OrganizationFeedFeedOutputConfigPubsubDestinationPtrOutput { + return o.ApplyT(func(v *OrganizationFeedFeedOutputConfig) *OrganizationFeedFeedOutputConfigPubsubDestination { + if v == nil { + return nil + } + return &v.PubsubDestination + }).(OrganizationFeedFeedOutputConfigPubsubDestinationPtrOutput) +} + +type OrganizationFeedFeedOutputConfigPubsubDestination struct { + // Destination on Cloud Pubsub topic. + Topic string `pulumi:"topic"` +} + +// OrganizationFeedFeedOutputConfigPubsubDestinationInput is an input type that accepts OrganizationFeedFeedOutputConfigPubsubDestinationArgs and OrganizationFeedFeedOutputConfigPubsubDestinationOutput values. +// You can construct a concrete instance of `OrganizationFeedFeedOutputConfigPubsubDestinationInput` via: +// +// OrganizationFeedFeedOutputConfigPubsubDestinationArgs{...} +type OrganizationFeedFeedOutputConfigPubsubDestinationInput interface { + pulumi.Input + + ToOrganizationFeedFeedOutputConfigPubsubDestinationOutput() OrganizationFeedFeedOutputConfigPubsubDestinationOutput + ToOrganizationFeedFeedOutputConfigPubsubDestinationOutputWithContext(context.Context) OrganizationFeedFeedOutputConfigPubsubDestinationOutput +} + +type OrganizationFeedFeedOutputConfigPubsubDestinationArgs struct { + // Destination on Cloud Pubsub topic. + Topic pulumi.StringInput `pulumi:"topic"` +} + +func (OrganizationFeedFeedOutputConfigPubsubDestinationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*OrganizationFeedFeedOutputConfigPubsubDestination)(nil)).Elem() +} + +func (i OrganizationFeedFeedOutputConfigPubsubDestinationArgs) ToOrganizationFeedFeedOutputConfigPubsubDestinationOutput() OrganizationFeedFeedOutputConfigPubsubDestinationOutput { + return i.ToOrganizationFeedFeedOutputConfigPubsubDestinationOutputWithContext(context.Background()) +} + +func (i OrganizationFeedFeedOutputConfigPubsubDestinationArgs) ToOrganizationFeedFeedOutputConfigPubsubDestinationOutputWithContext(ctx context.Context) OrganizationFeedFeedOutputConfigPubsubDestinationOutput { + return pulumi.ToOutputWithContext(ctx, i).(OrganizationFeedFeedOutputConfigPubsubDestinationOutput) +} + +func (i OrganizationFeedFeedOutputConfigPubsubDestinationArgs) ToOrganizationFeedFeedOutputConfigPubsubDestinationPtrOutput() OrganizationFeedFeedOutputConfigPubsubDestinationPtrOutput { + return i.ToOrganizationFeedFeedOutputConfigPubsubDestinationPtrOutputWithContext(context.Background()) +} + +func (i OrganizationFeedFeedOutputConfigPubsubDestinationArgs) ToOrganizationFeedFeedOutputConfigPubsubDestinationPtrOutputWithContext(ctx context.Context) OrganizationFeedFeedOutputConfigPubsubDestinationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(OrganizationFeedFeedOutputConfigPubsubDestinationOutput).ToOrganizationFeedFeedOutputConfigPubsubDestinationPtrOutputWithContext(ctx) +} + +// OrganizationFeedFeedOutputConfigPubsubDestinationPtrInput is an input type that accepts OrganizationFeedFeedOutputConfigPubsubDestinationArgs, OrganizationFeedFeedOutputConfigPubsubDestinationPtr and OrganizationFeedFeedOutputConfigPubsubDestinationPtrOutput values. +// You can construct a concrete instance of `OrganizationFeedFeedOutputConfigPubsubDestinationPtrInput` via: +// +// OrganizationFeedFeedOutputConfigPubsubDestinationArgs{...} +// +// or: +// +// nil +type OrganizationFeedFeedOutputConfigPubsubDestinationPtrInput interface { + pulumi.Input + + ToOrganizationFeedFeedOutputConfigPubsubDestinationPtrOutput() OrganizationFeedFeedOutputConfigPubsubDestinationPtrOutput + ToOrganizationFeedFeedOutputConfigPubsubDestinationPtrOutputWithContext(context.Context) OrganizationFeedFeedOutputConfigPubsubDestinationPtrOutput +} + +type organizationFeedFeedOutputConfigPubsubDestinationPtrType OrganizationFeedFeedOutputConfigPubsubDestinationArgs + +func OrganizationFeedFeedOutputConfigPubsubDestinationPtr(v *OrganizationFeedFeedOutputConfigPubsubDestinationArgs) OrganizationFeedFeedOutputConfigPubsubDestinationPtrInput { + return (*organizationFeedFeedOutputConfigPubsubDestinationPtrType)(v) +} + +func (*organizationFeedFeedOutputConfigPubsubDestinationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**OrganizationFeedFeedOutputConfigPubsubDestination)(nil)).Elem() +} + +func (i *organizationFeedFeedOutputConfigPubsubDestinationPtrType) ToOrganizationFeedFeedOutputConfigPubsubDestinationPtrOutput() OrganizationFeedFeedOutputConfigPubsubDestinationPtrOutput { + return i.ToOrganizationFeedFeedOutputConfigPubsubDestinationPtrOutputWithContext(context.Background()) +} + +func (i *organizationFeedFeedOutputConfigPubsubDestinationPtrType) ToOrganizationFeedFeedOutputConfigPubsubDestinationPtrOutputWithContext(ctx context.Context) OrganizationFeedFeedOutputConfigPubsubDestinationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(OrganizationFeedFeedOutputConfigPubsubDestinationPtrOutput) +} + +type OrganizationFeedFeedOutputConfigPubsubDestinationOutput struct{ *pulumi.OutputState } + +func (OrganizationFeedFeedOutputConfigPubsubDestinationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*OrganizationFeedFeedOutputConfigPubsubDestination)(nil)).Elem() +} + +func (o OrganizationFeedFeedOutputConfigPubsubDestinationOutput) ToOrganizationFeedFeedOutputConfigPubsubDestinationOutput() OrganizationFeedFeedOutputConfigPubsubDestinationOutput { + return o +} + +func (o OrganizationFeedFeedOutputConfigPubsubDestinationOutput) ToOrganizationFeedFeedOutputConfigPubsubDestinationOutputWithContext(ctx context.Context) OrganizationFeedFeedOutputConfigPubsubDestinationOutput { + return o +} + +func (o OrganizationFeedFeedOutputConfigPubsubDestinationOutput) ToOrganizationFeedFeedOutputConfigPubsubDestinationPtrOutput() OrganizationFeedFeedOutputConfigPubsubDestinationPtrOutput { + return o.ToOrganizationFeedFeedOutputConfigPubsubDestinationPtrOutputWithContext(context.Background()) +} + +func (o OrganizationFeedFeedOutputConfigPubsubDestinationOutput) ToOrganizationFeedFeedOutputConfigPubsubDestinationPtrOutputWithContext(ctx context.Context) OrganizationFeedFeedOutputConfigPubsubDestinationPtrOutput { + return o.ApplyT(func(v OrganizationFeedFeedOutputConfigPubsubDestination) *OrganizationFeedFeedOutputConfigPubsubDestination { + return &v + }).(OrganizationFeedFeedOutputConfigPubsubDestinationPtrOutput) +} + +// Destination on Cloud Pubsub topic. +func (o OrganizationFeedFeedOutputConfigPubsubDestinationOutput) Topic() pulumi.StringOutput { + return o.ApplyT(func(v OrganizationFeedFeedOutputConfigPubsubDestination) string { return v.Topic }).(pulumi.StringOutput) +} + +type OrganizationFeedFeedOutputConfigPubsubDestinationPtrOutput struct{ *pulumi.OutputState } + +func (OrganizationFeedFeedOutputConfigPubsubDestinationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**OrganizationFeedFeedOutputConfigPubsubDestination)(nil)).Elem() +} + +func (o OrganizationFeedFeedOutputConfigPubsubDestinationPtrOutput) ToOrganizationFeedFeedOutputConfigPubsubDestinationPtrOutput() OrganizationFeedFeedOutputConfigPubsubDestinationPtrOutput { + return o +} + +func (o OrganizationFeedFeedOutputConfigPubsubDestinationPtrOutput) ToOrganizationFeedFeedOutputConfigPubsubDestinationPtrOutputWithContext(ctx context.Context) OrganizationFeedFeedOutputConfigPubsubDestinationPtrOutput { + return o +} + +func (o OrganizationFeedFeedOutputConfigPubsubDestinationPtrOutput) Elem() OrganizationFeedFeedOutputConfigPubsubDestinationOutput { + return o.ApplyT(func(v *OrganizationFeedFeedOutputConfigPubsubDestination) OrganizationFeedFeedOutputConfigPubsubDestination { + return *v + }).(OrganizationFeedFeedOutputConfigPubsubDestinationOutput) +} + +// Destination on Cloud Pubsub topic. +func (o OrganizationFeedFeedOutputConfigPubsubDestinationPtrOutput) Topic() pulumi.StringPtrOutput { + return o.ApplyT(func(v *OrganizationFeedFeedOutputConfigPubsubDestination) *string { + if v == nil { + return nil + } + return &v.Topic + }).(pulumi.StringPtrOutput) +} + +type ProjectFeedFeedOutputConfig struct { + // Destination on Cloud Pubsub. Structure is documented below. + PubsubDestination ProjectFeedFeedOutputConfigPubsubDestination `pulumi:"pubsubDestination"` +} + +// ProjectFeedFeedOutputConfigInput is an input type that accepts ProjectFeedFeedOutputConfigArgs and ProjectFeedFeedOutputConfigOutput values. +// You can construct a concrete instance of `ProjectFeedFeedOutputConfigInput` via: +// +// ProjectFeedFeedOutputConfigArgs{...} +type ProjectFeedFeedOutputConfigInput interface { + pulumi.Input + + ToProjectFeedFeedOutputConfigOutput() ProjectFeedFeedOutputConfigOutput + ToProjectFeedFeedOutputConfigOutputWithContext(context.Context) ProjectFeedFeedOutputConfigOutput +} + +type ProjectFeedFeedOutputConfigArgs struct { + // Destination on Cloud Pubsub. Structure is documented below. + PubsubDestination ProjectFeedFeedOutputConfigPubsubDestinationInput `pulumi:"pubsubDestination"` +} + +func (ProjectFeedFeedOutputConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ProjectFeedFeedOutputConfig)(nil)).Elem() +} + +func (i ProjectFeedFeedOutputConfigArgs) ToProjectFeedFeedOutputConfigOutput() ProjectFeedFeedOutputConfigOutput { + return i.ToProjectFeedFeedOutputConfigOutputWithContext(context.Background()) +} + +func (i ProjectFeedFeedOutputConfigArgs) ToProjectFeedFeedOutputConfigOutputWithContext(ctx context.Context) ProjectFeedFeedOutputConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(ProjectFeedFeedOutputConfigOutput) +} + +func (i ProjectFeedFeedOutputConfigArgs) ToProjectFeedFeedOutputConfigPtrOutput() ProjectFeedFeedOutputConfigPtrOutput { + return i.ToProjectFeedFeedOutputConfigPtrOutputWithContext(context.Background()) +} + +func (i ProjectFeedFeedOutputConfigArgs) ToProjectFeedFeedOutputConfigPtrOutputWithContext(ctx context.Context) ProjectFeedFeedOutputConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ProjectFeedFeedOutputConfigOutput).ToProjectFeedFeedOutputConfigPtrOutputWithContext(ctx) +} + +// ProjectFeedFeedOutputConfigPtrInput is an input type that accepts ProjectFeedFeedOutputConfigArgs, ProjectFeedFeedOutputConfigPtr and ProjectFeedFeedOutputConfigPtrOutput values. +// You can construct a concrete instance of `ProjectFeedFeedOutputConfigPtrInput` via: +// +// ProjectFeedFeedOutputConfigArgs{...} +// +// or: +// +// nil +type ProjectFeedFeedOutputConfigPtrInput interface { + pulumi.Input + + ToProjectFeedFeedOutputConfigPtrOutput() ProjectFeedFeedOutputConfigPtrOutput + ToProjectFeedFeedOutputConfigPtrOutputWithContext(context.Context) ProjectFeedFeedOutputConfigPtrOutput +} + +type projectFeedFeedOutputConfigPtrType ProjectFeedFeedOutputConfigArgs + +func ProjectFeedFeedOutputConfigPtr(v *ProjectFeedFeedOutputConfigArgs) ProjectFeedFeedOutputConfigPtrInput { + return (*projectFeedFeedOutputConfigPtrType)(v) +} + +func (*projectFeedFeedOutputConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ProjectFeedFeedOutputConfig)(nil)).Elem() +} + +func (i *projectFeedFeedOutputConfigPtrType) ToProjectFeedFeedOutputConfigPtrOutput() ProjectFeedFeedOutputConfigPtrOutput { + return i.ToProjectFeedFeedOutputConfigPtrOutputWithContext(context.Background()) +} + +func (i *projectFeedFeedOutputConfigPtrType) ToProjectFeedFeedOutputConfigPtrOutputWithContext(ctx context.Context) ProjectFeedFeedOutputConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ProjectFeedFeedOutputConfigPtrOutput) +} + +type ProjectFeedFeedOutputConfigOutput struct{ *pulumi.OutputState } + +func (ProjectFeedFeedOutputConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ProjectFeedFeedOutputConfig)(nil)).Elem() +} + +func (o ProjectFeedFeedOutputConfigOutput) ToProjectFeedFeedOutputConfigOutput() ProjectFeedFeedOutputConfigOutput { + return o +} + +func (o ProjectFeedFeedOutputConfigOutput) ToProjectFeedFeedOutputConfigOutputWithContext(ctx context.Context) ProjectFeedFeedOutputConfigOutput { + return o +} + +func (o ProjectFeedFeedOutputConfigOutput) ToProjectFeedFeedOutputConfigPtrOutput() ProjectFeedFeedOutputConfigPtrOutput { + return o.ToProjectFeedFeedOutputConfigPtrOutputWithContext(context.Background()) +} + +func (o ProjectFeedFeedOutputConfigOutput) ToProjectFeedFeedOutputConfigPtrOutputWithContext(ctx context.Context) ProjectFeedFeedOutputConfigPtrOutput { + return o.ApplyT(func(v ProjectFeedFeedOutputConfig) *ProjectFeedFeedOutputConfig { + return &v + }).(ProjectFeedFeedOutputConfigPtrOutput) +} + +// Destination on Cloud Pubsub. Structure is documented below. +func (o ProjectFeedFeedOutputConfigOutput) PubsubDestination() ProjectFeedFeedOutputConfigPubsubDestinationOutput { + return o.ApplyT(func(v ProjectFeedFeedOutputConfig) ProjectFeedFeedOutputConfigPubsubDestination { + return v.PubsubDestination + }).(ProjectFeedFeedOutputConfigPubsubDestinationOutput) +} + +type ProjectFeedFeedOutputConfigPtrOutput struct{ *pulumi.OutputState } + +func (ProjectFeedFeedOutputConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ProjectFeedFeedOutputConfig)(nil)).Elem() +} + +func (o ProjectFeedFeedOutputConfigPtrOutput) ToProjectFeedFeedOutputConfigPtrOutput() ProjectFeedFeedOutputConfigPtrOutput { + return o +} + +func (o ProjectFeedFeedOutputConfigPtrOutput) ToProjectFeedFeedOutputConfigPtrOutputWithContext(ctx context.Context) ProjectFeedFeedOutputConfigPtrOutput { + return o +} + +func (o ProjectFeedFeedOutputConfigPtrOutput) Elem() ProjectFeedFeedOutputConfigOutput { + return o.ApplyT(func(v *ProjectFeedFeedOutputConfig) ProjectFeedFeedOutputConfig { return *v }).(ProjectFeedFeedOutputConfigOutput) +} + +// Destination on Cloud Pubsub. Structure is documented below. +func (o ProjectFeedFeedOutputConfigPtrOutput) PubsubDestination() ProjectFeedFeedOutputConfigPubsubDestinationPtrOutput { + return o.ApplyT(func(v *ProjectFeedFeedOutputConfig) *ProjectFeedFeedOutputConfigPubsubDestination { + if v == nil { + return nil + } + return &v.PubsubDestination + }).(ProjectFeedFeedOutputConfigPubsubDestinationPtrOutput) +} + +type ProjectFeedFeedOutputConfigPubsubDestination struct { + // Destination on Cloud Pubsub topic. + Topic string `pulumi:"topic"` +} + +// ProjectFeedFeedOutputConfigPubsubDestinationInput is an input type that accepts ProjectFeedFeedOutputConfigPubsubDestinationArgs and ProjectFeedFeedOutputConfigPubsubDestinationOutput values. +// You can construct a concrete instance of `ProjectFeedFeedOutputConfigPubsubDestinationInput` via: +// +// ProjectFeedFeedOutputConfigPubsubDestinationArgs{...} +type ProjectFeedFeedOutputConfigPubsubDestinationInput interface { + pulumi.Input + + ToProjectFeedFeedOutputConfigPubsubDestinationOutput() ProjectFeedFeedOutputConfigPubsubDestinationOutput + ToProjectFeedFeedOutputConfigPubsubDestinationOutputWithContext(context.Context) ProjectFeedFeedOutputConfigPubsubDestinationOutput +} + +type ProjectFeedFeedOutputConfigPubsubDestinationArgs struct { + // Destination on Cloud Pubsub topic. + Topic pulumi.StringInput `pulumi:"topic"` +} + +func (ProjectFeedFeedOutputConfigPubsubDestinationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ProjectFeedFeedOutputConfigPubsubDestination)(nil)).Elem() +} + +func (i ProjectFeedFeedOutputConfigPubsubDestinationArgs) ToProjectFeedFeedOutputConfigPubsubDestinationOutput() ProjectFeedFeedOutputConfigPubsubDestinationOutput { + return i.ToProjectFeedFeedOutputConfigPubsubDestinationOutputWithContext(context.Background()) +} + +func (i ProjectFeedFeedOutputConfigPubsubDestinationArgs) ToProjectFeedFeedOutputConfigPubsubDestinationOutputWithContext(ctx context.Context) ProjectFeedFeedOutputConfigPubsubDestinationOutput { + return pulumi.ToOutputWithContext(ctx, i).(ProjectFeedFeedOutputConfigPubsubDestinationOutput) +} + +func (i ProjectFeedFeedOutputConfigPubsubDestinationArgs) ToProjectFeedFeedOutputConfigPubsubDestinationPtrOutput() ProjectFeedFeedOutputConfigPubsubDestinationPtrOutput { + return i.ToProjectFeedFeedOutputConfigPubsubDestinationPtrOutputWithContext(context.Background()) +} + +func (i ProjectFeedFeedOutputConfigPubsubDestinationArgs) ToProjectFeedFeedOutputConfigPubsubDestinationPtrOutputWithContext(ctx context.Context) ProjectFeedFeedOutputConfigPubsubDestinationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ProjectFeedFeedOutputConfigPubsubDestinationOutput).ToProjectFeedFeedOutputConfigPubsubDestinationPtrOutputWithContext(ctx) +} + +// ProjectFeedFeedOutputConfigPubsubDestinationPtrInput is an input type that accepts ProjectFeedFeedOutputConfigPubsubDestinationArgs, ProjectFeedFeedOutputConfigPubsubDestinationPtr and ProjectFeedFeedOutputConfigPubsubDestinationPtrOutput values. +// You can construct a concrete instance of `ProjectFeedFeedOutputConfigPubsubDestinationPtrInput` via: +// +// ProjectFeedFeedOutputConfigPubsubDestinationArgs{...} +// +// or: +// +// nil +type ProjectFeedFeedOutputConfigPubsubDestinationPtrInput interface { + pulumi.Input + + ToProjectFeedFeedOutputConfigPubsubDestinationPtrOutput() ProjectFeedFeedOutputConfigPubsubDestinationPtrOutput + ToProjectFeedFeedOutputConfigPubsubDestinationPtrOutputWithContext(context.Context) ProjectFeedFeedOutputConfigPubsubDestinationPtrOutput +} + +type projectFeedFeedOutputConfigPubsubDestinationPtrType ProjectFeedFeedOutputConfigPubsubDestinationArgs + +func ProjectFeedFeedOutputConfigPubsubDestinationPtr(v *ProjectFeedFeedOutputConfigPubsubDestinationArgs) ProjectFeedFeedOutputConfigPubsubDestinationPtrInput { + return (*projectFeedFeedOutputConfigPubsubDestinationPtrType)(v) +} + +func (*projectFeedFeedOutputConfigPubsubDestinationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ProjectFeedFeedOutputConfigPubsubDestination)(nil)).Elem() +} + +func (i *projectFeedFeedOutputConfigPubsubDestinationPtrType) ToProjectFeedFeedOutputConfigPubsubDestinationPtrOutput() ProjectFeedFeedOutputConfigPubsubDestinationPtrOutput { + return i.ToProjectFeedFeedOutputConfigPubsubDestinationPtrOutputWithContext(context.Background()) +} + +func (i *projectFeedFeedOutputConfigPubsubDestinationPtrType) ToProjectFeedFeedOutputConfigPubsubDestinationPtrOutputWithContext(ctx context.Context) ProjectFeedFeedOutputConfigPubsubDestinationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ProjectFeedFeedOutputConfigPubsubDestinationPtrOutput) +} + +type ProjectFeedFeedOutputConfigPubsubDestinationOutput struct{ *pulumi.OutputState } + +func (ProjectFeedFeedOutputConfigPubsubDestinationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ProjectFeedFeedOutputConfigPubsubDestination)(nil)).Elem() +} + +func (o ProjectFeedFeedOutputConfigPubsubDestinationOutput) ToProjectFeedFeedOutputConfigPubsubDestinationOutput() ProjectFeedFeedOutputConfigPubsubDestinationOutput { + return o +} + +func (o ProjectFeedFeedOutputConfigPubsubDestinationOutput) ToProjectFeedFeedOutputConfigPubsubDestinationOutputWithContext(ctx context.Context) ProjectFeedFeedOutputConfigPubsubDestinationOutput { + return o +} + +func (o ProjectFeedFeedOutputConfigPubsubDestinationOutput) ToProjectFeedFeedOutputConfigPubsubDestinationPtrOutput() ProjectFeedFeedOutputConfigPubsubDestinationPtrOutput { + return o.ToProjectFeedFeedOutputConfigPubsubDestinationPtrOutputWithContext(context.Background()) +} + +func (o ProjectFeedFeedOutputConfigPubsubDestinationOutput) ToProjectFeedFeedOutputConfigPubsubDestinationPtrOutputWithContext(ctx context.Context) ProjectFeedFeedOutputConfigPubsubDestinationPtrOutput { + return o.ApplyT(func(v ProjectFeedFeedOutputConfigPubsubDestination) *ProjectFeedFeedOutputConfigPubsubDestination { + return &v + }).(ProjectFeedFeedOutputConfigPubsubDestinationPtrOutput) +} + +// Destination on Cloud Pubsub topic. +func (o ProjectFeedFeedOutputConfigPubsubDestinationOutput) Topic() pulumi.StringOutput { + return o.ApplyT(func(v ProjectFeedFeedOutputConfigPubsubDestination) string { return v.Topic }).(pulumi.StringOutput) +} + +type ProjectFeedFeedOutputConfigPubsubDestinationPtrOutput struct{ *pulumi.OutputState } + +func (ProjectFeedFeedOutputConfigPubsubDestinationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ProjectFeedFeedOutputConfigPubsubDestination)(nil)).Elem() +} + +func (o ProjectFeedFeedOutputConfigPubsubDestinationPtrOutput) ToProjectFeedFeedOutputConfigPubsubDestinationPtrOutput() ProjectFeedFeedOutputConfigPubsubDestinationPtrOutput { + return o +} + +func (o ProjectFeedFeedOutputConfigPubsubDestinationPtrOutput) ToProjectFeedFeedOutputConfigPubsubDestinationPtrOutputWithContext(ctx context.Context) ProjectFeedFeedOutputConfigPubsubDestinationPtrOutput { + return o +} + +func (o ProjectFeedFeedOutputConfigPubsubDestinationPtrOutput) Elem() ProjectFeedFeedOutputConfigPubsubDestinationOutput { + return o.ApplyT(func(v *ProjectFeedFeedOutputConfigPubsubDestination) ProjectFeedFeedOutputConfigPubsubDestination { + return *v + }).(ProjectFeedFeedOutputConfigPubsubDestinationOutput) +} + +// Destination on Cloud Pubsub topic. +func (o ProjectFeedFeedOutputConfigPubsubDestinationPtrOutput) Topic() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ProjectFeedFeedOutputConfigPubsubDestination) *string { + if v == nil { + return nil + } + return &v.Topic + }).(pulumi.StringPtrOutput) +} + +func init() { + pulumi.RegisterOutputType(FolderFeedFeedOutputConfigOutput{}) + pulumi.RegisterOutputType(FolderFeedFeedOutputConfigPtrOutput{}) + pulumi.RegisterOutputType(FolderFeedFeedOutputConfigPubsubDestinationOutput{}) + pulumi.RegisterOutputType(FolderFeedFeedOutputConfigPubsubDestinationPtrOutput{}) + pulumi.RegisterOutputType(OrganizationFeedFeedOutputConfigOutput{}) + pulumi.RegisterOutputType(OrganizationFeedFeedOutputConfigPtrOutput{}) + pulumi.RegisterOutputType(OrganizationFeedFeedOutputConfigPubsubDestinationOutput{}) + pulumi.RegisterOutputType(OrganizationFeedFeedOutputConfigPubsubDestinationPtrOutput{}) + pulumi.RegisterOutputType(ProjectFeedFeedOutputConfigOutput{}) + pulumi.RegisterOutputType(ProjectFeedFeedOutputConfigPtrOutput{}) + pulumi.RegisterOutputType(ProjectFeedFeedOutputConfigPubsubDestinationOutput{}) + pulumi.RegisterOutputType(ProjectFeedFeedOutputConfigPubsubDestinationPtrOutput{}) +} diff --git a/sdk/go/gcp/cloudfunctions/function.go b/sdk/go/gcp/cloudfunctions/function.go index 64985fee1e..88652d935c 100644 --- a/sdk/go/gcp/cloudfunctions/function.go +++ b/sdk/go/gcp/cloudfunctions/function.go @@ -50,7 +50,7 @@ type Function struct { // Region of function. Currently can be only "us-central1". If it is not provided, the provider region is used. Region pulumi.StringOutput `pulumi:"region"` // The runtime in which the function is going to run. - // Eg. `"nodejs8"`, `"nodejs10"`, `"python37"`, `"go111"`. + // Eg. `"nodejs8"`, `"nodejs10"`, `"python37"`, `"go111"`, `"go113"`. Runtime pulumi.StringOutput `pulumi:"runtime"` // If provided, the self-provided service account to run the function with. ServiceAccountEmail pulumi.StringOutput `pulumi:"serviceAccountEmail"` @@ -127,7 +127,7 @@ type functionState struct { // Region of function. Currently can be only "us-central1". If it is not provided, the provider region is used. Region *string `pulumi:"region"` // The runtime in which the function is going to run. - // Eg. `"nodejs8"`, `"nodejs10"`, `"python37"`, `"go111"`. + // Eg. `"nodejs8"`, `"nodejs10"`, `"python37"`, `"go111"`, `"go113"`. Runtime *string `pulumi:"runtime"` // If provided, the self-provided service account to run the function with. ServiceAccountEmail *string `pulumi:"serviceAccountEmail"` @@ -174,7 +174,7 @@ type FunctionState struct { // Region of function. Currently can be only "us-central1". If it is not provided, the provider region is used. Region pulumi.StringPtrInput // The runtime in which the function is going to run. - // Eg. `"nodejs8"`, `"nodejs10"`, `"python37"`, `"go111"`. + // Eg. `"nodejs8"`, `"nodejs10"`, `"python37"`, `"go111"`, `"go113"`. Runtime pulumi.StringPtrInput // If provided, the self-provided service account to run the function with. ServiceAccountEmail pulumi.StringPtrInput @@ -225,7 +225,7 @@ type functionArgs struct { // Region of function. Currently can be only "us-central1". If it is not provided, the provider region is used. Region *string `pulumi:"region"` // The runtime in which the function is going to run. - // Eg. `"nodejs8"`, `"nodejs10"`, `"python37"`, `"go111"`. + // Eg. `"nodejs8"`, `"nodejs10"`, `"python37"`, `"go111"`, `"go113"`. Runtime string `pulumi:"runtime"` // If provided, the self-provided service account to run the function with. ServiceAccountEmail *string `pulumi:"serviceAccountEmail"` @@ -273,7 +273,7 @@ type FunctionArgs struct { // Region of function. Currently can be only "us-central1". If it is not provided, the provider region is used. Region pulumi.StringPtrInput // The runtime in which the function is going to run. - // Eg. `"nodejs8"`, `"nodejs10"`, `"python37"`, `"go111"`. + // Eg. `"nodejs8"`, `"nodejs10"`, `"python37"`, `"go111"`, `"go113"`. Runtime pulumi.StringInput // If provided, the self-provided service account to run the function with. ServiceAccountEmail pulumi.StringPtrInput diff --git a/sdk/go/gcp/compute/backendService.go b/sdk/go/gcp/compute/backendService.go index 8941a14903..218256ca8c 100644 --- a/sdk/go/gcp/compute/backendService.go +++ b/sdk/go/gcp/compute/backendService.go @@ -6,7 +6,6 @@ package compute import ( "reflect" - "github.com/pkg/errors" "github.com/pulumi/pulumi/sdk/v2/go/pulumi" ) @@ -66,9 +65,10 @@ type BackendService struct { Fingerprint pulumi.StringOutput `pulumi:"fingerprint"` // The set of URLs to the HttpHealthCheck or HttpsHealthCheck resource // for health checking this BackendService. Currently at most one health - // check can be specified, and a health check is required. + // check can be specified. + // A health check must be specified unless the backend service uses an internet NEG as a backend. // For internal load balancing, a URL to a HealthCheck resource must be specified instead. - HealthChecks pulumi.StringOutput `pulumi:"healthChecks"` + HealthChecks pulumi.StringPtrOutput `pulumi:"healthChecks"` // Settings for enabling Cloud Identity Aware Proxy Structure is documented below. Iap BackendServiceIapPtrOutput `pulumi:"iap"` // Indicates whether the backend service will be used with internal or @@ -133,9 +133,6 @@ type BackendService struct { // NewBackendService registers a new resource with the given unique name, arguments, and options. func NewBackendService(ctx *pulumi.Context, name string, args *BackendServiceArgs, opts ...pulumi.ResourceOption) (*BackendService, error) { - if args == nil || args.HealthChecks == nil { - return nil, errors.New("missing required argument 'HealthChecks'") - } if args == nil { args = &BackendServiceArgs{} } @@ -200,7 +197,8 @@ type backendServiceState struct { Fingerprint *string `pulumi:"fingerprint"` // The set of URLs to the HttpHealthCheck or HttpsHealthCheck resource // for health checking this BackendService. Currently at most one health - // check can be specified, and a health check is required. + // check can be specified. + // A health check must be specified unless the backend service uses an internet NEG as a backend. // For internal load balancing, a URL to a HealthCheck resource must be specified instead. HealthChecks *string `pulumi:"healthChecks"` // Settings for enabling Cloud Identity Aware Proxy Structure is documented below. @@ -304,7 +302,8 @@ type BackendServiceState struct { Fingerprint pulumi.StringPtrInput // The set of URLs to the HttpHealthCheck or HttpsHealthCheck resource // for health checking this BackendService. Currently at most one health - // check can be specified, and a health check is required. + // check can be specified. + // A health check must be specified unless the backend service uses an internet NEG as a backend. // For internal load balancing, a URL to a HealthCheck resource must be specified instead. HealthChecks pulumi.StringPtrInput // Settings for enabling Cloud Identity Aware Proxy Structure is documented below. @@ -408,9 +407,10 @@ type backendServiceArgs struct { EnableCdn *bool `pulumi:"enableCdn"` // The set of URLs to the HttpHealthCheck or HttpsHealthCheck resource // for health checking this BackendService. Currently at most one health - // check can be specified, and a health check is required. + // check can be specified. + // A health check must be specified unless the backend service uses an internet NEG as a backend. // For internal load balancing, a URL to a HealthCheck resource must be specified instead. - HealthChecks string `pulumi:"healthChecks"` + HealthChecks *string `pulumi:"healthChecks"` // Settings for enabling Cloud Identity Aware Proxy Structure is documented below. Iap *BackendServiceIap `pulumi:"iap"` // Indicates whether the backend service will be used with internal or @@ -507,9 +507,10 @@ type BackendServiceArgs struct { EnableCdn pulumi.BoolPtrInput // The set of URLs to the HttpHealthCheck or HttpsHealthCheck resource // for health checking this BackendService. Currently at most one health - // check can be specified, and a health check is required. + // check can be specified. + // A health check must be specified unless the backend service uses an internet NEG as a backend. // For internal load balancing, a URL to a HealthCheck resource must be specified instead. - HealthChecks pulumi.StringInput + HealthChecks pulumi.StringPtrInput // Settings for enabling Cloud Identity Aware Proxy Structure is documented below. Iap BackendServiceIapPtrInput // Indicates whether the backend service will be used with internal or diff --git a/sdk/go/gcp/config/config.go b/sdk/go/gcp/config/config.go index 45e0ba3b36..082c36d547 100644 --- a/sdk/go/gcp/config/config.go +++ b/sdk/go/gcp/config/config.go @@ -44,6 +44,9 @@ func GetBillingCustomEndpoint(ctx *pulumi.Context) string { func GetBinaryAuthorizationCustomEndpoint(ctx *pulumi.Context) string { return config.Get(ctx, "gcp:binaryAuthorizationCustomEndpoint") } +func GetCloudAssetCustomEndpoint(ctx *pulumi.Context) string { + return config.Get(ctx, "gcp:cloudAssetCustomEndpoint") +} func GetCloudBillingCustomEndpoint(ctx *pulumi.Context) string { return config.Get(ctx, "gcp:cloudBillingCustomEndpoint") } diff --git a/sdk/go/gcp/container/cluster.go b/sdk/go/gcp/container/cluster.go index b1b684b9bc..2b9ef64075 100644 --- a/sdk/go/gcp/container/cluster.go +++ b/sdk/go/gcp/container/cluster.go @@ -50,6 +50,9 @@ type Cluster struct { // that don't have IP Aliasing enabled. See the [official documentation](https://cloud.google.com/kubernetes-engine/docs/how-to/flexible-pod-cidr) // for more information. DefaultMaxPodsPerNode pulumi.IntOutput `pulumi:"defaultMaxPodsPerNode"` + // ) + // [GKE SNAT](https://cloud.google.com/kubernetes-engine/docs/how-to/ip-masquerade-agent#how_ipmasq_works) DefaultSnatStatus contains the desired state of whether default sNAT should be disabled on the cluster, [API doc](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1beta1/projects.locations.clusters#networkconfig). + DefaultSnatStatus ClusterDefaultSnatStatusOutput `pulumi:"defaultSnatStatus"` // Description of the cluster. Description pulumi.StringPtrOutput `pulumi:"description"` // Enable Binary Authorization for this cluster. @@ -289,6 +292,9 @@ type clusterState struct { // that don't have IP Aliasing enabled. See the [official documentation](https://cloud.google.com/kubernetes-engine/docs/how-to/flexible-pod-cidr) // for more information. DefaultMaxPodsPerNode *int `pulumi:"defaultMaxPodsPerNode"` + // ) + // [GKE SNAT](https://cloud.google.com/kubernetes-engine/docs/how-to/ip-masquerade-agent#how_ipmasq_works) DefaultSnatStatus contains the desired state of whether default sNAT should be disabled on the cluster, [API doc](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1beta1/projects.locations.clusters#networkconfig). + DefaultSnatStatus *ClusterDefaultSnatStatus `pulumi:"defaultSnatStatus"` // Description of the cluster. Description *string `pulumi:"description"` // Enable Binary Authorization for this cluster. @@ -501,6 +507,9 @@ type ClusterState struct { // that don't have IP Aliasing enabled. See the [official documentation](https://cloud.google.com/kubernetes-engine/docs/how-to/flexible-pod-cidr) // for more information. DefaultMaxPodsPerNode pulumi.IntPtrInput + // ) + // [GKE SNAT](https://cloud.google.com/kubernetes-engine/docs/how-to/ip-masquerade-agent#how_ipmasq_works) DefaultSnatStatus contains the desired state of whether default sNAT should be disabled on the cluster, [API doc](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1beta1/projects.locations.clusters#networkconfig). + DefaultSnatStatus ClusterDefaultSnatStatusPtrInput // Description of the cluster. Description pulumi.StringPtrInput // Enable Binary Authorization for this cluster. @@ -717,6 +726,9 @@ type clusterArgs struct { // that don't have IP Aliasing enabled. See the [official documentation](https://cloud.google.com/kubernetes-engine/docs/how-to/flexible-pod-cidr) // for more information. DefaultMaxPodsPerNode *int `pulumi:"defaultMaxPodsPerNode"` + // ) + // [GKE SNAT](https://cloud.google.com/kubernetes-engine/docs/how-to/ip-masquerade-agent#how_ipmasq_works) DefaultSnatStatus contains the desired state of whether default sNAT should be disabled on the cluster, [API doc](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1beta1/projects.locations.clusters#networkconfig). + DefaultSnatStatus *ClusterDefaultSnatStatus `pulumi:"defaultSnatStatus"` // Description of the cluster. Description *string `pulumi:"description"` // Enable Binary Authorization for this cluster. @@ -909,6 +921,9 @@ type ClusterArgs struct { // that don't have IP Aliasing enabled. See the [official documentation](https://cloud.google.com/kubernetes-engine/docs/how-to/flexible-pod-cidr) // for more information. DefaultMaxPodsPerNode pulumi.IntPtrInput + // ) + // [GKE SNAT](https://cloud.google.com/kubernetes-engine/docs/how-to/ip-masquerade-agent#how_ipmasq_works) DefaultSnatStatus contains the desired state of whether default sNAT should be disabled on the cluster, [API doc](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1beta1/projects.locations.clusters#networkconfig). + DefaultSnatStatus ClusterDefaultSnatStatusPtrInput // Description of the cluster. Description pulumi.StringPtrInput // Enable Binary Authorization for this cluster. diff --git a/sdk/go/gcp/container/getCluster.go b/sdk/go/gcp/container/getCluster.go index 543277efed..233c55bad6 100644 --- a/sdk/go/gcp/container/getCluster.go +++ b/sdk/go/gcp/container/getCluster.go @@ -46,6 +46,7 @@ type LookupClusterResult struct { ClusterTelemetries []GetClusterClusterTelemetry `pulumi:"clusterTelemetries"` DatabaseEncryptions []GetClusterDatabaseEncryption `pulumi:"databaseEncryptions"` DefaultMaxPodsPerNode int `pulumi:"defaultMaxPodsPerNode"` + DefaultSnatStatuses []GetClusterDefaultSnatStatus `pulumi:"defaultSnatStatuses"` Description string `pulumi:"description"` EnableBinaryAuthorization bool `pulumi:"enableBinaryAuthorization"` EnableIntranodeVisibility bool `pulumi:"enableIntranodeVisibility"` diff --git a/sdk/go/gcp/container/pulumiTypes.go b/sdk/go/gcp/container/pulumiTypes.go index c6dfbeac8a..d928fe7434 100644 --- a/sdk/go/gcp/container/pulumiTypes.go +++ b/sdk/go/gcp/container/pulumiTypes.go @@ -2585,6 +2585,141 @@ func (o ClusterDatabaseEncryptionPtrOutput) State() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } +type ClusterDefaultSnatStatus struct { + // The status of the Istio addon, which makes it easy to set up Istio for services in a + // cluster. It is disabled by default. Set `disabled = false` to enable. + Disabled bool `pulumi:"disabled"` +} + +// ClusterDefaultSnatStatusInput is an input type that accepts ClusterDefaultSnatStatusArgs and ClusterDefaultSnatStatusOutput values. +// You can construct a concrete instance of `ClusterDefaultSnatStatusInput` via: +// +// ClusterDefaultSnatStatusArgs{...} +type ClusterDefaultSnatStatusInput interface { + pulumi.Input + + ToClusterDefaultSnatStatusOutput() ClusterDefaultSnatStatusOutput + ToClusterDefaultSnatStatusOutputWithContext(context.Context) ClusterDefaultSnatStatusOutput +} + +type ClusterDefaultSnatStatusArgs struct { + // The status of the Istio addon, which makes it easy to set up Istio for services in a + // cluster. It is disabled by default. Set `disabled = false` to enable. + Disabled pulumi.BoolInput `pulumi:"disabled"` +} + +func (ClusterDefaultSnatStatusArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ClusterDefaultSnatStatus)(nil)).Elem() +} + +func (i ClusterDefaultSnatStatusArgs) ToClusterDefaultSnatStatusOutput() ClusterDefaultSnatStatusOutput { + return i.ToClusterDefaultSnatStatusOutputWithContext(context.Background()) +} + +func (i ClusterDefaultSnatStatusArgs) ToClusterDefaultSnatStatusOutputWithContext(ctx context.Context) ClusterDefaultSnatStatusOutput { + return pulumi.ToOutputWithContext(ctx, i).(ClusterDefaultSnatStatusOutput) +} + +func (i ClusterDefaultSnatStatusArgs) ToClusterDefaultSnatStatusPtrOutput() ClusterDefaultSnatStatusPtrOutput { + return i.ToClusterDefaultSnatStatusPtrOutputWithContext(context.Background()) +} + +func (i ClusterDefaultSnatStatusArgs) ToClusterDefaultSnatStatusPtrOutputWithContext(ctx context.Context) ClusterDefaultSnatStatusPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ClusterDefaultSnatStatusOutput).ToClusterDefaultSnatStatusPtrOutputWithContext(ctx) +} + +// ClusterDefaultSnatStatusPtrInput is an input type that accepts ClusterDefaultSnatStatusArgs, ClusterDefaultSnatStatusPtr and ClusterDefaultSnatStatusPtrOutput values. +// You can construct a concrete instance of `ClusterDefaultSnatStatusPtrInput` via: +// +// ClusterDefaultSnatStatusArgs{...} +// +// or: +// +// nil +type ClusterDefaultSnatStatusPtrInput interface { + pulumi.Input + + ToClusterDefaultSnatStatusPtrOutput() ClusterDefaultSnatStatusPtrOutput + ToClusterDefaultSnatStatusPtrOutputWithContext(context.Context) ClusterDefaultSnatStatusPtrOutput +} + +type clusterDefaultSnatStatusPtrType ClusterDefaultSnatStatusArgs + +func ClusterDefaultSnatStatusPtr(v *ClusterDefaultSnatStatusArgs) ClusterDefaultSnatStatusPtrInput { + return (*clusterDefaultSnatStatusPtrType)(v) +} + +func (*clusterDefaultSnatStatusPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ClusterDefaultSnatStatus)(nil)).Elem() +} + +func (i *clusterDefaultSnatStatusPtrType) ToClusterDefaultSnatStatusPtrOutput() ClusterDefaultSnatStatusPtrOutput { + return i.ToClusterDefaultSnatStatusPtrOutputWithContext(context.Background()) +} + +func (i *clusterDefaultSnatStatusPtrType) ToClusterDefaultSnatStatusPtrOutputWithContext(ctx context.Context) ClusterDefaultSnatStatusPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ClusterDefaultSnatStatusPtrOutput) +} + +type ClusterDefaultSnatStatusOutput struct{ *pulumi.OutputState } + +func (ClusterDefaultSnatStatusOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ClusterDefaultSnatStatus)(nil)).Elem() +} + +func (o ClusterDefaultSnatStatusOutput) ToClusterDefaultSnatStatusOutput() ClusterDefaultSnatStatusOutput { + return o +} + +func (o ClusterDefaultSnatStatusOutput) ToClusterDefaultSnatStatusOutputWithContext(ctx context.Context) ClusterDefaultSnatStatusOutput { + return o +} + +func (o ClusterDefaultSnatStatusOutput) ToClusterDefaultSnatStatusPtrOutput() ClusterDefaultSnatStatusPtrOutput { + return o.ToClusterDefaultSnatStatusPtrOutputWithContext(context.Background()) +} + +func (o ClusterDefaultSnatStatusOutput) ToClusterDefaultSnatStatusPtrOutputWithContext(ctx context.Context) ClusterDefaultSnatStatusPtrOutput { + return o.ApplyT(func(v ClusterDefaultSnatStatus) *ClusterDefaultSnatStatus { + return &v + }).(ClusterDefaultSnatStatusPtrOutput) +} + +// The status of the Istio addon, which makes it easy to set up Istio for services in a +// cluster. It is disabled by default. Set `disabled = false` to enable. +func (o ClusterDefaultSnatStatusOutput) Disabled() pulumi.BoolOutput { + return o.ApplyT(func(v ClusterDefaultSnatStatus) bool { return v.Disabled }).(pulumi.BoolOutput) +} + +type ClusterDefaultSnatStatusPtrOutput struct{ *pulumi.OutputState } + +func (ClusterDefaultSnatStatusPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ClusterDefaultSnatStatus)(nil)).Elem() +} + +func (o ClusterDefaultSnatStatusPtrOutput) ToClusterDefaultSnatStatusPtrOutput() ClusterDefaultSnatStatusPtrOutput { + return o +} + +func (o ClusterDefaultSnatStatusPtrOutput) ToClusterDefaultSnatStatusPtrOutputWithContext(ctx context.Context) ClusterDefaultSnatStatusPtrOutput { + return o +} + +func (o ClusterDefaultSnatStatusPtrOutput) Elem() ClusterDefaultSnatStatusOutput { + return o.ApplyT(func(v *ClusterDefaultSnatStatus) ClusterDefaultSnatStatus { return *v }).(ClusterDefaultSnatStatusOutput) +} + +// The status of the Istio addon, which makes it easy to set up Istio for services in a +// cluster. It is disabled by default. Set `disabled = false` to enable. +func (o ClusterDefaultSnatStatusPtrOutput) Disabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *ClusterDefaultSnatStatus) *bool { + if v == nil { + return nil + } + return &v.Disabled + }).(pulumi.BoolPtrOutput) +} + type ClusterIpAllocationPolicy struct { // The IP address range for the cluster pod IPs. // Set to blank to have a range chosen with the default size. Set to /netmask (e.g. /14) @@ -11648,6 +11783,100 @@ func (o GetClusterDatabaseEncryptionArrayOutput) Index(i pulumi.IntInput) GetClu }).(GetClusterDatabaseEncryptionOutput) } +type GetClusterDefaultSnatStatus struct { + Disabled bool `pulumi:"disabled"` +} + +// GetClusterDefaultSnatStatusInput is an input type that accepts GetClusterDefaultSnatStatusArgs and GetClusterDefaultSnatStatusOutput values. +// You can construct a concrete instance of `GetClusterDefaultSnatStatusInput` via: +// +// GetClusterDefaultSnatStatusArgs{...} +type GetClusterDefaultSnatStatusInput interface { + pulumi.Input + + ToGetClusterDefaultSnatStatusOutput() GetClusterDefaultSnatStatusOutput + ToGetClusterDefaultSnatStatusOutputWithContext(context.Context) GetClusterDefaultSnatStatusOutput +} + +type GetClusterDefaultSnatStatusArgs struct { + Disabled pulumi.BoolInput `pulumi:"disabled"` +} + +func (GetClusterDefaultSnatStatusArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetClusterDefaultSnatStatus)(nil)).Elem() +} + +func (i GetClusterDefaultSnatStatusArgs) ToGetClusterDefaultSnatStatusOutput() GetClusterDefaultSnatStatusOutput { + return i.ToGetClusterDefaultSnatStatusOutputWithContext(context.Background()) +} + +func (i GetClusterDefaultSnatStatusArgs) ToGetClusterDefaultSnatStatusOutputWithContext(ctx context.Context) GetClusterDefaultSnatStatusOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetClusterDefaultSnatStatusOutput) +} + +// GetClusterDefaultSnatStatusArrayInput is an input type that accepts GetClusterDefaultSnatStatusArray and GetClusterDefaultSnatStatusArrayOutput values. +// You can construct a concrete instance of `GetClusterDefaultSnatStatusArrayInput` via: +// +// GetClusterDefaultSnatStatusArray{ GetClusterDefaultSnatStatusArgs{...} } +type GetClusterDefaultSnatStatusArrayInput interface { + pulumi.Input + + ToGetClusterDefaultSnatStatusArrayOutput() GetClusterDefaultSnatStatusArrayOutput + ToGetClusterDefaultSnatStatusArrayOutputWithContext(context.Context) GetClusterDefaultSnatStatusArrayOutput +} + +type GetClusterDefaultSnatStatusArray []GetClusterDefaultSnatStatusInput + +func (GetClusterDefaultSnatStatusArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetClusterDefaultSnatStatus)(nil)).Elem() +} + +func (i GetClusterDefaultSnatStatusArray) ToGetClusterDefaultSnatStatusArrayOutput() GetClusterDefaultSnatStatusArrayOutput { + return i.ToGetClusterDefaultSnatStatusArrayOutputWithContext(context.Background()) +} + +func (i GetClusterDefaultSnatStatusArray) ToGetClusterDefaultSnatStatusArrayOutputWithContext(ctx context.Context) GetClusterDefaultSnatStatusArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetClusterDefaultSnatStatusArrayOutput) +} + +type GetClusterDefaultSnatStatusOutput struct{ *pulumi.OutputState } + +func (GetClusterDefaultSnatStatusOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetClusterDefaultSnatStatus)(nil)).Elem() +} + +func (o GetClusterDefaultSnatStatusOutput) ToGetClusterDefaultSnatStatusOutput() GetClusterDefaultSnatStatusOutput { + return o +} + +func (o GetClusterDefaultSnatStatusOutput) ToGetClusterDefaultSnatStatusOutputWithContext(ctx context.Context) GetClusterDefaultSnatStatusOutput { + return o +} + +func (o GetClusterDefaultSnatStatusOutput) Disabled() pulumi.BoolOutput { + return o.ApplyT(func(v GetClusterDefaultSnatStatus) bool { return v.Disabled }).(pulumi.BoolOutput) +} + +type GetClusterDefaultSnatStatusArrayOutput struct{ *pulumi.OutputState } + +func (GetClusterDefaultSnatStatusArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetClusterDefaultSnatStatus)(nil)).Elem() +} + +func (o GetClusterDefaultSnatStatusArrayOutput) ToGetClusterDefaultSnatStatusArrayOutput() GetClusterDefaultSnatStatusArrayOutput { + return o +} + +func (o GetClusterDefaultSnatStatusArrayOutput) ToGetClusterDefaultSnatStatusArrayOutputWithContext(ctx context.Context) GetClusterDefaultSnatStatusArrayOutput { + return o +} + +func (o GetClusterDefaultSnatStatusArrayOutput) Index(i pulumi.IntInput) GetClusterDefaultSnatStatusOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetClusterDefaultSnatStatus { + return vs[0].([]GetClusterDefaultSnatStatus)[vs[1].(int)] + }).(GetClusterDefaultSnatStatusOutput) +} + type GetClusterIpAllocationPolicy struct { ClusterIpv4CidrBlock string `pulumi:"clusterIpv4CidrBlock"` ClusterSecondaryRangeName string `pulumi:"clusterSecondaryRangeName"` @@ -15290,6 +15519,8 @@ func init() { pulumi.RegisterOutputType(ClusterClusterTelemetryPtrOutput{}) pulumi.RegisterOutputType(ClusterDatabaseEncryptionOutput{}) pulumi.RegisterOutputType(ClusterDatabaseEncryptionPtrOutput{}) + pulumi.RegisterOutputType(ClusterDefaultSnatStatusOutput{}) + pulumi.RegisterOutputType(ClusterDefaultSnatStatusPtrOutput{}) pulumi.RegisterOutputType(ClusterIpAllocationPolicyOutput{}) pulumi.RegisterOutputType(ClusterIpAllocationPolicyPtrOutput{}) pulumi.RegisterOutputType(ClusterMaintenancePolicyOutput{}) @@ -15408,6 +15639,8 @@ func init() { pulumi.RegisterOutputType(GetClusterClusterTelemetryArrayOutput{}) pulumi.RegisterOutputType(GetClusterDatabaseEncryptionOutput{}) pulumi.RegisterOutputType(GetClusterDatabaseEncryptionArrayOutput{}) + pulumi.RegisterOutputType(GetClusterDefaultSnatStatusOutput{}) + pulumi.RegisterOutputType(GetClusterDefaultSnatStatusArrayOutput{}) pulumi.RegisterOutputType(GetClusterIpAllocationPolicyOutput{}) pulumi.RegisterOutputType(GetClusterIpAllocationPolicyArrayOutput{}) pulumi.RegisterOutputType(GetClusterMaintenancePolicyOutput{}) diff --git a/sdk/go/gcp/filestore/pulumiTypes.go b/sdk/go/gcp/filestore/pulumiTypes.go index 0a3aaabdeb..e6f74375b9 100644 --- a/sdk/go/gcp/filestore/pulumiTypes.go +++ b/sdk/go/gcp/filestore/pulumiTypes.go @@ -15,7 +15,8 @@ type InstanceFileShares struct { // for the standard tier, or 2560 GiB for the premium tier. CapacityGb int `pulumi:"capacityGb"` // The name of the fileshare (16 characters or less) - Name string `pulumi:"name"` + Name string `pulumi:"name"` + NfsExportOptions []InstanceFileSharesNfsExportOption `pulumi:"nfsExportOptions"` } // InstanceFileSharesInput is an input type that accepts InstanceFileSharesArgs and InstanceFileSharesOutput values. @@ -34,7 +35,8 @@ type InstanceFileSharesArgs struct { // for the standard tier, or 2560 GiB for the premium tier. CapacityGb pulumi.IntInput `pulumi:"capacityGb"` // The name of the fileshare (16 characters or less) - Name pulumi.StringInput `pulumi:"name"` + Name pulumi.StringInput `pulumi:"name"` + NfsExportOptions InstanceFileSharesNfsExportOptionArrayInput `pulumi:"nfsExportOptions"` } func (InstanceFileSharesArgs) ElementType() reflect.Type { @@ -125,6 +127,10 @@ func (o InstanceFileSharesOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v InstanceFileShares) string { return v.Name }).(pulumi.StringOutput) } +func (o InstanceFileSharesOutput) NfsExportOptions() InstanceFileSharesNfsExportOptionArrayOutput { + return o.ApplyT(func(v InstanceFileShares) []InstanceFileSharesNfsExportOption { return v.NfsExportOptions }).(InstanceFileSharesNfsExportOptionArrayOutput) +} + type InstanceFileSharesPtrOutput struct{ *pulumi.OutputState } func (InstanceFileSharesPtrOutput) ElementType() reflect.Type { @@ -164,6 +170,172 @@ func (o InstanceFileSharesPtrOutput) Name() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } +func (o InstanceFileSharesPtrOutput) NfsExportOptions() InstanceFileSharesNfsExportOptionArrayOutput { + return o.ApplyT(func(v *InstanceFileShares) []InstanceFileSharesNfsExportOption { + if v == nil { + return nil + } + return v.NfsExportOptions + }).(InstanceFileSharesNfsExportOptionArrayOutput) +} + +type InstanceFileSharesNfsExportOption struct { + // Either READ_ONLY, for allowing only read requests on the exported directory, + // or READ_WRITE, for allowing both read and write requests. The default is READ_WRITE. + AccessMode *string `pulumi:"accessMode"` + // An integer representing the anonymous group id with a default value of 65534. + // Anon_gid may only be set with squashMode of ROOT_SQUASH. An error will be returned + // if this field is specified for other squashMode settings. + AnonGid *int `pulumi:"anonGid"` + // An integer representing the anonymous user id with a default value of 65534. + // Anon_uid may only be set with squashMode of ROOT_SQUASH. An error will be returned + // if this field is specified for other squashMode settings. + AnonUid *int `pulumi:"anonUid"` + // List of either IPv4 addresses, or ranges in CIDR notation which may mount the file share. + // Overlapping IP ranges are not allowed, both within and across NfsExportOptions. An error will be returned. + // The limit is 64 IP ranges/addresses for each FileShareConfig among all NfsExportOptions. + IpRanges []string `pulumi:"ipRanges"` + // Either NO_ROOT_SQUASH, for allowing root access on the exported directory, or ROOT_SQUASH, + // for not allowing root access. The default is NO_ROOT_SQUASH. + SquashMode *string `pulumi:"squashMode"` +} + +// InstanceFileSharesNfsExportOptionInput is an input type that accepts InstanceFileSharesNfsExportOptionArgs and InstanceFileSharesNfsExportOptionOutput values. +// You can construct a concrete instance of `InstanceFileSharesNfsExportOptionInput` via: +// +// InstanceFileSharesNfsExportOptionArgs{...} +type InstanceFileSharesNfsExportOptionInput interface { + pulumi.Input + + ToInstanceFileSharesNfsExportOptionOutput() InstanceFileSharesNfsExportOptionOutput + ToInstanceFileSharesNfsExportOptionOutputWithContext(context.Context) InstanceFileSharesNfsExportOptionOutput +} + +type InstanceFileSharesNfsExportOptionArgs struct { + // Either READ_ONLY, for allowing only read requests on the exported directory, + // or READ_WRITE, for allowing both read and write requests. The default is READ_WRITE. + AccessMode pulumi.StringPtrInput `pulumi:"accessMode"` + // An integer representing the anonymous group id with a default value of 65534. + // Anon_gid may only be set with squashMode of ROOT_SQUASH. An error will be returned + // if this field is specified for other squashMode settings. + AnonGid pulumi.IntPtrInput `pulumi:"anonGid"` + // An integer representing the anonymous user id with a default value of 65534. + // Anon_uid may only be set with squashMode of ROOT_SQUASH. An error will be returned + // if this field is specified for other squashMode settings. + AnonUid pulumi.IntPtrInput `pulumi:"anonUid"` + // List of either IPv4 addresses, or ranges in CIDR notation which may mount the file share. + // Overlapping IP ranges are not allowed, both within and across NfsExportOptions. An error will be returned. + // The limit is 64 IP ranges/addresses for each FileShareConfig among all NfsExportOptions. + IpRanges pulumi.StringArrayInput `pulumi:"ipRanges"` + // Either NO_ROOT_SQUASH, for allowing root access on the exported directory, or ROOT_SQUASH, + // for not allowing root access. The default is NO_ROOT_SQUASH. + SquashMode pulumi.StringPtrInput `pulumi:"squashMode"` +} + +func (InstanceFileSharesNfsExportOptionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*InstanceFileSharesNfsExportOption)(nil)).Elem() +} + +func (i InstanceFileSharesNfsExportOptionArgs) ToInstanceFileSharesNfsExportOptionOutput() InstanceFileSharesNfsExportOptionOutput { + return i.ToInstanceFileSharesNfsExportOptionOutputWithContext(context.Background()) +} + +func (i InstanceFileSharesNfsExportOptionArgs) ToInstanceFileSharesNfsExportOptionOutputWithContext(ctx context.Context) InstanceFileSharesNfsExportOptionOutput { + return pulumi.ToOutputWithContext(ctx, i).(InstanceFileSharesNfsExportOptionOutput) +} + +// InstanceFileSharesNfsExportOptionArrayInput is an input type that accepts InstanceFileSharesNfsExportOptionArray and InstanceFileSharesNfsExportOptionArrayOutput values. +// You can construct a concrete instance of `InstanceFileSharesNfsExportOptionArrayInput` via: +// +// InstanceFileSharesNfsExportOptionArray{ InstanceFileSharesNfsExportOptionArgs{...} } +type InstanceFileSharesNfsExportOptionArrayInput interface { + pulumi.Input + + ToInstanceFileSharesNfsExportOptionArrayOutput() InstanceFileSharesNfsExportOptionArrayOutput + ToInstanceFileSharesNfsExportOptionArrayOutputWithContext(context.Context) InstanceFileSharesNfsExportOptionArrayOutput +} + +type InstanceFileSharesNfsExportOptionArray []InstanceFileSharesNfsExportOptionInput + +func (InstanceFileSharesNfsExportOptionArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]InstanceFileSharesNfsExportOption)(nil)).Elem() +} + +func (i InstanceFileSharesNfsExportOptionArray) ToInstanceFileSharesNfsExportOptionArrayOutput() InstanceFileSharesNfsExportOptionArrayOutput { + return i.ToInstanceFileSharesNfsExportOptionArrayOutputWithContext(context.Background()) +} + +func (i InstanceFileSharesNfsExportOptionArray) ToInstanceFileSharesNfsExportOptionArrayOutputWithContext(ctx context.Context) InstanceFileSharesNfsExportOptionArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(InstanceFileSharesNfsExportOptionArrayOutput) +} + +type InstanceFileSharesNfsExportOptionOutput struct{ *pulumi.OutputState } + +func (InstanceFileSharesNfsExportOptionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*InstanceFileSharesNfsExportOption)(nil)).Elem() +} + +func (o InstanceFileSharesNfsExportOptionOutput) ToInstanceFileSharesNfsExportOptionOutput() InstanceFileSharesNfsExportOptionOutput { + return o +} + +func (o InstanceFileSharesNfsExportOptionOutput) ToInstanceFileSharesNfsExportOptionOutputWithContext(ctx context.Context) InstanceFileSharesNfsExportOptionOutput { + return o +} + +// Either READ_ONLY, for allowing only read requests on the exported directory, +// or READ_WRITE, for allowing both read and write requests. The default is READ_WRITE. +func (o InstanceFileSharesNfsExportOptionOutput) AccessMode() pulumi.StringPtrOutput { + return o.ApplyT(func(v InstanceFileSharesNfsExportOption) *string { return v.AccessMode }).(pulumi.StringPtrOutput) +} + +// An integer representing the anonymous group id with a default value of 65534. +// Anon_gid may only be set with squashMode of ROOT_SQUASH. An error will be returned +// if this field is specified for other squashMode settings. +func (o InstanceFileSharesNfsExportOptionOutput) AnonGid() pulumi.IntPtrOutput { + return o.ApplyT(func(v InstanceFileSharesNfsExportOption) *int { return v.AnonGid }).(pulumi.IntPtrOutput) +} + +// An integer representing the anonymous user id with a default value of 65534. +// Anon_uid may only be set with squashMode of ROOT_SQUASH. An error will be returned +// if this field is specified for other squashMode settings. +func (o InstanceFileSharesNfsExportOptionOutput) AnonUid() pulumi.IntPtrOutput { + return o.ApplyT(func(v InstanceFileSharesNfsExportOption) *int { return v.AnonUid }).(pulumi.IntPtrOutput) +} + +// List of either IPv4 addresses, or ranges in CIDR notation which may mount the file share. +// Overlapping IP ranges are not allowed, both within and across NfsExportOptions. An error will be returned. +// The limit is 64 IP ranges/addresses for each FileShareConfig among all NfsExportOptions. +func (o InstanceFileSharesNfsExportOptionOutput) IpRanges() pulumi.StringArrayOutput { + return o.ApplyT(func(v InstanceFileSharesNfsExportOption) []string { return v.IpRanges }).(pulumi.StringArrayOutput) +} + +// Either NO_ROOT_SQUASH, for allowing root access on the exported directory, or ROOT_SQUASH, +// for not allowing root access. The default is NO_ROOT_SQUASH. +func (o InstanceFileSharesNfsExportOptionOutput) SquashMode() pulumi.StringPtrOutput { + return o.ApplyT(func(v InstanceFileSharesNfsExportOption) *string { return v.SquashMode }).(pulumi.StringPtrOutput) +} + +type InstanceFileSharesNfsExportOptionArrayOutput struct{ *pulumi.OutputState } + +func (InstanceFileSharesNfsExportOptionArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]InstanceFileSharesNfsExportOption)(nil)).Elem() +} + +func (o InstanceFileSharesNfsExportOptionArrayOutput) ToInstanceFileSharesNfsExportOptionArrayOutput() InstanceFileSharesNfsExportOptionArrayOutput { + return o +} + +func (o InstanceFileSharesNfsExportOptionArrayOutput) ToInstanceFileSharesNfsExportOptionArrayOutputWithContext(ctx context.Context) InstanceFileSharesNfsExportOptionArrayOutput { + return o +} + +func (o InstanceFileSharesNfsExportOptionArrayOutput) Index(i pulumi.IntInput) InstanceFileSharesNfsExportOptionOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) InstanceFileSharesNfsExportOption { + return vs[0].([]InstanceFileSharesNfsExportOption)[vs[1].(int)] + }).(InstanceFileSharesNfsExportOptionOutput) +} + type InstanceNetwork struct { // - // A list of IPv4 or IPv6 addresses. @@ -303,6 +475,8 @@ func (o InstanceNetworkArrayOutput) Index(i pulumi.IntInput) InstanceNetworkOutp func init() { pulumi.RegisterOutputType(InstanceFileSharesOutput{}) pulumi.RegisterOutputType(InstanceFileSharesPtrOutput{}) + pulumi.RegisterOutputType(InstanceFileSharesNfsExportOptionOutput{}) + pulumi.RegisterOutputType(InstanceFileSharesNfsExportOptionArrayOutput{}) pulumi.RegisterOutputType(InstanceNetworkOutput{}) pulumi.RegisterOutputType(InstanceNetworkArrayOutput{}) } diff --git a/sdk/go/gcp/monitoring/metricDescriptor.go b/sdk/go/gcp/monitoring/metricDescriptor.go new file mode 100644 index 0000000000..e1c89268b4 --- /dev/null +++ b/sdk/go/gcp/monitoring/metricDescriptor.go @@ -0,0 +1,294 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package monitoring + +import ( + "reflect" + + "github.com/pkg/errors" + "github.com/pulumi/pulumi/sdk/v2/go/pulumi" +) + +// Defines a metric type and its schema. Once a metric descriptor is created, deleting or altering it stops data collection and makes the metric type's existing data unusable. +// +// To get more information about MetricDescriptor, see: +// +// * [API documentation](https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.metricDescriptors) +// * How-to Guides +// * [Official Documentation](https://cloud.google.com/monitoring/custom-metrics/) +// +// ## Example Usage +type MetricDescriptor struct { + pulumi.CustomResourceState + + // A human-readable description for the label. + Description pulumi.StringOutput `pulumi:"description"` + // A concise name for the metric, which can be displayed in user interfaces. Use sentence case without an ending period, for example "Request count". + DisplayName pulumi.StringOutput `pulumi:"displayName"` + // The set of labels that can be used to describe a specific instance of this metric type. In order to delete a label, the entire resource must be deleted, then created with the desired labels. Structure is documented below. + Labels MetricDescriptorLabelArrayOutput `pulumi:"labels"` + // The launch stage of the metric definition. + LaunchStage pulumi.StringPtrOutput `pulumi:"launchStage"` + // Metadata which can be used to guide usage of the metric. Structure is documented below. + Metadata MetricDescriptorMetadataPtrOutput `pulumi:"metadata"` + // Whether the metric records instantaneous values, changes to a value, etc. Some combinations of metricKind and valueType might not be supported. + MetricKind pulumi.StringOutput `pulumi:"metricKind"` + // If present, then a time series, which is identified partially by a metric type and a MonitoredResourceDescriptor, that + // is associated with this metric type can only be associated with one of the monitored resource types listed here. This + // field allows time series to be associated with the intersection of this metric type and the monitored resource types in + // this list. + MonitoredResourceTypes pulumi.StringArrayOutput `pulumi:"monitoredResourceTypes"` + // The resource name of the metric descriptor. + Name pulumi.StringOutput `pulumi:"name"` + // The ID of the project in which the resource belongs. + // If it is not provided, the provider project is used. + Project pulumi.StringOutput `pulumi:"project"` + // The metric type, including its DNS name prefix. The type is not URL-encoded. All service defined metrics must be prefixed with the service name, in the format of {service name}/{relative metric name}, such as cloudsql.googleapis.com/database/cpu/utilization. The relative metric name must have only upper and lower-case letters, digits, '/' and underscores '_' are allowed. Additionally, the maximum number of characters allowed for the relativeMetricName is 100. All user-defined metric types have the DNS name custom.googleapis.com, external.googleapis.com, or logging.googleapis.com/user/. + Type pulumi.StringOutput `pulumi:"type"` + // The units in which the metric value is reported. It is only applicable if the + // valueType is INT64, DOUBLE, or DISTRIBUTION. The unit defines the representation of + // the stored metric values. + // Different systems may scale the values to be more easily displayed (so a value of + // 0.02KBy might be displayed as 20By, and a value of 3523KBy might be displayed as + // 3.5MBy). However, if the unit is KBy, then the value of the metric is always in + // thousands of bytes, no matter how it may be displayed. + // If you want a custom metric to record the exact number of CPU-seconds used by a job, + // you can create an INT64 CUMULATIVE metric whose unit is s{CPU} (or equivalently + // 1s{CPU} or just s). If the job uses 12,005 CPU-seconds, then the value is written as + // 12005. + // Alternatively, if you want a custom metric to record data in a more granular way, you + // can create a DOUBLE CUMULATIVE metric whose unit is ks{CPU}, and then write the value + // 12.005 (which is 12005/1000), or use Kis{CPU} and write 11.723 (which is 12005/1024). + // The supported units are a subset of The Unified Code for Units of Measure standard. + // More info can be found in the API documentation + // (https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.metricDescriptors). + Unit pulumi.StringPtrOutput `pulumi:"unit"` + // The type of data that can be assigned to the label. + ValueType pulumi.StringOutput `pulumi:"valueType"` +} + +// NewMetricDescriptor registers a new resource with the given unique name, arguments, and options. +func NewMetricDescriptor(ctx *pulumi.Context, + name string, args *MetricDescriptorArgs, opts ...pulumi.ResourceOption) (*MetricDescriptor, error) { + if args == nil || args.Description == nil { + return nil, errors.New("missing required argument 'Description'") + } + if args == nil || args.DisplayName == nil { + return nil, errors.New("missing required argument 'DisplayName'") + } + if args == nil || args.MetricKind == nil { + return nil, errors.New("missing required argument 'MetricKind'") + } + if args == nil || args.Type == nil { + return nil, errors.New("missing required argument 'Type'") + } + if args == nil || args.ValueType == nil { + return nil, errors.New("missing required argument 'ValueType'") + } + if args == nil { + args = &MetricDescriptorArgs{} + } + var resource MetricDescriptor + err := ctx.RegisterResource("gcp:monitoring/metricDescriptor:MetricDescriptor", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetMetricDescriptor gets an existing MetricDescriptor resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetMetricDescriptor(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *MetricDescriptorState, opts ...pulumi.ResourceOption) (*MetricDescriptor, error) { + var resource MetricDescriptor + err := ctx.ReadResource("gcp:monitoring/metricDescriptor:MetricDescriptor", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering MetricDescriptor resources. +type metricDescriptorState struct { + // A human-readable description for the label. + Description *string `pulumi:"description"` + // A concise name for the metric, which can be displayed in user interfaces. Use sentence case without an ending period, for example "Request count". + DisplayName *string `pulumi:"displayName"` + // The set of labels that can be used to describe a specific instance of this metric type. In order to delete a label, the entire resource must be deleted, then created with the desired labels. Structure is documented below. + Labels []MetricDescriptorLabel `pulumi:"labels"` + // The launch stage of the metric definition. + LaunchStage *string `pulumi:"launchStage"` + // Metadata which can be used to guide usage of the metric. Structure is documented below. + Metadata *MetricDescriptorMetadata `pulumi:"metadata"` + // Whether the metric records instantaneous values, changes to a value, etc. Some combinations of metricKind and valueType might not be supported. + MetricKind *string `pulumi:"metricKind"` + // If present, then a time series, which is identified partially by a metric type and a MonitoredResourceDescriptor, that + // is associated with this metric type can only be associated with one of the monitored resource types listed here. This + // field allows time series to be associated with the intersection of this metric type and the monitored resource types in + // this list. + MonitoredResourceTypes []string `pulumi:"monitoredResourceTypes"` + // The resource name of the metric descriptor. + Name *string `pulumi:"name"` + // The ID of the project in which the resource belongs. + // If it is not provided, the provider project is used. + Project *string `pulumi:"project"` + // The metric type, including its DNS name prefix. The type is not URL-encoded. All service defined metrics must be prefixed with the service name, in the format of {service name}/{relative metric name}, such as cloudsql.googleapis.com/database/cpu/utilization. The relative metric name must have only upper and lower-case letters, digits, '/' and underscores '_' are allowed. Additionally, the maximum number of characters allowed for the relativeMetricName is 100. All user-defined metric types have the DNS name custom.googleapis.com, external.googleapis.com, or logging.googleapis.com/user/. + Type *string `pulumi:"type"` + // The units in which the metric value is reported. It is only applicable if the + // valueType is INT64, DOUBLE, or DISTRIBUTION. The unit defines the representation of + // the stored metric values. + // Different systems may scale the values to be more easily displayed (so a value of + // 0.02KBy might be displayed as 20By, and a value of 3523KBy might be displayed as + // 3.5MBy). However, if the unit is KBy, then the value of the metric is always in + // thousands of bytes, no matter how it may be displayed. + // If you want a custom metric to record the exact number of CPU-seconds used by a job, + // you can create an INT64 CUMULATIVE metric whose unit is s{CPU} (or equivalently + // 1s{CPU} or just s). If the job uses 12,005 CPU-seconds, then the value is written as + // 12005. + // Alternatively, if you want a custom metric to record data in a more granular way, you + // can create a DOUBLE CUMULATIVE metric whose unit is ks{CPU}, and then write the value + // 12.005 (which is 12005/1000), or use Kis{CPU} and write 11.723 (which is 12005/1024). + // The supported units are a subset of The Unified Code for Units of Measure standard. + // More info can be found in the API documentation + // (https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.metricDescriptors). + Unit *string `pulumi:"unit"` + // The type of data that can be assigned to the label. + ValueType *string `pulumi:"valueType"` +} + +type MetricDescriptorState struct { + // A human-readable description for the label. + Description pulumi.StringPtrInput + // A concise name for the metric, which can be displayed in user interfaces. Use sentence case without an ending period, for example "Request count". + DisplayName pulumi.StringPtrInput + // The set of labels that can be used to describe a specific instance of this metric type. In order to delete a label, the entire resource must be deleted, then created with the desired labels. Structure is documented below. + Labels MetricDescriptorLabelArrayInput + // The launch stage of the metric definition. + LaunchStage pulumi.StringPtrInput + // Metadata which can be used to guide usage of the metric. Structure is documented below. + Metadata MetricDescriptorMetadataPtrInput + // Whether the metric records instantaneous values, changes to a value, etc. Some combinations of metricKind and valueType might not be supported. + MetricKind pulumi.StringPtrInput + // If present, then a time series, which is identified partially by a metric type and a MonitoredResourceDescriptor, that + // is associated with this metric type can only be associated with one of the monitored resource types listed here. This + // field allows time series to be associated with the intersection of this metric type and the monitored resource types in + // this list. + MonitoredResourceTypes pulumi.StringArrayInput + // The resource name of the metric descriptor. + Name pulumi.StringPtrInput + // The ID of the project in which the resource belongs. + // If it is not provided, the provider project is used. + Project pulumi.StringPtrInput + // The metric type, including its DNS name prefix. The type is not URL-encoded. All service defined metrics must be prefixed with the service name, in the format of {service name}/{relative metric name}, such as cloudsql.googleapis.com/database/cpu/utilization. The relative metric name must have only upper and lower-case letters, digits, '/' and underscores '_' are allowed. Additionally, the maximum number of characters allowed for the relativeMetricName is 100. All user-defined metric types have the DNS name custom.googleapis.com, external.googleapis.com, or logging.googleapis.com/user/. + Type pulumi.StringPtrInput + // The units in which the metric value is reported. It is only applicable if the + // valueType is INT64, DOUBLE, or DISTRIBUTION. The unit defines the representation of + // the stored metric values. + // Different systems may scale the values to be more easily displayed (so a value of + // 0.02KBy might be displayed as 20By, and a value of 3523KBy might be displayed as + // 3.5MBy). However, if the unit is KBy, then the value of the metric is always in + // thousands of bytes, no matter how it may be displayed. + // If you want a custom metric to record the exact number of CPU-seconds used by a job, + // you can create an INT64 CUMULATIVE metric whose unit is s{CPU} (or equivalently + // 1s{CPU} or just s). If the job uses 12,005 CPU-seconds, then the value is written as + // 12005. + // Alternatively, if you want a custom metric to record data in a more granular way, you + // can create a DOUBLE CUMULATIVE metric whose unit is ks{CPU}, and then write the value + // 12.005 (which is 12005/1000), or use Kis{CPU} and write 11.723 (which is 12005/1024). + // The supported units are a subset of The Unified Code for Units of Measure standard. + // More info can be found in the API documentation + // (https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.metricDescriptors). + Unit pulumi.StringPtrInput + // The type of data that can be assigned to the label. + ValueType pulumi.StringPtrInput +} + +func (MetricDescriptorState) ElementType() reflect.Type { + return reflect.TypeOf((*metricDescriptorState)(nil)).Elem() +} + +type metricDescriptorArgs struct { + // A human-readable description for the label. + Description string `pulumi:"description"` + // A concise name for the metric, which can be displayed in user interfaces. Use sentence case without an ending period, for example "Request count". + DisplayName string `pulumi:"displayName"` + // The set of labels that can be used to describe a specific instance of this metric type. In order to delete a label, the entire resource must be deleted, then created with the desired labels. Structure is documented below. + Labels []MetricDescriptorLabel `pulumi:"labels"` + // The launch stage of the metric definition. + LaunchStage *string `pulumi:"launchStage"` + // Metadata which can be used to guide usage of the metric. Structure is documented below. + Metadata *MetricDescriptorMetadata `pulumi:"metadata"` + // Whether the metric records instantaneous values, changes to a value, etc. Some combinations of metricKind and valueType might not be supported. + MetricKind string `pulumi:"metricKind"` + // The ID of the project in which the resource belongs. + // If it is not provided, the provider project is used. + Project *string `pulumi:"project"` + // The metric type, including its DNS name prefix. The type is not URL-encoded. All service defined metrics must be prefixed with the service name, in the format of {service name}/{relative metric name}, such as cloudsql.googleapis.com/database/cpu/utilization. The relative metric name must have only upper and lower-case letters, digits, '/' and underscores '_' are allowed. Additionally, the maximum number of characters allowed for the relativeMetricName is 100. All user-defined metric types have the DNS name custom.googleapis.com, external.googleapis.com, or logging.googleapis.com/user/. + Type string `pulumi:"type"` + // The units in which the metric value is reported. It is only applicable if the + // valueType is INT64, DOUBLE, or DISTRIBUTION. The unit defines the representation of + // the stored metric values. + // Different systems may scale the values to be more easily displayed (so a value of + // 0.02KBy might be displayed as 20By, and a value of 3523KBy might be displayed as + // 3.5MBy). However, if the unit is KBy, then the value of the metric is always in + // thousands of bytes, no matter how it may be displayed. + // If you want a custom metric to record the exact number of CPU-seconds used by a job, + // you can create an INT64 CUMULATIVE metric whose unit is s{CPU} (or equivalently + // 1s{CPU} or just s). If the job uses 12,005 CPU-seconds, then the value is written as + // 12005. + // Alternatively, if you want a custom metric to record data in a more granular way, you + // can create a DOUBLE CUMULATIVE metric whose unit is ks{CPU}, and then write the value + // 12.005 (which is 12005/1000), or use Kis{CPU} and write 11.723 (which is 12005/1024). + // The supported units are a subset of The Unified Code for Units of Measure standard. + // More info can be found in the API documentation + // (https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.metricDescriptors). + Unit *string `pulumi:"unit"` + // The type of data that can be assigned to the label. + ValueType string `pulumi:"valueType"` +} + +// The set of arguments for constructing a MetricDescriptor resource. +type MetricDescriptorArgs struct { + // A human-readable description for the label. + Description pulumi.StringInput + // A concise name for the metric, which can be displayed in user interfaces. Use sentence case without an ending period, for example "Request count". + DisplayName pulumi.StringInput + // The set of labels that can be used to describe a specific instance of this metric type. In order to delete a label, the entire resource must be deleted, then created with the desired labels. Structure is documented below. + Labels MetricDescriptorLabelArrayInput + // The launch stage of the metric definition. + LaunchStage pulumi.StringPtrInput + // Metadata which can be used to guide usage of the metric. Structure is documented below. + Metadata MetricDescriptorMetadataPtrInput + // Whether the metric records instantaneous values, changes to a value, etc. Some combinations of metricKind and valueType might not be supported. + MetricKind pulumi.StringInput + // The ID of the project in which the resource belongs. + // If it is not provided, the provider project is used. + Project pulumi.StringPtrInput + // The metric type, including its DNS name prefix. The type is not URL-encoded. All service defined metrics must be prefixed with the service name, in the format of {service name}/{relative metric name}, such as cloudsql.googleapis.com/database/cpu/utilization. The relative metric name must have only upper and lower-case letters, digits, '/' and underscores '_' are allowed. Additionally, the maximum number of characters allowed for the relativeMetricName is 100. All user-defined metric types have the DNS name custom.googleapis.com, external.googleapis.com, or logging.googleapis.com/user/. + Type pulumi.StringInput + // The units in which the metric value is reported. It is only applicable if the + // valueType is INT64, DOUBLE, or DISTRIBUTION. The unit defines the representation of + // the stored metric values. + // Different systems may scale the values to be more easily displayed (so a value of + // 0.02KBy might be displayed as 20By, and a value of 3523KBy might be displayed as + // 3.5MBy). However, if the unit is KBy, then the value of the metric is always in + // thousands of bytes, no matter how it may be displayed. + // If you want a custom metric to record the exact number of CPU-seconds used by a job, + // you can create an INT64 CUMULATIVE metric whose unit is s{CPU} (or equivalently + // 1s{CPU} or just s). If the job uses 12,005 CPU-seconds, then the value is written as + // 12005. + // Alternatively, if you want a custom metric to record data in a more granular way, you + // can create a DOUBLE CUMULATIVE metric whose unit is ks{CPU}, and then write the value + // 12.005 (which is 12005/1000), or use Kis{CPU} and write 11.723 (which is 12005/1024). + // The supported units are a subset of The Unified Code for Units of Measure standard. + // More info can be found in the API documentation + // (https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.metricDescriptors). + Unit pulumi.StringPtrInput + // The type of data that can be assigned to the label. + ValueType pulumi.StringInput +} + +func (MetricDescriptorArgs) ElementType() reflect.Type { + return reflect.TypeOf((*metricDescriptorArgs)(nil)).Elem() +} diff --git a/sdk/go/gcp/monitoring/pulumiTypes.go b/sdk/go/gcp/monitoring/pulumiTypes.go index ec3b2352bb..adea3f05c4 100644 --- a/sdk/go/gcp/monitoring/pulumiTypes.go +++ b/sdk/go/gcp/monitoring/pulumiTypes.go @@ -2911,6 +2911,271 @@ func (o CustomServiceTelemetryPtrOutput) ResourceName() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } +type MetricDescriptorLabel struct { + // A human-readable description for the label. + Description *string `pulumi:"description"` + // The key for this label. The key must not exceed 100 characters. The first character of the key must be an upper- or lower-case letter, the remaining characters must be letters, digits or underscores, and the key must match the regular expression [a-zA-Z][a-zA-Z0-9_]* + Key string `pulumi:"key"` + // The type of data that can be assigned to the label. + ValueType *string `pulumi:"valueType"` +} + +// MetricDescriptorLabelInput is an input type that accepts MetricDescriptorLabelArgs and MetricDescriptorLabelOutput values. +// You can construct a concrete instance of `MetricDescriptorLabelInput` via: +// +// MetricDescriptorLabelArgs{...} +type MetricDescriptorLabelInput interface { + pulumi.Input + + ToMetricDescriptorLabelOutput() MetricDescriptorLabelOutput + ToMetricDescriptorLabelOutputWithContext(context.Context) MetricDescriptorLabelOutput +} + +type MetricDescriptorLabelArgs struct { + // A human-readable description for the label. + Description pulumi.StringPtrInput `pulumi:"description"` + // The key for this label. The key must not exceed 100 characters. The first character of the key must be an upper- or lower-case letter, the remaining characters must be letters, digits or underscores, and the key must match the regular expression [a-zA-Z][a-zA-Z0-9_]* + Key pulumi.StringInput `pulumi:"key"` + // The type of data that can be assigned to the label. + ValueType pulumi.StringPtrInput `pulumi:"valueType"` +} + +func (MetricDescriptorLabelArgs) ElementType() reflect.Type { + return reflect.TypeOf((*MetricDescriptorLabel)(nil)).Elem() +} + +func (i MetricDescriptorLabelArgs) ToMetricDescriptorLabelOutput() MetricDescriptorLabelOutput { + return i.ToMetricDescriptorLabelOutputWithContext(context.Background()) +} + +func (i MetricDescriptorLabelArgs) ToMetricDescriptorLabelOutputWithContext(ctx context.Context) MetricDescriptorLabelOutput { + return pulumi.ToOutputWithContext(ctx, i).(MetricDescriptorLabelOutput) +} + +// MetricDescriptorLabelArrayInput is an input type that accepts MetricDescriptorLabelArray and MetricDescriptorLabelArrayOutput values. +// You can construct a concrete instance of `MetricDescriptorLabelArrayInput` via: +// +// MetricDescriptorLabelArray{ MetricDescriptorLabelArgs{...} } +type MetricDescriptorLabelArrayInput interface { + pulumi.Input + + ToMetricDescriptorLabelArrayOutput() MetricDescriptorLabelArrayOutput + ToMetricDescriptorLabelArrayOutputWithContext(context.Context) MetricDescriptorLabelArrayOutput +} + +type MetricDescriptorLabelArray []MetricDescriptorLabelInput + +func (MetricDescriptorLabelArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]MetricDescriptorLabel)(nil)).Elem() +} + +func (i MetricDescriptorLabelArray) ToMetricDescriptorLabelArrayOutput() MetricDescriptorLabelArrayOutput { + return i.ToMetricDescriptorLabelArrayOutputWithContext(context.Background()) +} + +func (i MetricDescriptorLabelArray) ToMetricDescriptorLabelArrayOutputWithContext(ctx context.Context) MetricDescriptorLabelArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(MetricDescriptorLabelArrayOutput) +} + +type MetricDescriptorLabelOutput struct{ *pulumi.OutputState } + +func (MetricDescriptorLabelOutput) ElementType() reflect.Type { + return reflect.TypeOf((*MetricDescriptorLabel)(nil)).Elem() +} + +func (o MetricDescriptorLabelOutput) ToMetricDescriptorLabelOutput() MetricDescriptorLabelOutput { + return o +} + +func (o MetricDescriptorLabelOutput) ToMetricDescriptorLabelOutputWithContext(ctx context.Context) MetricDescriptorLabelOutput { + return o +} + +// A human-readable description for the label. +func (o MetricDescriptorLabelOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v MetricDescriptorLabel) *string { return v.Description }).(pulumi.StringPtrOutput) +} + +// The key for this label. The key must not exceed 100 characters. The first character of the key must be an upper- or lower-case letter, the remaining characters must be letters, digits or underscores, and the key must match the regular expression [a-zA-Z][a-zA-Z0-9_]* +func (o MetricDescriptorLabelOutput) Key() pulumi.StringOutput { + return o.ApplyT(func(v MetricDescriptorLabel) string { return v.Key }).(pulumi.StringOutput) +} + +// The type of data that can be assigned to the label. +func (o MetricDescriptorLabelOutput) ValueType() pulumi.StringPtrOutput { + return o.ApplyT(func(v MetricDescriptorLabel) *string { return v.ValueType }).(pulumi.StringPtrOutput) +} + +type MetricDescriptorLabelArrayOutput struct{ *pulumi.OutputState } + +func (MetricDescriptorLabelArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]MetricDescriptorLabel)(nil)).Elem() +} + +func (o MetricDescriptorLabelArrayOutput) ToMetricDescriptorLabelArrayOutput() MetricDescriptorLabelArrayOutput { + return o +} + +func (o MetricDescriptorLabelArrayOutput) ToMetricDescriptorLabelArrayOutputWithContext(ctx context.Context) MetricDescriptorLabelArrayOutput { + return o +} + +func (o MetricDescriptorLabelArrayOutput) Index(i pulumi.IntInput) MetricDescriptorLabelOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) MetricDescriptorLabel { + return vs[0].([]MetricDescriptorLabel)[vs[1].(int)] + }).(MetricDescriptorLabelOutput) +} + +type MetricDescriptorMetadata struct { + // The delay of data points caused by ingestion. Data points older than this age are guaranteed to be ingested and available to be read, excluding data loss due to errors. In `[duration format](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf?&_ga=2.264881487.1507873253.1593446723-935052455.1591817775#google.protobuf.Duration)`. + IngestDelay *string `pulumi:"ingestDelay"` + // The sampling period of metric data points. For metrics which are written periodically, consecutive data points are stored at this time interval, excluding data loss due to errors. Metrics with a higher granularity have a smaller sampling period. In `[duration format](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf?&_ga=2.264881487.1507873253.1593446723-935052455.1591817775#google.protobuf.Duration)`. + SamplePeriod *string `pulumi:"samplePeriod"` +} + +// MetricDescriptorMetadataInput is an input type that accepts MetricDescriptorMetadataArgs and MetricDescriptorMetadataOutput values. +// You can construct a concrete instance of `MetricDescriptorMetadataInput` via: +// +// MetricDescriptorMetadataArgs{...} +type MetricDescriptorMetadataInput interface { + pulumi.Input + + ToMetricDescriptorMetadataOutput() MetricDescriptorMetadataOutput + ToMetricDescriptorMetadataOutputWithContext(context.Context) MetricDescriptorMetadataOutput +} + +type MetricDescriptorMetadataArgs struct { + // The delay of data points caused by ingestion. Data points older than this age are guaranteed to be ingested and available to be read, excluding data loss due to errors. In `[duration format](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf?&_ga=2.264881487.1507873253.1593446723-935052455.1591817775#google.protobuf.Duration)`. + IngestDelay pulumi.StringPtrInput `pulumi:"ingestDelay"` + // The sampling period of metric data points. For metrics which are written periodically, consecutive data points are stored at this time interval, excluding data loss due to errors. Metrics with a higher granularity have a smaller sampling period. In `[duration format](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf?&_ga=2.264881487.1507873253.1593446723-935052455.1591817775#google.protobuf.Duration)`. + SamplePeriod pulumi.StringPtrInput `pulumi:"samplePeriod"` +} + +func (MetricDescriptorMetadataArgs) ElementType() reflect.Type { + return reflect.TypeOf((*MetricDescriptorMetadata)(nil)).Elem() +} + +func (i MetricDescriptorMetadataArgs) ToMetricDescriptorMetadataOutput() MetricDescriptorMetadataOutput { + return i.ToMetricDescriptorMetadataOutputWithContext(context.Background()) +} + +func (i MetricDescriptorMetadataArgs) ToMetricDescriptorMetadataOutputWithContext(ctx context.Context) MetricDescriptorMetadataOutput { + return pulumi.ToOutputWithContext(ctx, i).(MetricDescriptorMetadataOutput) +} + +func (i MetricDescriptorMetadataArgs) ToMetricDescriptorMetadataPtrOutput() MetricDescriptorMetadataPtrOutput { + return i.ToMetricDescriptorMetadataPtrOutputWithContext(context.Background()) +} + +func (i MetricDescriptorMetadataArgs) ToMetricDescriptorMetadataPtrOutputWithContext(ctx context.Context) MetricDescriptorMetadataPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(MetricDescriptorMetadataOutput).ToMetricDescriptorMetadataPtrOutputWithContext(ctx) +} + +// MetricDescriptorMetadataPtrInput is an input type that accepts MetricDescriptorMetadataArgs, MetricDescriptorMetadataPtr and MetricDescriptorMetadataPtrOutput values. +// You can construct a concrete instance of `MetricDescriptorMetadataPtrInput` via: +// +// MetricDescriptorMetadataArgs{...} +// +// or: +// +// nil +type MetricDescriptorMetadataPtrInput interface { + pulumi.Input + + ToMetricDescriptorMetadataPtrOutput() MetricDescriptorMetadataPtrOutput + ToMetricDescriptorMetadataPtrOutputWithContext(context.Context) MetricDescriptorMetadataPtrOutput +} + +type metricDescriptorMetadataPtrType MetricDescriptorMetadataArgs + +func MetricDescriptorMetadataPtr(v *MetricDescriptorMetadataArgs) MetricDescriptorMetadataPtrInput { + return (*metricDescriptorMetadataPtrType)(v) +} + +func (*metricDescriptorMetadataPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**MetricDescriptorMetadata)(nil)).Elem() +} + +func (i *metricDescriptorMetadataPtrType) ToMetricDescriptorMetadataPtrOutput() MetricDescriptorMetadataPtrOutput { + return i.ToMetricDescriptorMetadataPtrOutputWithContext(context.Background()) +} + +func (i *metricDescriptorMetadataPtrType) ToMetricDescriptorMetadataPtrOutputWithContext(ctx context.Context) MetricDescriptorMetadataPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(MetricDescriptorMetadataPtrOutput) +} + +type MetricDescriptorMetadataOutput struct{ *pulumi.OutputState } + +func (MetricDescriptorMetadataOutput) ElementType() reflect.Type { + return reflect.TypeOf((*MetricDescriptorMetadata)(nil)).Elem() +} + +func (o MetricDescriptorMetadataOutput) ToMetricDescriptorMetadataOutput() MetricDescriptorMetadataOutput { + return o +} + +func (o MetricDescriptorMetadataOutput) ToMetricDescriptorMetadataOutputWithContext(ctx context.Context) MetricDescriptorMetadataOutput { + return o +} + +func (o MetricDescriptorMetadataOutput) ToMetricDescriptorMetadataPtrOutput() MetricDescriptorMetadataPtrOutput { + return o.ToMetricDescriptorMetadataPtrOutputWithContext(context.Background()) +} + +func (o MetricDescriptorMetadataOutput) ToMetricDescriptorMetadataPtrOutputWithContext(ctx context.Context) MetricDescriptorMetadataPtrOutput { + return o.ApplyT(func(v MetricDescriptorMetadata) *MetricDescriptorMetadata { + return &v + }).(MetricDescriptorMetadataPtrOutput) +} + +// The delay of data points caused by ingestion. Data points older than this age are guaranteed to be ingested and available to be read, excluding data loss due to errors. In `[duration format](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf?&_ga=2.264881487.1507873253.1593446723-935052455.1591817775#google.protobuf.Duration)`. +func (o MetricDescriptorMetadataOutput) IngestDelay() pulumi.StringPtrOutput { + return o.ApplyT(func(v MetricDescriptorMetadata) *string { return v.IngestDelay }).(pulumi.StringPtrOutput) +} + +// The sampling period of metric data points. For metrics which are written periodically, consecutive data points are stored at this time interval, excluding data loss due to errors. Metrics with a higher granularity have a smaller sampling period. In `[duration format](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf?&_ga=2.264881487.1507873253.1593446723-935052455.1591817775#google.protobuf.Duration)`. +func (o MetricDescriptorMetadataOutput) SamplePeriod() pulumi.StringPtrOutput { + return o.ApplyT(func(v MetricDescriptorMetadata) *string { return v.SamplePeriod }).(pulumi.StringPtrOutput) +} + +type MetricDescriptorMetadataPtrOutput struct{ *pulumi.OutputState } + +func (MetricDescriptorMetadataPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**MetricDescriptorMetadata)(nil)).Elem() +} + +func (o MetricDescriptorMetadataPtrOutput) ToMetricDescriptorMetadataPtrOutput() MetricDescriptorMetadataPtrOutput { + return o +} + +func (o MetricDescriptorMetadataPtrOutput) ToMetricDescriptorMetadataPtrOutputWithContext(ctx context.Context) MetricDescriptorMetadataPtrOutput { + return o +} + +func (o MetricDescriptorMetadataPtrOutput) Elem() MetricDescriptorMetadataOutput { + return o.ApplyT(func(v *MetricDescriptorMetadata) MetricDescriptorMetadata { return *v }).(MetricDescriptorMetadataOutput) +} + +// The delay of data points caused by ingestion. Data points older than this age are guaranteed to be ingested and available to be read, excluding data loss due to errors. In `[duration format](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf?&_ga=2.264881487.1507873253.1593446723-935052455.1591817775#google.protobuf.Duration)`. +func (o MetricDescriptorMetadataPtrOutput) IngestDelay() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MetricDescriptorMetadata) *string { + if v == nil { + return nil + } + return v.IngestDelay + }).(pulumi.StringPtrOutput) +} + +// The sampling period of metric data points. For metrics which are written periodically, consecutive data points are stored at this time interval, excluding data loss due to errors. Metrics with a higher granularity have a smaller sampling period. In `[duration format](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf?&_ga=2.264881487.1507873253.1593446723-935052455.1591817775#google.protobuf.Duration)`. +func (o MetricDescriptorMetadataPtrOutput) SamplePeriod() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MetricDescriptorMetadata) *string { + if v == nil { + return nil + } + return v.SamplePeriod + }).(pulumi.StringPtrOutput) +} + type NotificationChannelSensitiveLabels struct { // An authorization token for a notification channel. Channel types that support this field include: slack **Note**: This property is sensitive and will not be displayed in the plan. AuthToken *string `pulumi:"authToken"` @@ -7951,6 +8216,10 @@ func init() { pulumi.RegisterOutputType(AlertPolicyDocumentationPtrOutput{}) pulumi.RegisterOutputType(CustomServiceTelemetryOutput{}) pulumi.RegisterOutputType(CustomServiceTelemetryPtrOutput{}) + pulumi.RegisterOutputType(MetricDescriptorLabelOutput{}) + pulumi.RegisterOutputType(MetricDescriptorLabelArrayOutput{}) + pulumi.RegisterOutputType(MetricDescriptorMetadataOutput{}) + pulumi.RegisterOutputType(MetricDescriptorMetadataPtrOutput{}) pulumi.RegisterOutputType(NotificationChannelSensitiveLabelsOutput{}) pulumi.RegisterOutputType(NotificationChannelSensitiveLabelsPtrOutput{}) pulumi.RegisterOutputType(SloBasicSliOutput{}) diff --git a/sdk/go/gcp/organizations/folder.go b/sdk/go/gcp/organizations/folder.go index 5d1b787a91..8808d429dd 100644 --- a/sdk/go/gcp/organizations/folder.go +++ b/sdk/go/gcp/organizations/folder.go @@ -32,6 +32,8 @@ type Folder struct { // The folder’s display name. // A folder’s display name must be unique amongst its siblings, e.g. no two folders with the same parent can share the same display name. The display name must start and end with a letter or digit, may contain letters, digits, spaces, hyphens and underscores and can be no longer than 30 characters. DisplayName pulumi.StringOutput `pulumi:"displayName"` + // The folder id from the name "folders/{folder_id}" + FolderId pulumi.StringOutput `pulumi:"folderId"` // The lifecycle state of the folder such as `ACTIVE` or `DELETE_REQUESTED`. LifecycleState pulumi.StringOutput `pulumi:"lifecycleState"` // The resource name of the Folder. Its format is folders/{folder_id}. @@ -81,6 +83,8 @@ type folderState struct { // The folder’s display name. // A folder’s display name must be unique amongst its siblings, e.g. no two folders with the same parent can share the same display name. The display name must start and end with a letter or digit, may contain letters, digits, spaces, hyphens and underscores and can be no longer than 30 characters. DisplayName *string `pulumi:"displayName"` + // The folder id from the name "folders/{folder_id}" + FolderId *string `pulumi:"folderId"` // The lifecycle state of the folder such as `ACTIVE` or `DELETE_REQUESTED`. LifecycleState *string `pulumi:"lifecycleState"` // The resource name of the Folder. Its format is folders/{folder_id}. @@ -97,6 +101,8 @@ type FolderState struct { // The folder’s display name. // A folder’s display name must be unique amongst its siblings, e.g. no two folders with the same parent can share the same display name. The display name must start and end with a letter or digit, may contain letters, digits, spaces, hyphens and underscores and can be no longer than 30 characters. DisplayName pulumi.StringPtrInput + // The folder id from the name "folders/{folder_id}" + FolderId pulumi.StringPtrInput // The lifecycle state of the folder such as `ACTIVE` or `DELETE_REQUESTED`. LifecycleState pulumi.StringPtrInput // The resource name of the Folder. Its format is folders/{folder_id}. diff --git a/sdk/go/gcp/organizations/getFolder.go b/sdk/go/gcp/organizations/getFolder.go index 7e2daac3b8..e3f9a6d42e 100644 --- a/sdk/go/gcp/organizations/getFolder.go +++ b/sdk/go/gcp/organizations/getFolder.go @@ -32,6 +32,7 @@ type LookupFolderResult struct { // The folder's display name. DisplayName string `pulumi:"displayName"` Folder string `pulumi:"folder"` + FolderId string `pulumi:"folderId"` // The provider-assigned unique ID for this managed resource. Id string `pulumi:"id"` // The Folder's current lifecycle state. diff --git a/sdk/go/gcp/osconfig/guestPolicies.go b/sdk/go/gcp/osconfig/guestPolicies.go new file mode 100644 index 0000000000..6fcf7c3294 --- /dev/null +++ b/sdk/go/gcp/osconfig/guestPolicies.go @@ -0,0 +1,253 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package osconfig + +import ( + "reflect" + + "github.com/pkg/errors" + "github.com/pulumi/pulumi/sdk/v2/go/pulumi" +) + +type GuestPolicies struct { + pulumi.CustomResourceState + + // Specifies the VM instances that are assigned to this policy. This allows you to target sets + // or groups of VM instances by different parameters such as labels, names, OS, or zones. + // If left empty, all VM instances underneath this policy are targeted. + // At the same level in the resource hierarchy (that is within a project), the service prevents + // the creation of multiple policies that conflict with each other. + // For more information, see how the service + // [handles assignment conflicts](https://cloud.google.com/compute/docs/os-config-management/create-guest-policy#handle-conflicts). Structure is documented below. + Assignment GuestPoliciesAssignmentOutput `pulumi:"assignment"` + // Time this guest policy was created. A timestamp in RFC3339 UTC "Zulu" format, accurate to nanoseconds. Example: + // "2014-10-02T15:01:23.045123456Z". + CreateTime pulumi.StringOutput `pulumi:"createTime"` + // Description of the guest policy. Length of the description is limited to 1024 characters. + Description pulumi.StringPtrOutput `pulumi:"description"` + // The etag for this guest policy. If this is provided on update, it must match the server's etag. + Etag pulumi.StringOutput `pulumi:"etag"` + // The logical name of the guest policy in the project with the following restrictions: + // * Must contain only lowercase letters, numbers, and hyphens. + // * Must start with a letter. + // * Must be between 1-63 characters. + // * Must end with a number or a letter. + // * Must be unique within the project. + GuestPolicyId pulumi.StringOutput `pulumi:"guestPolicyId"` + // Unique identifier for the recipe. Only one recipe with a given name is installed on an instance. + // Names are also used to identify resources which helps to determine whether guest policies have conflicts. + // This means that requests to create multiple recipes with the same name and version are rejected since they + // could potentially have conflicting assignments. + Name pulumi.StringOutput `pulumi:"name"` + // A list of package repositories to configure on the VM instance. + // This is done before any other configs are applied so they can use these repos. + // Package repositories are only configured if the corresponding package manager(s) are available. Structure is documented below. + PackageRepositories GuestPoliciesPackageRepositoryArrayOutput `pulumi:"packageRepositories"` + // The software packages to be managed by this policy. Structure is documented below. + Packages GuestPoliciesPackageArrayOutput `pulumi:"packages"` + // The ID of the project in which the resource belongs. + // If it is not provided, the provider project is used. + Project pulumi.StringOutput `pulumi:"project"` + // A list of Recipes to install on the VM instance. Structure is documented below. + Recipes GuestPoliciesRecipeArrayOutput `pulumi:"recipes"` + // Last time this guest policy was updated. A timestamp in RFC3339 UTC "Zulu" format, accurate to nanoseconds. Example: + // "2014-10-02T15:01:23.045123456Z". + UpdateTime pulumi.StringOutput `pulumi:"updateTime"` +} + +// NewGuestPolicies registers a new resource with the given unique name, arguments, and options. +func NewGuestPolicies(ctx *pulumi.Context, + name string, args *GuestPoliciesArgs, opts ...pulumi.ResourceOption) (*GuestPolicies, error) { + if args == nil || args.Assignment == nil { + return nil, errors.New("missing required argument 'Assignment'") + } + if args == nil || args.GuestPolicyId == nil { + return nil, errors.New("missing required argument 'GuestPolicyId'") + } + if args == nil { + args = &GuestPoliciesArgs{} + } + var resource GuestPolicies + err := ctx.RegisterResource("gcp:osconfig/guestPolicies:GuestPolicies", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetGuestPolicies gets an existing GuestPolicies resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetGuestPolicies(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *GuestPoliciesState, opts ...pulumi.ResourceOption) (*GuestPolicies, error) { + var resource GuestPolicies + err := ctx.ReadResource("gcp:osconfig/guestPolicies:GuestPolicies", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering GuestPolicies resources. +type guestPoliciesState struct { + // Specifies the VM instances that are assigned to this policy. This allows you to target sets + // or groups of VM instances by different parameters such as labels, names, OS, or zones. + // If left empty, all VM instances underneath this policy are targeted. + // At the same level in the resource hierarchy (that is within a project), the service prevents + // the creation of multiple policies that conflict with each other. + // For more information, see how the service + // [handles assignment conflicts](https://cloud.google.com/compute/docs/os-config-management/create-guest-policy#handle-conflicts). Structure is documented below. + Assignment *GuestPoliciesAssignment `pulumi:"assignment"` + // Time this guest policy was created. A timestamp in RFC3339 UTC "Zulu" format, accurate to nanoseconds. Example: + // "2014-10-02T15:01:23.045123456Z". + CreateTime *string `pulumi:"createTime"` + // Description of the guest policy. Length of the description is limited to 1024 characters. + Description *string `pulumi:"description"` + // The etag for this guest policy. If this is provided on update, it must match the server's etag. + Etag *string `pulumi:"etag"` + // The logical name of the guest policy in the project with the following restrictions: + // * Must contain only lowercase letters, numbers, and hyphens. + // * Must start with a letter. + // * Must be between 1-63 characters. + // * Must end with a number or a letter. + // * Must be unique within the project. + GuestPolicyId *string `pulumi:"guestPolicyId"` + // Unique identifier for the recipe. Only one recipe with a given name is installed on an instance. + // Names are also used to identify resources which helps to determine whether guest policies have conflicts. + // This means that requests to create multiple recipes with the same name and version are rejected since they + // could potentially have conflicting assignments. + Name *string `pulumi:"name"` + // A list of package repositories to configure on the VM instance. + // This is done before any other configs are applied so they can use these repos. + // Package repositories are only configured if the corresponding package manager(s) are available. Structure is documented below. + PackageRepositories []GuestPoliciesPackageRepository `pulumi:"packageRepositories"` + // The software packages to be managed by this policy. Structure is documented below. + Packages []GuestPoliciesPackage `pulumi:"packages"` + // The ID of the project in which the resource belongs. + // If it is not provided, the provider project is used. + Project *string `pulumi:"project"` + // A list of Recipes to install on the VM instance. Structure is documented below. + Recipes []GuestPoliciesRecipe `pulumi:"recipes"` + // Last time this guest policy was updated. A timestamp in RFC3339 UTC "Zulu" format, accurate to nanoseconds. Example: + // "2014-10-02T15:01:23.045123456Z". + UpdateTime *string `pulumi:"updateTime"` +} + +type GuestPoliciesState struct { + // Specifies the VM instances that are assigned to this policy. This allows you to target sets + // or groups of VM instances by different parameters such as labels, names, OS, or zones. + // If left empty, all VM instances underneath this policy are targeted. + // At the same level in the resource hierarchy (that is within a project), the service prevents + // the creation of multiple policies that conflict with each other. + // For more information, see how the service + // [handles assignment conflicts](https://cloud.google.com/compute/docs/os-config-management/create-guest-policy#handle-conflicts). Structure is documented below. + Assignment GuestPoliciesAssignmentPtrInput + // Time this guest policy was created. A timestamp in RFC3339 UTC "Zulu" format, accurate to nanoseconds. Example: + // "2014-10-02T15:01:23.045123456Z". + CreateTime pulumi.StringPtrInput + // Description of the guest policy. Length of the description is limited to 1024 characters. + Description pulumi.StringPtrInput + // The etag for this guest policy. If this is provided on update, it must match the server's etag. + Etag pulumi.StringPtrInput + // The logical name of the guest policy in the project with the following restrictions: + // * Must contain only lowercase letters, numbers, and hyphens. + // * Must start with a letter. + // * Must be between 1-63 characters. + // * Must end with a number or a letter. + // * Must be unique within the project. + GuestPolicyId pulumi.StringPtrInput + // Unique identifier for the recipe. Only one recipe with a given name is installed on an instance. + // Names are also used to identify resources which helps to determine whether guest policies have conflicts. + // This means that requests to create multiple recipes with the same name and version are rejected since they + // could potentially have conflicting assignments. + Name pulumi.StringPtrInput + // A list of package repositories to configure on the VM instance. + // This is done before any other configs are applied so they can use these repos. + // Package repositories are only configured if the corresponding package manager(s) are available. Structure is documented below. + PackageRepositories GuestPoliciesPackageRepositoryArrayInput + // The software packages to be managed by this policy. Structure is documented below. + Packages GuestPoliciesPackageArrayInput + // The ID of the project in which the resource belongs. + // If it is not provided, the provider project is used. + Project pulumi.StringPtrInput + // A list of Recipes to install on the VM instance. Structure is documented below. + Recipes GuestPoliciesRecipeArrayInput + // Last time this guest policy was updated. A timestamp in RFC3339 UTC "Zulu" format, accurate to nanoseconds. Example: + // "2014-10-02T15:01:23.045123456Z". + UpdateTime pulumi.StringPtrInput +} + +func (GuestPoliciesState) ElementType() reflect.Type { + return reflect.TypeOf((*guestPoliciesState)(nil)).Elem() +} + +type guestPoliciesArgs struct { + // Specifies the VM instances that are assigned to this policy. This allows you to target sets + // or groups of VM instances by different parameters such as labels, names, OS, or zones. + // If left empty, all VM instances underneath this policy are targeted. + // At the same level in the resource hierarchy (that is within a project), the service prevents + // the creation of multiple policies that conflict with each other. + // For more information, see how the service + // [handles assignment conflicts](https://cloud.google.com/compute/docs/os-config-management/create-guest-policy#handle-conflicts). Structure is documented below. + Assignment GuestPoliciesAssignment `pulumi:"assignment"` + // Description of the guest policy. Length of the description is limited to 1024 characters. + Description *string `pulumi:"description"` + // The etag for this guest policy. If this is provided on update, it must match the server's etag. + Etag *string `pulumi:"etag"` + // The logical name of the guest policy in the project with the following restrictions: + // * Must contain only lowercase letters, numbers, and hyphens. + // * Must start with a letter. + // * Must be between 1-63 characters. + // * Must end with a number or a letter. + // * Must be unique within the project. + GuestPolicyId string `pulumi:"guestPolicyId"` + // A list of package repositories to configure on the VM instance. + // This is done before any other configs are applied so they can use these repos. + // Package repositories are only configured if the corresponding package manager(s) are available. Structure is documented below. + PackageRepositories []GuestPoliciesPackageRepository `pulumi:"packageRepositories"` + // The software packages to be managed by this policy. Structure is documented below. + Packages []GuestPoliciesPackage `pulumi:"packages"` + // The ID of the project in which the resource belongs. + // If it is not provided, the provider project is used. + Project *string `pulumi:"project"` + // A list of Recipes to install on the VM instance. Structure is documented below. + Recipes []GuestPoliciesRecipe `pulumi:"recipes"` +} + +// The set of arguments for constructing a GuestPolicies resource. +type GuestPoliciesArgs struct { + // Specifies the VM instances that are assigned to this policy. This allows you to target sets + // or groups of VM instances by different parameters such as labels, names, OS, or zones. + // If left empty, all VM instances underneath this policy are targeted. + // At the same level in the resource hierarchy (that is within a project), the service prevents + // the creation of multiple policies that conflict with each other. + // For more information, see how the service + // [handles assignment conflicts](https://cloud.google.com/compute/docs/os-config-management/create-guest-policy#handle-conflicts). Structure is documented below. + Assignment GuestPoliciesAssignmentInput + // Description of the guest policy. Length of the description is limited to 1024 characters. + Description pulumi.StringPtrInput + // The etag for this guest policy. If this is provided on update, it must match the server's etag. + Etag pulumi.StringPtrInput + // The logical name of the guest policy in the project with the following restrictions: + // * Must contain only lowercase letters, numbers, and hyphens. + // * Must start with a letter. + // * Must be between 1-63 characters. + // * Must end with a number or a letter. + // * Must be unique within the project. + GuestPolicyId pulumi.StringInput + // A list of package repositories to configure on the VM instance. + // This is done before any other configs are applied so they can use these repos. + // Package repositories are only configured if the corresponding package manager(s) are available. Structure is documented below. + PackageRepositories GuestPoliciesPackageRepositoryArrayInput + // The software packages to be managed by this policy. Structure is documented below. + Packages GuestPoliciesPackageArrayInput + // The ID of the project in which the resource belongs. + // If it is not provided, the provider project is used. + Project pulumi.StringPtrInput + // A list of Recipes to install on the VM instance. Structure is documented below. + Recipes GuestPoliciesRecipeArrayInput +} + +func (GuestPoliciesArgs) ElementType() reflect.Type { + return reflect.TypeOf((*guestPoliciesArgs)(nil)).Elem() +} diff --git a/sdk/go/gcp/osconfig/pulumiTypes.go b/sdk/go/gcp/osconfig/pulumiTypes.go index 1724402408..971e443e97 100644 --- a/sdk/go/gcp/osconfig/pulumiTypes.go +++ b/sdk/go/gcp/osconfig/pulumiTypes.go @@ -10,6 +10,4815 @@ import ( "github.com/pulumi/pulumi/sdk/v2/go/pulumi" ) +type GuestPoliciesAssignment struct { + // Targets instances matching at least one of these label sets. This allows an assignment to target disparate groups, + // for example "env=prod or env=staging". Structure is documented below. + GroupLabels []GuestPoliciesAssignmentGroupLabel `pulumi:"groupLabels"` + // Targets VM instances whose name starts with one of these prefixes. + // Like labels, this is another way to group VM instances when targeting configs, + // for example prefix="prod-". + // Only supported for project-level policies. + InstanceNamePrefixes []string `pulumi:"instanceNamePrefixes"` + // Targets any of the instances specified. Instances are specified by their URI in the form + // zones/[ZONE]/instances/[INSTANCE_NAME]. + // Instance targeting is uncommon and is supported to facilitate the management of changes + // by the instance or to target specific VM instances for development and testing. + // Only supported for project-level policies and must reference instances within this project. + Instances []string `pulumi:"instances"` + // Targets VM instances matching at least one of the following OS types. + // VM instances must match all supplied criteria for a given OsType to be included. Structure is documented below. + OsTypes []GuestPoliciesAssignmentOsType `pulumi:"osTypes"` + // Targets instances in any of these zones. Leave empty to target instances in any zone. + // Zonal targeting is uncommon and is supported to facilitate the management of changes by zone. + Zones []string `pulumi:"zones"` +} + +// GuestPoliciesAssignmentInput is an input type that accepts GuestPoliciesAssignmentArgs and GuestPoliciesAssignmentOutput values. +// You can construct a concrete instance of `GuestPoliciesAssignmentInput` via: +// +// GuestPoliciesAssignmentArgs{...} +type GuestPoliciesAssignmentInput interface { + pulumi.Input + + ToGuestPoliciesAssignmentOutput() GuestPoliciesAssignmentOutput + ToGuestPoliciesAssignmentOutputWithContext(context.Context) GuestPoliciesAssignmentOutput +} + +type GuestPoliciesAssignmentArgs struct { + // Targets instances matching at least one of these label sets. This allows an assignment to target disparate groups, + // for example "env=prod or env=staging". Structure is documented below. + GroupLabels GuestPoliciesAssignmentGroupLabelArrayInput `pulumi:"groupLabels"` + // Targets VM instances whose name starts with one of these prefixes. + // Like labels, this is another way to group VM instances when targeting configs, + // for example prefix="prod-". + // Only supported for project-level policies. + InstanceNamePrefixes pulumi.StringArrayInput `pulumi:"instanceNamePrefixes"` + // Targets any of the instances specified. Instances are specified by their URI in the form + // zones/[ZONE]/instances/[INSTANCE_NAME]. + // Instance targeting is uncommon and is supported to facilitate the management of changes + // by the instance or to target specific VM instances for development and testing. + // Only supported for project-level policies and must reference instances within this project. + Instances pulumi.StringArrayInput `pulumi:"instances"` + // Targets VM instances matching at least one of the following OS types. + // VM instances must match all supplied criteria for a given OsType to be included. Structure is documented below. + OsTypes GuestPoliciesAssignmentOsTypeArrayInput `pulumi:"osTypes"` + // Targets instances in any of these zones. Leave empty to target instances in any zone. + // Zonal targeting is uncommon and is supported to facilitate the management of changes by zone. + Zones pulumi.StringArrayInput `pulumi:"zones"` +} + +func (GuestPoliciesAssignmentArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GuestPoliciesAssignment)(nil)).Elem() +} + +func (i GuestPoliciesAssignmentArgs) ToGuestPoliciesAssignmentOutput() GuestPoliciesAssignmentOutput { + return i.ToGuestPoliciesAssignmentOutputWithContext(context.Background()) +} + +func (i GuestPoliciesAssignmentArgs) ToGuestPoliciesAssignmentOutputWithContext(ctx context.Context) GuestPoliciesAssignmentOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuestPoliciesAssignmentOutput) +} + +func (i GuestPoliciesAssignmentArgs) ToGuestPoliciesAssignmentPtrOutput() GuestPoliciesAssignmentPtrOutput { + return i.ToGuestPoliciesAssignmentPtrOutputWithContext(context.Background()) +} + +func (i GuestPoliciesAssignmentArgs) ToGuestPoliciesAssignmentPtrOutputWithContext(ctx context.Context) GuestPoliciesAssignmentPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuestPoliciesAssignmentOutput).ToGuestPoliciesAssignmentPtrOutputWithContext(ctx) +} + +// GuestPoliciesAssignmentPtrInput is an input type that accepts GuestPoliciesAssignmentArgs, GuestPoliciesAssignmentPtr and GuestPoliciesAssignmentPtrOutput values. +// You can construct a concrete instance of `GuestPoliciesAssignmentPtrInput` via: +// +// GuestPoliciesAssignmentArgs{...} +// +// or: +// +// nil +type GuestPoliciesAssignmentPtrInput interface { + pulumi.Input + + ToGuestPoliciesAssignmentPtrOutput() GuestPoliciesAssignmentPtrOutput + ToGuestPoliciesAssignmentPtrOutputWithContext(context.Context) GuestPoliciesAssignmentPtrOutput +} + +type guestPoliciesAssignmentPtrType GuestPoliciesAssignmentArgs + +func GuestPoliciesAssignmentPtr(v *GuestPoliciesAssignmentArgs) GuestPoliciesAssignmentPtrInput { + return (*guestPoliciesAssignmentPtrType)(v) +} + +func (*guestPoliciesAssignmentPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**GuestPoliciesAssignment)(nil)).Elem() +} + +func (i *guestPoliciesAssignmentPtrType) ToGuestPoliciesAssignmentPtrOutput() GuestPoliciesAssignmentPtrOutput { + return i.ToGuestPoliciesAssignmentPtrOutputWithContext(context.Background()) +} + +func (i *guestPoliciesAssignmentPtrType) ToGuestPoliciesAssignmentPtrOutputWithContext(ctx context.Context) GuestPoliciesAssignmentPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuestPoliciesAssignmentPtrOutput) +} + +type GuestPoliciesAssignmentOutput struct{ *pulumi.OutputState } + +func (GuestPoliciesAssignmentOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GuestPoliciesAssignment)(nil)).Elem() +} + +func (o GuestPoliciesAssignmentOutput) ToGuestPoliciesAssignmentOutput() GuestPoliciesAssignmentOutput { + return o +} + +func (o GuestPoliciesAssignmentOutput) ToGuestPoliciesAssignmentOutputWithContext(ctx context.Context) GuestPoliciesAssignmentOutput { + return o +} + +func (o GuestPoliciesAssignmentOutput) ToGuestPoliciesAssignmentPtrOutput() GuestPoliciesAssignmentPtrOutput { + return o.ToGuestPoliciesAssignmentPtrOutputWithContext(context.Background()) +} + +func (o GuestPoliciesAssignmentOutput) ToGuestPoliciesAssignmentPtrOutputWithContext(ctx context.Context) GuestPoliciesAssignmentPtrOutput { + return o.ApplyT(func(v GuestPoliciesAssignment) *GuestPoliciesAssignment { + return &v + }).(GuestPoliciesAssignmentPtrOutput) +} + +// Targets instances matching at least one of these label sets. This allows an assignment to target disparate groups, +// for example "env=prod or env=staging". Structure is documented below. +func (o GuestPoliciesAssignmentOutput) GroupLabels() GuestPoliciesAssignmentGroupLabelArrayOutput { + return o.ApplyT(func(v GuestPoliciesAssignment) []GuestPoliciesAssignmentGroupLabel { return v.GroupLabels }).(GuestPoliciesAssignmentGroupLabelArrayOutput) +} + +// Targets VM instances whose name starts with one of these prefixes. +// Like labels, this is another way to group VM instances when targeting configs, +// for example prefix="prod-". +// Only supported for project-level policies. +func (o GuestPoliciesAssignmentOutput) InstanceNamePrefixes() pulumi.StringArrayOutput { + return o.ApplyT(func(v GuestPoliciesAssignment) []string { return v.InstanceNamePrefixes }).(pulumi.StringArrayOutput) +} + +// Targets any of the instances specified. Instances are specified by their URI in the form +// zones/[ZONE]/instances/[INSTANCE_NAME]. +// Instance targeting is uncommon and is supported to facilitate the management of changes +// by the instance or to target specific VM instances for development and testing. +// Only supported for project-level policies and must reference instances within this project. +func (o GuestPoliciesAssignmentOutput) Instances() pulumi.StringArrayOutput { + return o.ApplyT(func(v GuestPoliciesAssignment) []string { return v.Instances }).(pulumi.StringArrayOutput) +} + +// Targets VM instances matching at least one of the following OS types. +// VM instances must match all supplied criteria for a given OsType to be included. Structure is documented below. +func (o GuestPoliciesAssignmentOutput) OsTypes() GuestPoliciesAssignmentOsTypeArrayOutput { + return o.ApplyT(func(v GuestPoliciesAssignment) []GuestPoliciesAssignmentOsType { return v.OsTypes }).(GuestPoliciesAssignmentOsTypeArrayOutput) +} + +// Targets instances in any of these zones. Leave empty to target instances in any zone. +// Zonal targeting is uncommon and is supported to facilitate the management of changes by zone. +func (o GuestPoliciesAssignmentOutput) Zones() pulumi.StringArrayOutput { + return o.ApplyT(func(v GuestPoliciesAssignment) []string { return v.Zones }).(pulumi.StringArrayOutput) +} + +type GuestPoliciesAssignmentPtrOutput struct{ *pulumi.OutputState } + +func (GuestPoliciesAssignmentPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**GuestPoliciesAssignment)(nil)).Elem() +} + +func (o GuestPoliciesAssignmentPtrOutput) ToGuestPoliciesAssignmentPtrOutput() GuestPoliciesAssignmentPtrOutput { + return o +} + +func (o GuestPoliciesAssignmentPtrOutput) ToGuestPoliciesAssignmentPtrOutputWithContext(ctx context.Context) GuestPoliciesAssignmentPtrOutput { + return o +} + +func (o GuestPoliciesAssignmentPtrOutput) Elem() GuestPoliciesAssignmentOutput { + return o.ApplyT(func(v *GuestPoliciesAssignment) GuestPoliciesAssignment { return *v }).(GuestPoliciesAssignmentOutput) +} + +// Targets instances matching at least one of these label sets. This allows an assignment to target disparate groups, +// for example "env=prod or env=staging". Structure is documented below. +func (o GuestPoliciesAssignmentPtrOutput) GroupLabels() GuestPoliciesAssignmentGroupLabelArrayOutput { + return o.ApplyT(func(v *GuestPoliciesAssignment) []GuestPoliciesAssignmentGroupLabel { + if v == nil { + return nil + } + return v.GroupLabels + }).(GuestPoliciesAssignmentGroupLabelArrayOutput) +} + +// Targets VM instances whose name starts with one of these prefixes. +// Like labels, this is another way to group VM instances when targeting configs, +// for example prefix="prod-". +// Only supported for project-level policies. +func (o GuestPoliciesAssignmentPtrOutput) InstanceNamePrefixes() pulumi.StringArrayOutput { + return o.ApplyT(func(v *GuestPoliciesAssignment) []string { + if v == nil { + return nil + } + return v.InstanceNamePrefixes + }).(pulumi.StringArrayOutput) +} + +// Targets any of the instances specified. Instances are specified by their URI in the form +// zones/[ZONE]/instances/[INSTANCE_NAME]. +// Instance targeting is uncommon and is supported to facilitate the management of changes +// by the instance or to target specific VM instances for development and testing. +// Only supported for project-level policies and must reference instances within this project. +func (o GuestPoliciesAssignmentPtrOutput) Instances() pulumi.StringArrayOutput { + return o.ApplyT(func(v *GuestPoliciesAssignment) []string { + if v == nil { + return nil + } + return v.Instances + }).(pulumi.StringArrayOutput) +} + +// Targets VM instances matching at least one of the following OS types. +// VM instances must match all supplied criteria for a given OsType to be included. Structure is documented below. +func (o GuestPoliciesAssignmentPtrOutput) OsTypes() GuestPoliciesAssignmentOsTypeArrayOutput { + return o.ApplyT(func(v *GuestPoliciesAssignment) []GuestPoliciesAssignmentOsType { + if v == nil { + return nil + } + return v.OsTypes + }).(GuestPoliciesAssignmentOsTypeArrayOutput) +} + +// Targets instances in any of these zones. Leave empty to target instances in any zone. +// Zonal targeting is uncommon and is supported to facilitate the management of changes by zone. +func (o GuestPoliciesAssignmentPtrOutput) Zones() pulumi.StringArrayOutput { + return o.ApplyT(func(v *GuestPoliciesAssignment) []string { + if v == nil { + return nil + } + return v.Zones + }).(pulumi.StringArrayOutput) +} + +type GuestPoliciesAssignmentGroupLabel struct { + // Google Compute Engine instance labels that must be present for an instance to be included in this assignment group. + Labels map[string]string `pulumi:"labels"` +} + +// GuestPoliciesAssignmentGroupLabelInput is an input type that accepts GuestPoliciesAssignmentGroupLabelArgs and GuestPoliciesAssignmentGroupLabelOutput values. +// You can construct a concrete instance of `GuestPoliciesAssignmentGroupLabelInput` via: +// +// GuestPoliciesAssignmentGroupLabelArgs{...} +type GuestPoliciesAssignmentGroupLabelInput interface { + pulumi.Input + + ToGuestPoliciesAssignmentGroupLabelOutput() GuestPoliciesAssignmentGroupLabelOutput + ToGuestPoliciesAssignmentGroupLabelOutputWithContext(context.Context) GuestPoliciesAssignmentGroupLabelOutput +} + +type GuestPoliciesAssignmentGroupLabelArgs struct { + // Google Compute Engine instance labels that must be present for an instance to be included in this assignment group. + Labels pulumi.StringMapInput `pulumi:"labels"` +} + +func (GuestPoliciesAssignmentGroupLabelArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GuestPoliciesAssignmentGroupLabel)(nil)).Elem() +} + +func (i GuestPoliciesAssignmentGroupLabelArgs) ToGuestPoliciesAssignmentGroupLabelOutput() GuestPoliciesAssignmentGroupLabelOutput { + return i.ToGuestPoliciesAssignmentGroupLabelOutputWithContext(context.Background()) +} + +func (i GuestPoliciesAssignmentGroupLabelArgs) ToGuestPoliciesAssignmentGroupLabelOutputWithContext(ctx context.Context) GuestPoliciesAssignmentGroupLabelOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuestPoliciesAssignmentGroupLabelOutput) +} + +// GuestPoliciesAssignmentGroupLabelArrayInput is an input type that accepts GuestPoliciesAssignmentGroupLabelArray and GuestPoliciesAssignmentGroupLabelArrayOutput values. +// You can construct a concrete instance of `GuestPoliciesAssignmentGroupLabelArrayInput` via: +// +// GuestPoliciesAssignmentGroupLabelArray{ GuestPoliciesAssignmentGroupLabelArgs{...} } +type GuestPoliciesAssignmentGroupLabelArrayInput interface { + pulumi.Input + + ToGuestPoliciesAssignmentGroupLabelArrayOutput() GuestPoliciesAssignmentGroupLabelArrayOutput + ToGuestPoliciesAssignmentGroupLabelArrayOutputWithContext(context.Context) GuestPoliciesAssignmentGroupLabelArrayOutput +} + +type GuestPoliciesAssignmentGroupLabelArray []GuestPoliciesAssignmentGroupLabelInput + +func (GuestPoliciesAssignmentGroupLabelArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GuestPoliciesAssignmentGroupLabel)(nil)).Elem() +} + +func (i GuestPoliciesAssignmentGroupLabelArray) ToGuestPoliciesAssignmentGroupLabelArrayOutput() GuestPoliciesAssignmentGroupLabelArrayOutput { + return i.ToGuestPoliciesAssignmentGroupLabelArrayOutputWithContext(context.Background()) +} + +func (i GuestPoliciesAssignmentGroupLabelArray) ToGuestPoliciesAssignmentGroupLabelArrayOutputWithContext(ctx context.Context) GuestPoliciesAssignmentGroupLabelArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuestPoliciesAssignmentGroupLabelArrayOutput) +} + +type GuestPoliciesAssignmentGroupLabelOutput struct{ *pulumi.OutputState } + +func (GuestPoliciesAssignmentGroupLabelOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GuestPoliciesAssignmentGroupLabel)(nil)).Elem() +} + +func (o GuestPoliciesAssignmentGroupLabelOutput) ToGuestPoliciesAssignmentGroupLabelOutput() GuestPoliciesAssignmentGroupLabelOutput { + return o +} + +func (o GuestPoliciesAssignmentGroupLabelOutput) ToGuestPoliciesAssignmentGroupLabelOutputWithContext(ctx context.Context) GuestPoliciesAssignmentGroupLabelOutput { + return o +} + +// Google Compute Engine instance labels that must be present for an instance to be included in this assignment group. +func (o GuestPoliciesAssignmentGroupLabelOutput) Labels() pulumi.StringMapOutput { + return o.ApplyT(func(v GuestPoliciesAssignmentGroupLabel) map[string]string { return v.Labels }).(pulumi.StringMapOutput) +} + +type GuestPoliciesAssignmentGroupLabelArrayOutput struct{ *pulumi.OutputState } + +func (GuestPoliciesAssignmentGroupLabelArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GuestPoliciesAssignmentGroupLabel)(nil)).Elem() +} + +func (o GuestPoliciesAssignmentGroupLabelArrayOutput) ToGuestPoliciesAssignmentGroupLabelArrayOutput() GuestPoliciesAssignmentGroupLabelArrayOutput { + return o +} + +func (o GuestPoliciesAssignmentGroupLabelArrayOutput) ToGuestPoliciesAssignmentGroupLabelArrayOutputWithContext(ctx context.Context) GuestPoliciesAssignmentGroupLabelArrayOutput { + return o +} + +func (o GuestPoliciesAssignmentGroupLabelArrayOutput) Index(i pulumi.IntInput) GuestPoliciesAssignmentGroupLabelOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GuestPoliciesAssignmentGroupLabel { + return vs[0].([]GuestPoliciesAssignmentGroupLabel)[vs[1].(int)] + }).(GuestPoliciesAssignmentGroupLabelOutput) +} + +type GuestPoliciesAssignmentOsType struct { + // Targets VM instances with OS Inventory enabled and having the following OS architecture. + OsArchitecture *string `pulumi:"osArchitecture"` + // Targets VM instances with OS Inventory enabled and having the following OS short name, for example "debian" or "windows". + OsShortName *string `pulumi:"osShortName"` + // Targets VM instances with OS Inventory enabled and having the following following OS version. + OsVersion *string `pulumi:"osVersion"` +} + +// GuestPoliciesAssignmentOsTypeInput is an input type that accepts GuestPoliciesAssignmentOsTypeArgs and GuestPoliciesAssignmentOsTypeOutput values. +// You can construct a concrete instance of `GuestPoliciesAssignmentOsTypeInput` via: +// +// GuestPoliciesAssignmentOsTypeArgs{...} +type GuestPoliciesAssignmentOsTypeInput interface { + pulumi.Input + + ToGuestPoliciesAssignmentOsTypeOutput() GuestPoliciesAssignmentOsTypeOutput + ToGuestPoliciesAssignmentOsTypeOutputWithContext(context.Context) GuestPoliciesAssignmentOsTypeOutput +} + +type GuestPoliciesAssignmentOsTypeArgs struct { + // Targets VM instances with OS Inventory enabled and having the following OS architecture. + OsArchitecture pulumi.StringPtrInput `pulumi:"osArchitecture"` + // Targets VM instances with OS Inventory enabled and having the following OS short name, for example "debian" or "windows". + OsShortName pulumi.StringPtrInput `pulumi:"osShortName"` + // Targets VM instances with OS Inventory enabled and having the following following OS version. + OsVersion pulumi.StringPtrInput `pulumi:"osVersion"` +} + +func (GuestPoliciesAssignmentOsTypeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GuestPoliciesAssignmentOsType)(nil)).Elem() +} + +func (i GuestPoliciesAssignmentOsTypeArgs) ToGuestPoliciesAssignmentOsTypeOutput() GuestPoliciesAssignmentOsTypeOutput { + return i.ToGuestPoliciesAssignmentOsTypeOutputWithContext(context.Background()) +} + +func (i GuestPoliciesAssignmentOsTypeArgs) ToGuestPoliciesAssignmentOsTypeOutputWithContext(ctx context.Context) GuestPoliciesAssignmentOsTypeOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuestPoliciesAssignmentOsTypeOutput) +} + +// GuestPoliciesAssignmentOsTypeArrayInput is an input type that accepts GuestPoliciesAssignmentOsTypeArray and GuestPoliciesAssignmentOsTypeArrayOutput values. +// You can construct a concrete instance of `GuestPoliciesAssignmentOsTypeArrayInput` via: +// +// GuestPoliciesAssignmentOsTypeArray{ GuestPoliciesAssignmentOsTypeArgs{...} } +type GuestPoliciesAssignmentOsTypeArrayInput interface { + pulumi.Input + + ToGuestPoliciesAssignmentOsTypeArrayOutput() GuestPoliciesAssignmentOsTypeArrayOutput + ToGuestPoliciesAssignmentOsTypeArrayOutputWithContext(context.Context) GuestPoliciesAssignmentOsTypeArrayOutput +} + +type GuestPoliciesAssignmentOsTypeArray []GuestPoliciesAssignmentOsTypeInput + +func (GuestPoliciesAssignmentOsTypeArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GuestPoliciesAssignmentOsType)(nil)).Elem() +} + +func (i GuestPoliciesAssignmentOsTypeArray) ToGuestPoliciesAssignmentOsTypeArrayOutput() GuestPoliciesAssignmentOsTypeArrayOutput { + return i.ToGuestPoliciesAssignmentOsTypeArrayOutputWithContext(context.Background()) +} + +func (i GuestPoliciesAssignmentOsTypeArray) ToGuestPoliciesAssignmentOsTypeArrayOutputWithContext(ctx context.Context) GuestPoliciesAssignmentOsTypeArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuestPoliciesAssignmentOsTypeArrayOutput) +} + +type GuestPoliciesAssignmentOsTypeOutput struct{ *pulumi.OutputState } + +func (GuestPoliciesAssignmentOsTypeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GuestPoliciesAssignmentOsType)(nil)).Elem() +} + +func (o GuestPoliciesAssignmentOsTypeOutput) ToGuestPoliciesAssignmentOsTypeOutput() GuestPoliciesAssignmentOsTypeOutput { + return o +} + +func (o GuestPoliciesAssignmentOsTypeOutput) ToGuestPoliciesAssignmentOsTypeOutputWithContext(ctx context.Context) GuestPoliciesAssignmentOsTypeOutput { + return o +} + +// Targets VM instances with OS Inventory enabled and having the following OS architecture. +func (o GuestPoliciesAssignmentOsTypeOutput) OsArchitecture() pulumi.StringPtrOutput { + return o.ApplyT(func(v GuestPoliciesAssignmentOsType) *string { return v.OsArchitecture }).(pulumi.StringPtrOutput) +} + +// Targets VM instances with OS Inventory enabled and having the following OS short name, for example "debian" or "windows". +func (o GuestPoliciesAssignmentOsTypeOutput) OsShortName() pulumi.StringPtrOutput { + return o.ApplyT(func(v GuestPoliciesAssignmentOsType) *string { return v.OsShortName }).(pulumi.StringPtrOutput) +} + +// Targets VM instances with OS Inventory enabled and having the following following OS version. +func (o GuestPoliciesAssignmentOsTypeOutput) OsVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v GuestPoliciesAssignmentOsType) *string { return v.OsVersion }).(pulumi.StringPtrOutput) +} + +type GuestPoliciesAssignmentOsTypeArrayOutput struct{ *pulumi.OutputState } + +func (GuestPoliciesAssignmentOsTypeArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GuestPoliciesAssignmentOsType)(nil)).Elem() +} + +func (o GuestPoliciesAssignmentOsTypeArrayOutput) ToGuestPoliciesAssignmentOsTypeArrayOutput() GuestPoliciesAssignmentOsTypeArrayOutput { + return o +} + +func (o GuestPoliciesAssignmentOsTypeArrayOutput) ToGuestPoliciesAssignmentOsTypeArrayOutputWithContext(ctx context.Context) GuestPoliciesAssignmentOsTypeArrayOutput { + return o +} + +func (o GuestPoliciesAssignmentOsTypeArrayOutput) Index(i pulumi.IntInput) GuestPoliciesAssignmentOsTypeOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GuestPoliciesAssignmentOsType { + return vs[0].([]GuestPoliciesAssignmentOsType)[vs[1].(int)] + }).(GuestPoliciesAssignmentOsTypeOutput) +} + +type GuestPoliciesPackage struct { + // Default is INSTALLED. The desired state the agent should maintain for this recipe. + // INSTALLED: The software recipe is installed on the instance but won't be updated to new versions. + // INSTALLED_KEEP_UPDATED: The software recipe is installed on the instance. The recipe is updated to a higher version, + // if a higher version of the recipe is assigned to this instance. + // REMOVE: Remove is unsupported for software recipes and attempts to create or update a recipe to the REMOVE state is rejected. + DesiredState *string `pulumi:"desiredState"` + // Type of package manager that can be used to install this package. If a system does not have the package manager, + // the package is not installed or removed no error message is returned. By default, or if you specify ANY, + // the agent attempts to install and remove this package using the default package manager. + // This is useful when creating a policy that applies to different types of systems. + // The default behavior is ANY. + Manager *string `pulumi:"manager"` + // Unique identifier for the recipe. Only one recipe with a given name is installed on an instance. + // Names are also used to identify resources which helps to determine whether guest policies have conflicts. + // This means that requests to create multiple recipes with the same name and version are rejected since they + // could potentially have conflicting assignments. + Name string `pulumi:"name"` +} + +// GuestPoliciesPackageInput is an input type that accepts GuestPoliciesPackageArgs and GuestPoliciesPackageOutput values. +// You can construct a concrete instance of `GuestPoliciesPackageInput` via: +// +// GuestPoliciesPackageArgs{...} +type GuestPoliciesPackageInput interface { + pulumi.Input + + ToGuestPoliciesPackageOutput() GuestPoliciesPackageOutput + ToGuestPoliciesPackageOutputWithContext(context.Context) GuestPoliciesPackageOutput +} + +type GuestPoliciesPackageArgs struct { + // Default is INSTALLED. The desired state the agent should maintain for this recipe. + // INSTALLED: The software recipe is installed on the instance but won't be updated to new versions. + // INSTALLED_KEEP_UPDATED: The software recipe is installed on the instance. The recipe is updated to a higher version, + // if a higher version of the recipe is assigned to this instance. + // REMOVE: Remove is unsupported for software recipes and attempts to create or update a recipe to the REMOVE state is rejected. + DesiredState pulumi.StringPtrInput `pulumi:"desiredState"` + // Type of package manager that can be used to install this package. If a system does not have the package manager, + // the package is not installed or removed no error message is returned. By default, or if you specify ANY, + // the agent attempts to install and remove this package using the default package manager. + // This is useful when creating a policy that applies to different types of systems. + // The default behavior is ANY. + Manager pulumi.StringPtrInput `pulumi:"manager"` + // Unique identifier for the recipe. Only one recipe with a given name is installed on an instance. + // Names are also used to identify resources which helps to determine whether guest policies have conflicts. + // This means that requests to create multiple recipes with the same name and version are rejected since they + // could potentially have conflicting assignments. + Name pulumi.StringInput `pulumi:"name"` +} + +func (GuestPoliciesPackageArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GuestPoliciesPackage)(nil)).Elem() +} + +func (i GuestPoliciesPackageArgs) ToGuestPoliciesPackageOutput() GuestPoliciesPackageOutput { + return i.ToGuestPoliciesPackageOutputWithContext(context.Background()) +} + +func (i GuestPoliciesPackageArgs) ToGuestPoliciesPackageOutputWithContext(ctx context.Context) GuestPoliciesPackageOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuestPoliciesPackageOutput) +} + +// GuestPoliciesPackageArrayInput is an input type that accepts GuestPoliciesPackageArray and GuestPoliciesPackageArrayOutput values. +// You can construct a concrete instance of `GuestPoliciesPackageArrayInput` via: +// +// GuestPoliciesPackageArray{ GuestPoliciesPackageArgs{...} } +type GuestPoliciesPackageArrayInput interface { + pulumi.Input + + ToGuestPoliciesPackageArrayOutput() GuestPoliciesPackageArrayOutput + ToGuestPoliciesPackageArrayOutputWithContext(context.Context) GuestPoliciesPackageArrayOutput +} + +type GuestPoliciesPackageArray []GuestPoliciesPackageInput + +func (GuestPoliciesPackageArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GuestPoliciesPackage)(nil)).Elem() +} + +func (i GuestPoliciesPackageArray) ToGuestPoliciesPackageArrayOutput() GuestPoliciesPackageArrayOutput { + return i.ToGuestPoliciesPackageArrayOutputWithContext(context.Background()) +} + +func (i GuestPoliciesPackageArray) ToGuestPoliciesPackageArrayOutputWithContext(ctx context.Context) GuestPoliciesPackageArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuestPoliciesPackageArrayOutput) +} + +type GuestPoliciesPackageOutput struct{ *pulumi.OutputState } + +func (GuestPoliciesPackageOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GuestPoliciesPackage)(nil)).Elem() +} + +func (o GuestPoliciesPackageOutput) ToGuestPoliciesPackageOutput() GuestPoliciesPackageOutput { + return o +} + +func (o GuestPoliciesPackageOutput) ToGuestPoliciesPackageOutputWithContext(ctx context.Context) GuestPoliciesPackageOutput { + return o +} + +// Default is INSTALLED. The desired state the agent should maintain for this recipe. +// INSTALLED: The software recipe is installed on the instance but won't be updated to new versions. +// INSTALLED_KEEP_UPDATED: The software recipe is installed on the instance. The recipe is updated to a higher version, +// if a higher version of the recipe is assigned to this instance. +// REMOVE: Remove is unsupported for software recipes and attempts to create or update a recipe to the REMOVE state is rejected. +func (o GuestPoliciesPackageOutput) DesiredState() pulumi.StringPtrOutput { + return o.ApplyT(func(v GuestPoliciesPackage) *string { return v.DesiredState }).(pulumi.StringPtrOutput) +} + +// Type of package manager that can be used to install this package. If a system does not have the package manager, +// the package is not installed or removed no error message is returned. By default, or if you specify ANY, +// the agent attempts to install and remove this package using the default package manager. +// This is useful when creating a policy that applies to different types of systems. +// The default behavior is ANY. +func (o GuestPoliciesPackageOutput) Manager() pulumi.StringPtrOutput { + return o.ApplyT(func(v GuestPoliciesPackage) *string { return v.Manager }).(pulumi.StringPtrOutput) +} + +// Unique identifier for the recipe. Only one recipe with a given name is installed on an instance. +// Names are also used to identify resources which helps to determine whether guest policies have conflicts. +// This means that requests to create multiple recipes with the same name and version are rejected since they +// could potentially have conflicting assignments. +func (o GuestPoliciesPackageOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v GuestPoliciesPackage) string { return v.Name }).(pulumi.StringOutput) +} + +type GuestPoliciesPackageArrayOutput struct{ *pulumi.OutputState } + +func (GuestPoliciesPackageArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GuestPoliciesPackage)(nil)).Elem() +} + +func (o GuestPoliciesPackageArrayOutput) ToGuestPoliciesPackageArrayOutput() GuestPoliciesPackageArrayOutput { + return o +} + +func (o GuestPoliciesPackageArrayOutput) ToGuestPoliciesPackageArrayOutputWithContext(ctx context.Context) GuestPoliciesPackageArrayOutput { + return o +} + +func (o GuestPoliciesPackageArrayOutput) Index(i pulumi.IntInput) GuestPoliciesPackageOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GuestPoliciesPackage { + return vs[0].([]GuestPoliciesPackage)[vs[1].(int)] + }).(GuestPoliciesPackageOutput) +} + +type GuestPoliciesPackageRepository struct { + // An Apt Repository. Structure is documented below. + Apt *GuestPoliciesPackageRepositoryApt `pulumi:"apt"` + // A Goo Repository. Structure is documented below. + Goo *GuestPoliciesPackageRepositoryGoo `pulumi:"goo"` + // A Yum Repository. Structure is documented below. + Yum *GuestPoliciesPackageRepositoryYum `pulumi:"yum"` + // A Zypper Repository. Structure is documented below. + Zypper *GuestPoliciesPackageRepositoryZypper `pulumi:"zypper"` +} + +// GuestPoliciesPackageRepositoryInput is an input type that accepts GuestPoliciesPackageRepositoryArgs and GuestPoliciesPackageRepositoryOutput values. +// You can construct a concrete instance of `GuestPoliciesPackageRepositoryInput` via: +// +// GuestPoliciesPackageRepositoryArgs{...} +type GuestPoliciesPackageRepositoryInput interface { + pulumi.Input + + ToGuestPoliciesPackageRepositoryOutput() GuestPoliciesPackageRepositoryOutput + ToGuestPoliciesPackageRepositoryOutputWithContext(context.Context) GuestPoliciesPackageRepositoryOutput +} + +type GuestPoliciesPackageRepositoryArgs struct { + // An Apt Repository. Structure is documented below. + Apt GuestPoliciesPackageRepositoryAptPtrInput `pulumi:"apt"` + // A Goo Repository. Structure is documented below. + Goo GuestPoliciesPackageRepositoryGooPtrInput `pulumi:"goo"` + // A Yum Repository. Structure is documented below. + Yum GuestPoliciesPackageRepositoryYumPtrInput `pulumi:"yum"` + // A Zypper Repository. Structure is documented below. + Zypper GuestPoliciesPackageRepositoryZypperPtrInput `pulumi:"zypper"` +} + +func (GuestPoliciesPackageRepositoryArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GuestPoliciesPackageRepository)(nil)).Elem() +} + +func (i GuestPoliciesPackageRepositoryArgs) ToGuestPoliciesPackageRepositoryOutput() GuestPoliciesPackageRepositoryOutput { + return i.ToGuestPoliciesPackageRepositoryOutputWithContext(context.Background()) +} + +func (i GuestPoliciesPackageRepositoryArgs) ToGuestPoliciesPackageRepositoryOutputWithContext(ctx context.Context) GuestPoliciesPackageRepositoryOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuestPoliciesPackageRepositoryOutput) +} + +// GuestPoliciesPackageRepositoryArrayInput is an input type that accepts GuestPoliciesPackageRepositoryArray and GuestPoliciesPackageRepositoryArrayOutput values. +// You can construct a concrete instance of `GuestPoliciesPackageRepositoryArrayInput` via: +// +// GuestPoliciesPackageRepositoryArray{ GuestPoliciesPackageRepositoryArgs{...} } +type GuestPoliciesPackageRepositoryArrayInput interface { + pulumi.Input + + ToGuestPoliciesPackageRepositoryArrayOutput() GuestPoliciesPackageRepositoryArrayOutput + ToGuestPoliciesPackageRepositoryArrayOutputWithContext(context.Context) GuestPoliciesPackageRepositoryArrayOutput +} + +type GuestPoliciesPackageRepositoryArray []GuestPoliciesPackageRepositoryInput + +func (GuestPoliciesPackageRepositoryArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GuestPoliciesPackageRepository)(nil)).Elem() +} + +func (i GuestPoliciesPackageRepositoryArray) ToGuestPoliciesPackageRepositoryArrayOutput() GuestPoliciesPackageRepositoryArrayOutput { + return i.ToGuestPoliciesPackageRepositoryArrayOutputWithContext(context.Background()) +} + +func (i GuestPoliciesPackageRepositoryArray) ToGuestPoliciesPackageRepositoryArrayOutputWithContext(ctx context.Context) GuestPoliciesPackageRepositoryArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuestPoliciesPackageRepositoryArrayOutput) +} + +type GuestPoliciesPackageRepositoryOutput struct{ *pulumi.OutputState } + +func (GuestPoliciesPackageRepositoryOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GuestPoliciesPackageRepository)(nil)).Elem() +} + +func (o GuestPoliciesPackageRepositoryOutput) ToGuestPoliciesPackageRepositoryOutput() GuestPoliciesPackageRepositoryOutput { + return o +} + +func (o GuestPoliciesPackageRepositoryOutput) ToGuestPoliciesPackageRepositoryOutputWithContext(ctx context.Context) GuestPoliciesPackageRepositoryOutput { + return o +} + +// An Apt Repository. Structure is documented below. +func (o GuestPoliciesPackageRepositoryOutput) Apt() GuestPoliciesPackageRepositoryAptPtrOutput { + return o.ApplyT(func(v GuestPoliciesPackageRepository) *GuestPoliciesPackageRepositoryApt { return v.Apt }).(GuestPoliciesPackageRepositoryAptPtrOutput) +} + +// A Goo Repository. Structure is documented below. +func (o GuestPoliciesPackageRepositoryOutput) Goo() GuestPoliciesPackageRepositoryGooPtrOutput { + return o.ApplyT(func(v GuestPoliciesPackageRepository) *GuestPoliciesPackageRepositoryGoo { return v.Goo }).(GuestPoliciesPackageRepositoryGooPtrOutput) +} + +// A Yum Repository. Structure is documented below. +func (o GuestPoliciesPackageRepositoryOutput) Yum() GuestPoliciesPackageRepositoryYumPtrOutput { + return o.ApplyT(func(v GuestPoliciesPackageRepository) *GuestPoliciesPackageRepositoryYum { return v.Yum }).(GuestPoliciesPackageRepositoryYumPtrOutput) +} + +// A Zypper Repository. Structure is documented below. +func (o GuestPoliciesPackageRepositoryOutput) Zypper() GuestPoliciesPackageRepositoryZypperPtrOutput { + return o.ApplyT(func(v GuestPoliciesPackageRepository) *GuestPoliciesPackageRepositoryZypper { return v.Zypper }).(GuestPoliciesPackageRepositoryZypperPtrOutput) +} + +type GuestPoliciesPackageRepositoryArrayOutput struct{ *pulumi.OutputState } + +func (GuestPoliciesPackageRepositoryArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GuestPoliciesPackageRepository)(nil)).Elem() +} + +func (o GuestPoliciesPackageRepositoryArrayOutput) ToGuestPoliciesPackageRepositoryArrayOutput() GuestPoliciesPackageRepositoryArrayOutput { + return o +} + +func (o GuestPoliciesPackageRepositoryArrayOutput) ToGuestPoliciesPackageRepositoryArrayOutputWithContext(ctx context.Context) GuestPoliciesPackageRepositoryArrayOutput { + return o +} + +func (o GuestPoliciesPackageRepositoryArrayOutput) Index(i pulumi.IntInput) GuestPoliciesPackageRepositoryOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GuestPoliciesPackageRepository { + return vs[0].([]GuestPoliciesPackageRepository)[vs[1].(int)] + }).(GuestPoliciesPackageRepositoryOutput) +} + +type GuestPoliciesPackageRepositoryApt struct { + // Type of archive files in this repository. The default behavior is DEB. + ArchiveType *string `pulumi:"archiveType"` + // List of components for this repository. Must contain at least one item. + Components []string `pulumi:"components"` + // Distribution of this repository. + Distribution string `pulumi:"distribution"` + // URI of the key file for this repository. The agent maintains a keyring at + // /etc/apt/trusted.gpg.d/osconfig_agent_managed.gpg containing all the keys in any applied guest policy. + GpgKey *string `pulumi:"gpgKey"` + // URI from which to fetch the object. It should contain both the protocol and path following the format {protocol}://{location}. + Uri string `pulumi:"uri"` +} + +// GuestPoliciesPackageRepositoryAptInput is an input type that accepts GuestPoliciesPackageRepositoryAptArgs and GuestPoliciesPackageRepositoryAptOutput values. +// You can construct a concrete instance of `GuestPoliciesPackageRepositoryAptInput` via: +// +// GuestPoliciesPackageRepositoryAptArgs{...} +type GuestPoliciesPackageRepositoryAptInput interface { + pulumi.Input + + ToGuestPoliciesPackageRepositoryAptOutput() GuestPoliciesPackageRepositoryAptOutput + ToGuestPoliciesPackageRepositoryAptOutputWithContext(context.Context) GuestPoliciesPackageRepositoryAptOutput +} + +type GuestPoliciesPackageRepositoryAptArgs struct { + // Type of archive files in this repository. The default behavior is DEB. + ArchiveType pulumi.StringPtrInput `pulumi:"archiveType"` + // List of components for this repository. Must contain at least one item. + Components pulumi.StringArrayInput `pulumi:"components"` + // Distribution of this repository. + Distribution pulumi.StringInput `pulumi:"distribution"` + // URI of the key file for this repository. The agent maintains a keyring at + // /etc/apt/trusted.gpg.d/osconfig_agent_managed.gpg containing all the keys in any applied guest policy. + GpgKey pulumi.StringPtrInput `pulumi:"gpgKey"` + // URI from which to fetch the object. It should contain both the protocol and path following the format {protocol}://{location}. + Uri pulumi.StringInput `pulumi:"uri"` +} + +func (GuestPoliciesPackageRepositoryAptArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GuestPoliciesPackageRepositoryApt)(nil)).Elem() +} + +func (i GuestPoliciesPackageRepositoryAptArgs) ToGuestPoliciesPackageRepositoryAptOutput() GuestPoliciesPackageRepositoryAptOutput { + return i.ToGuestPoliciesPackageRepositoryAptOutputWithContext(context.Background()) +} + +func (i GuestPoliciesPackageRepositoryAptArgs) ToGuestPoliciesPackageRepositoryAptOutputWithContext(ctx context.Context) GuestPoliciesPackageRepositoryAptOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuestPoliciesPackageRepositoryAptOutput) +} + +func (i GuestPoliciesPackageRepositoryAptArgs) ToGuestPoliciesPackageRepositoryAptPtrOutput() GuestPoliciesPackageRepositoryAptPtrOutput { + return i.ToGuestPoliciesPackageRepositoryAptPtrOutputWithContext(context.Background()) +} + +func (i GuestPoliciesPackageRepositoryAptArgs) ToGuestPoliciesPackageRepositoryAptPtrOutputWithContext(ctx context.Context) GuestPoliciesPackageRepositoryAptPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuestPoliciesPackageRepositoryAptOutput).ToGuestPoliciesPackageRepositoryAptPtrOutputWithContext(ctx) +} + +// GuestPoliciesPackageRepositoryAptPtrInput is an input type that accepts GuestPoliciesPackageRepositoryAptArgs, GuestPoliciesPackageRepositoryAptPtr and GuestPoliciesPackageRepositoryAptPtrOutput values. +// You can construct a concrete instance of `GuestPoliciesPackageRepositoryAptPtrInput` via: +// +// GuestPoliciesPackageRepositoryAptArgs{...} +// +// or: +// +// nil +type GuestPoliciesPackageRepositoryAptPtrInput interface { + pulumi.Input + + ToGuestPoliciesPackageRepositoryAptPtrOutput() GuestPoliciesPackageRepositoryAptPtrOutput + ToGuestPoliciesPackageRepositoryAptPtrOutputWithContext(context.Context) GuestPoliciesPackageRepositoryAptPtrOutput +} + +type guestPoliciesPackageRepositoryAptPtrType GuestPoliciesPackageRepositoryAptArgs + +func GuestPoliciesPackageRepositoryAptPtr(v *GuestPoliciesPackageRepositoryAptArgs) GuestPoliciesPackageRepositoryAptPtrInput { + return (*guestPoliciesPackageRepositoryAptPtrType)(v) +} + +func (*guestPoliciesPackageRepositoryAptPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**GuestPoliciesPackageRepositoryApt)(nil)).Elem() +} + +func (i *guestPoliciesPackageRepositoryAptPtrType) ToGuestPoliciesPackageRepositoryAptPtrOutput() GuestPoliciesPackageRepositoryAptPtrOutput { + return i.ToGuestPoliciesPackageRepositoryAptPtrOutputWithContext(context.Background()) +} + +func (i *guestPoliciesPackageRepositoryAptPtrType) ToGuestPoliciesPackageRepositoryAptPtrOutputWithContext(ctx context.Context) GuestPoliciesPackageRepositoryAptPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuestPoliciesPackageRepositoryAptPtrOutput) +} + +type GuestPoliciesPackageRepositoryAptOutput struct{ *pulumi.OutputState } + +func (GuestPoliciesPackageRepositoryAptOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GuestPoliciesPackageRepositoryApt)(nil)).Elem() +} + +func (o GuestPoliciesPackageRepositoryAptOutput) ToGuestPoliciesPackageRepositoryAptOutput() GuestPoliciesPackageRepositoryAptOutput { + return o +} + +func (o GuestPoliciesPackageRepositoryAptOutput) ToGuestPoliciesPackageRepositoryAptOutputWithContext(ctx context.Context) GuestPoliciesPackageRepositoryAptOutput { + return o +} + +func (o GuestPoliciesPackageRepositoryAptOutput) ToGuestPoliciesPackageRepositoryAptPtrOutput() GuestPoliciesPackageRepositoryAptPtrOutput { + return o.ToGuestPoliciesPackageRepositoryAptPtrOutputWithContext(context.Background()) +} + +func (o GuestPoliciesPackageRepositoryAptOutput) ToGuestPoliciesPackageRepositoryAptPtrOutputWithContext(ctx context.Context) GuestPoliciesPackageRepositoryAptPtrOutput { + return o.ApplyT(func(v GuestPoliciesPackageRepositoryApt) *GuestPoliciesPackageRepositoryApt { + return &v + }).(GuestPoliciesPackageRepositoryAptPtrOutput) +} + +// Type of archive files in this repository. The default behavior is DEB. +func (o GuestPoliciesPackageRepositoryAptOutput) ArchiveType() pulumi.StringPtrOutput { + return o.ApplyT(func(v GuestPoliciesPackageRepositoryApt) *string { return v.ArchiveType }).(pulumi.StringPtrOutput) +} + +// List of components for this repository. Must contain at least one item. +func (o GuestPoliciesPackageRepositoryAptOutput) Components() pulumi.StringArrayOutput { + return o.ApplyT(func(v GuestPoliciesPackageRepositoryApt) []string { return v.Components }).(pulumi.StringArrayOutput) +} + +// Distribution of this repository. +func (o GuestPoliciesPackageRepositoryAptOutput) Distribution() pulumi.StringOutput { + return o.ApplyT(func(v GuestPoliciesPackageRepositoryApt) string { return v.Distribution }).(pulumi.StringOutput) +} + +// URI of the key file for this repository. The agent maintains a keyring at +// /etc/apt/trusted.gpg.d/osconfig_agent_managed.gpg containing all the keys in any applied guest policy. +func (o GuestPoliciesPackageRepositoryAptOutput) GpgKey() pulumi.StringPtrOutput { + return o.ApplyT(func(v GuestPoliciesPackageRepositoryApt) *string { return v.GpgKey }).(pulumi.StringPtrOutput) +} + +// URI from which to fetch the object. It should contain both the protocol and path following the format {protocol}://{location}. +func (o GuestPoliciesPackageRepositoryAptOutput) Uri() pulumi.StringOutput { + return o.ApplyT(func(v GuestPoliciesPackageRepositoryApt) string { return v.Uri }).(pulumi.StringOutput) +} + +type GuestPoliciesPackageRepositoryAptPtrOutput struct{ *pulumi.OutputState } + +func (GuestPoliciesPackageRepositoryAptPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**GuestPoliciesPackageRepositoryApt)(nil)).Elem() +} + +func (o GuestPoliciesPackageRepositoryAptPtrOutput) ToGuestPoliciesPackageRepositoryAptPtrOutput() GuestPoliciesPackageRepositoryAptPtrOutput { + return o +} + +func (o GuestPoliciesPackageRepositoryAptPtrOutput) ToGuestPoliciesPackageRepositoryAptPtrOutputWithContext(ctx context.Context) GuestPoliciesPackageRepositoryAptPtrOutput { + return o +} + +func (o GuestPoliciesPackageRepositoryAptPtrOutput) Elem() GuestPoliciesPackageRepositoryAptOutput { + return o.ApplyT(func(v *GuestPoliciesPackageRepositoryApt) GuestPoliciesPackageRepositoryApt { return *v }).(GuestPoliciesPackageRepositoryAptOutput) +} + +// Type of archive files in this repository. The default behavior is DEB. +func (o GuestPoliciesPackageRepositoryAptPtrOutput) ArchiveType() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GuestPoliciesPackageRepositoryApt) *string { + if v == nil { + return nil + } + return v.ArchiveType + }).(pulumi.StringPtrOutput) +} + +// List of components for this repository. Must contain at least one item. +func (o GuestPoliciesPackageRepositoryAptPtrOutput) Components() pulumi.StringArrayOutput { + return o.ApplyT(func(v *GuestPoliciesPackageRepositoryApt) []string { + if v == nil { + return nil + } + return v.Components + }).(pulumi.StringArrayOutput) +} + +// Distribution of this repository. +func (o GuestPoliciesPackageRepositoryAptPtrOutput) Distribution() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GuestPoliciesPackageRepositoryApt) *string { + if v == nil { + return nil + } + return &v.Distribution + }).(pulumi.StringPtrOutput) +} + +// URI of the key file for this repository. The agent maintains a keyring at +// /etc/apt/trusted.gpg.d/osconfig_agent_managed.gpg containing all the keys in any applied guest policy. +func (o GuestPoliciesPackageRepositoryAptPtrOutput) GpgKey() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GuestPoliciesPackageRepositoryApt) *string { + if v == nil { + return nil + } + return v.GpgKey + }).(pulumi.StringPtrOutput) +} + +// URI from which to fetch the object. It should contain both the protocol and path following the format {protocol}://{location}. +func (o GuestPoliciesPackageRepositoryAptPtrOutput) Uri() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GuestPoliciesPackageRepositoryApt) *string { + if v == nil { + return nil + } + return &v.Uri + }).(pulumi.StringPtrOutput) +} + +type GuestPoliciesPackageRepositoryGoo struct { + // Unique identifier for the recipe. Only one recipe with a given name is installed on an instance. + // Names are also used to identify resources which helps to determine whether guest policies have conflicts. + // This means that requests to create multiple recipes with the same name and version are rejected since they + // could potentially have conflicting assignments. + Name string `pulumi:"name"` + // The url of the repository. + Url string `pulumi:"url"` +} + +// GuestPoliciesPackageRepositoryGooInput is an input type that accepts GuestPoliciesPackageRepositoryGooArgs and GuestPoliciesPackageRepositoryGooOutput values. +// You can construct a concrete instance of `GuestPoliciesPackageRepositoryGooInput` via: +// +// GuestPoliciesPackageRepositoryGooArgs{...} +type GuestPoliciesPackageRepositoryGooInput interface { + pulumi.Input + + ToGuestPoliciesPackageRepositoryGooOutput() GuestPoliciesPackageRepositoryGooOutput + ToGuestPoliciesPackageRepositoryGooOutputWithContext(context.Context) GuestPoliciesPackageRepositoryGooOutput +} + +type GuestPoliciesPackageRepositoryGooArgs struct { + // Unique identifier for the recipe. Only one recipe with a given name is installed on an instance. + // Names are also used to identify resources which helps to determine whether guest policies have conflicts. + // This means that requests to create multiple recipes with the same name and version are rejected since they + // could potentially have conflicting assignments. + Name pulumi.StringInput `pulumi:"name"` + // The url of the repository. + Url pulumi.StringInput `pulumi:"url"` +} + +func (GuestPoliciesPackageRepositoryGooArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GuestPoliciesPackageRepositoryGoo)(nil)).Elem() +} + +func (i GuestPoliciesPackageRepositoryGooArgs) ToGuestPoliciesPackageRepositoryGooOutput() GuestPoliciesPackageRepositoryGooOutput { + return i.ToGuestPoliciesPackageRepositoryGooOutputWithContext(context.Background()) +} + +func (i GuestPoliciesPackageRepositoryGooArgs) ToGuestPoliciesPackageRepositoryGooOutputWithContext(ctx context.Context) GuestPoliciesPackageRepositoryGooOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuestPoliciesPackageRepositoryGooOutput) +} + +func (i GuestPoliciesPackageRepositoryGooArgs) ToGuestPoliciesPackageRepositoryGooPtrOutput() GuestPoliciesPackageRepositoryGooPtrOutput { + return i.ToGuestPoliciesPackageRepositoryGooPtrOutputWithContext(context.Background()) +} + +func (i GuestPoliciesPackageRepositoryGooArgs) ToGuestPoliciesPackageRepositoryGooPtrOutputWithContext(ctx context.Context) GuestPoliciesPackageRepositoryGooPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuestPoliciesPackageRepositoryGooOutput).ToGuestPoliciesPackageRepositoryGooPtrOutputWithContext(ctx) +} + +// GuestPoliciesPackageRepositoryGooPtrInput is an input type that accepts GuestPoliciesPackageRepositoryGooArgs, GuestPoliciesPackageRepositoryGooPtr and GuestPoliciesPackageRepositoryGooPtrOutput values. +// You can construct a concrete instance of `GuestPoliciesPackageRepositoryGooPtrInput` via: +// +// GuestPoliciesPackageRepositoryGooArgs{...} +// +// or: +// +// nil +type GuestPoliciesPackageRepositoryGooPtrInput interface { + pulumi.Input + + ToGuestPoliciesPackageRepositoryGooPtrOutput() GuestPoliciesPackageRepositoryGooPtrOutput + ToGuestPoliciesPackageRepositoryGooPtrOutputWithContext(context.Context) GuestPoliciesPackageRepositoryGooPtrOutput +} + +type guestPoliciesPackageRepositoryGooPtrType GuestPoliciesPackageRepositoryGooArgs + +func GuestPoliciesPackageRepositoryGooPtr(v *GuestPoliciesPackageRepositoryGooArgs) GuestPoliciesPackageRepositoryGooPtrInput { + return (*guestPoliciesPackageRepositoryGooPtrType)(v) +} + +func (*guestPoliciesPackageRepositoryGooPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**GuestPoliciesPackageRepositoryGoo)(nil)).Elem() +} + +func (i *guestPoliciesPackageRepositoryGooPtrType) ToGuestPoliciesPackageRepositoryGooPtrOutput() GuestPoliciesPackageRepositoryGooPtrOutput { + return i.ToGuestPoliciesPackageRepositoryGooPtrOutputWithContext(context.Background()) +} + +func (i *guestPoliciesPackageRepositoryGooPtrType) ToGuestPoliciesPackageRepositoryGooPtrOutputWithContext(ctx context.Context) GuestPoliciesPackageRepositoryGooPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuestPoliciesPackageRepositoryGooPtrOutput) +} + +type GuestPoliciesPackageRepositoryGooOutput struct{ *pulumi.OutputState } + +func (GuestPoliciesPackageRepositoryGooOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GuestPoliciesPackageRepositoryGoo)(nil)).Elem() +} + +func (o GuestPoliciesPackageRepositoryGooOutput) ToGuestPoliciesPackageRepositoryGooOutput() GuestPoliciesPackageRepositoryGooOutput { + return o +} + +func (o GuestPoliciesPackageRepositoryGooOutput) ToGuestPoliciesPackageRepositoryGooOutputWithContext(ctx context.Context) GuestPoliciesPackageRepositoryGooOutput { + return o +} + +func (o GuestPoliciesPackageRepositoryGooOutput) ToGuestPoliciesPackageRepositoryGooPtrOutput() GuestPoliciesPackageRepositoryGooPtrOutput { + return o.ToGuestPoliciesPackageRepositoryGooPtrOutputWithContext(context.Background()) +} + +func (o GuestPoliciesPackageRepositoryGooOutput) ToGuestPoliciesPackageRepositoryGooPtrOutputWithContext(ctx context.Context) GuestPoliciesPackageRepositoryGooPtrOutput { + return o.ApplyT(func(v GuestPoliciesPackageRepositoryGoo) *GuestPoliciesPackageRepositoryGoo { + return &v + }).(GuestPoliciesPackageRepositoryGooPtrOutput) +} + +// Unique identifier for the recipe. Only one recipe with a given name is installed on an instance. +// Names are also used to identify resources which helps to determine whether guest policies have conflicts. +// This means that requests to create multiple recipes with the same name and version are rejected since they +// could potentially have conflicting assignments. +func (o GuestPoliciesPackageRepositoryGooOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v GuestPoliciesPackageRepositoryGoo) string { return v.Name }).(pulumi.StringOutput) +} + +// The url of the repository. +func (o GuestPoliciesPackageRepositoryGooOutput) Url() pulumi.StringOutput { + return o.ApplyT(func(v GuestPoliciesPackageRepositoryGoo) string { return v.Url }).(pulumi.StringOutput) +} + +type GuestPoliciesPackageRepositoryGooPtrOutput struct{ *pulumi.OutputState } + +func (GuestPoliciesPackageRepositoryGooPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**GuestPoliciesPackageRepositoryGoo)(nil)).Elem() +} + +func (o GuestPoliciesPackageRepositoryGooPtrOutput) ToGuestPoliciesPackageRepositoryGooPtrOutput() GuestPoliciesPackageRepositoryGooPtrOutput { + return o +} + +func (o GuestPoliciesPackageRepositoryGooPtrOutput) ToGuestPoliciesPackageRepositoryGooPtrOutputWithContext(ctx context.Context) GuestPoliciesPackageRepositoryGooPtrOutput { + return o +} + +func (o GuestPoliciesPackageRepositoryGooPtrOutput) Elem() GuestPoliciesPackageRepositoryGooOutput { + return o.ApplyT(func(v *GuestPoliciesPackageRepositoryGoo) GuestPoliciesPackageRepositoryGoo { return *v }).(GuestPoliciesPackageRepositoryGooOutput) +} + +// Unique identifier for the recipe. Only one recipe with a given name is installed on an instance. +// Names are also used to identify resources which helps to determine whether guest policies have conflicts. +// This means that requests to create multiple recipes with the same name and version are rejected since they +// could potentially have conflicting assignments. +func (o GuestPoliciesPackageRepositoryGooPtrOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GuestPoliciesPackageRepositoryGoo) *string { + if v == nil { + return nil + } + return &v.Name + }).(pulumi.StringPtrOutput) +} + +// The url of the repository. +func (o GuestPoliciesPackageRepositoryGooPtrOutput) Url() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GuestPoliciesPackageRepositoryGoo) *string { + if v == nil { + return nil + } + return &v.Url + }).(pulumi.StringPtrOutput) +} + +type GuestPoliciesPackageRepositoryYum struct { + // The location of the repository directory. + BaseUrl string `pulumi:"baseUrl"` + // The display name of the repository. + DisplayName *string `pulumi:"displayName"` + // URIs of GPG keys. + GpgKeys []string `pulumi:"gpgKeys"` + // Id of the artifact, which the installation and update steps of this recipe can reference. + // Artifacts in a recipe cannot have the same id. + Id string `pulumi:"id"` +} + +// GuestPoliciesPackageRepositoryYumInput is an input type that accepts GuestPoliciesPackageRepositoryYumArgs and GuestPoliciesPackageRepositoryYumOutput values. +// You can construct a concrete instance of `GuestPoliciesPackageRepositoryYumInput` via: +// +// GuestPoliciesPackageRepositoryYumArgs{...} +type GuestPoliciesPackageRepositoryYumInput interface { + pulumi.Input + + ToGuestPoliciesPackageRepositoryYumOutput() GuestPoliciesPackageRepositoryYumOutput + ToGuestPoliciesPackageRepositoryYumOutputWithContext(context.Context) GuestPoliciesPackageRepositoryYumOutput +} + +type GuestPoliciesPackageRepositoryYumArgs struct { + // The location of the repository directory. + BaseUrl pulumi.StringInput `pulumi:"baseUrl"` + // The display name of the repository. + DisplayName pulumi.StringPtrInput `pulumi:"displayName"` + // URIs of GPG keys. + GpgKeys pulumi.StringArrayInput `pulumi:"gpgKeys"` + // Id of the artifact, which the installation and update steps of this recipe can reference. + // Artifacts in a recipe cannot have the same id. + Id pulumi.StringInput `pulumi:"id"` +} + +func (GuestPoliciesPackageRepositoryYumArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GuestPoliciesPackageRepositoryYum)(nil)).Elem() +} + +func (i GuestPoliciesPackageRepositoryYumArgs) ToGuestPoliciesPackageRepositoryYumOutput() GuestPoliciesPackageRepositoryYumOutput { + return i.ToGuestPoliciesPackageRepositoryYumOutputWithContext(context.Background()) +} + +func (i GuestPoliciesPackageRepositoryYumArgs) ToGuestPoliciesPackageRepositoryYumOutputWithContext(ctx context.Context) GuestPoliciesPackageRepositoryYumOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuestPoliciesPackageRepositoryYumOutput) +} + +func (i GuestPoliciesPackageRepositoryYumArgs) ToGuestPoliciesPackageRepositoryYumPtrOutput() GuestPoliciesPackageRepositoryYumPtrOutput { + return i.ToGuestPoliciesPackageRepositoryYumPtrOutputWithContext(context.Background()) +} + +func (i GuestPoliciesPackageRepositoryYumArgs) ToGuestPoliciesPackageRepositoryYumPtrOutputWithContext(ctx context.Context) GuestPoliciesPackageRepositoryYumPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuestPoliciesPackageRepositoryYumOutput).ToGuestPoliciesPackageRepositoryYumPtrOutputWithContext(ctx) +} + +// GuestPoliciesPackageRepositoryYumPtrInput is an input type that accepts GuestPoliciesPackageRepositoryYumArgs, GuestPoliciesPackageRepositoryYumPtr and GuestPoliciesPackageRepositoryYumPtrOutput values. +// You can construct a concrete instance of `GuestPoliciesPackageRepositoryYumPtrInput` via: +// +// GuestPoliciesPackageRepositoryYumArgs{...} +// +// or: +// +// nil +type GuestPoliciesPackageRepositoryYumPtrInput interface { + pulumi.Input + + ToGuestPoliciesPackageRepositoryYumPtrOutput() GuestPoliciesPackageRepositoryYumPtrOutput + ToGuestPoliciesPackageRepositoryYumPtrOutputWithContext(context.Context) GuestPoliciesPackageRepositoryYumPtrOutput +} + +type guestPoliciesPackageRepositoryYumPtrType GuestPoliciesPackageRepositoryYumArgs + +func GuestPoliciesPackageRepositoryYumPtr(v *GuestPoliciesPackageRepositoryYumArgs) GuestPoliciesPackageRepositoryYumPtrInput { + return (*guestPoliciesPackageRepositoryYumPtrType)(v) +} + +func (*guestPoliciesPackageRepositoryYumPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**GuestPoliciesPackageRepositoryYum)(nil)).Elem() +} + +func (i *guestPoliciesPackageRepositoryYumPtrType) ToGuestPoliciesPackageRepositoryYumPtrOutput() GuestPoliciesPackageRepositoryYumPtrOutput { + return i.ToGuestPoliciesPackageRepositoryYumPtrOutputWithContext(context.Background()) +} + +func (i *guestPoliciesPackageRepositoryYumPtrType) ToGuestPoliciesPackageRepositoryYumPtrOutputWithContext(ctx context.Context) GuestPoliciesPackageRepositoryYumPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuestPoliciesPackageRepositoryYumPtrOutput) +} + +type GuestPoliciesPackageRepositoryYumOutput struct{ *pulumi.OutputState } + +func (GuestPoliciesPackageRepositoryYumOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GuestPoliciesPackageRepositoryYum)(nil)).Elem() +} + +func (o GuestPoliciesPackageRepositoryYumOutput) ToGuestPoliciesPackageRepositoryYumOutput() GuestPoliciesPackageRepositoryYumOutput { + return o +} + +func (o GuestPoliciesPackageRepositoryYumOutput) ToGuestPoliciesPackageRepositoryYumOutputWithContext(ctx context.Context) GuestPoliciesPackageRepositoryYumOutput { + return o +} + +func (o GuestPoliciesPackageRepositoryYumOutput) ToGuestPoliciesPackageRepositoryYumPtrOutput() GuestPoliciesPackageRepositoryYumPtrOutput { + return o.ToGuestPoliciesPackageRepositoryYumPtrOutputWithContext(context.Background()) +} + +func (o GuestPoliciesPackageRepositoryYumOutput) ToGuestPoliciesPackageRepositoryYumPtrOutputWithContext(ctx context.Context) GuestPoliciesPackageRepositoryYumPtrOutput { + return o.ApplyT(func(v GuestPoliciesPackageRepositoryYum) *GuestPoliciesPackageRepositoryYum { + return &v + }).(GuestPoliciesPackageRepositoryYumPtrOutput) +} + +// The location of the repository directory. +func (o GuestPoliciesPackageRepositoryYumOutput) BaseUrl() pulumi.StringOutput { + return o.ApplyT(func(v GuestPoliciesPackageRepositoryYum) string { return v.BaseUrl }).(pulumi.StringOutput) +} + +// The display name of the repository. +func (o GuestPoliciesPackageRepositoryYumOutput) DisplayName() pulumi.StringPtrOutput { + return o.ApplyT(func(v GuestPoliciesPackageRepositoryYum) *string { return v.DisplayName }).(pulumi.StringPtrOutput) +} + +// URIs of GPG keys. +func (o GuestPoliciesPackageRepositoryYumOutput) GpgKeys() pulumi.StringArrayOutput { + return o.ApplyT(func(v GuestPoliciesPackageRepositoryYum) []string { return v.GpgKeys }).(pulumi.StringArrayOutput) +} + +// Id of the artifact, which the installation and update steps of this recipe can reference. +// Artifacts in a recipe cannot have the same id. +func (o GuestPoliciesPackageRepositoryYumOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v GuestPoliciesPackageRepositoryYum) string { return v.Id }).(pulumi.StringOutput) +} + +type GuestPoliciesPackageRepositoryYumPtrOutput struct{ *pulumi.OutputState } + +func (GuestPoliciesPackageRepositoryYumPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**GuestPoliciesPackageRepositoryYum)(nil)).Elem() +} + +func (o GuestPoliciesPackageRepositoryYumPtrOutput) ToGuestPoliciesPackageRepositoryYumPtrOutput() GuestPoliciesPackageRepositoryYumPtrOutput { + return o +} + +func (o GuestPoliciesPackageRepositoryYumPtrOutput) ToGuestPoliciesPackageRepositoryYumPtrOutputWithContext(ctx context.Context) GuestPoliciesPackageRepositoryYumPtrOutput { + return o +} + +func (o GuestPoliciesPackageRepositoryYumPtrOutput) Elem() GuestPoliciesPackageRepositoryYumOutput { + return o.ApplyT(func(v *GuestPoliciesPackageRepositoryYum) GuestPoliciesPackageRepositoryYum { return *v }).(GuestPoliciesPackageRepositoryYumOutput) +} + +// The location of the repository directory. +func (o GuestPoliciesPackageRepositoryYumPtrOutput) BaseUrl() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GuestPoliciesPackageRepositoryYum) *string { + if v == nil { + return nil + } + return &v.BaseUrl + }).(pulumi.StringPtrOutput) +} + +// The display name of the repository. +func (o GuestPoliciesPackageRepositoryYumPtrOutput) DisplayName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GuestPoliciesPackageRepositoryYum) *string { + if v == nil { + return nil + } + return v.DisplayName + }).(pulumi.StringPtrOutput) +} + +// URIs of GPG keys. +func (o GuestPoliciesPackageRepositoryYumPtrOutput) GpgKeys() pulumi.StringArrayOutput { + return o.ApplyT(func(v *GuestPoliciesPackageRepositoryYum) []string { + if v == nil { + return nil + } + return v.GpgKeys + }).(pulumi.StringArrayOutput) +} + +// Id of the artifact, which the installation and update steps of this recipe can reference. +// Artifacts in a recipe cannot have the same id. +func (o GuestPoliciesPackageRepositoryYumPtrOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GuestPoliciesPackageRepositoryYum) *string { + if v == nil { + return nil + } + return &v.Id + }).(pulumi.StringPtrOutput) +} + +type GuestPoliciesPackageRepositoryZypper struct { + // The location of the repository directory. + BaseUrl string `pulumi:"baseUrl"` + // The display name of the repository. + DisplayName *string `pulumi:"displayName"` + // URIs of GPG keys. + GpgKeys []string `pulumi:"gpgKeys"` + // Id of the artifact, which the installation and update steps of this recipe can reference. + // Artifacts in a recipe cannot have the same id. + Id string `pulumi:"id"` +} + +// GuestPoliciesPackageRepositoryZypperInput is an input type that accepts GuestPoliciesPackageRepositoryZypperArgs and GuestPoliciesPackageRepositoryZypperOutput values. +// You can construct a concrete instance of `GuestPoliciesPackageRepositoryZypperInput` via: +// +// GuestPoliciesPackageRepositoryZypperArgs{...} +type GuestPoliciesPackageRepositoryZypperInput interface { + pulumi.Input + + ToGuestPoliciesPackageRepositoryZypperOutput() GuestPoliciesPackageRepositoryZypperOutput + ToGuestPoliciesPackageRepositoryZypperOutputWithContext(context.Context) GuestPoliciesPackageRepositoryZypperOutput +} + +type GuestPoliciesPackageRepositoryZypperArgs struct { + // The location of the repository directory. + BaseUrl pulumi.StringInput `pulumi:"baseUrl"` + // The display name of the repository. + DisplayName pulumi.StringPtrInput `pulumi:"displayName"` + // URIs of GPG keys. + GpgKeys pulumi.StringArrayInput `pulumi:"gpgKeys"` + // Id of the artifact, which the installation and update steps of this recipe can reference. + // Artifacts in a recipe cannot have the same id. + Id pulumi.StringInput `pulumi:"id"` +} + +func (GuestPoliciesPackageRepositoryZypperArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GuestPoliciesPackageRepositoryZypper)(nil)).Elem() +} + +func (i GuestPoliciesPackageRepositoryZypperArgs) ToGuestPoliciesPackageRepositoryZypperOutput() GuestPoliciesPackageRepositoryZypperOutput { + return i.ToGuestPoliciesPackageRepositoryZypperOutputWithContext(context.Background()) +} + +func (i GuestPoliciesPackageRepositoryZypperArgs) ToGuestPoliciesPackageRepositoryZypperOutputWithContext(ctx context.Context) GuestPoliciesPackageRepositoryZypperOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuestPoliciesPackageRepositoryZypperOutput) +} + +func (i GuestPoliciesPackageRepositoryZypperArgs) ToGuestPoliciesPackageRepositoryZypperPtrOutput() GuestPoliciesPackageRepositoryZypperPtrOutput { + return i.ToGuestPoliciesPackageRepositoryZypperPtrOutputWithContext(context.Background()) +} + +func (i GuestPoliciesPackageRepositoryZypperArgs) ToGuestPoliciesPackageRepositoryZypperPtrOutputWithContext(ctx context.Context) GuestPoliciesPackageRepositoryZypperPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuestPoliciesPackageRepositoryZypperOutput).ToGuestPoliciesPackageRepositoryZypperPtrOutputWithContext(ctx) +} + +// GuestPoliciesPackageRepositoryZypperPtrInput is an input type that accepts GuestPoliciesPackageRepositoryZypperArgs, GuestPoliciesPackageRepositoryZypperPtr and GuestPoliciesPackageRepositoryZypperPtrOutput values. +// You can construct a concrete instance of `GuestPoliciesPackageRepositoryZypperPtrInput` via: +// +// GuestPoliciesPackageRepositoryZypperArgs{...} +// +// or: +// +// nil +type GuestPoliciesPackageRepositoryZypperPtrInput interface { + pulumi.Input + + ToGuestPoliciesPackageRepositoryZypperPtrOutput() GuestPoliciesPackageRepositoryZypperPtrOutput + ToGuestPoliciesPackageRepositoryZypperPtrOutputWithContext(context.Context) GuestPoliciesPackageRepositoryZypperPtrOutput +} + +type guestPoliciesPackageRepositoryZypperPtrType GuestPoliciesPackageRepositoryZypperArgs + +func GuestPoliciesPackageRepositoryZypperPtr(v *GuestPoliciesPackageRepositoryZypperArgs) GuestPoliciesPackageRepositoryZypperPtrInput { + return (*guestPoliciesPackageRepositoryZypperPtrType)(v) +} + +func (*guestPoliciesPackageRepositoryZypperPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**GuestPoliciesPackageRepositoryZypper)(nil)).Elem() +} + +func (i *guestPoliciesPackageRepositoryZypperPtrType) ToGuestPoliciesPackageRepositoryZypperPtrOutput() GuestPoliciesPackageRepositoryZypperPtrOutput { + return i.ToGuestPoliciesPackageRepositoryZypperPtrOutputWithContext(context.Background()) +} + +func (i *guestPoliciesPackageRepositoryZypperPtrType) ToGuestPoliciesPackageRepositoryZypperPtrOutputWithContext(ctx context.Context) GuestPoliciesPackageRepositoryZypperPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuestPoliciesPackageRepositoryZypperPtrOutput) +} + +type GuestPoliciesPackageRepositoryZypperOutput struct{ *pulumi.OutputState } + +func (GuestPoliciesPackageRepositoryZypperOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GuestPoliciesPackageRepositoryZypper)(nil)).Elem() +} + +func (o GuestPoliciesPackageRepositoryZypperOutput) ToGuestPoliciesPackageRepositoryZypperOutput() GuestPoliciesPackageRepositoryZypperOutput { + return o +} + +func (o GuestPoliciesPackageRepositoryZypperOutput) ToGuestPoliciesPackageRepositoryZypperOutputWithContext(ctx context.Context) GuestPoliciesPackageRepositoryZypperOutput { + return o +} + +func (o GuestPoliciesPackageRepositoryZypperOutput) ToGuestPoliciesPackageRepositoryZypperPtrOutput() GuestPoliciesPackageRepositoryZypperPtrOutput { + return o.ToGuestPoliciesPackageRepositoryZypperPtrOutputWithContext(context.Background()) +} + +func (o GuestPoliciesPackageRepositoryZypperOutput) ToGuestPoliciesPackageRepositoryZypperPtrOutputWithContext(ctx context.Context) GuestPoliciesPackageRepositoryZypperPtrOutput { + return o.ApplyT(func(v GuestPoliciesPackageRepositoryZypper) *GuestPoliciesPackageRepositoryZypper { + return &v + }).(GuestPoliciesPackageRepositoryZypperPtrOutput) +} + +// The location of the repository directory. +func (o GuestPoliciesPackageRepositoryZypperOutput) BaseUrl() pulumi.StringOutput { + return o.ApplyT(func(v GuestPoliciesPackageRepositoryZypper) string { return v.BaseUrl }).(pulumi.StringOutput) +} + +// The display name of the repository. +func (o GuestPoliciesPackageRepositoryZypperOutput) DisplayName() pulumi.StringPtrOutput { + return o.ApplyT(func(v GuestPoliciesPackageRepositoryZypper) *string { return v.DisplayName }).(pulumi.StringPtrOutput) +} + +// URIs of GPG keys. +func (o GuestPoliciesPackageRepositoryZypperOutput) GpgKeys() pulumi.StringArrayOutput { + return o.ApplyT(func(v GuestPoliciesPackageRepositoryZypper) []string { return v.GpgKeys }).(pulumi.StringArrayOutput) +} + +// Id of the artifact, which the installation and update steps of this recipe can reference. +// Artifacts in a recipe cannot have the same id. +func (o GuestPoliciesPackageRepositoryZypperOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v GuestPoliciesPackageRepositoryZypper) string { return v.Id }).(pulumi.StringOutput) +} + +type GuestPoliciesPackageRepositoryZypperPtrOutput struct{ *pulumi.OutputState } + +func (GuestPoliciesPackageRepositoryZypperPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**GuestPoliciesPackageRepositoryZypper)(nil)).Elem() +} + +func (o GuestPoliciesPackageRepositoryZypperPtrOutput) ToGuestPoliciesPackageRepositoryZypperPtrOutput() GuestPoliciesPackageRepositoryZypperPtrOutput { + return o +} + +func (o GuestPoliciesPackageRepositoryZypperPtrOutput) ToGuestPoliciesPackageRepositoryZypperPtrOutputWithContext(ctx context.Context) GuestPoliciesPackageRepositoryZypperPtrOutput { + return o +} + +func (o GuestPoliciesPackageRepositoryZypperPtrOutput) Elem() GuestPoliciesPackageRepositoryZypperOutput { + return o.ApplyT(func(v *GuestPoliciesPackageRepositoryZypper) GuestPoliciesPackageRepositoryZypper { return *v }).(GuestPoliciesPackageRepositoryZypperOutput) +} + +// The location of the repository directory. +func (o GuestPoliciesPackageRepositoryZypperPtrOutput) BaseUrl() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GuestPoliciesPackageRepositoryZypper) *string { + if v == nil { + return nil + } + return &v.BaseUrl + }).(pulumi.StringPtrOutput) +} + +// The display name of the repository. +func (o GuestPoliciesPackageRepositoryZypperPtrOutput) DisplayName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GuestPoliciesPackageRepositoryZypper) *string { + if v == nil { + return nil + } + return v.DisplayName + }).(pulumi.StringPtrOutput) +} + +// URIs of GPG keys. +func (o GuestPoliciesPackageRepositoryZypperPtrOutput) GpgKeys() pulumi.StringArrayOutput { + return o.ApplyT(func(v *GuestPoliciesPackageRepositoryZypper) []string { + if v == nil { + return nil + } + return v.GpgKeys + }).(pulumi.StringArrayOutput) +} + +// Id of the artifact, which the installation and update steps of this recipe can reference. +// Artifacts in a recipe cannot have the same id. +func (o GuestPoliciesPackageRepositoryZypperPtrOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GuestPoliciesPackageRepositoryZypper) *string { + if v == nil { + return nil + } + return &v.Id + }).(pulumi.StringPtrOutput) +} + +type GuestPoliciesRecipe struct { + // Resources available to be used in the steps in the recipe. Structure is documented below. + Artifacts []GuestPoliciesRecipeArtifact `pulumi:"artifacts"` + // Default is INSTALLED. The desired state the agent should maintain for this recipe. + // INSTALLED: The software recipe is installed on the instance but won't be updated to new versions. + // INSTALLED_KEEP_UPDATED: The software recipe is installed on the instance. The recipe is updated to a higher version, + // if a higher version of the recipe is assigned to this instance. + // REMOVE: Remove is unsupported for software recipes and attempts to create or update a recipe to the REMOVE state is rejected. + DesiredState *string `pulumi:"desiredState"` + // Actions to be taken for installing this recipe. On failure it stops executing steps and does not attempt another installation. + // Any steps taken (including partially completed steps) are not rolled back. Structure is documented below. + InstallSteps []GuestPoliciesRecipeInstallStep `pulumi:"installSteps"` + // Unique identifier for the recipe. Only one recipe with a given name is installed on an instance. + // Names are also used to identify resources which helps to determine whether guest policies have conflicts. + // This means that requests to create multiple recipes with the same name and version are rejected since they + // could potentially have conflicting assignments. + Name string `pulumi:"name"` + // Actions to be taken for updating this recipe. On failure it stops executing steps and does not attempt another update for this recipe. + // Any steps taken (including partially completed steps) are not rolled back. Structure is documented below. + UpdateSteps []GuestPoliciesRecipeUpdateStep `pulumi:"updateSteps"` + // The version of this software recipe. Version can be up to 4 period separated numbers (e.g. 12.34.56.78). + Version *string `pulumi:"version"` +} + +// GuestPoliciesRecipeInput is an input type that accepts GuestPoliciesRecipeArgs and GuestPoliciesRecipeOutput values. +// You can construct a concrete instance of `GuestPoliciesRecipeInput` via: +// +// GuestPoliciesRecipeArgs{...} +type GuestPoliciesRecipeInput interface { + pulumi.Input + + ToGuestPoliciesRecipeOutput() GuestPoliciesRecipeOutput + ToGuestPoliciesRecipeOutputWithContext(context.Context) GuestPoliciesRecipeOutput +} + +type GuestPoliciesRecipeArgs struct { + // Resources available to be used in the steps in the recipe. Structure is documented below. + Artifacts GuestPoliciesRecipeArtifactArrayInput `pulumi:"artifacts"` + // Default is INSTALLED. The desired state the agent should maintain for this recipe. + // INSTALLED: The software recipe is installed on the instance but won't be updated to new versions. + // INSTALLED_KEEP_UPDATED: The software recipe is installed on the instance. The recipe is updated to a higher version, + // if a higher version of the recipe is assigned to this instance. + // REMOVE: Remove is unsupported for software recipes and attempts to create or update a recipe to the REMOVE state is rejected. + DesiredState pulumi.StringPtrInput `pulumi:"desiredState"` + // Actions to be taken for installing this recipe. On failure it stops executing steps and does not attempt another installation. + // Any steps taken (including partially completed steps) are not rolled back. Structure is documented below. + InstallSteps GuestPoliciesRecipeInstallStepArrayInput `pulumi:"installSteps"` + // Unique identifier for the recipe. Only one recipe with a given name is installed on an instance. + // Names are also used to identify resources which helps to determine whether guest policies have conflicts. + // This means that requests to create multiple recipes with the same name and version are rejected since they + // could potentially have conflicting assignments. + Name pulumi.StringInput `pulumi:"name"` + // Actions to be taken for updating this recipe. On failure it stops executing steps and does not attempt another update for this recipe. + // Any steps taken (including partially completed steps) are not rolled back. Structure is documented below. + UpdateSteps GuestPoliciesRecipeUpdateStepArrayInput `pulumi:"updateSteps"` + // The version of this software recipe. Version can be up to 4 period separated numbers (e.g. 12.34.56.78). + Version pulumi.StringPtrInput `pulumi:"version"` +} + +func (GuestPoliciesRecipeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GuestPoliciesRecipe)(nil)).Elem() +} + +func (i GuestPoliciesRecipeArgs) ToGuestPoliciesRecipeOutput() GuestPoliciesRecipeOutput { + return i.ToGuestPoliciesRecipeOutputWithContext(context.Background()) +} + +func (i GuestPoliciesRecipeArgs) ToGuestPoliciesRecipeOutputWithContext(ctx context.Context) GuestPoliciesRecipeOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuestPoliciesRecipeOutput) +} + +// GuestPoliciesRecipeArrayInput is an input type that accepts GuestPoliciesRecipeArray and GuestPoliciesRecipeArrayOutput values. +// You can construct a concrete instance of `GuestPoliciesRecipeArrayInput` via: +// +// GuestPoliciesRecipeArray{ GuestPoliciesRecipeArgs{...} } +type GuestPoliciesRecipeArrayInput interface { + pulumi.Input + + ToGuestPoliciesRecipeArrayOutput() GuestPoliciesRecipeArrayOutput + ToGuestPoliciesRecipeArrayOutputWithContext(context.Context) GuestPoliciesRecipeArrayOutput +} + +type GuestPoliciesRecipeArray []GuestPoliciesRecipeInput + +func (GuestPoliciesRecipeArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GuestPoliciesRecipe)(nil)).Elem() +} + +func (i GuestPoliciesRecipeArray) ToGuestPoliciesRecipeArrayOutput() GuestPoliciesRecipeArrayOutput { + return i.ToGuestPoliciesRecipeArrayOutputWithContext(context.Background()) +} + +func (i GuestPoliciesRecipeArray) ToGuestPoliciesRecipeArrayOutputWithContext(ctx context.Context) GuestPoliciesRecipeArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuestPoliciesRecipeArrayOutput) +} + +type GuestPoliciesRecipeOutput struct{ *pulumi.OutputState } + +func (GuestPoliciesRecipeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GuestPoliciesRecipe)(nil)).Elem() +} + +func (o GuestPoliciesRecipeOutput) ToGuestPoliciesRecipeOutput() GuestPoliciesRecipeOutput { + return o +} + +func (o GuestPoliciesRecipeOutput) ToGuestPoliciesRecipeOutputWithContext(ctx context.Context) GuestPoliciesRecipeOutput { + return o +} + +// Resources available to be used in the steps in the recipe. Structure is documented below. +func (o GuestPoliciesRecipeOutput) Artifacts() GuestPoliciesRecipeArtifactArrayOutput { + return o.ApplyT(func(v GuestPoliciesRecipe) []GuestPoliciesRecipeArtifact { return v.Artifacts }).(GuestPoliciesRecipeArtifactArrayOutput) +} + +// Default is INSTALLED. The desired state the agent should maintain for this recipe. +// INSTALLED: The software recipe is installed on the instance but won't be updated to new versions. +// INSTALLED_KEEP_UPDATED: The software recipe is installed on the instance. The recipe is updated to a higher version, +// if a higher version of the recipe is assigned to this instance. +// REMOVE: Remove is unsupported for software recipes and attempts to create or update a recipe to the REMOVE state is rejected. +func (o GuestPoliciesRecipeOutput) DesiredState() pulumi.StringPtrOutput { + return o.ApplyT(func(v GuestPoliciesRecipe) *string { return v.DesiredState }).(pulumi.StringPtrOutput) +} + +// Actions to be taken for installing this recipe. On failure it stops executing steps and does not attempt another installation. +// Any steps taken (including partially completed steps) are not rolled back. Structure is documented below. +func (o GuestPoliciesRecipeOutput) InstallSteps() GuestPoliciesRecipeInstallStepArrayOutput { + return o.ApplyT(func(v GuestPoliciesRecipe) []GuestPoliciesRecipeInstallStep { return v.InstallSteps }).(GuestPoliciesRecipeInstallStepArrayOutput) +} + +// Unique identifier for the recipe. Only one recipe with a given name is installed on an instance. +// Names are also used to identify resources which helps to determine whether guest policies have conflicts. +// This means that requests to create multiple recipes with the same name and version are rejected since they +// could potentially have conflicting assignments. +func (o GuestPoliciesRecipeOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v GuestPoliciesRecipe) string { return v.Name }).(pulumi.StringOutput) +} + +// Actions to be taken for updating this recipe. On failure it stops executing steps and does not attempt another update for this recipe. +// Any steps taken (including partially completed steps) are not rolled back. Structure is documented below. +func (o GuestPoliciesRecipeOutput) UpdateSteps() GuestPoliciesRecipeUpdateStepArrayOutput { + return o.ApplyT(func(v GuestPoliciesRecipe) []GuestPoliciesRecipeUpdateStep { return v.UpdateSteps }).(GuestPoliciesRecipeUpdateStepArrayOutput) +} + +// The version of this software recipe. Version can be up to 4 period separated numbers (e.g. 12.34.56.78). +func (o GuestPoliciesRecipeOutput) Version() pulumi.StringPtrOutput { + return o.ApplyT(func(v GuestPoliciesRecipe) *string { return v.Version }).(pulumi.StringPtrOutput) +} + +type GuestPoliciesRecipeArrayOutput struct{ *pulumi.OutputState } + +func (GuestPoliciesRecipeArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GuestPoliciesRecipe)(nil)).Elem() +} + +func (o GuestPoliciesRecipeArrayOutput) ToGuestPoliciesRecipeArrayOutput() GuestPoliciesRecipeArrayOutput { + return o +} + +func (o GuestPoliciesRecipeArrayOutput) ToGuestPoliciesRecipeArrayOutputWithContext(ctx context.Context) GuestPoliciesRecipeArrayOutput { + return o +} + +func (o GuestPoliciesRecipeArrayOutput) Index(i pulumi.IntInput) GuestPoliciesRecipeOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GuestPoliciesRecipe { + return vs[0].([]GuestPoliciesRecipe)[vs[1].(int)] + }).(GuestPoliciesRecipeOutput) +} + +type GuestPoliciesRecipeArtifact struct { + // Defaults to false. When false, recipes are subject to validations based on the artifact type: + // Remote: A checksum must be specified, and only protocols with transport-layer security are permitted. + // GCS: An object generation number must be specified. + AllowInsecure *bool `pulumi:"allowInsecure"` + // A Google Cloud Storage artifact. Structure is documented below. + Gcs *GuestPoliciesRecipeArtifactGcs `pulumi:"gcs"` + // Id of the artifact, which the installation and update steps of this recipe can reference. + // Artifacts in a recipe cannot have the same id. + Id string `pulumi:"id"` + // A generic remote artifact. Structure is documented below. + Remote *GuestPoliciesRecipeArtifactRemote `pulumi:"remote"` +} + +// GuestPoliciesRecipeArtifactInput is an input type that accepts GuestPoliciesRecipeArtifactArgs and GuestPoliciesRecipeArtifactOutput values. +// You can construct a concrete instance of `GuestPoliciesRecipeArtifactInput` via: +// +// GuestPoliciesRecipeArtifactArgs{...} +type GuestPoliciesRecipeArtifactInput interface { + pulumi.Input + + ToGuestPoliciesRecipeArtifactOutput() GuestPoliciesRecipeArtifactOutput + ToGuestPoliciesRecipeArtifactOutputWithContext(context.Context) GuestPoliciesRecipeArtifactOutput +} + +type GuestPoliciesRecipeArtifactArgs struct { + // Defaults to false. When false, recipes are subject to validations based on the artifact type: + // Remote: A checksum must be specified, and only protocols with transport-layer security are permitted. + // GCS: An object generation number must be specified. + AllowInsecure pulumi.BoolPtrInput `pulumi:"allowInsecure"` + // A Google Cloud Storage artifact. Structure is documented below. + Gcs GuestPoliciesRecipeArtifactGcsPtrInput `pulumi:"gcs"` + // Id of the artifact, which the installation and update steps of this recipe can reference. + // Artifacts in a recipe cannot have the same id. + Id pulumi.StringInput `pulumi:"id"` + // A generic remote artifact. Structure is documented below. + Remote GuestPoliciesRecipeArtifactRemotePtrInput `pulumi:"remote"` +} + +func (GuestPoliciesRecipeArtifactArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GuestPoliciesRecipeArtifact)(nil)).Elem() +} + +func (i GuestPoliciesRecipeArtifactArgs) ToGuestPoliciesRecipeArtifactOutput() GuestPoliciesRecipeArtifactOutput { + return i.ToGuestPoliciesRecipeArtifactOutputWithContext(context.Background()) +} + +func (i GuestPoliciesRecipeArtifactArgs) ToGuestPoliciesRecipeArtifactOutputWithContext(ctx context.Context) GuestPoliciesRecipeArtifactOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuestPoliciesRecipeArtifactOutput) +} + +// GuestPoliciesRecipeArtifactArrayInput is an input type that accepts GuestPoliciesRecipeArtifactArray and GuestPoliciesRecipeArtifactArrayOutput values. +// You can construct a concrete instance of `GuestPoliciesRecipeArtifactArrayInput` via: +// +// GuestPoliciesRecipeArtifactArray{ GuestPoliciesRecipeArtifactArgs{...} } +type GuestPoliciesRecipeArtifactArrayInput interface { + pulumi.Input + + ToGuestPoliciesRecipeArtifactArrayOutput() GuestPoliciesRecipeArtifactArrayOutput + ToGuestPoliciesRecipeArtifactArrayOutputWithContext(context.Context) GuestPoliciesRecipeArtifactArrayOutput +} + +type GuestPoliciesRecipeArtifactArray []GuestPoliciesRecipeArtifactInput + +func (GuestPoliciesRecipeArtifactArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GuestPoliciesRecipeArtifact)(nil)).Elem() +} + +func (i GuestPoliciesRecipeArtifactArray) ToGuestPoliciesRecipeArtifactArrayOutput() GuestPoliciesRecipeArtifactArrayOutput { + return i.ToGuestPoliciesRecipeArtifactArrayOutputWithContext(context.Background()) +} + +func (i GuestPoliciesRecipeArtifactArray) ToGuestPoliciesRecipeArtifactArrayOutputWithContext(ctx context.Context) GuestPoliciesRecipeArtifactArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuestPoliciesRecipeArtifactArrayOutput) +} + +type GuestPoliciesRecipeArtifactOutput struct{ *pulumi.OutputState } + +func (GuestPoliciesRecipeArtifactOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GuestPoliciesRecipeArtifact)(nil)).Elem() +} + +func (o GuestPoliciesRecipeArtifactOutput) ToGuestPoliciesRecipeArtifactOutput() GuestPoliciesRecipeArtifactOutput { + return o +} + +func (o GuestPoliciesRecipeArtifactOutput) ToGuestPoliciesRecipeArtifactOutputWithContext(ctx context.Context) GuestPoliciesRecipeArtifactOutput { + return o +} + +// Defaults to false. When false, recipes are subject to validations based on the artifact type: +// Remote: A checksum must be specified, and only protocols with transport-layer security are permitted. +// GCS: An object generation number must be specified. +func (o GuestPoliciesRecipeArtifactOutput) AllowInsecure() pulumi.BoolPtrOutput { + return o.ApplyT(func(v GuestPoliciesRecipeArtifact) *bool { return v.AllowInsecure }).(pulumi.BoolPtrOutput) +} + +// A Google Cloud Storage artifact. Structure is documented below. +func (o GuestPoliciesRecipeArtifactOutput) Gcs() GuestPoliciesRecipeArtifactGcsPtrOutput { + return o.ApplyT(func(v GuestPoliciesRecipeArtifact) *GuestPoliciesRecipeArtifactGcs { return v.Gcs }).(GuestPoliciesRecipeArtifactGcsPtrOutput) +} + +// Id of the artifact, which the installation and update steps of this recipe can reference. +// Artifacts in a recipe cannot have the same id. +func (o GuestPoliciesRecipeArtifactOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v GuestPoliciesRecipeArtifact) string { return v.Id }).(pulumi.StringOutput) +} + +// A generic remote artifact. Structure is documented below. +func (o GuestPoliciesRecipeArtifactOutput) Remote() GuestPoliciesRecipeArtifactRemotePtrOutput { + return o.ApplyT(func(v GuestPoliciesRecipeArtifact) *GuestPoliciesRecipeArtifactRemote { return v.Remote }).(GuestPoliciesRecipeArtifactRemotePtrOutput) +} + +type GuestPoliciesRecipeArtifactArrayOutput struct{ *pulumi.OutputState } + +func (GuestPoliciesRecipeArtifactArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GuestPoliciesRecipeArtifact)(nil)).Elem() +} + +func (o GuestPoliciesRecipeArtifactArrayOutput) ToGuestPoliciesRecipeArtifactArrayOutput() GuestPoliciesRecipeArtifactArrayOutput { + return o +} + +func (o GuestPoliciesRecipeArtifactArrayOutput) ToGuestPoliciesRecipeArtifactArrayOutputWithContext(ctx context.Context) GuestPoliciesRecipeArtifactArrayOutput { + return o +} + +func (o GuestPoliciesRecipeArtifactArrayOutput) Index(i pulumi.IntInput) GuestPoliciesRecipeArtifactOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GuestPoliciesRecipeArtifact { + return vs[0].([]GuestPoliciesRecipeArtifact)[vs[1].(int)] + }).(GuestPoliciesRecipeArtifactOutput) +} + +type GuestPoliciesRecipeArtifactGcs struct { + // Bucket of the Google Cloud Storage object. Given an example URL: https://storage.googleapis.com/my-bucket/foo/bar#1234567 + // this value would be my-bucket. + Bucket *string `pulumi:"bucket"` + // Must be provided if allowInsecure is false. Generation number of the Google Cloud Storage object. + // https://storage.googleapis.com/my-bucket/foo/bar#1234567 this value would be 1234567. + Generation *int `pulumi:"generation"` + // Name of the Google Cloud Storage object. Given an example URL: https://storage.googleapis.com/my-bucket/foo/bar#1234567 + // this value would be foo/bar. + Object *string `pulumi:"object"` +} + +// GuestPoliciesRecipeArtifactGcsInput is an input type that accepts GuestPoliciesRecipeArtifactGcsArgs and GuestPoliciesRecipeArtifactGcsOutput values. +// You can construct a concrete instance of `GuestPoliciesRecipeArtifactGcsInput` via: +// +// GuestPoliciesRecipeArtifactGcsArgs{...} +type GuestPoliciesRecipeArtifactGcsInput interface { + pulumi.Input + + ToGuestPoliciesRecipeArtifactGcsOutput() GuestPoliciesRecipeArtifactGcsOutput + ToGuestPoliciesRecipeArtifactGcsOutputWithContext(context.Context) GuestPoliciesRecipeArtifactGcsOutput +} + +type GuestPoliciesRecipeArtifactGcsArgs struct { + // Bucket of the Google Cloud Storage object. Given an example URL: https://storage.googleapis.com/my-bucket/foo/bar#1234567 + // this value would be my-bucket. + Bucket pulumi.StringPtrInput `pulumi:"bucket"` + // Must be provided if allowInsecure is false. Generation number of the Google Cloud Storage object. + // https://storage.googleapis.com/my-bucket/foo/bar#1234567 this value would be 1234567. + Generation pulumi.IntPtrInput `pulumi:"generation"` + // Name of the Google Cloud Storage object. Given an example URL: https://storage.googleapis.com/my-bucket/foo/bar#1234567 + // this value would be foo/bar. + Object pulumi.StringPtrInput `pulumi:"object"` +} + +func (GuestPoliciesRecipeArtifactGcsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GuestPoliciesRecipeArtifactGcs)(nil)).Elem() +} + +func (i GuestPoliciesRecipeArtifactGcsArgs) ToGuestPoliciesRecipeArtifactGcsOutput() GuestPoliciesRecipeArtifactGcsOutput { + return i.ToGuestPoliciesRecipeArtifactGcsOutputWithContext(context.Background()) +} + +func (i GuestPoliciesRecipeArtifactGcsArgs) ToGuestPoliciesRecipeArtifactGcsOutputWithContext(ctx context.Context) GuestPoliciesRecipeArtifactGcsOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuestPoliciesRecipeArtifactGcsOutput) +} + +func (i GuestPoliciesRecipeArtifactGcsArgs) ToGuestPoliciesRecipeArtifactGcsPtrOutput() GuestPoliciesRecipeArtifactGcsPtrOutput { + return i.ToGuestPoliciesRecipeArtifactGcsPtrOutputWithContext(context.Background()) +} + +func (i GuestPoliciesRecipeArtifactGcsArgs) ToGuestPoliciesRecipeArtifactGcsPtrOutputWithContext(ctx context.Context) GuestPoliciesRecipeArtifactGcsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuestPoliciesRecipeArtifactGcsOutput).ToGuestPoliciesRecipeArtifactGcsPtrOutputWithContext(ctx) +} + +// GuestPoliciesRecipeArtifactGcsPtrInput is an input type that accepts GuestPoliciesRecipeArtifactGcsArgs, GuestPoliciesRecipeArtifactGcsPtr and GuestPoliciesRecipeArtifactGcsPtrOutput values. +// You can construct a concrete instance of `GuestPoliciesRecipeArtifactGcsPtrInput` via: +// +// GuestPoliciesRecipeArtifactGcsArgs{...} +// +// or: +// +// nil +type GuestPoliciesRecipeArtifactGcsPtrInput interface { + pulumi.Input + + ToGuestPoliciesRecipeArtifactGcsPtrOutput() GuestPoliciesRecipeArtifactGcsPtrOutput + ToGuestPoliciesRecipeArtifactGcsPtrOutputWithContext(context.Context) GuestPoliciesRecipeArtifactGcsPtrOutput +} + +type guestPoliciesRecipeArtifactGcsPtrType GuestPoliciesRecipeArtifactGcsArgs + +func GuestPoliciesRecipeArtifactGcsPtr(v *GuestPoliciesRecipeArtifactGcsArgs) GuestPoliciesRecipeArtifactGcsPtrInput { + return (*guestPoliciesRecipeArtifactGcsPtrType)(v) +} + +func (*guestPoliciesRecipeArtifactGcsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**GuestPoliciesRecipeArtifactGcs)(nil)).Elem() +} + +func (i *guestPoliciesRecipeArtifactGcsPtrType) ToGuestPoliciesRecipeArtifactGcsPtrOutput() GuestPoliciesRecipeArtifactGcsPtrOutput { + return i.ToGuestPoliciesRecipeArtifactGcsPtrOutputWithContext(context.Background()) +} + +func (i *guestPoliciesRecipeArtifactGcsPtrType) ToGuestPoliciesRecipeArtifactGcsPtrOutputWithContext(ctx context.Context) GuestPoliciesRecipeArtifactGcsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuestPoliciesRecipeArtifactGcsPtrOutput) +} + +type GuestPoliciesRecipeArtifactGcsOutput struct{ *pulumi.OutputState } + +func (GuestPoliciesRecipeArtifactGcsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GuestPoliciesRecipeArtifactGcs)(nil)).Elem() +} + +func (o GuestPoliciesRecipeArtifactGcsOutput) ToGuestPoliciesRecipeArtifactGcsOutput() GuestPoliciesRecipeArtifactGcsOutput { + return o +} + +func (o GuestPoliciesRecipeArtifactGcsOutput) ToGuestPoliciesRecipeArtifactGcsOutputWithContext(ctx context.Context) GuestPoliciesRecipeArtifactGcsOutput { + return o +} + +func (o GuestPoliciesRecipeArtifactGcsOutput) ToGuestPoliciesRecipeArtifactGcsPtrOutput() GuestPoliciesRecipeArtifactGcsPtrOutput { + return o.ToGuestPoliciesRecipeArtifactGcsPtrOutputWithContext(context.Background()) +} + +func (o GuestPoliciesRecipeArtifactGcsOutput) ToGuestPoliciesRecipeArtifactGcsPtrOutputWithContext(ctx context.Context) GuestPoliciesRecipeArtifactGcsPtrOutput { + return o.ApplyT(func(v GuestPoliciesRecipeArtifactGcs) *GuestPoliciesRecipeArtifactGcs { + return &v + }).(GuestPoliciesRecipeArtifactGcsPtrOutput) +} + +// Bucket of the Google Cloud Storage object. Given an example URL: https://storage.googleapis.com/my-bucket/foo/bar#1234567 +// this value would be my-bucket. +func (o GuestPoliciesRecipeArtifactGcsOutput) Bucket() pulumi.StringPtrOutput { + return o.ApplyT(func(v GuestPoliciesRecipeArtifactGcs) *string { return v.Bucket }).(pulumi.StringPtrOutput) +} + +// Must be provided if allowInsecure is false. Generation number of the Google Cloud Storage object. +// https://storage.googleapis.com/my-bucket/foo/bar#1234567 this value would be 1234567. +func (o GuestPoliciesRecipeArtifactGcsOutput) Generation() pulumi.IntPtrOutput { + return o.ApplyT(func(v GuestPoliciesRecipeArtifactGcs) *int { return v.Generation }).(pulumi.IntPtrOutput) +} + +// Name of the Google Cloud Storage object. Given an example URL: https://storage.googleapis.com/my-bucket/foo/bar#1234567 +// this value would be foo/bar. +func (o GuestPoliciesRecipeArtifactGcsOutput) Object() pulumi.StringPtrOutput { + return o.ApplyT(func(v GuestPoliciesRecipeArtifactGcs) *string { return v.Object }).(pulumi.StringPtrOutput) +} + +type GuestPoliciesRecipeArtifactGcsPtrOutput struct{ *pulumi.OutputState } + +func (GuestPoliciesRecipeArtifactGcsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**GuestPoliciesRecipeArtifactGcs)(nil)).Elem() +} + +func (o GuestPoliciesRecipeArtifactGcsPtrOutput) ToGuestPoliciesRecipeArtifactGcsPtrOutput() GuestPoliciesRecipeArtifactGcsPtrOutput { + return o +} + +func (o GuestPoliciesRecipeArtifactGcsPtrOutput) ToGuestPoliciesRecipeArtifactGcsPtrOutputWithContext(ctx context.Context) GuestPoliciesRecipeArtifactGcsPtrOutput { + return o +} + +func (o GuestPoliciesRecipeArtifactGcsPtrOutput) Elem() GuestPoliciesRecipeArtifactGcsOutput { + return o.ApplyT(func(v *GuestPoliciesRecipeArtifactGcs) GuestPoliciesRecipeArtifactGcs { return *v }).(GuestPoliciesRecipeArtifactGcsOutput) +} + +// Bucket of the Google Cloud Storage object. Given an example URL: https://storage.googleapis.com/my-bucket/foo/bar#1234567 +// this value would be my-bucket. +func (o GuestPoliciesRecipeArtifactGcsPtrOutput) Bucket() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GuestPoliciesRecipeArtifactGcs) *string { + if v == nil { + return nil + } + return v.Bucket + }).(pulumi.StringPtrOutput) +} + +// Must be provided if allowInsecure is false. Generation number of the Google Cloud Storage object. +// https://storage.googleapis.com/my-bucket/foo/bar#1234567 this value would be 1234567. +func (o GuestPoliciesRecipeArtifactGcsPtrOutput) Generation() pulumi.IntPtrOutput { + return o.ApplyT(func(v *GuestPoliciesRecipeArtifactGcs) *int { + if v == nil { + return nil + } + return v.Generation + }).(pulumi.IntPtrOutput) +} + +// Name of the Google Cloud Storage object. Given an example URL: https://storage.googleapis.com/my-bucket/foo/bar#1234567 +// this value would be foo/bar. +func (o GuestPoliciesRecipeArtifactGcsPtrOutput) Object() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GuestPoliciesRecipeArtifactGcs) *string { + if v == nil { + return nil + } + return v.Object + }).(pulumi.StringPtrOutput) +} + +type GuestPoliciesRecipeArtifactRemote struct { + // Must be provided if allowInsecure is false. SHA256 checksum in hex format, to compare to the checksum of the artifact. + // If the checksum is not empty and it doesn't match the artifact then the recipe installation fails before running any + // of the steps. + CheckSum *string `pulumi:"checkSum"` + // URI from which to fetch the object. It should contain both the protocol and path following the format {protocol}://{location}. + Uri *string `pulumi:"uri"` +} + +// GuestPoliciesRecipeArtifactRemoteInput is an input type that accepts GuestPoliciesRecipeArtifactRemoteArgs and GuestPoliciesRecipeArtifactRemoteOutput values. +// You can construct a concrete instance of `GuestPoliciesRecipeArtifactRemoteInput` via: +// +// GuestPoliciesRecipeArtifactRemoteArgs{...} +type GuestPoliciesRecipeArtifactRemoteInput interface { + pulumi.Input + + ToGuestPoliciesRecipeArtifactRemoteOutput() GuestPoliciesRecipeArtifactRemoteOutput + ToGuestPoliciesRecipeArtifactRemoteOutputWithContext(context.Context) GuestPoliciesRecipeArtifactRemoteOutput +} + +type GuestPoliciesRecipeArtifactRemoteArgs struct { + // Must be provided if allowInsecure is false. SHA256 checksum in hex format, to compare to the checksum of the artifact. + // If the checksum is not empty and it doesn't match the artifact then the recipe installation fails before running any + // of the steps. + CheckSum pulumi.StringPtrInput `pulumi:"checkSum"` + // URI from which to fetch the object. It should contain both the protocol and path following the format {protocol}://{location}. + Uri pulumi.StringPtrInput `pulumi:"uri"` +} + +func (GuestPoliciesRecipeArtifactRemoteArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GuestPoliciesRecipeArtifactRemote)(nil)).Elem() +} + +func (i GuestPoliciesRecipeArtifactRemoteArgs) ToGuestPoliciesRecipeArtifactRemoteOutput() GuestPoliciesRecipeArtifactRemoteOutput { + return i.ToGuestPoliciesRecipeArtifactRemoteOutputWithContext(context.Background()) +} + +func (i GuestPoliciesRecipeArtifactRemoteArgs) ToGuestPoliciesRecipeArtifactRemoteOutputWithContext(ctx context.Context) GuestPoliciesRecipeArtifactRemoteOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuestPoliciesRecipeArtifactRemoteOutput) +} + +func (i GuestPoliciesRecipeArtifactRemoteArgs) ToGuestPoliciesRecipeArtifactRemotePtrOutput() GuestPoliciesRecipeArtifactRemotePtrOutput { + return i.ToGuestPoliciesRecipeArtifactRemotePtrOutputWithContext(context.Background()) +} + +func (i GuestPoliciesRecipeArtifactRemoteArgs) ToGuestPoliciesRecipeArtifactRemotePtrOutputWithContext(ctx context.Context) GuestPoliciesRecipeArtifactRemotePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuestPoliciesRecipeArtifactRemoteOutput).ToGuestPoliciesRecipeArtifactRemotePtrOutputWithContext(ctx) +} + +// GuestPoliciesRecipeArtifactRemotePtrInput is an input type that accepts GuestPoliciesRecipeArtifactRemoteArgs, GuestPoliciesRecipeArtifactRemotePtr and GuestPoliciesRecipeArtifactRemotePtrOutput values. +// You can construct a concrete instance of `GuestPoliciesRecipeArtifactRemotePtrInput` via: +// +// GuestPoliciesRecipeArtifactRemoteArgs{...} +// +// or: +// +// nil +type GuestPoliciesRecipeArtifactRemotePtrInput interface { + pulumi.Input + + ToGuestPoliciesRecipeArtifactRemotePtrOutput() GuestPoliciesRecipeArtifactRemotePtrOutput + ToGuestPoliciesRecipeArtifactRemotePtrOutputWithContext(context.Context) GuestPoliciesRecipeArtifactRemotePtrOutput +} + +type guestPoliciesRecipeArtifactRemotePtrType GuestPoliciesRecipeArtifactRemoteArgs + +func GuestPoliciesRecipeArtifactRemotePtr(v *GuestPoliciesRecipeArtifactRemoteArgs) GuestPoliciesRecipeArtifactRemotePtrInput { + return (*guestPoliciesRecipeArtifactRemotePtrType)(v) +} + +func (*guestPoliciesRecipeArtifactRemotePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**GuestPoliciesRecipeArtifactRemote)(nil)).Elem() +} + +func (i *guestPoliciesRecipeArtifactRemotePtrType) ToGuestPoliciesRecipeArtifactRemotePtrOutput() GuestPoliciesRecipeArtifactRemotePtrOutput { + return i.ToGuestPoliciesRecipeArtifactRemotePtrOutputWithContext(context.Background()) +} + +func (i *guestPoliciesRecipeArtifactRemotePtrType) ToGuestPoliciesRecipeArtifactRemotePtrOutputWithContext(ctx context.Context) GuestPoliciesRecipeArtifactRemotePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuestPoliciesRecipeArtifactRemotePtrOutput) +} + +type GuestPoliciesRecipeArtifactRemoteOutput struct{ *pulumi.OutputState } + +func (GuestPoliciesRecipeArtifactRemoteOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GuestPoliciesRecipeArtifactRemote)(nil)).Elem() +} + +func (o GuestPoliciesRecipeArtifactRemoteOutput) ToGuestPoliciesRecipeArtifactRemoteOutput() GuestPoliciesRecipeArtifactRemoteOutput { + return o +} + +func (o GuestPoliciesRecipeArtifactRemoteOutput) ToGuestPoliciesRecipeArtifactRemoteOutputWithContext(ctx context.Context) GuestPoliciesRecipeArtifactRemoteOutput { + return o +} + +func (o GuestPoliciesRecipeArtifactRemoteOutput) ToGuestPoliciesRecipeArtifactRemotePtrOutput() GuestPoliciesRecipeArtifactRemotePtrOutput { + return o.ToGuestPoliciesRecipeArtifactRemotePtrOutputWithContext(context.Background()) +} + +func (o GuestPoliciesRecipeArtifactRemoteOutput) ToGuestPoliciesRecipeArtifactRemotePtrOutputWithContext(ctx context.Context) GuestPoliciesRecipeArtifactRemotePtrOutput { + return o.ApplyT(func(v GuestPoliciesRecipeArtifactRemote) *GuestPoliciesRecipeArtifactRemote { + return &v + }).(GuestPoliciesRecipeArtifactRemotePtrOutput) +} + +// Must be provided if allowInsecure is false. SHA256 checksum in hex format, to compare to the checksum of the artifact. +// If the checksum is not empty and it doesn't match the artifact then the recipe installation fails before running any +// of the steps. +func (o GuestPoliciesRecipeArtifactRemoteOutput) CheckSum() pulumi.StringPtrOutput { + return o.ApplyT(func(v GuestPoliciesRecipeArtifactRemote) *string { return v.CheckSum }).(pulumi.StringPtrOutput) +} + +// URI from which to fetch the object. It should contain both the protocol and path following the format {protocol}://{location}. +func (o GuestPoliciesRecipeArtifactRemoteOutput) Uri() pulumi.StringPtrOutput { + return o.ApplyT(func(v GuestPoliciesRecipeArtifactRemote) *string { return v.Uri }).(pulumi.StringPtrOutput) +} + +type GuestPoliciesRecipeArtifactRemotePtrOutput struct{ *pulumi.OutputState } + +func (GuestPoliciesRecipeArtifactRemotePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**GuestPoliciesRecipeArtifactRemote)(nil)).Elem() +} + +func (o GuestPoliciesRecipeArtifactRemotePtrOutput) ToGuestPoliciesRecipeArtifactRemotePtrOutput() GuestPoliciesRecipeArtifactRemotePtrOutput { + return o +} + +func (o GuestPoliciesRecipeArtifactRemotePtrOutput) ToGuestPoliciesRecipeArtifactRemotePtrOutputWithContext(ctx context.Context) GuestPoliciesRecipeArtifactRemotePtrOutput { + return o +} + +func (o GuestPoliciesRecipeArtifactRemotePtrOutput) Elem() GuestPoliciesRecipeArtifactRemoteOutput { + return o.ApplyT(func(v *GuestPoliciesRecipeArtifactRemote) GuestPoliciesRecipeArtifactRemote { return *v }).(GuestPoliciesRecipeArtifactRemoteOutput) +} + +// Must be provided if allowInsecure is false. SHA256 checksum in hex format, to compare to the checksum of the artifact. +// If the checksum is not empty and it doesn't match the artifact then the recipe installation fails before running any +// of the steps. +func (o GuestPoliciesRecipeArtifactRemotePtrOutput) CheckSum() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GuestPoliciesRecipeArtifactRemote) *string { + if v == nil { + return nil + } + return v.CheckSum + }).(pulumi.StringPtrOutput) +} + +// URI from which to fetch the object. It should contain both the protocol and path following the format {protocol}://{location}. +func (o GuestPoliciesRecipeArtifactRemotePtrOutput) Uri() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GuestPoliciesRecipeArtifactRemote) *string { + if v == nil { + return nil + } + return v.Uri + }).(pulumi.StringPtrOutput) +} + +type GuestPoliciesRecipeInstallStep struct { + // Extracts an archive into the specified directory. Structure is documented below. + ArchiveExtraction *GuestPoliciesRecipeInstallStepArchiveExtraction `pulumi:"archiveExtraction"` + // Installs a deb file via dpkg. Structure is documented below. + DpkgInstallation *GuestPoliciesRecipeInstallStepDpkgInstallation `pulumi:"dpkgInstallation"` + // Copies a file onto the instance. Structure is documented below. + FileCopy *GuestPoliciesRecipeInstallStepFileCopy `pulumi:"fileCopy"` + // Executes an artifact or local file. Structure is documented below. + FileExec *GuestPoliciesRecipeInstallStepFileExec `pulumi:"fileExec"` + // Installs an MSI file. Structure is documented below. + MsiInstallation *GuestPoliciesRecipeInstallStepMsiInstallation `pulumi:"msiInstallation"` + // Installs an rpm file via the rpm utility. Structure is documented below. + RpmInstallation *GuestPoliciesRecipeInstallStepRpmInstallation `pulumi:"rpmInstallation"` + // Runs commands in a shell. Structure is documented below. + ScriptRun *GuestPoliciesRecipeInstallStepScriptRun `pulumi:"scriptRun"` +} + +// GuestPoliciesRecipeInstallStepInput is an input type that accepts GuestPoliciesRecipeInstallStepArgs and GuestPoliciesRecipeInstallStepOutput values. +// You can construct a concrete instance of `GuestPoliciesRecipeInstallStepInput` via: +// +// GuestPoliciesRecipeInstallStepArgs{...} +type GuestPoliciesRecipeInstallStepInput interface { + pulumi.Input + + ToGuestPoliciesRecipeInstallStepOutput() GuestPoliciesRecipeInstallStepOutput + ToGuestPoliciesRecipeInstallStepOutputWithContext(context.Context) GuestPoliciesRecipeInstallStepOutput +} + +type GuestPoliciesRecipeInstallStepArgs struct { + // Extracts an archive into the specified directory. Structure is documented below. + ArchiveExtraction GuestPoliciesRecipeInstallStepArchiveExtractionPtrInput `pulumi:"archiveExtraction"` + // Installs a deb file via dpkg. Structure is documented below. + DpkgInstallation GuestPoliciesRecipeInstallStepDpkgInstallationPtrInput `pulumi:"dpkgInstallation"` + // Copies a file onto the instance. Structure is documented below. + FileCopy GuestPoliciesRecipeInstallStepFileCopyPtrInput `pulumi:"fileCopy"` + // Executes an artifact or local file. Structure is documented below. + FileExec GuestPoliciesRecipeInstallStepFileExecPtrInput `pulumi:"fileExec"` + // Installs an MSI file. Structure is documented below. + MsiInstallation GuestPoliciesRecipeInstallStepMsiInstallationPtrInput `pulumi:"msiInstallation"` + // Installs an rpm file via the rpm utility. Structure is documented below. + RpmInstallation GuestPoliciesRecipeInstallStepRpmInstallationPtrInput `pulumi:"rpmInstallation"` + // Runs commands in a shell. Structure is documented below. + ScriptRun GuestPoliciesRecipeInstallStepScriptRunPtrInput `pulumi:"scriptRun"` +} + +func (GuestPoliciesRecipeInstallStepArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GuestPoliciesRecipeInstallStep)(nil)).Elem() +} + +func (i GuestPoliciesRecipeInstallStepArgs) ToGuestPoliciesRecipeInstallStepOutput() GuestPoliciesRecipeInstallStepOutput { + return i.ToGuestPoliciesRecipeInstallStepOutputWithContext(context.Background()) +} + +func (i GuestPoliciesRecipeInstallStepArgs) ToGuestPoliciesRecipeInstallStepOutputWithContext(ctx context.Context) GuestPoliciesRecipeInstallStepOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuestPoliciesRecipeInstallStepOutput) +} + +// GuestPoliciesRecipeInstallStepArrayInput is an input type that accepts GuestPoliciesRecipeInstallStepArray and GuestPoliciesRecipeInstallStepArrayOutput values. +// You can construct a concrete instance of `GuestPoliciesRecipeInstallStepArrayInput` via: +// +// GuestPoliciesRecipeInstallStepArray{ GuestPoliciesRecipeInstallStepArgs{...} } +type GuestPoliciesRecipeInstallStepArrayInput interface { + pulumi.Input + + ToGuestPoliciesRecipeInstallStepArrayOutput() GuestPoliciesRecipeInstallStepArrayOutput + ToGuestPoliciesRecipeInstallStepArrayOutputWithContext(context.Context) GuestPoliciesRecipeInstallStepArrayOutput +} + +type GuestPoliciesRecipeInstallStepArray []GuestPoliciesRecipeInstallStepInput + +func (GuestPoliciesRecipeInstallStepArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GuestPoliciesRecipeInstallStep)(nil)).Elem() +} + +func (i GuestPoliciesRecipeInstallStepArray) ToGuestPoliciesRecipeInstallStepArrayOutput() GuestPoliciesRecipeInstallStepArrayOutput { + return i.ToGuestPoliciesRecipeInstallStepArrayOutputWithContext(context.Background()) +} + +func (i GuestPoliciesRecipeInstallStepArray) ToGuestPoliciesRecipeInstallStepArrayOutputWithContext(ctx context.Context) GuestPoliciesRecipeInstallStepArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuestPoliciesRecipeInstallStepArrayOutput) +} + +type GuestPoliciesRecipeInstallStepOutput struct{ *pulumi.OutputState } + +func (GuestPoliciesRecipeInstallStepOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GuestPoliciesRecipeInstallStep)(nil)).Elem() +} + +func (o GuestPoliciesRecipeInstallStepOutput) ToGuestPoliciesRecipeInstallStepOutput() GuestPoliciesRecipeInstallStepOutput { + return o +} + +func (o GuestPoliciesRecipeInstallStepOutput) ToGuestPoliciesRecipeInstallStepOutputWithContext(ctx context.Context) GuestPoliciesRecipeInstallStepOutput { + return o +} + +// Extracts an archive into the specified directory. Structure is documented below. +func (o GuestPoliciesRecipeInstallStepOutput) ArchiveExtraction() GuestPoliciesRecipeInstallStepArchiveExtractionPtrOutput { + return o.ApplyT(func(v GuestPoliciesRecipeInstallStep) *GuestPoliciesRecipeInstallStepArchiveExtraction { + return v.ArchiveExtraction + }).(GuestPoliciesRecipeInstallStepArchiveExtractionPtrOutput) +} + +// Installs a deb file via dpkg. Structure is documented below. +func (o GuestPoliciesRecipeInstallStepOutput) DpkgInstallation() GuestPoliciesRecipeInstallStepDpkgInstallationPtrOutput { + return o.ApplyT(func(v GuestPoliciesRecipeInstallStep) *GuestPoliciesRecipeInstallStepDpkgInstallation { + return v.DpkgInstallation + }).(GuestPoliciesRecipeInstallStepDpkgInstallationPtrOutput) +} + +// Copies a file onto the instance. Structure is documented below. +func (o GuestPoliciesRecipeInstallStepOutput) FileCopy() GuestPoliciesRecipeInstallStepFileCopyPtrOutput { + return o.ApplyT(func(v GuestPoliciesRecipeInstallStep) *GuestPoliciesRecipeInstallStepFileCopy { return v.FileCopy }).(GuestPoliciesRecipeInstallStepFileCopyPtrOutput) +} + +// Executes an artifact or local file. Structure is documented below. +func (o GuestPoliciesRecipeInstallStepOutput) FileExec() GuestPoliciesRecipeInstallStepFileExecPtrOutput { + return o.ApplyT(func(v GuestPoliciesRecipeInstallStep) *GuestPoliciesRecipeInstallStepFileExec { return v.FileExec }).(GuestPoliciesRecipeInstallStepFileExecPtrOutput) +} + +// Installs an MSI file. Structure is documented below. +func (o GuestPoliciesRecipeInstallStepOutput) MsiInstallation() GuestPoliciesRecipeInstallStepMsiInstallationPtrOutput { + return o.ApplyT(func(v GuestPoliciesRecipeInstallStep) *GuestPoliciesRecipeInstallStepMsiInstallation { + return v.MsiInstallation + }).(GuestPoliciesRecipeInstallStepMsiInstallationPtrOutput) +} + +// Installs an rpm file via the rpm utility. Structure is documented below. +func (o GuestPoliciesRecipeInstallStepOutput) RpmInstallation() GuestPoliciesRecipeInstallStepRpmInstallationPtrOutput { + return o.ApplyT(func(v GuestPoliciesRecipeInstallStep) *GuestPoliciesRecipeInstallStepRpmInstallation { + return v.RpmInstallation + }).(GuestPoliciesRecipeInstallStepRpmInstallationPtrOutput) +} + +// Runs commands in a shell. Structure is documented below. +func (o GuestPoliciesRecipeInstallStepOutput) ScriptRun() GuestPoliciesRecipeInstallStepScriptRunPtrOutput { + return o.ApplyT(func(v GuestPoliciesRecipeInstallStep) *GuestPoliciesRecipeInstallStepScriptRun { return v.ScriptRun }).(GuestPoliciesRecipeInstallStepScriptRunPtrOutput) +} + +type GuestPoliciesRecipeInstallStepArrayOutput struct{ *pulumi.OutputState } + +func (GuestPoliciesRecipeInstallStepArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GuestPoliciesRecipeInstallStep)(nil)).Elem() +} + +func (o GuestPoliciesRecipeInstallStepArrayOutput) ToGuestPoliciesRecipeInstallStepArrayOutput() GuestPoliciesRecipeInstallStepArrayOutput { + return o +} + +func (o GuestPoliciesRecipeInstallStepArrayOutput) ToGuestPoliciesRecipeInstallStepArrayOutputWithContext(ctx context.Context) GuestPoliciesRecipeInstallStepArrayOutput { + return o +} + +func (o GuestPoliciesRecipeInstallStepArrayOutput) Index(i pulumi.IntInput) GuestPoliciesRecipeInstallStepOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GuestPoliciesRecipeInstallStep { + return vs[0].([]GuestPoliciesRecipeInstallStep)[vs[1].(int)] + }).(GuestPoliciesRecipeInstallStepOutput) +} + +type GuestPoliciesRecipeInstallStepArchiveExtraction struct { + // The id of the relevant artifact in the recipe. + ArtifactId string `pulumi:"artifactId"` + // Directory to extract archive to. Defaults to / on Linux or C:\ on Windows. + Destination *string `pulumi:"destination"` + // The type of the archive to extract. + Type string `pulumi:"type"` +} + +// GuestPoliciesRecipeInstallStepArchiveExtractionInput is an input type that accepts GuestPoliciesRecipeInstallStepArchiveExtractionArgs and GuestPoliciesRecipeInstallStepArchiveExtractionOutput values. +// You can construct a concrete instance of `GuestPoliciesRecipeInstallStepArchiveExtractionInput` via: +// +// GuestPoliciesRecipeInstallStepArchiveExtractionArgs{...} +type GuestPoliciesRecipeInstallStepArchiveExtractionInput interface { + pulumi.Input + + ToGuestPoliciesRecipeInstallStepArchiveExtractionOutput() GuestPoliciesRecipeInstallStepArchiveExtractionOutput + ToGuestPoliciesRecipeInstallStepArchiveExtractionOutputWithContext(context.Context) GuestPoliciesRecipeInstallStepArchiveExtractionOutput +} + +type GuestPoliciesRecipeInstallStepArchiveExtractionArgs struct { + // The id of the relevant artifact in the recipe. + ArtifactId pulumi.StringInput `pulumi:"artifactId"` + // Directory to extract archive to. Defaults to / on Linux or C:\ on Windows. + Destination pulumi.StringPtrInput `pulumi:"destination"` + // The type of the archive to extract. + Type pulumi.StringInput `pulumi:"type"` +} + +func (GuestPoliciesRecipeInstallStepArchiveExtractionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GuestPoliciesRecipeInstallStepArchiveExtraction)(nil)).Elem() +} + +func (i GuestPoliciesRecipeInstallStepArchiveExtractionArgs) ToGuestPoliciesRecipeInstallStepArchiveExtractionOutput() GuestPoliciesRecipeInstallStepArchiveExtractionOutput { + return i.ToGuestPoliciesRecipeInstallStepArchiveExtractionOutputWithContext(context.Background()) +} + +func (i GuestPoliciesRecipeInstallStepArchiveExtractionArgs) ToGuestPoliciesRecipeInstallStepArchiveExtractionOutputWithContext(ctx context.Context) GuestPoliciesRecipeInstallStepArchiveExtractionOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuestPoliciesRecipeInstallStepArchiveExtractionOutput) +} + +func (i GuestPoliciesRecipeInstallStepArchiveExtractionArgs) ToGuestPoliciesRecipeInstallStepArchiveExtractionPtrOutput() GuestPoliciesRecipeInstallStepArchiveExtractionPtrOutput { + return i.ToGuestPoliciesRecipeInstallStepArchiveExtractionPtrOutputWithContext(context.Background()) +} + +func (i GuestPoliciesRecipeInstallStepArchiveExtractionArgs) ToGuestPoliciesRecipeInstallStepArchiveExtractionPtrOutputWithContext(ctx context.Context) GuestPoliciesRecipeInstallStepArchiveExtractionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuestPoliciesRecipeInstallStepArchiveExtractionOutput).ToGuestPoliciesRecipeInstallStepArchiveExtractionPtrOutputWithContext(ctx) +} + +// GuestPoliciesRecipeInstallStepArchiveExtractionPtrInput is an input type that accepts GuestPoliciesRecipeInstallStepArchiveExtractionArgs, GuestPoliciesRecipeInstallStepArchiveExtractionPtr and GuestPoliciesRecipeInstallStepArchiveExtractionPtrOutput values. +// You can construct a concrete instance of `GuestPoliciesRecipeInstallStepArchiveExtractionPtrInput` via: +// +// GuestPoliciesRecipeInstallStepArchiveExtractionArgs{...} +// +// or: +// +// nil +type GuestPoliciesRecipeInstallStepArchiveExtractionPtrInput interface { + pulumi.Input + + ToGuestPoliciesRecipeInstallStepArchiveExtractionPtrOutput() GuestPoliciesRecipeInstallStepArchiveExtractionPtrOutput + ToGuestPoliciesRecipeInstallStepArchiveExtractionPtrOutputWithContext(context.Context) GuestPoliciesRecipeInstallStepArchiveExtractionPtrOutput +} + +type guestPoliciesRecipeInstallStepArchiveExtractionPtrType GuestPoliciesRecipeInstallStepArchiveExtractionArgs + +func GuestPoliciesRecipeInstallStepArchiveExtractionPtr(v *GuestPoliciesRecipeInstallStepArchiveExtractionArgs) GuestPoliciesRecipeInstallStepArchiveExtractionPtrInput { + return (*guestPoliciesRecipeInstallStepArchiveExtractionPtrType)(v) +} + +func (*guestPoliciesRecipeInstallStepArchiveExtractionPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**GuestPoliciesRecipeInstallStepArchiveExtraction)(nil)).Elem() +} + +func (i *guestPoliciesRecipeInstallStepArchiveExtractionPtrType) ToGuestPoliciesRecipeInstallStepArchiveExtractionPtrOutput() GuestPoliciesRecipeInstallStepArchiveExtractionPtrOutput { + return i.ToGuestPoliciesRecipeInstallStepArchiveExtractionPtrOutputWithContext(context.Background()) +} + +func (i *guestPoliciesRecipeInstallStepArchiveExtractionPtrType) ToGuestPoliciesRecipeInstallStepArchiveExtractionPtrOutputWithContext(ctx context.Context) GuestPoliciesRecipeInstallStepArchiveExtractionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuestPoliciesRecipeInstallStepArchiveExtractionPtrOutput) +} + +type GuestPoliciesRecipeInstallStepArchiveExtractionOutput struct{ *pulumi.OutputState } + +func (GuestPoliciesRecipeInstallStepArchiveExtractionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GuestPoliciesRecipeInstallStepArchiveExtraction)(nil)).Elem() +} + +func (o GuestPoliciesRecipeInstallStepArchiveExtractionOutput) ToGuestPoliciesRecipeInstallStepArchiveExtractionOutput() GuestPoliciesRecipeInstallStepArchiveExtractionOutput { + return o +} + +func (o GuestPoliciesRecipeInstallStepArchiveExtractionOutput) ToGuestPoliciesRecipeInstallStepArchiveExtractionOutputWithContext(ctx context.Context) GuestPoliciesRecipeInstallStepArchiveExtractionOutput { + return o +} + +func (o GuestPoliciesRecipeInstallStepArchiveExtractionOutput) ToGuestPoliciesRecipeInstallStepArchiveExtractionPtrOutput() GuestPoliciesRecipeInstallStepArchiveExtractionPtrOutput { + return o.ToGuestPoliciesRecipeInstallStepArchiveExtractionPtrOutputWithContext(context.Background()) +} + +func (o GuestPoliciesRecipeInstallStepArchiveExtractionOutput) ToGuestPoliciesRecipeInstallStepArchiveExtractionPtrOutputWithContext(ctx context.Context) GuestPoliciesRecipeInstallStepArchiveExtractionPtrOutput { + return o.ApplyT(func(v GuestPoliciesRecipeInstallStepArchiveExtraction) *GuestPoliciesRecipeInstallStepArchiveExtraction { + return &v + }).(GuestPoliciesRecipeInstallStepArchiveExtractionPtrOutput) +} + +// The id of the relevant artifact in the recipe. +func (o GuestPoliciesRecipeInstallStepArchiveExtractionOutput) ArtifactId() pulumi.StringOutput { + return o.ApplyT(func(v GuestPoliciesRecipeInstallStepArchiveExtraction) string { return v.ArtifactId }).(pulumi.StringOutput) +} + +// Directory to extract archive to. Defaults to / on Linux or C:\ on Windows. +func (o GuestPoliciesRecipeInstallStepArchiveExtractionOutput) Destination() pulumi.StringPtrOutput { + return o.ApplyT(func(v GuestPoliciesRecipeInstallStepArchiveExtraction) *string { return v.Destination }).(pulumi.StringPtrOutput) +} + +// The type of the archive to extract. +func (o GuestPoliciesRecipeInstallStepArchiveExtractionOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v GuestPoliciesRecipeInstallStepArchiveExtraction) string { return v.Type }).(pulumi.StringOutput) +} + +type GuestPoliciesRecipeInstallStepArchiveExtractionPtrOutput struct{ *pulumi.OutputState } + +func (GuestPoliciesRecipeInstallStepArchiveExtractionPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**GuestPoliciesRecipeInstallStepArchiveExtraction)(nil)).Elem() +} + +func (o GuestPoliciesRecipeInstallStepArchiveExtractionPtrOutput) ToGuestPoliciesRecipeInstallStepArchiveExtractionPtrOutput() GuestPoliciesRecipeInstallStepArchiveExtractionPtrOutput { + return o +} + +func (o GuestPoliciesRecipeInstallStepArchiveExtractionPtrOutput) ToGuestPoliciesRecipeInstallStepArchiveExtractionPtrOutputWithContext(ctx context.Context) GuestPoliciesRecipeInstallStepArchiveExtractionPtrOutput { + return o +} + +func (o GuestPoliciesRecipeInstallStepArchiveExtractionPtrOutput) Elem() GuestPoliciesRecipeInstallStepArchiveExtractionOutput { + return o.ApplyT(func(v *GuestPoliciesRecipeInstallStepArchiveExtraction) GuestPoliciesRecipeInstallStepArchiveExtraction { + return *v + }).(GuestPoliciesRecipeInstallStepArchiveExtractionOutput) +} + +// The id of the relevant artifact in the recipe. +func (o GuestPoliciesRecipeInstallStepArchiveExtractionPtrOutput) ArtifactId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GuestPoliciesRecipeInstallStepArchiveExtraction) *string { + if v == nil { + return nil + } + return &v.ArtifactId + }).(pulumi.StringPtrOutput) +} + +// Directory to extract archive to. Defaults to / on Linux or C:\ on Windows. +func (o GuestPoliciesRecipeInstallStepArchiveExtractionPtrOutput) Destination() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GuestPoliciesRecipeInstallStepArchiveExtraction) *string { + if v == nil { + return nil + } + return v.Destination + }).(pulumi.StringPtrOutput) +} + +// The type of the archive to extract. +func (o GuestPoliciesRecipeInstallStepArchiveExtractionPtrOutput) Type() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GuestPoliciesRecipeInstallStepArchiveExtraction) *string { + if v == nil { + return nil + } + return &v.Type + }).(pulumi.StringPtrOutput) +} + +type GuestPoliciesRecipeInstallStepDpkgInstallation struct { + // The id of the relevant artifact in the recipe. + ArtifactId string `pulumi:"artifactId"` +} + +// GuestPoliciesRecipeInstallStepDpkgInstallationInput is an input type that accepts GuestPoliciesRecipeInstallStepDpkgInstallationArgs and GuestPoliciesRecipeInstallStepDpkgInstallationOutput values. +// You can construct a concrete instance of `GuestPoliciesRecipeInstallStepDpkgInstallationInput` via: +// +// GuestPoliciesRecipeInstallStepDpkgInstallationArgs{...} +type GuestPoliciesRecipeInstallStepDpkgInstallationInput interface { + pulumi.Input + + ToGuestPoliciesRecipeInstallStepDpkgInstallationOutput() GuestPoliciesRecipeInstallStepDpkgInstallationOutput + ToGuestPoliciesRecipeInstallStepDpkgInstallationOutputWithContext(context.Context) GuestPoliciesRecipeInstallStepDpkgInstallationOutput +} + +type GuestPoliciesRecipeInstallStepDpkgInstallationArgs struct { + // The id of the relevant artifact in the recipe. + ArtifactId pulumi.StringInput `pulumi:"artifactId"` +} + +func (GuestPoliciesRecipeInstallStepDpkgInstallationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GuestPoliciesRecipeInstallStepDpkgInstallation)(nil)).Elem() +} + +func (i GuestPoliciesRecipeInstallStepDpkgInstallationArgs) ToGuestPoliciesRecipeInstallStepDpkgInstallationOutput() GuestPoliciesRecipeInstallStepDpkgInstallationOutput { + return i.ToGuestPoliciesRecipeInstallStepDpkgInstallationOutputWithContext(context.Background()) +} + +func (i GuestPoliciesRecipeInstallStepDpkgInstallationArgs) ToGuestPoliciesRecipeInstallStepDpkgInstallationOutputWithContext(ctx context.Context) GuestPoliciesRecipeInstallStepDpkgInstallationOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuestPoliciesRecipeInstallStepDpkgInstallationOutput) +} + +func (i GuestPoliciesRecipeInstallStepDpkgInstallationArgs) ToGuestPoliciesRecipeInstallStepDpkgInstallationPtrOutput() GuestPoliciesRecipeInstallStepDpkgInstallationPtrOutput { + return i.ToGuestPoliciesRecipeInstallStepDpkgInstallationPtrOutputWithContext(context.Background()) +} + +func (i GuestPoliciesRecipeInstallStepDpkgInstallationArgs) ToGuestPoliciesRecipeInstallStepDpkgInstallationPtrOutputWithContext(ctx context.Context) GuestPoliciesRecipeInstallStepDpkgInstallationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuestPoliciesRecipeInstallStepDpkgInstallationOutput).ToGuestPoliciesRecipeInstallStepDpkgInstallationPtrOutputWithContext(ctx) +} + +// GuestPoliciesRecipeInstallStepDpkgInstallationPtrInput is an input type that accepts GuestPoliciesRecipeInstallStepDpkgInstallationArgs, GuestPoliciesRecipeInstallStepDpkgInstallationPtr and GuestPoliciesRecipeInstallStepDpkgInstallationPtrOutput values. +// You can construct a concrete instance of `GuestPoliciesRecipeInstallStepDpkgInstallationPtrInput` via: +// +// GuestPoliciesRecipeInstallStepDpkgInstallationArgs{...} +// +// or: +// +// nil +type GuestPoliciesRecipeInstallStepDpkgInstallationPtrInput interface { + pulumi.Input + + ToGuestPoliciesRecipeInstallStepDpkgInstallationPtrOutput() GuestPoliciesRecipeInstallStepDpkgInstallationPtrOutput + ToGuestPoliciesRecipeInstallStepDpkgInstallationPtrOutputWithContext(context.Context) GuestPoliciesRecipeInstallStepDpkgInstallationPtrOutput +} + +type guestPoliciesRecipeInstallStepDpkgInstallationPtrType GuestPoliciesRecipeInstallStepDpkgInstallationArgs + +func GuestPoliciesRecipeInstallStepDpkgInstallationPtr(v *GuestPoliciesRecipeInstallStepDpkgInstallationArgs) GuestPoliciesRecipeInstallStepDpkgInstallationPtrInput { + return (*guestPoliciesRecipeInstallStepDpkgInstallationPtrType)(v) +} + +func (*guestPoliciesRecipeInstallStepDpkgInstallationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**GuestPoliciesRecipeInstallStepDpkgInstallation)(nil)).Elem() +} + +func (i *guestPoliciesRecipeInstallStepDpkgInstallationPtrType) ToGuestPoliciesRecipeInstallStepDpkgInstallationPtrOutput() GuestPoliciesRecipeInstallStepDpkgInstallationPtrOutput { + return i.ToGuestPoliciesRecipeInstallStepDpkgInstallationPtrOutputWithContext(context.Background()) +} + +func (i *guestPoliciesRecipeInstallStepDpkgInstallationPtrType) ToGuestPoliciesRecipeInstallStepDpkgInstallationPtrOutputWithContext(ctx context.Context) GuestPoliciesRecipeInstallStepDpkgInstallationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuestPoliciesRecipeInstallStepDpkgInstallationPtrOutput) +} + +type GuestPoliciesRecipeInstallStepDpkgInstallationOutput struct{ *pulumi.OutputState } + +func (GuestPoliciesRecipeInstallStepDpkgInstallationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GuestPoliciesRecipeInstallStepDpkgInstallation)(nil)).Elem() +} + +func (o GuestPoliciesRecipeInstallStepDpkgInstallationOutput) ToGuestPoliciesRecipeInstallStepDpkgInstallationOutput() GuestPoliciesRecipeInstallStepDpkgInstallationOutput { + return o +} + +func (o GuestPoliciesRecipeInstallStepDpkgInstallationOutput) ToGuestPoliciesRecipeInstallStepDpkgInstallationOutputWithContext(ctx context.Context) GuestPoliciesRecipeInstallStepDpkgInstallationOutput { + return o +} + +func (o GuestPoliciesRecipeInstallStepDpkgInstallationOutput) ToGuestPoliciesRecipeInstallStepDpkgInstallationPtrOutput() GuestPoliciesRecipeInstallStepDpkgInstallationPtrOutput { + return o.ToGuestPoliciesRecipeInstallStepDpkgInstallationPtrOutputWithContext(context.Background()) +} + +func (o GuestPoliciesRecipeInstallStepDpkgInstallationOutput) ToGuestPoliciesRecipeInstallStepDpkgInstallationPtrOutputWithContext(ctx context.Context) GuestPoliciesRecipeInstallStepDpkgInstallationPtrOutput { + return o.ApplyT(func(v GuestPoliciesRecipeInstallStepDpkgInstallation) *GuestPoliciesRecipeInstallStepDpkgInstallation { + return &v + }).(GuestPoliciesRecipeInstallStepDpkgInstallationPtrOutput) +} + +// The id of the relevant artifact in the recipe. +func (o GuestPoliciesRecipeInstallStepDpkgInstallationOutput) ArtifactId() pulumi.StringOutput { + return o.ApplyT(func(v GuestPoliciesRecipeInstallStepDpkgInstallation) string { return v.ArtifactId }).(pulumi.StringOutput) +} + +type GuestPoliciesRecipeInstallStepDpkgInstallationPtrOutput struct{ *pulumi.OutputState } + +func (GuestPoliciesRecipeInstallStepDpkgInstallationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**GuestPoliciesRecipeInstallStepDpkgInstallation)(nil)).Elem() +} + +func (o GuestPoliciesRecipeInstallStepDpkgInstallationPtrOutput) ToGuestPoliciesRecipeInstallStepDpkgInstallationPtrOutput() GuestPoliciesRecipeInstallStepDpkgInstallationPtrOutput { + return o +} + +func (o GuestPoliciesRecipeInstallStepDpkgInstallationPtrOutput) ToGuestPoliciesRecipeInstallStepDpkgInstallationPtrOutputWithContext(ctx context.Context) GuestPoliciesRecipeInstallStepDpkgInstallationPtrOutput { + return o +} + +func (o GuestPoliciesRecipeInstallStepDpkgInstallationPtrOutput) Elem() GuestPoliciesRecipeInstallStepDpkgInstallationOutput { + return o.ApplyT(func(v *GuestPoliciesRecipeInstallStepDpkgInstallation) GuestPoliciesRecipeInstallStepDpkgInstallation { + return *v + }).(GuestPoliciesRecipeInstallStepDpkgInstallationOutput) +} + +// The id of the relevant artifact in the recipe. +func (o GuestPoliciesRecipeInstallStepDpkgInstallationPtrOutput) ArtifactId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GuestPoliciesRecipeInstallStepDpkgInstallation) *string { + if v == nil { + return nil + } + return &v.ArtifactId + }).(pulumi.StringPtrOutput) +} + +type GuestPoliciesRecipeInstallStepFileCopy struct { + // The id of the relevant artifact in the recipe. + ArtifactId string `pulumi:"artifactId"` + // Directory to extract archive to. Defaults to / on Linux or C:\ on Windows. + Destination string `pulumi:"destination"` + // Whether to allow this step to overwrite existing files.If this is false and the file already exists the file + // is not overwritten and the step is considered a success. Defaults to false. + Overwrite *bool `pulumi:"overwrite"` + // Consists of three octal digits which represent, in order, the permissions of the owner, group, and other users + // for the file (similarly to the numeric mode used in the linux chmod utility). Each digit represents a three bit + // number with the 4 bit corresponding to the read permissions, the 2 bit corresponds to the write bit, and the one + // bit corresponds to the execute permission. Default behavior is 755. + // Below are some examples of permissions and their associated values: + // read, write, and execute: 7 read and execute: 5 read and write: 6 read only: 4 + Permissions *string `pulumi:"permissions"` +} + +// GuestPoliciesRecipeInstallStepFileCopyInput is an input type that accepts GuestPoliciesRecipeInstallStepFileCopyArgs and GuestPoliciesRecipeInstallStepFileCopyOutput values. +// You can construct a concrete instance of `GuestPoliciesRecipeInstallStepFileCopyInput` via: +// +// GuestPoliciesRecipeInstallStepFileCopyArgs{...} +type GuestPoliciesRecipeInstallStepFileCopyInput interface { + pulumi.Input + + ToGuestPoliciesRecipeInstallStepFileCopyOutput() GuestPoliciesRecipeInstallStepFileCopyOutput + ToGuestPoliciesRecipeInstallStepFileCopyOutputWithContext(context.Context) GuestPoliciesRecipeInstallStepFileCopyOutput +} + +type GuestPoliciesRecipeInstallStepFileCopyArgs struct { + // The id of the relevant artifact in the recipe. + ArtifactId pulumi.StringInput `pulumi:"artifactId"` + // Directory to extract archive to. Defaults to / on Linux or C:\ on Windows. + Destination pulumi.StringInput `pulumi:"destination"` + // Whether to allow this step to overwrite existing files.If this is false and the file already exists the file + // is not overwritten and the step is considered a success. Defaults to false. + Overwrite pulumi.BoolPtrInput `pulumi:"overwrite"` + // Consists of three octal digits which represent, in order, the permissions of the owner, group, and other users + // for the file (similarly to the numeric mode used in the linux chmod utility). Each digit represents a three bit + // number with the 4 bit corresponding to the read permissions, the 2 bit corresponds to the write bit, and the one + // bit corresponds to the execute permission. Default behavior is 755. + // Below are some examples of permissions and their associated values: + // read, write, and execute: 7 read and execute: 5 read and write: 6 read only: 4 + Permissions pulumi.StringPtrInput `pulumi:"permissions"` +} + +func (GuestPoliciesRecipeInstallStepFileCopyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GuestPoliciesRecipeInstallStepFileCopy)(nil)).Elem() +} + +func (i GuestPoliciesRecipeInstallStepFileCopyArgs) ToGuestPoliciesRecipeInstallStepFileCopyOutput() GuestPoliciesRecipeInstallStepFileCopyOutput { + return i.ToGuestPoliciesRecipeInstallStepFileCopyOutputWithContext(context.Background()) +} + +func (i GuestPoliciesRecipeInstallStepFileCopyArgs) ToGuestPoliciesRecipeInstallStepFileCopyOutputWithContext(ctx context.Context) GuestPoliciesRecipeInstallStepFileCopyOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuestPoliciesRecipeInstallStepFileCopyOutput) +} + +func (i GuestPoliciesRecipeInstallStepFileCopyArgs) ToGuestPoliciesRecipeInstallStepFileCopyPtrOutput() GuestPoliciesRecipeInstallStepFileCopyPtrOutput { + return i.ToGuestPoliciesRecipeInstallStepFileCopyPtrOutputWithContext(context.Background()) +} + +func (i GuestPoliciesRecipeInstallStepFileCopyArgs) ToGuestPoliciesRecipeInstallStepFileCopyPtrOutputWithContext(ctx context.Context) GuestPoliciesRecipeInstallStepFileCopyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuestPoliciesRecipeInstallStepFileCopyOutput).ToGuestPoliciesRecipeInstallStepFileCopyPtrOutputWithContext(ctx) +} + +// GuestPoliciesRecipeInstallStepFileCopyPtrInput is an input type that accepts GuestPoliciesRecipeInstallStepFileCopyArgs, GuestPoliciesRecipeInstallStepFileCopyPtr and GuestPoliciesRecipeInstallStepFileCopyPtrOutput values. +// You can construct a concrete instance of `GuestPoliciesRecipeInstallStepFileCopyPtrInput` via: +// +// GuestPoliciesRecipeInstallStepFileCopyArgs{...} +// +// or: +// +// nil +type GuestPoliciesRecipeInstallStepFileCopyPtrInput interface { + pulumi.Input + + ToGuestPoliciesRecipeInstallStepFileCopyPtrOutput() GuestPoliciesRecipeInstallStepFileCopyPtrOutput + ToGuestPoliciesRecipeInstallStepFileCopyPtrOutputWithContext(context.Context) GuestPoliciesRecipeInstallStepFileCopyPtrOutput +} + +type guestPoliciesRecipeInstallStepFileCopyPtrType GuestPoliciesRecipeInstallStepFileCopyArgs + +func GuestPoliciesRecipeInstallStepFileCopyPtr(v *GuestPoliciesRecipeInstallStepFileCopyArgs) GuestPoliciesRecipeInstallStepFileCopyPtrInput { + return (*guestPoliciesRecipeInstallStepFileCopyPtrType)(v) +} + +func (*guestPoliciesRecipeInstallStepFileCopyPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**GuestPoliciesRecipeInstallStepFileCopy)(nil)).Elem() +} + +func (i *guestPoliciesRecipeInstallStepFileCopyPtrType) ToGuestPoliciesRecipeInstallStepFileCopyPtrOutput() GuestPoliciesRecipeInstallStepFileCopyPtrOutput { + return i.ToGuestPoliciesRecipeInstallStepFileCopyPtrOutputWithContext(context.Background()) +} + +func (i *guestPoliciesRecipeInstallStepFileCopyPtrType) ToGuestPoliciesRecipeInstallStepFileCopyPtrOutputWithContext(ctx context.Context) GuestPoliciesRecipeInstallStepFileCopyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuestPoliciesRecipeInstallStepFileCopyPtrOutput) +} + +type GuestPoliciesRecipeInstallStepFileCopyOutput struct{ *pulumi.OutputState } + +func (GuestPoliciesRecipeInstallStepFileCopyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GuestPoliciesRecipeInstallStepFileCopy)(nil)).Elem() +} + +func (o GuestPoliciesRecipeInstallStepFileCopyOutput) ToGuestPoliciesRecipeInstallStepFileCopyOutput() GuestPoliciesRecipeInstallStepFileCopyOutput { + return o +} + +func (o GuestPoliciesRecipeInstallStepFileCopyOutput) ToGuestPoliciesRecipeInstallStepFileCopyOutputWithContext(ctx context.Context) GuestPoliciesRecipeInstallStepFileCopyOutput { + return o +} + +func (o GuestPoliciesRecipeInstallStepFileCopyOutput) ToGuestPoliciesRecipeInstallStepFileCopyPtrOutput() GuestPoliciesRecipeInstallStepFileCopyPtrOutput { + return o.ToGuestPoliciesRecipeInstallStepFileCopyPtrOutputWithContext(context.Background()) +} + +func (o GuestPoliciesRecipeInstallStepFileCopyOutput) ToGuestPoliciesRecipeInstallStepFileCopyPtrOutputWithContext(ctx context.Context) GuestPoliciesRecipeInstallStepFileCopyPtrOutput { + return o.ApplyT(func(v GuestPoliciesRecipeInstallStepFileCopy) *GuestPoliciesRecipeInstallStepFileCopy { + return &v + }).(GuestPoliciesRecipeInstallStepFileCopyPtrOutput) +} + +// The id of the relevant artifact in the recipe. +func (o GuestPoliciesRecipeInstallStepFileCopyOutput) ArtifactId() pulumi.StringOutput { + return o.ApplyT(func(v GuestPoliciesRecipeInstallStepFileCopy) string { return v.ArtifactId }).(pulumi.StringOutput) +} + +// Directory to extract archive to. Defaults to / on Linux or C:\ on Windows. +func (o GuestPoliciesRecipeInstallStepFileCopyOutput) Destination() pulumi.StringOutput { + return o.ApplyT(func(v GuestPoliciesRecipeInstallStepFileCopy) string { return v.Destination }).(pulumi.StringOutput) +} + +// Whether to allow this step to overwrite existing files.If this is false and the file already exists the file +// is not overwritten and the step is considered a success. Defaults to false. +func (o GuestPoliciesRecipeInstallStepFileCopyOutput) Overwrite() pulumi.BoolPtrOutput { + return o.ApplyT(func(v GuestPoliciesRecipeInstallStepFileCopy) *bool { return v.Overwrite }).(pulumi.BoolPtrOutput) +} + +// Consists of three octal digits which represent, in order, the permissions of the owner, group, and other users +// for the file (similarly to the numeric mode used in the linux chmod utility). Each digit represents a three bit +// number with the 4 bit corresponding to the read permissions, the 2 bit corresponds to the write bit, and the one +// bit corresponds to the execute permission. Default behavior is 755. +// Below are some examples of permissions and their associated values: +// read, write, and execute: 7 read and execute: 5 read and write: 6 read only: 4 +func (o GuestPoliciesRecipeInstallStepFileCopyOutput) Permissions() pulumi.StringPtrOutput { + return o.ApplyT(func(v GuestPoliciesRecipeInstallStepFileCopy) *string { return v.Permissions }).(pulumi.StringPtrOutput) +} + +type GuestPoliciesRecipeInstallStepFileCopyPtrOutput struct{ *pulumi.OutputState } + +func (GuestPoliciesRecipeInstallStepFileCopyPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**GuestPoliciesRecipeInstallStepFileCopy)(nil)).Elem() +} + +func (o GuestPoliciesRecipeInstallStepFileCopyPtrOutput) ToGuestPoliciesRecipeInstallStepFileCopyPtrOutput() GuestPoliciesRecipeInstallStepFileCopyPtrOutput { + return o +} + +func (o GuestPoliciesRecipeInstallStepFileCopyPtrOutput) ToGuestPoliciesRecipeInstallStepFileCopyPtrOutputWithContext(ctx context.Context) GuestPoliciesRecipeInstallStepFileCopyPtrOutput { + return o +} + +func (o GuestPoliciesRecipeInstallStepFileCopyPtrOutput) Elem() GuestPoliciesRecipeInstallStepFileCopyOutput { + return o.ApplyT(func(v *GuestPoliciesRecipeInstallStepFileCopy) GuestPoliciesRecipeInstallStepFileCopy { return *v }).(GuestPoliciesRecipeInstallStepFileCopyOutput) +} + +// The id of the relevant artifact in the recipe. +func (o GuestPoliciesRecipeInstallStepFileCopyPtrOutput) ArtifactId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GuestPoliciesRecipeInstallStepFileCopy) *string { + if v == nil { + return nil + } + return &v.ArtifactId + }).(pulumi.StringPtrOutput) +} + +// Directory to extract archive to. Defaults to / on Linux or C:\ on Windows. +func (o GuestPoliciesRecipeInstallStepFileCopyPtrOutput) Destination() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GuestPoliciesRecipeInstallStepFileCopy) *string { + if v == nil { + return nil + } + return &v.Destination + }).(pulumi.StringPtrOutput) +} + +// Whether to allow this step to overwrite existing files.If this is false and the file already exists the file +// is not overwritten and the step is considered a success. Defaults to false. +func (o GuestPoliciesRecipeInstallStepFileCopyPtrOutput) Overwrite() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *GuestPoliciesRecipeInstallStepFileCopy) *bool { + if v == nil { + return nil + } + return v.Overwrite + }).(pulumi.BoolPtrOutput) +} + +// Consists of three octal digits which represent, in order, the permissions of the owner, group, and other users +// for the file (similarly to the numeric mode used in the linux chmod utility). Each digit represents a three bit +// number with the 4 bit corresponding to the read permissions, the 2 bit corresponds to the write bit, and the one +// bit corresponds to the execute permission. Default behavior is 755. +// Below are some examples of permissions and their associated values: +// read, write, and execute: 7 read and execute: 5 read and write: 6 read only: 4 +func (o GuestPoliciesRecipeInstallStepFileCopyPtrOutput) Permissions() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GuestPoliciesRecipeInstallStepFileCopy) *string { + if v == nil { + return nil + } + return v.Permissions + }).(pulumi.StringPtrOutput) +} + +type GuestPoliciesRecipeInstallStepFileExec struct { + // Return codes that indicate that the software installed or updated successfully. Behaviour defaults to [0] + AllowedExitCodes *string `pulumi:"allowedExitCodes"` + // Arguments to be passed to the provided executable. + Args []string `pulumi:"args"` + // The id of the relevant artifact in the recipe. + ArtifactId *string `pulumi:"artifactId"` + // The absolute path of the file on the local filesystem. + LocalPath *string `pulumi:"localPath"` +} + +// GuestPoliciesRecipeInstallStepFileExecInput is an input type that accepts GuestPoliciesRecipeInstallStepFileExecArgs and GuestPoliciesRecipeInstallStepFileExecOutput values. +// You can construct a concrete instance of `GuestPoliciesRecipeInstallStepFileExecInput` via: +// +// GuestPoliciesRecipeInstallStepFileExecArgs{...} +type GuestPoliciesRecipeInstallStepFileExecInput interface { + pulumi.Input + + ToGuestPoliciesRecipeInstallStepFileExecOutput() GuestPoliciesRecipeInstallStepFileExecOutput + ToGuestPoliciesRecipeInstallStepFileExecOutputWithContext(context.Context) GuestPoliciesRecipeInstallStepFileExecOutput +} + +type GuestPoliciesRecipeInstallStepFileExecArgs struct { + // Return codes that indicate that the software installed or updated successfully. Behaviour defaults to [0] + AllowedExitCodes pulumi.StringPtrInput `pulumi:"allowedExitCodes"` + // Arguments to be passed to the provided executable. + Args pulumi.StringArrayInput `pulumi:"args"` + // The id of the relevant artifact in the recipe. + ArtifactId pulumi.StringPtrInput `pulumi:"artifactId"` + // The absolute path of the file on the local filesystem. + LocalPath pulumi.StringPtrInput `pulumi:"localPath"` +} + +func (GuestPoliciesRecipeInstallStepFileExecArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GuestPoliciesRecipeInstallStepFileExec)(nil)).Elem() +} + +func (i GuestPoliciesRecipeInstallStepFileExecArgs) ToGuestPoliciesRecipeInstallStepFileExecOutput() GuestPoliciesRecipeInstallStepFileExecOutput { + return i.ToGuestPoliciesRecipeInstallStepFileExecOutputWithContext(context.Background()) +} + +func (i GuestPoliciesRecipeInstallStepFileExecArgs) ToGuestPoliciesRecipeInstallStepFileExecOutputWithContext(ctx context.Context) GuestPoliciesRecipeInstallStepFileExecOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuestPoliciesRecipeInstallStepFileExecOutput) +} + +func (i GuestPoliciesRecipeInstallStepFileExecArgs) ToGuestPoliciesRecipeInstallStepFileExecPtrOutput() GuestPoliciesRecipeInstallStepFileExecPtrOutput { + return i.ToGuestPoliciesRecipeInstallStepFileExecPtrOutputWithContext(context.Background()) +} + +func (i GuestPoliciesRecipeInstallStepFileExecArgs) ToGuestPoliciesRecipeInstallStepFileExecPtrOutputWithContext(ctx context.Context) GuestPoliciesRecipeInstallStepFileExecPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuestPoliciesRecipeInstallStepFileExecOutput).ToGuestPoliciesRecipeInstallStepFileExecPtrOutputWithContext(ctx) +} + +// GuestPoliciesRecipeInstallStepFileExecPtrInput is an input type that accepts GuestPoliciesRecipeInstallStepFileExecArgs, GuestPoliciesRecipeInstallStepFileExecPtr and GuestPoliciesRecipeInstallStepFileExecPtrOutput values. +// You can construct a concrete instance of `GuestPoliciesRecipeInstallStepFileExecPtrInput` via: +// +// GuestPoliciesRecipeInstallStepFileExecArgs{...} +// +// or: +// +// nil +type GuestPoliciesRecipeInstallStepFileExecPtrInput interface { + pulumi.Input + + ToGuestPoliciesRecipeInstallStepFileExecPtrOutput() GuestPoliciesRecipeInstallStepFileExecPtrOutput + ToGuestPoliciesRecipeInstallStepFileExecPtrOutputWithContext(context.Context) GuestPoliciesRecipeInstallStepFileExecPtrOutput +} + +type guestPoliciesRecipeInstallStepFileExecPtrType GuestPoliciesRecipeInstallStepFileExecArgs + +func GuestPoliciesRecipeInstallStepFileExecPtr(v *GuestPoliciesRecipeInstallStepFileExecArgs) GuestPoliciesRecipeInstallStepFileExecPtrInput { + return (*guestPoliciesRecipeInstallStepFileExecPtrType)(v) +} + +func (*guestPoliciesRecipeInstallStepFileExecPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**GuestPoliciesRecipeInstallStepFileExec)(nil)).Elem() +} + +func (i *guestPoliciesRecipeInstallStepFileExecPtrType) ToGuestPoliciesRecipeInstallStepFileExecPtrOutput() GuestPoliciesRecipeInstallStepFileExecPtrOutput { + return i.ToGuestPoliciesRecipeInstallStepFileExecPtrOutputWithContext(context.Background()) +} + +func (i *guestPoliciesRecipeInstallStepFileExecPtrType) ToGuestPoliciesRecipeInstallStepFileExecPtrOutputWithContext(ctx context.Context) GuestPoliciesRecipeInstallStepFileExecPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuestPoliciesRecipeInstallStepFileExecPtrOutput) +} + +type GuestPoliciesRecipeInstallStepFileExecOutput struct{ *pulumi.OutputState } + +func (GuestPoliciesRecipeInstallStepFileExecOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GuestPoliciesRecipeInstallStepFileExec)(nil)).Elem() +} + +func (o GuestPoliciesRecipeInstallStepFileExecOutput) ToGuestPoliciesRecipeInstallStepFileExecOutput() GuestPoliciesRecipeInstallStepFileExecOutput { + return o +} + +func (o GuestPoliciesRecipeInstallStepFileExecOutput) ToGuestPoliciesRecipeInstallStepFileExecOutputWithContext(ctx context.Context) GuestPoliciesRecipeInstallStepFileExecOutput { + return o +} + +func (o GuestPoliciesRecipeInstallStepFileExecOutput) ToGuestPoliciesRecipeInstallStepFileExecPtrOutput() GuestPoliciesRecipeInstallStepFileExecPtrOutput { + return o.ToGuestPoliciesRecipeInstallStepFileExecPtrOutputWithContext(context.Background()) +} + +func (o GuestPoliciesRecipeInstallStepFileExecOutput) ToGuestPoliciesRecipeInstallStepFileExecPtrOutputWithContext(ctx context.Context) GuestPoliciesRecipeInstallStepFileExecPtrOutput { + return o.ApplyT(func(v GuestPoliciesRecipeInstallStepFileExec) *GuestPoliciesRecipeInstallStepFileExec { + return &v + }).(GuestPoliciesRecipeInstallStepFileExecPtrOutput) +} + +// Return codes that indicate that the software installed or updated successfully. Behaviour defaults to [0] +func (o GuestPoliciesRecipeInstallStepFileExecOutput) AllowedExitCodes() pulumi.StringPtrOutput { + return o.ApplyT(func(v GuestPoliciesRecipeInstallStepFileExec) *string { return v.AllowedExitCodes }).(pulumi.StringPtrOutput) +} + +// Arguments to be passed to the provided executable. +func (o GuestPoliciesRecipeInstallStepFileExecOutput) Args() pulumi.StringArrayOutput { + return o.ApplyT(func(v GuestPoliciesRecipeInstallStepFileExec) []string { return v.Args }).(pulumi.StringArrayOutput) +} + +// The id of the relevant artifact in the recipe. +func (o GuestPoliciesRecipeInstallStepFileExecOutput) ArtifactId() pulumi.StringPtrOutput { + return o.ApplyT(func(v GuestPoliciesRecipeInstallStepFileExec) *string { return v.ArtifactId }).(pulumi.StringPtrOutput) +} + +// The absolute path of the file on the local filesystem. +func (o GuestPoliciesRecipeInstallStepFileExecOutput) LocalPath() pulumi.StringPtrOutput { + return o.ApplyT(func(v GuestPoliciesRecipeInstallStepFileExec) *string { return v.LocalPath }).(pulumi.StringPtrOutput) +} + +type GuestPoliciesRecipeInstallStepFileExecPtrOutput struct{ *pulumi.OutputState } + +func (GuestPoliciesRecipeInstallStepFileExecPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**GuestPoliciesRecipeInstallStepFileExec)(nil)).Elem() +} + +func (o GuestPoliciesRecipeInstallStepFileExecPtrOutput) ToGuestPoliciesRecipeInstallStepFileExecPtrOutput() GuestPoliciesRecipeInstallStepFileExecPtrOutput { + return o +} + +func (o GuestPoliciesRecipeInstallStepFileExecPtrOutput) ToGuestPoliciesRecipeInstallStepFileExecPtrOutputWithContext(ctx context.Context) GuestPoliciesRecipeInstallStepFileExecPtrOutput { + return o +} + +func (o GuestPoliciesRecipeInstallStepFileExecPtrOutput) Elem() GuestPoliciesRecipeInstallStepFileExecOutput { + return o.ApplyT(func(v *GuestPoliciesRecipeInstallStepFileExec) GuestPoliciesRecipeInstallStepFileExec { return *v }).(GuestPoliciesRecipeInstallStepFileExecOutput) +} + +// Return codes that indicate that the software installed or updated successfully. Behaviour defaults to [0] +func (o GuestPoliciesRecipeInstallStepFileExecPtrOutput) AllowedExitCodes() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GuestPoliciesRecipeInstallStepFileExec) *string { + if v == nil { + return nil + } + return v.AllowedExitCodes + }).(pulumi.StringPtrOutput) +} + +// Arguments to be passed to the provided executable. +func (o GuestPoliciesRecipeInstallStepFileExecPtrOutput) Args() pulumi.StringArrayOutput { + return o.ApplyT(func(v *GuestPoliciesRecipeInstallStepFileExec) []string { + if v == nil { + return nil + } + return v.Args + }).(pulumi.StringArrayOutput) +} + +// The id of the relevant artifact in the recipe. +func (o GuestPoliciesRecipeInstallStepFileExecPtrOutput) ArtifactId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GuestPoliciesRecipeInstallStepFileExec) *string { + if v == nil { + return nil + } + return v.ArtifactId + }).(pulumi.StringPtrOutput) +} + +// The absolute path of the file on the local filesystem. +func (o GuestPoliciesRecipeInstallStepFileExecPtrOutput) LocalPath() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GuestPoliciesRecipeInstallStepFileExec) *string { + if v == nil { + return nil + } + return v.LocalPath + }).(pulumi.StringPtrOutput) +} + +type GuestPoliciesRecipeInstallStepMsiInstallation struct { + // Return codes that indicate that the software installed or updated successfully. Behaviour defaults to [0] + AllowedExitCodes []int `pulumi:"allowedExitCodes"` + // The id of the relevant artifact in the recipe. + ArtifactId string `pulumi:"artifactId"` + // The flags to use when installing the MSI. Defaults to the install flag. + Flags []string `pulumi:"flags"` +} + +// GuestPoliciesRecipeInstallStepMsiInstallationInput is an input type that accepts GuestPoliciesRecipeInstallStepMsiInstallationArgs and GuestPoliciesRecipeInstallStepMsiInstallationOutput values. +// You can construct a concrete instance of `GuestPoliciesRecipeInstallStepMsiInstallationInput` via: +// +// GuestPoliciesRecipeInstallStepMsiInstallationArgs{...} +type GuestPoliciesRecipeInstallStepMsiInstallationInput interface { + pulumi.Input + + ToGuestPoliciesRecipeInstallStepMsiInstallationOutput() GuestPoliciesRecipeInstallStepMsiInstallationOutput + ToGuestPoliciesRecipeInstallStepMsiInstallationOutputWithContext(context.Context) GuestPoliciesRecipeInstallStepMsiInstallationOutput +} + +type GuestPoliciesRecipeInstallStepMsiInstallationArgs struct { + // Return codes that indicate that the software installed or updated successfully. Behaviour defaults to [0] + AllowedExitCodes pulumi.IntArrayInput `pulumi:"allowedExitCodes"` + // The id of the relevant artifact in the recipe. + ArtifactId pulumi.StringInput `pulumi:"artifactId"` + // The flags to use when installing the MSI. Defaults to the install flag. + Flags pulumi.StringArrayInput `pulumi:"flags"` +} + +func (GuestPoliciesRecipeInstallStepMsiInstallationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GuestPoliciesRecipeInstallStepMsiInstallation)(nil)).Elem() +} + +func (i GuestPoliciesRecipeInstallStepMsiInstallationArgs) ToGuestPoliciesRecipeInstallStepMsiInstallationOutput() GuestPoliciesRecipeInstallStepMsiInstallationOutput { + return i.ToGuestPoliciesRecipeInstallStepMsiInstallationOutputWithContext(context.Background()) +} + +func (i GuestPoliciesRecipeInstallStepMsiInstallationArgs) ToGuestPoliciesRecipeInstallStepMsiInstallationOutputWithContext(ctx context.Context) GuestPoliciesRecipeInstallStepMsiInstallationOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuestPoliciesRecipeInstallStepMsiInstallationOutput) +} + +func (i GuestPoliciesRecipeInstallStepMsiInstallationArgs) ToGuestPoliciesRecipeInstallStepMsiInstallationPtrOutput() GuestPoliciesRecipeInstallStepMsiInstallationPtrOutput { + return i.ToGuestPoliciesRecipeInstallStepMsiInstallationPtrOutputWithContext(context.Background()) +} + +func (i GuestPoliciesRecipeInstallStepMsiInstallationArgs) ToGuestPoliciesRecipeInstallStepMsiInstallationPtrOutputWithContext(ctx context.Context) GuestPoliciesRecipeInstallStepMsiInstallationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuestPoliciesRecipeInstallStepMsiInstallationOutput).ToGuestPoliciesRecipeInstallStepMsiInstallationPtrOutputWithContext(ctx) +} + +// GuestPoliciesRecipeInstallStepMsiInstallationPtrInput is an input type that accepts GuestPoliciesRecipeInstallStepMsiInstallationArgs, GuestPoliciesRecipeInstallStepMsiInstallationPtr and GuestPoliciesRecipeInstallStepMsiInstallationPtrOutput values. +// You can construct a concrete instance of `GuestPoliciesRecipeInstallStepMsiInstallationPtrInput` via: +// +// GuestPoliciesRecipeInstallStepMsiInstallationArgs{...} +// +// or: +// +// nil +type GuestPoliciesRecipeInstallStepMsiInstallationPtrInput interface { + pulumi.Input + + ToGuestPoliciesRecipeInstallStepMsiInstallationPtrOutput() GuestPoliciesRecipeInstallStepMsiInstallationPtrOutput + ToGuestPoliciesRecipeInstallStepMsiInstallationPtrOutputWithContext(context.Context) GuestPoliciesRecipeInstallStepMsiInstallationPtrOutput +} + +type guestPoliciesRecipeInstallStepMsiInstallationPtrType GuestPoliciesRecipeInstallStepMsiInstallationArgs + +func GuestPoliciesRecipeInstallStepMsiInstallationPtr(v *GuestPoliciesRecipeInstallStepMsiInstallationArgs) GuestPoliciesRecipeInstallStepMsiInstallationPtrInput { + return (*guestPoliciesRecipeInstallStepMsiInstallationPtrType)(v) +} + +func (*guestPoliciesRecipeInstallStepMsiInstallationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**GuestPoliciesRecipeInstallStepMsiInstallation)(nil)).Elem() +} + +func (i *guestPoliciesRecipeInstallStepMsiInstallationPtrType) ToGuestPoliciesRecipeInstallStepMsiInstallationPtrOutput() GuestPoliciesRecipeInstallStepMsiInstallationPtrOutput { + return i.ToGuestPoliciesRecipeInstallStepMsiInstallationPtrOutputWithContext(context.Background()) +} + +func (i *guestPoliciesRecipeInstallStepMsiInstallationPtrType) ToGuestPoliciesRecipeInstallStepMsiInstallationPtrOutputWithContext(ctx context.Context) GuestPoliciesRecipeInstallStepMsiInstallationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuestPoliciesRecipeInstallStepMsiInstallationPtrOutput) +} + +type GuestPoliciesRecipeInstallStepMsiInstallationOutput struct{ *pulumi.OutputState } + +func (GuestPoliciesRecipeInstallStepMsiInstallationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GuestPoliciesRecipeInstallStepMsiInstallation)(nil)).Elem() +} + +func (o GuestPoliciesRecipeInstallStepMsiInstallationOutput) ToGuestPoliciesRecipeInstallStepMsiInstallationOutput() GuestPoliciesRecipeInstallStepMsiInstallationOutput { + return o +} + +func (o GuestPoliciesRecipeInstallStepMsiInstallationOutput) ToGuestPoliciesRecipeInstallStepMsiInstallationOutputWithContext(ctx context.Context) GuestPoliciesRecipeInstallStepMsiInstallationOutput { + return o +} + +func (o GuestPoliciesRecipeInstallStepMsiInstallationOutput) ToGuestPoliciesRecipeInstallStepMsiInstallationPtrOutput() GuestPoliciesRecipeInstallStepMsiInstallationPtrOutput { + return o.ToGuestPoliciesRecipeInstallStepMsiInstallationPtrOutputWithContext(context.Background()) +} + +func (o GuestPoliciesRecipeInstallStepMsiInstallationOutput) ToGuestPoliciesRecipeInstallStepMsiInstallationPtrOutputWithContext(ctx context.Context) GuestPoliciesRecipeInstallStepMsiInstallationPtrOutput { + return o.ApplyT(func(v GuestPoliciesRecipeInstallStepMsiInstallation) *GuestPoliciesRecipeInstallStepMsiInstallation { + return &v + }).(GuestPoliciesRecipeInstallStepMsiInstallationPtrOutput) +} + +// Return codes that indicate that the software installed or updated successfully. Behaviour defaults to [0] +func (o GuestPoliciesRecipeInstallStepMsiInstallationOutput) AllowedExitCodes() pulumi.IntArrayOutput { + return o.ApplyT(func(v GuestPoliciesRecipeInstallStepMsiInstallation) []int { return v.AllowedExitCodes }).(pulumi.IntArrayOutput) +} + +// The id of the relevant artifact in the recipe. +func (o GuestPoliciesRecipeInstallStepMsiInstallationOutput) ArtifactId() pulumi.StringOutput { + return o.ApplyT(func(v GuestPoliciesRecipeInstallStepMsiInstallation) string { return v.ArtifactId }).(pulumi.StringOutput) +} + +// The flags to use when installing the MSI. Defaults to the install flag. +func (o GuestPoliciesRecipeInstallStepMsiInstallationOutput) Flags() pulumi.StringArrayOutput { + return o.ApplyT(func(v GuestPoliciesRecipeInstallStepMsiInstallation) []string { return v.Flags }).(pulumi.StringArrayOutput) +} + +type GuestPoliciesRecipeInstallStepMsiInstallationPtrOutput struct{ *pulumi.OutputState } + +func (GuestPoliciesRecipeInstallStepMsiInstallationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**GuestPoliciesRecipeInstallStepMsiInstallation)(nil)).Elem() +} + +func (o GuestPoliciesRecipeInstallStepMsiInstallationPtrOutput) ToGuestPoliciesRecipeInstallStepMsiInstallationPtrOutput() GuestPoliciesRecipeInstallStepMsiInstallationPtrOutput { + return o +} + +func (o GuestPoliciesRecipeInstallStepMsiInstallationPtrOutput) ToGuestPoliciesRecipeInstallStepMsiInstallationPtrOutputWithContext(ctx context.Context) GuestPoliciesRecipeInstallStepMsiInstallationPtrOutput { + return o +} + +func (o GuestPoliciesRecipeInstallStepMsiInstallationPtrOutput) Elem() GuestPoliciesRecipeInstallStepMsiInstallationOutput { + return o.ApplyT(func(v *GuestPoliciesRecipeInstallStepMsiInstallation) GuestPoliciesRecipeInstallStepMsiInstallation { + return *v + }).(GuestPoliciesRecipeInstallStepMsiInstallationOutput) +} + +// Return codes that indicate that the software installed or updated successfully. Behaviour defaults to [0] +func (o GuestPoliciesRecipeInstallStepMsiInstallationPtrOutput) AllowedExitCodes() pulumi.IntArrayOutput { + return o.ApplyT(func(v *GuestPoliciesRecipeInstallStepMsiInstallation) []int { + if v == nil { + return nil + } + return v.AllowedExitCodes + }).(pulumi.IntArrayOutput) +} + +// The id of the relevant artifact in the recipe. +func (o GuestPoliciesRecipeInstallStepMsiInstallationPtrOutput) ArtifactId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GuestPoliciesRecipeInstallStepMsiInstallation) *string { + if v == nil { + return nil + } + return &v.ArtifactId + }).(pulumi.StringPtrOutput) +} + +// The flags to use when installing the MSI. Defaults to the install flag. +func (o GuestPoliciesRecipeInstallStepMsiInstallationPtrOutput) Flags() pulumi.StringArrayOutput { + return o.ApplyT(func(v *GuestPoliciesRecipeInstallStepMsiInstallation) []string { + if v == nil { + return nil + } + return v.Flags + }).(pulumi.StringArrayOutput) +} + +type GuestPoliciesRecipeInstallStepRpmInstallation struct { + // The id of the relevant artifact in the recipe. + ArtifactId string `pulumi:"artifactId"` +} + +// GuestPoliciesRecipeInstallStepRpmInstallationInput is an input type that accepts GuestPoliciesRecipeInstallStepRpmInstallationArgs and GuestPoliciesRecipeInstallStepRpmInstallationOutput values. +// You can construct a concrete instance of `GuestPoliciesRecipeInstallStepRpmInstallationInput` via: +// +// GuestPoliciesRecipeInstallStepRpmInstallationArgs{...} +type GuestPoliciesRecipeInstallStepRpmInstallationInput interface { + pulumi.Input + + ToGuestPoliciesRecipeInstallStepRpmInstallationOutput() GuestPoliciesRecipeInstallStepRpmInstallationOutput + ToGuestPoliciesRecipeInstallStepRpmInstallationOutputWithContext(context.Context) GuestPoliciesRecipeInstallStepRpmInstallationOutput +} + +type GuestPoliciesRecipeInstallStepRpmInstallationArgs struct { + // The id of the relevant artifact in the recipe. + ArtifactId pulumi.StringInput `pulumi:"artifactId"` +} + +func (GuestPoliciesRecipeInstallStepRpmInstallationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GuestPoliciesRecipeInstallStepRpmInstallation)(nil)).Elem() +} + +func (i GuestPoliciesRecipeInstallStepRpmInstallationArgs) ToGuestPoliciesRecipeInstallStepRpmInstallationOutput() GuestPoliciesRecipeInstallStepRpmInstallationOutput { + return i.ToGuestPoliciesRecipeInstallStepRpmInstallationOutputWithContext(context.Background()) +} + +func (i GuestPoliciesRecipeInstallStepRpmInstallationArgs) ToGuestPoliciesRecipeInstallStepRpmInstallationOutputWithContext(ctx context.Context) GuestPoliciesRecipeInstallStepRpmInstallationOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuestPoliciesRecipeInstallStepRpmInstallationOutput) +} + +func (i GuestPoliciesRecipeInstallStepRpmInstallationArgs) ToGuestPoliciesRecipeInstallStepRpmInstallationPtrOutput() GuestPoliciesRecipeInstallStepRpmInstallationPtrOutput { + return i.ToGuestPoliciesRecipeInstallStepRpmInstallationPtrOutputWithContext(context.Background()) +} + +func (i GuestPoliciesRecipeInstallStepRpmInstallationArgs) ToGuestPoliciesRecipeInstallStepRpmInstallationPtrOutputWithContext(ctx context.Context) GuestPoliciesRecipeInstallStepRpmInstallationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuestPoliciesRecipeInstallStepRpmInstallationOutput).ToGuestPoliciesRecipeInstallStepRpmInstallationPtrOutputWithContext(ctx) +} + +// GuestPoliciesRecipeInstallStepRpmInstallationPtrInput is an input type that accepts GuestPoliciesRecipeInstallStepRpmInstallationArgs, GuestPoliciesRecipeInstallStepRpmInstallationPtr and GuestPoliciesRecipeInstallStepRpmInstallationPtrOutput values. +// You can construct a concrete instance of `GuestPoliciesRecipeInstallStepRpmInstallationPtrInput` via: +// +// GuestPoliciesRecipeInstallStepRpmInstallationArgs{...} +// +// or: +// +// nil +type GuestPoliciesRecipeInstallStepRpmInstallationPtrInput interface { + pulumi.Input + + ToGuestPoliciesRecipeInstallStepRpmInstallationPtrOutput() GuestPoliciesRecipeInstallStepRpmInstallationPtrOutput + ToGuestPoliciesRecipeInstallStepRpmInstallationPtrOutputWithContext(context.Context) GuestPoliciesRecipeInstallStepRpmInstallationPtrOutput +} + +type guestPoliciesRecipeInstallStepRpmInstallationPtrType GuestPoliciesRecipeInstallStepRpmInstallationArgs + +func GuestPoliciesRecipeInstallStepRpmInstallationPtr(v *GuestPoliciesRecipeInstallStepRpmInstallationArgs) GuestPoliciesRecipeInstallStepRpmInstallationPtrInput { + return (*guestPoliciesRecipeInstallStepRpmInstallationPtrType)(v) +} + +func (*guestPoliciesRecipeInstallStepRpmInstallationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**GuestPoliciesRecipeInstallStepRpmInstallation)(nil)).Elem() +} + +func (i *guestPoliciesRecipeInstallStepRpmInstallationPtrType) ToGuestPoliciesRecipeInstallStepRpmInstallationPtrOutput() GuestPoliciesRecipeInstallStepRpmInstallationPtrOutput { + return i.ToGuestPoliciesRecipeInstallStepRpmInstallationPtrOutputWithContext(context.Background()) +} + +func (i *guestPoliciesRecipeInstallStepRpmInstallationPtrType) ToGuestPoliciesRecipeInstallStepRpmInstallationPtrOutputWithContext(ctx context.Context) GuestPoliciesRecipeInstallStepRpmInstallationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuestPoliciesRecipeInstallStepRpmInstallationPtrOutput) +} + +type GuestPoliciesRecipeInstallStepRpmInstallationOutput struct{ *pulumi.OutputState } + +func (GuestPoliciesRecipeInstallStepRpmInstallationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GuestPoliciesRecipeInstallStepRpmInstallation)(nil)).Elem() +} + +func (o GuestPoliciesRecipeInstallStepRpmInstallationOutput) ToGuestPoliciesRecipeInstallStepRpmInstallationOutput() GuestPoliciesRecipeInstallStepRpmInstallationOutput { + return o +} + +func (o GuestPoliciesRecipeInstallStepRpmInstallationOutput) ToGuestPoliciesRecipeInstallStepRpmInstallationOutputWithContext(ctx context.Context) GuestPoliciesRecipeInstallStepRpmInstallationOutput { + return o +} + +func (o GuestPoliciesRecipeInstallStepRpmInstallationOutput) ToGuestPoliciesRecipeInstallStepRpmInstallationPtrOutput() GuestPoliciesRecipeInstallStepRpmInstallationPtrOutput { + return o.ToGuestPoliciesRecipeInstallStepRpmInstallationPtrOutputWithContext(context.Background()) +} + +func (o GuestPoliciesRecipeInstallStepRpmInstallationOutput) ToGuestPoliciesRecipeInstallStepRpmInstallationPtrOutputWithContext(ctx context.Context) GuestPoliciesRecipeInstallStepRpmInstallationPtrOutput { + return o.ApplyT(func(v GuestPoliciesRecipeInstallStepRpmInstallation) *GuestPoliciesRecipeInstallStepRpmInstallation { + return &v + }).(GuestPoliciesRecipeInstallStepRpmInstallationPtrOutput) +} + +// The id of the relevant artifact in the recipe. +func (o GuestPoliciesRecipeInstallStepRpmInstallationOutput) ArtifactId() pulumi.StringOutput { + return o.ApplyT(func(v GuestPoliciesRecipeInstallStepRpmInstallation) string { return v.ArtifactId }).(pulumi.StringOutput) +} + +type GuestPoliciesRecipeInstallStepRpmInstallationPtrOutput struct{ *pulumi.OutputState } + +func (GuestPoliciesRecipeInstallStepRpmInstallationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**GuestPoliciesRecipeInstallStepRpmInstallation)(nil)).Elem() +} + +func (o GuestPoliciesRecipeInstallStepRpmInstallationPtrOutput) ToGuestPoliciesRecipeInstallStepRpmInstallationPtrOutput() GuestPoliciesRecipeInstallStepRpmInstallationPtrOutput { + return o +} + +func (o GuestPoliciesRecipeInstallStepRpmInstallationPtrOutput) ToGuestPoliciesRecipeInstallStepRpmInstallationPtrOutputWithContext(ctx context.Context) GuestPoliciesRecipeInstallStepRpmInstallationPtrOutput { + return o +} + +func (o GuestPoliciesRecipeInstallStepRpmInstallationPtrOutput) Elem() GuestPoliciesRecipeInstallStepRpmInstallationOutput { + return o.ApplyT(func(v *GuestPoliciesRecipeInstallStepRpmInstallation) GuestPoliciesRecipeInstallStepRpmInstallation { + return *v + }).(GuestPoliciesRecipeInstallStepRpmInstallationOutput) +} + +// The id of the relevant artifact in the recipe. +func (o GuestPoliciesRecipeInstallStepRpmInstallationPtrOutput) ArtifactId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GuestPoliciesRecipeInstallStepRpmInstallation) *string { + if v == nil { + return nil + } + return &v.ArtifactId + }).(pulumi.StringPtrOutput) +} + +type GuestPoliciesRecipeInstallStepScriptRun struct { + // Return codes that indicate that the software installed or updated successfully. Behaviour defaults to [0] + AllowedExitCodes []int `pulumi:"allowedExitCodes"` + // The script interpreter to use to run the script. If no interpreter is specified the script is executed directly, + // which likely only succeed for scripts with shebang lines. + Interpreter *string `pulumi:"interpreter"` + // The shell script to be executed. + Script string `pulumi:"script"` +} + +// GuestPoliciesRecipeInstallStepScriptRunInput is an input type that accepts GuestPoliciesRecipeInstallStepScriptRunArgs and GuestPoliciesRecipeInstallStepScriptRunOutput values. +// You can construct a concrete instance of `GuestPoliciesRecipeInstallStepScriptRunInput` via: +// +// GuestPoliciesRecipeInstallStepScriptRunArgs{...} +type GuestPoliciesRecipeInstallStepScriptRunInput interface { + pulumi.Input + + ToGuestPoliciesRecipeInstallStepScriptRunOutput() GuestPoliciesRecipeInstallStepScriptRunOutput + ToGuestPoliciesRecipeInstallStepScriptRunOutputWithContext(context.Context) GuestPoliciesRecipeInstallStepScriptRunOutput +} + +type GuestPoliciesRecipeInstallStepScriptRunArgs struct { + // Return codes that indicate that the software installed or updated successfully. Behaviour defaults to [0] + AllowedExitCodes pulumi.IntArrayInput `pulumi:"allowedExitCodes"` + // The script interpreter to use to run the script. If no interpreter is specified the script is executed directly, + // which likely only succeed for scripts with shebang lines. + Interpreter pulumi.StringPtrInput `pulumi:"interpreter"` + // The shell script to be executed. + Script pulumi.StringInput `pulumi:"script"` +} + +func (GuestPoliciesRecipeInstallStepScriptRunArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GuestPoliciesRecipeInstallStepScriptRun)(nil)).Elem() +} + +func (i GuestPoliciesRecipeInstallStepScriptRunArgs) ToGuestPoliciesRecipeInstallStepScriptRunOutput() GuestPoliciesRecipeInstallStepScriptRunOutput { + return i.ToGuestPoliciesRecipeInstallStepScriptRunOutputWithContext(context.Background()) +} + +func (i GuestPoliciesRecipeInstallStepScriptRunArgs) ToGuestPoliciesRecipeInstallStepScriptRunOutputWithContext(ctx context.Context) GuestPoliciesRecipeInstallStepScriptRunOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuestPoliciesRecipeInstallStepScriptRunOutput) +} + +func (i GuestPoliciesRecipeInstallStepScriptRunArgs) ToGuestPoliciesRecipeInstallStepScriptRunPtrOutput() GuestPoliciesRecipeInstallStepScriptRunPtrOutput { + return i.ToGuestPoliciesRecipeInstallStepScriptRunPtrOutputWithContext(context.Background()) +} + +func (i GuestPoliciesRecipeInstallStepScriptRunArgs) ToGuestPoliciesRecipeInstallStepScriptRunPtrOutputWithContext(ctx context.Context) GuestPoliciesRecipeInstallStepScriptRunPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuestPoliciesRecipeInstallStepScriptRunOutput).ToGuestPoliciesRecipeInstallStepScriptRunPtrOutputWithContext(ctx) +} + +// GuestPoliciesRecipeInstallStepScriptRunPtrInput is an input type that accepts GuestPoliciesRecipeInstallStepScriptRunArgs, GuestPoliciesRecipeInstallStepScriptRunPtr and GuestPoliciesRecipeInstallStepScriptRunPtrOutput values. +// You can construct a concrete instance of `GuestPoliciesRecipeInstallStepScriptRunPtrInput` via: +// +// GuestPoliciesRecipeInstallStepScriptRunArgs{...} +// +// or: +// +// nil +type GuestPoliciesRecipeInstallStepScriptRunPtrInput interface { + pulumi.Input + + ToGuestPoliciesRecipeInstallStepScriptRunPtrOutput() GuestPoliciesRecipeInstallStepScriptRunPtrOutput + ToGuestPoliciesRecipeInstallStepScriptRunPtrOutputWithContext(context.Context) GuestPoliciesRecipeInstallStepScriptRunPtrOutput +} + +type guestPoliciesRecipeInstallStepScriptRunPtrType GuestPoliciesRecipeInstallStepScriptRunArgs + +func GuestPoliciesRecipeInstallStepScriptRunPtr(v *GuestPoliciesRecipeInstallStepScriptRunArgs) GuestPoliciesRecipeInstallStepScriptRunPtrInput { + return (*guestPoliciesRecipeInstallStepScriptRunPtrType)(v) +} + +func (*guestPoliciesRecipeInstallStepScriptRunPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**GuestPoliciesRecipeInstallStepScriptRun)(nil)).Elem() +} + +func (i *guestPoliciesRecipeInstallStepScriptRunPtrType) ToGuestPoliciesRecipeInstallStepScriptRunPtrOutput() GuestPoliciesRecipeInstallStepScriptRunPtrOutput { + return i.ToGuestPoliciesRecipeInstallStepScriptRunPtrOutputWithContext(context.Background()) +} + +func (i *guestPoliciesRecipeInstallStepScriptRunPtrType) ToGuestPoliciesRecipeInstallStepScriptRunPtrOutputWithContext(ctx context.Context) GuestPoliciesRecipeInstallStepScriptRunPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuestPoliciesRecipeInstallStepScriptRunPtrOutput) +} + +type GuestPoliciesRecipeInstallStepScriptRunOutput struct{ *pulumi.OutputState } + +func (GuestPoliciesRecipeInstallStepScriptRunOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GuestPoliciesRecipeInstallStepScriptRun)(nil)).Elem() +} + +func (o GuestPoliciesRecipeInstallStepScriptRunOutput) ToGuestPoliciesRecipeInstallStepScriptRunOutput() GuestPoliciesRecipeInstallStepScriptRunOutput { + return o +} + +func (o GuestPoliciesRecipeInstallStepScriptRunOutput) ToGuestPoliciesRecipeInstallStepScriptRunOutputWithContext(ctx context.Context) GuestPoliciesRecipeInstallStepScriptRunOutput { + return o +} + +func (o GuestPoliciesRecipeInstallStepScriptRunOutput) ToGuestPoliciesRecipeInstallStepScriptRunPtrOutput() GuestPoliciesRecipeInstallStepScriptRunPtrOutput { + return o.ToGuestPoliciesRecipeInstallStepScriptRunPtrOutputWithContext(context.Background()) +} + +func (o GuestPoliciesRecipeInstallStepScriptRunOutput) ToGuestPoliciesRecipeInstallStepScriptRunPtrOutputWithContext(ctx context.Context) GuestPoliciesRecipeInstallStepScriptRunPtrOutput { + return o.ApplyT(func(v GuestPoliciesRecipeInstallStepScriptRun) *GuestPoliciesRecipeInstallStepScriptRun { + return &v + }).(GuestPoliciesRecipeInstallStepScriptRunPtrOutput) +} + +// Return codes that indicate that the software installed or updated successfully. Behaviour defaults to [0] +func (o GuestPoliciesRecipeInstallStepScriptRunOutput) AllowedExitCodes() pulumi.IntArrayOutput { + return o.ApplyT(func(v GuestPoliciesRecipeInstallStepScriptRun) []int { return v.AllowedExitCodes }).(pulumi.IntArrayOutput) +} + +// The script interpreter to use to run the script. If no interpreter is specified the script is executed directly, +// which likely only succeed for scripts with shebang lines. +func (o GuestPoliciesRecipeInstallStepScriptRunOutput) Interpreter() pulumi.StringPtrOutput { + return o.ApplyT(func(v GuestPoliciesRecipeInstallStepScriptRun) *string { return v.Interpreter }).(pulumi.StringPtrOutput) +} + +// The shell script to be executed. +func (o GuestPoliciesRecipeInstallStepScriptRunOutput) Script() pulumi.StringOutput { + return o.ApplyT(func(v GuestPoliciesRecipeInstallStepScriptRun) string { return v.Script }).(pulumi.StringOutput) +} + +type GuestPoliciesRecipeInstallStepScriptRunPtrOutput struct{ *pulumi.OutputState } + +func (GuestPoliciesRecipeInstallStepScriptRunPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**GuestPoliciesRecipeInstallStepScriptRun)(nil)).Elem() +} + +func (o GuestPoliciesRecipeInstallStepScriptRunPtrOutput) ToGuestPoliciesRecipeInstallStepScriptRunPtrOutput() GuestPoliciesRecipeInstallStepScriptRunPtrOutput { + return o +} + +func (o GuestPoliciesRecipeInstallStepScriptRunPtrOutput) ToGuestPoliciesRecipeInstallStepScriptRunPtrOutputWithContext(ctx context.Context) GuestPoliciesRecipeInstallStepScriptRunPtrOutput { + return o +} + +func (o GuestPoliciesRecipeInstallStepScriptRunPtrOutput) Elem() GuestPoliciesRecipeInstallStepScriptRunOutput { + return o.ApplyT(func(v *GuestPoliciesRecipeInstallStepScriptRun) GuestPoliciesRecipeInstallStepScriptRun { return *v }).(GuestPoliciesRecipeInstallStepScriptRunOutput) +} + +// Return codes that indicate that the software installed or updated successfully. Behaviour defaults to [0] +func (o GuestPoliciesRecipeInstallStepScriptRunPtrOutput) AllowedExitCodes() pulumi.IntArrayOutput { + return o.ApplyT(func(v *GuestPoliciesRecipeInstallStepScriptRun) []int { + if v == nil { + return nil + } + return v.AllowedExitCodes + }).(pulumi.IntArrayOutput) +} + +// The script interpreter to use to run the script. If no interpreter is specified the script is executed directly, +// which likely only succeed for scripts with shebang lines. +func (o GuestPoliciesRecipeInstallStepScriptRunPtrOutput) Interpreter() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GuestPoliciesRecipeInstallStepScriptRun) *string { + if v == nil { + return nil + } + return v.Interpreter + }).(pulumi.StringPtrOutput) +} + +// The shell script to be executed. +func (o GuestPoliciesRecipeInstallStepScriptRunPtrOutput) Script() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GuestPoliciesRecipeInstallStepScriptRun) *string { + if v == nil { + return nil + } + return &v.Script + }).(pulumi.StringPtrOutput) +} + +type GuestPoliciesRecipeUpdateStep struct { + // Extracts an archive into the specified directory. Structure is documented below. + ArchiveExtraction *GuestPoliciesRecipeUpdateStepArchiveExtraction `pulumi:"archiveExtraction"` + // Installs a deb file via dpkg. Structure is documented below. + DpkgInstallation *GuestPoliciesRecipeUpdateStepDpkgInstallation `pulumi:"dpkgInstallation"` + // Copies a file onto the instance. Structure is documented below. + FileCopy *GuestPoliciesRecipeUpdateStepFileCopy `pulumi:"fileCopy"` + // Executes an artifact or local file. Structure is documented below. + FileExec *GuestPoliciesRecipeUpdateStepFileExec `pulumi:"fileExec"` + // Installs an MSI file. Structure is documented below. + MsiInstallation *GuestPoliciesRecipeUpdateStepMsiInstallation `pulumi:"msiInstallation"` + // Installs an rpm file via the rpm utility. Structure is documented below. + RpmInstallation *GuestPoliciesRecipeUpdateStepRpmInstallation `pulumi:"rpmInstallation"` + // Runs commands in a shell. Structure is documented below. + ScriptRun *GuestPoliciesRecipeUpdateStepScriptRun `pulumi:"scriptRun"` +} + +// GuestPoliciesRecipeUpdateStepInput is an input type that accepts GuestPoliciesRecipeUpdateStepArgs and GuestPoliciesRecipeUpdateStepOutput values. +// You can construct a concrete instance of `GuestPoliciesRecipeUpdateStepInput` via: +// +// GuestPoliciesRecipeUpdateStepArgs{...} +type GuestPoliciesRecipeUpdateStepInput interface { + pulumi.Input + + ToGuestPoliciesRecipeUpdateStepOutput() GuestPoliciesRecipeUpdateStepOutput + ToGuestPoliciesRecipeUpdateStepOutputWithContext(context.Context) GuestPoliciesRecipeUpdateStepOutput +} + +type GuestPoliciesRecipeUpdateStepArgs struct { + // Extracts an archive into the specified directory. Structure is documented below. + ArchiveExtraction GuestPoliciesRecipeUpdateStepArchiveExtractionPtrInput `pulumi:"archiveExtraction"` + // Installs a deb file via dpkg. Structure is documented below. + DpkgInstallation GuestPoliciesRecipeUpdateStepDpkgInstallationPtrInput `pulumi:"dpkgInstallation"` + // Copies a file onto the instance. Structure is documented below. + FileCopy GuestPoliciesRecipeUpdateStepFileCopyPtrInput `pulumi:"fileCopy"` + // Executes an artifact or local file. Structure is documented below. + FileExec GuestPoliciesRecipeUpdateStepFileExecPtrInput `pulumi:"fileExec"` + // Installs an MSI file. Structure is documented below. + MsiInstallation GuestPoliciesRecipeUpdateStepMsiInstallationPtrInput `pulumi:"msiInstallation"` + // Installs an rpm file via the rpm utility. Structure is documented below. + RpmInstallation GuestPoliciesRecipeUpdateStepRpmInstallationPtrInput `pulumi:"rpmInstallation"` + // Runs commands in a shell. Structure is documented below. + ScriptRun GuestPoliciesRecipeUpdateStepScriptRunPtrInput `pulumi:"scriptRun"` +} + +func (GuestPoliciesRecipeUpdateStepArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GuestPoliciesRecipeUpdateStep)(nil)).Elem() +} + +func (i GuestPoliciesRecipeUpdateStepArgs) ToGuestPoliciesRecipeUpdateStepOutput() GuestPoliciesRecipeUpdateStepOutput { + return i.ToGuestPoliciesRecipeUpdateStepOutputWithContext(context.Background()) +} + +func (i GuestPoliciesRecipeUpdateStepArgs) ToGuestPoliciesRecipeUpdateStepOutputWithContext(ctx context.Context) GuestPoliciesRecipeUpdateStepOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuestPoliciesRecipeUpdateStepOutput) +} + +// GuestPoliciesRecipeUpdateStepArrayInput is an input type that accepts GuestPoliciesRecipeUpdateStepArray and GuestPoliciesRecipeUpdateStepArrayOutput values. +// You can construct a concrete instance of `GuestPoliciesRecipeUpdateStepArrayInput` via: +// +// GuestPoliciesRecipeUpdateStepArray{ GuestPoliciesRecipeUpdateStepArgs{...} } +type GuestPoliciesRecipeUpdateStepArrayInput interface { + pulumi.Input + + ToGuestPoliciesRecipeUpdateStepArrayOutput() GuestPoliciesRecipeUpdateStepArrayOutput + ToGuestPoliciesRecipeUpdateStepArrayOutputWithContext(context.Context) GuestPoliciesRecipeUpdateStepArrayOutput +} + +type GuestPoliciesRecipeUpdateStepArray []GuestPoliciesRecipeUpdateStepInput + +func (GuestPoliciesRecipeUpdateStepArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GuestPoliciesRecipeUpdateStep)(nil)).Elem() +} + +func (i GuestPoliciesRecipeUpdateStepArray) ToGuestPoliciesRecipeUpdateStepArrayOutput() GuestPoliciesRecipeUpdateStepArrayOutput { + return i.ToGuestPoliciesRecipeUpdateStepArrayOutputWithContext(context.Background()) +} + +func (i GuestPoliciesRecipeUpdateStepArray) ToGuestPoliciesRecipeUpdateStepArrayOutputWithContext(ctx context.Context) GuestPoliciesRecipeUpdateStepArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuestPoliciesRecipeUpdateStepArrayOutput) +} + +type GuestPoliciesRecipeUpdateStepOutput struct{ *pulumi.OutputState } + +func (GuestPoliciesRecipeUpdateStepOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GuestPoliciesRecipeUpdateStep)(nil)).Elem() +} + +func (o GuestPoliciesRecipeUpdateStepOutput) ToGuestPoliciesRecipeUpdateStepOutput() GuestPoliciesRecipeUpdateStepOutput { + return o +} + +func (o GuestPoliciesRecipeUpdateStepOutput) ToGuestPoliciesRecipeUpdateStepOutputWithContext(ctx context.Context) GuestPoliciesRecipeUpdateStepOutput { + return o +} + +// Extracts an archive into the specified directory. Structure is documented below. +func (o GuestPoliciesRecipeUpdateStepOutput) ArchiveExtraction() GuestPoliciesRecipeUpdateStepArchiveExtractionPtrOutput { + return o.ApplyT(func(v GuestPoliciesRecipeUpdateStep) *GuestPoliciesRecipeUpdateStepArchiveExtraction { + return v.ArchiveExtraction + }).(GuestPoliciesRecipeUpdateStepArchiveExtractionPtrOutput) +} + +// Installs a deb file via dpkg. Structure is documented below. +func (o GuestPoliciesRecipeUpdateStepOutput) DpkgInstallation() GuestPoliciesRecipeUpdateStepDpkgInstallationPtrOutput { + return o.ApplyT(func(v GuestPoliciesRecipeUpdateStep) *GuestPoliciesRecipeUpdateStepDpkgInstallation { + return v.DpkgInstallation + }).(GuestPoliciesRecipeUpdateStepDpkgInstallationPtrOutput) +} + +// Copies a file onto the instance. Structure is documented below. +func (o GuestPoliciesRecipeUpdateStepOutput) FileCopy() GuestPoliciesRecipeUpdateStepFileCopyPtrOutput { + return o.ApplyT(func(v GuestPoliciesRecipeUpdateStep) *GuestPoliciesRecipeUpdateStepFileCopy { return v.FileCopy }).(GuestPoliciesRecipeUpdateStepFileCopyPtrOutput) +} + +// Executes an artifact or local file. Structure is documented below. +func (o GuestPoliciesRecipeUpdateStepOutput) FileExec() GuestPoliciesRecipeUpdateStepFileExecPtrOutput { + return o.ApplyT(func(v GuestPoliciesRecipeUpdateStep) *GuestPoliciesRecipeUpdateStepFileExec { return v.FileExec }).(GuestPoliciesRecipeUpdateStepFileExecPtrOutput) +} + +// Installs an MSI file. Structure is documented below. +func (o GuestPoliciesRecipeUpdateStepOutput) MsiInstallation() GuestPoliciesRecipeUpdateStepMsiInstallationPtrOutput { + return o.ApplyT(func(v GuestPoliciesRecipeUpdateStep) *GuestPoliciesRecipeUpdateStepMsiInstallation { + return v.MsiInstallation + }).(GuestPoliciesRecipeUpdateStepMsiInstallationPtrOutput) +} + +// Installs an rpm file via the rpm utility. Structure is documented below. +func (o GuestPoliciesRecipeUpdateStepOutput) RpmInstallation() GuestPoliciesRecipeUpdateStepRpmInstallationPtrOutput { + return o.ApplyT(func(v GuestPoliciesRecipeUpdateStep) *GuestPoliciesRecipeUpdateStepRpmInstallation { + return v.RpmInstallation + }).(GuestPoliciesRecipeUpdateStepRpmInstallationPtrOutput) +} + +// Runs commands in a shell. Structure is documented below. +func (o GuestPoliciesRecipeUpdateStepOutput) ScriptRun() GuestPoliciesRecipeUpdateStepScriptRunPtrOutput { + return o.ApplyT(func(v GuestPoliciesRecipeUpdateStep) *GuestPoliciesRecipeUpdateStepScriptRun { return v.ScriptRun }).(GuestPoliciesRecipeUpdateStepScriptRunPtrOutput) +} + +type GuestPoliciesRecipeUpdateStepArrayOutput struct{ *pulumi.OutputState } + +func (GuestPoliciesRecipeUpdateStepArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GuestPoliciesRecipeUpdateStep)(nil)).Elem() +} + +func (o GuestPoliciesRecipeUpdateStepArrayOutput) ToGuestPoliciesRecipeUpdateStepArrayOutput() GuestPoliciesRecipeUpdateStepArrayOutput { + return o +} + +func (o GuestPoliciesRecipeUpdateStepArrayOutput) ToGuestPoliciesRecipeUpdateStepArrayOutputWithContext(ctx context.Context) GuestPoliciesRecipeUpdateStepArrayOutput { + return o +} + +func (o GuestPoliciesRecipeUpdateStepArrayOutput) Index(i pulumi.IntInput) GuestPoliciesRecipeUpdateStepOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GuestPoliciesRecipeUpdateStep { + return vs[0].([]GuestPoliciesRecipeUpdateStep)[vs[1].(int)] + }).(GuestPoliciesRecipeUpdateStepOutput) +} + +type GuestPoliciesRecipeUpdateStepArchiveExtraction struct { + // The id of the relevant artifact in the recipe. + ArtifactId string `pulumi:"artifactId"` + // Directory to extract archive to. Defaults to / on Linux or C:\ on Windows. + Destination *string `pulumi:"destination"` + // The type of the archive to extract. + Type string `pulumi:"type"` +} + +// GuestPoliciesRecipeUpdateStepArchiveExtractionInput is an input type that accepts GuestPoliciesRecipeUpdateStepArchiveExtractionArgs and GuestPoliciesRecipeUpdateStepArchiveExtractionOutput values. +// You can construct a concrete instance of `GuestPoliciesRecipeUpdateStepArchiveExtractionInput` via: +// +// GuestPoliciesRecipeUpdateStepArchiveExtractionArgs{...} +type GuestPoliciesRecipeUpdateStepArchiveExtractionInput interface { + pulumi.Input + + ToGuestPoliciesRecipeUpdateStepArchiveExtractionOutput() GuestPoliciesRecipeUpdateStepArchiveExtractionOutput + ToGuestPoliciesRecipeUpdateStepArchiveExtractionOutputWithContext(context.Context) GuestPoliciesRecipeUpdateStepArchiveExtractionOutput +} + +type GuestPoliciesRecipeUpdateStepArchiveExtractionArgs struct { + // The id of the relevant artifact in the recipe. + ArtifactId pulumi.StringInput `pulumi:"artifactId"` + // Directory to extract archive to. Defaults to / on Linux or C:\ on Windows. + Destination pulumi.StringPtrInput `pulumi:"destination"` + // The type of the archive to extract. + Type pulumi.StringInput `pulumi:"type"` +} + +func (GuestPoliciesRecipeUpdateStepArchiveExtractionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GuestPoliciesRecipeUpdateStepArchiveExtraction)(nil)).Elem() +} + +func (i GuestPoliciesRecipeUpdateStepArchiveExtractionArgs) ToGuestPoliciesRecipeUpdateStepArchiveExtractionOutput() GuestPoliciesRecipeUpdateStepArchiveExtractionOutput { + return i.ToGuestPoliciesRecipeUpdateStepArchiveExtractionOutputWithContext(context.Background()) +} + +func (i GuestPoliciesRecipeUpdateStepArchiveExtractionArgs) ToGuestPoliciesRecipeUpdateStepArchiveExtractionOutputWithContext(ctx context.Context) GuestPoliciesRecipeUpdateStepArchiveExtractionOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuestPoliciesRecipeUpdateStepArchiveExtractionOutput) +} + +func (i GuestPoliciesRecipeUpdateStepArchiveExtractionArgs) ToGuestPoliciesRecipeUpdateStepArchiveExtractionPtrOutput() GuestPoliciesRecipeUpdateStepArchiveExtractionPtrOutput { + return i.ToGuestPoliciesRecipeUpdateStepArchiveExtractionPtrOutputWithContext(context.Background()) +} + +func (i GuestPoliciesRecipeUpdateStepArchiveExtractionArgs) ToGuestPoliciesRecipeUpdateStepArchiveExtractionPtrOutputWithContext(ctx context.Context) GuestPoliciesRecipeUpdateStepArchiveExtractionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuestPoliciesRecipeUpdateStepArchiveExtractionOutput).ToGuestPoliciesRecipeUpdateStepArchiveExtractionPtrOutputWithContext(ctx) +} + +// GuestPoliciesRecipeUpdateStepArchiveExtractionPtrInput is an input type that accepts GuestPoliciesRecipeUpdateStepArchiveExtractionArgs, GuestPoliciesRecipeUpdateStepArchiveExtractionPtr and GuestPoliciesRecipeUpdateStepArchiveExtractionPtrOutput values. +// You can construct a concrete instance of `GuestPoliciesRecipeUpdateStepArchiveExtractionPtrInput` via: +// +// GuestPoliciesRecipeUpdateStepArchiveExtractionArgs{...} +// +// or: +// +// nil +type GuestPoliciesRecipeUpdateStepArchiveExtractionPtrInput interface { + pulumi.Input + + ToGuestPoliciesRecipeUpdateStepArchiveExtractionPtrOutput() GuestPoliciesRecipeUpdateStepArchiveExtractionPtrOutput + ToGuestPoliciesRecipeUpdateStepArchiveExtractionPtrOutputWithContext(context.Context) GuestPoliciesRecipeUpdateStepArchiveExtractionPtrOutput +} + +type guestPoliciesRecipeUpdateStepArchiveExtractionPtrType GuestPoliciesRecipeUpdateStepArchiveExtractionArgs + +func GuestPoliciesRecipeUpdateStepArchiveExtractionPtr(v *GuestPoliciesRecipeUpdateStepArchiveExtractionArgs) GuestPoliciesRecipeUpdateStepArchiveExtractionPtrInput { + return (*guestPoliciesRecipeUpdateStepArchiveExtractionPtrType)(v) +} + +func (*guestPoliciesRecipeUpdateStepArchiveExtractionPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**GuestPoliciesRecipeUpdateStepArchiveExtraction)(nil)).Elem() +} + +func (i *guestPoliciesRecipeUpdateStepArchiveExtractionPtrType) ToGuestPoliciesRecipeUpdateStepArchiveExtractionPtrOutput() GuestPoliciesRecipeUpdateStepArchiveExtractionPtrOutput { + return i.ToGuestPoliciesRecipeUpdateStepArchiveExtractionPtrOutputWithContext(context.Background()) +} + +func (i *guestPoliciesRecipeUpdateStepArchiveExtractionPtrType) ToGuestPoliciesRecipeUpdateStepArchiveExtractionPtrOutputWithContext(ctx context.Context) GuestPoliciesRecipeUpdateStepArchiveExtractionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuestPoliciesRecipeUpdateStepArchiveExtractionPtrOutput) +} + +type GuestPoliciesRecipeUpdateStepArchiveExtractionOutput struct{ *pulumi.OutputState } + +func (GuestPoliciesRecipeUpdateStepArchiveExtractionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GuestPoliciesRecipeUpdateStepArchiveExtraction)(nil)).Elem() +} + +func (o GuestPoliciesRecipeUpdateStepArchiveExtractionOutput) ToGuestPoliciesRecipeUpdateStepArchiveExtractionOutput() GuestPoliciesRecipeUpdateStepArchiveExtractionOutput { + return o +} + +func (o GuestPoliciesRecipeUpdateStepArchiveExtractionOutput) ToGuestPoliciesRecipeUpdateStepArchiveExtractionOutputWithContext(ctx context.Context) GuestPoliciesRecipeUpdateStepArchiveExtractionOutput { + return o +} + +func (o GuestPoliciesRecipeUpdateStepArchiveExtractionOutput) ToGuestPoliciesRecipeUpdateStepArchiveExtractionPtrOutput() GuestPoliciesRecipeUpdateStepArchiveExtractionPtrOutput { + return o.ToGuestPoliciesRecipeUpdateStepArchiveExtractionPtrOutputWithContext(context.Background()) +} + +func (o GuestPoliciesRecipeUpdateStepArchiveExtractionOutput) ToGuestPoliciesRecipeUpdateStepArchiveExtractionPtrOutputWithContext(ctx context.Context) GuestPoliciesRecipeUpdateStepArchiveExtractionPtrOutput { + return o.ApplyT(func(v GuestPoliciesRecipeUpdateStepArchiveExtraction) *GuestPoliciesRecipeUpdateStepArchiveExtraction { + return &v + }).(GuestPoliciesRecipeUpdateStepArchiveExtractionPtrOutput) +} + +// The id of the relevant artifact in the recipe. +func (o GuestPoliciesRecipeUpdateStepArchiveExtractionOutput) ArtifactId() pulumi.StringOutput { + return o.ApplyT(func(v GuestPoliciesRecipeUpdateStepArchiveExtraction) string { return v.ArtifactId }).(pulumi.StringOutput) +} + +// Directory to extract archive to. Defaults to / on Linux or C:\ on Windows. +func (o GuestPoliciesRecipeUpdateStepArchiveExtractionOutput) Destination() pulumi.StringPtrOutput { + return o.ApplyT(func(v GuestPoliciesRecipeUpdateStepArchiveExtraction) *string { return v.Destination }).(pulumi.StringPtrOutput) +} + +// The type of the archive to extract. +func (o GuestPoliciesRecipeUpdateStepArchiveExtractionOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v GuestPoliciesRecipeUpdateStepArchiveExtraction) string { return v.Type }).(pulumi.StringOutput) +} + +type GuestPoliciesRecipeUpdateStepArchiveExtractionPtrOutput struct{ *pulumi.OutputState } + +func (GuestPoliciesRecipeUpdateStepArchiveExtractionPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**GuestPoliciesRecipeUpdateStepArchiveExtraction)(nil)).Elem() +} + +func (o GuestPoliciesRecipeUpdateStepArchiveExtractionPtrOutput) ToGuestPoliciesRecipeUpdateStepArchiveExtractionPtrOutput() GuestPoliciesRecipeUpdateStepArchiveExtractionPtrOutput { + return o +} + +func (o GuestPoliciesRecipeUpdateStepArchiveExtractionPtrOutput) ToGuestPoliciesRecipeUpdateStepArchiveExtractionPtrOutputWithContext(ctx context.Context) GuestPoliciesRecipeUpdateStepArchiveExtractionPtrOutput { + return o +} + +func (o GuestPoliciesRecipeUpdateStepArchiveExtractionPtrOutput) Elem() GuestPoliciesRecipeUpdateStepArchiveExtractionOutput { + return o.ApplyT(func(v *GuestPoliciesRecipeUpdateStepArchiveExtraction) GuestPoliciesRecipeUpdateStepArchiveExtraction { + return *v + }).(GuestPoliciesRecipeUpdateStepArchiveExtractionOutput) +} + +// The id of the relevant artifact in the recipe. +func (o GuestPoliciesRecipeUpdateStepArchiveExtractionPtrOutput) ArtifactId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GuestPoliciesRecipeUpdateStepArchiveExtraction) *string { + if v == nil { + return nil + } + return &v.ArtifactId + }).(pulumi.StringPtrOutput) +} + +// Directory to extract archive to. Defaults to / on Linux or C:\ on Windows. +func (o GuestPoliciesRecipeUpdateStepArchiveExtractionPtrOutput) Destination() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GuestPoliciesRecipeUpdateStepArchiveExtraction) *string { + if v == nil { + return nil + } + return v.Destination + }).(pulumi.StringPtrOutput) +} + +// The type of the archive to extract. +func (o GuestPoliciesRecipeUpdateStepArchiveExtractionPtrOutput) Type() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GuestPoliciesRecipeUpdateStepArchiveExtraction) *string { + if v == nil { + return nil + } + return &v.Type + }).(pulumi.StringPtrOutput) +} + +type GuestPoliciesRecipeUpdateStepDpkgInstallation struct { + // The id of the relevant artifact in the recipe. + ArtifactId string `pulumi:"artifactId"` +} + +// GuestPoliciesRecipeUpdateStepDpkgInstallationInput is an input type that accepts GuestPoliciesRecipeUpdateStepDpkgInstallationArgs and GuestPoliciesRecipeUpdateStepDpkgInstallationOutput values. +// You can construct a concrete instance of `GuestPoliciesRecipeUpdateStepDpkgInstallationInput` via: +// +// GuestPoliciesRecipeUpdateStepDpkgInstallationArgs{...} +type GuestPoliciesRecipeUpdateStepDpkgInstallationInput interface { + pulumi.Input + + ToGuestPoliciesRecipeUpdateStepDpkgInstallationOutput() GuestPoliciesRecipeUpdateStepDpkgInstallationOutput + ToGuestPoliciesRecipeUpdateStepDpkgInstallationOutputWithContext(context.Context) GuestPoliciesRecipeUpdateStepDpkgInstallationOutput +} + +type GuestPoliciesRecipeUpdateStepDpkgInstallationArgs struct { + // The id of the relevant artifact in the recipe. + ArtifactId pulumi.StringInput `pulumi:"artifactId"` +} + +func (GuestPoliciesRecipeUpdateStepDpkgInstallationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GuestPoliciesRecipeUpdateStepDpkgInstallation)(nil)).Elem() +} + +func (i GuestPoliciesRecipeUpdateStepDpkgInstallationArgs) ToGuestPoliciesRecipeUpdateStepDpkgInstallationOutput() GuestPoliciesRecipeUpdateStepDpkgInstallationOutput { + return i.ToGuestPoliciesRecipeUpdateStepDpkgInstallationOutputWithContext(context.Background()) +} + +func (i GuestPoliciesRecipeUpdateStepDpkgInstallationArgs) ToGuestPoliciesRecipeUpdateStepDpkgInstallationOutputWithContext(ctx context.Context) GuestPoliciesRecipeUpdateStepDpkgInstallationOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuestPoliciesRecipeUpdateStepDpkgInstallationOutput) +} + +func (i GuestPoliciesRecipeUpdateStepDpkgInstallationArgs) ToGuestPoliciesRecipeUpdateStepDpkgInstallationPtrOutput() GuestPoliciesRecipeUpdateStepDpkgInstallationPtrOutput { + return i.ToGuestPoliciesRecipeUpdateStepDpkgInstallationPtrOutputWithContext(context.Background()) +} + +func (i GuestPoliciesRecipeUpdateStepDpkgInstallationArgs) ToGuestPoliciesRecipeUpdateStepDpkgInstallationPtrOutputWithContext(ctx context.Context) GuestPoliciesRecipeUpdateStepDpkgInstallationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuestPoliciesRecipeUpdateStepDpkgInstallationOutput).ToGuestPoliciesRecipeUpdateStepDpkgInstallationPtrOutputWithContext(ctx) +} + +// GuestPoliciesRecipeUpdateStepDpkgInstallationPtrInput is an input type that accepts GuestPoliciesRecipeUpdateStepDpkgInstallationArgs, GuestPoliciesRecipeUpdateStepDpkgInstallationPtr and GuestPoliciesRecipeUpdateStepDpkgInstallationPtrOutput values. +// You can construct a concrete instance of `GuestPoliciesRecipeUpdateStepDpkgInstallationPtrInput` via: +// +// GuestPoliciesRecipeUpdateStepDpkgInstallationArgs{...} +// +// or: +// +// nil +type GuestPoliciesRecipeUpdateStepDpkgInstallationPtrInput interface { + pulumi.Input + + ToGuestPoliciesRecipeUpdateStepDpkgInstallationPtrOutput() GuestPoliciesRecipeUpdateStepDpkgInstallationPtrOutput + ToGuestPoliciesRecipeUpdateStepDpkgInstallationPtrOutputWithContext(context.Context) GuestPoliciesRecipeUpdateStepDpkgInstallationPtrOutput +} + +type guestPoliciesRecipeUpdateStepDpkgInstallationPtrType GuestPoliciesRecipeUpdateStepDpkgInstallationArgs + +func GuestPoliciesRecipeUpdateStepDpkgInstallationPtr(v *GuestPoliciesRecipeUpdateStepDpkgInstallationArgs) GuestPoliciesRecipeUpdateStepDpkgInstallationPtrInput { + return (*guestPoliciesRecipeUpdateStepDpkgInstallationPtrType)(v) +} + +func (*guestPoliciesRecipeUpdateStepDpkgInstallationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**GuestPoliciesRecipeUpdateStepDpkgInstallation)(nil)).Elem() +} + +func (i *guestPoliciesRecipeUpdateStepDpkgInstallationPtrType) ToGuestPoliciesRecipeUpdateStepDpkgInstallationPtrOutput() GuestPoliciesRecipeUpdateStepDpkgInstallationPtrOutput { + return i.ToGuestPoliciesRecipeUpdateStepDpkgInstallationPtrOutputWithContext(context.Background()) +} + +func (i *guestPoliciesRecipeUpdateStepDpkgInstallationPtrType) ToGuestPoliciesRecipeUpdateStepDpkgInstallationPtrOutputWithContext(ctx context.Context) GuestPoliciesRecipeUpdateStepDpkgInstallationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuestPoliciesRecipeUpdateStepDpkgInstallationPtrOutput) +} + +type GuestPoliciesRecipeUpdateStepDpkgInstallationOutput struct{ *pulumi.OutputState } + +func (GuestPoliciesRecipeUpdateStepDpkgInstallationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GuestPoliciesRecipeUpdateStepDpkgInstallation)(nil)).Elem() +} + +func (o GuestPoliciesRecipeUpdateStepDpkgInstallationOutput) ToGuestPoliciesRecipeUpdateStepDpkgInstallationOutput() GuestPoliciesRecipeUpdateStepDpkgInstallationOutput { + return o +} + +func (o GuestPoliciesRecipeUpdateStepDpkgInstallationOutput) ToGuestPoliciesRecipeUpdateStepDpkgInstallationOutputWithContext(ctx context.Context) GuestPoliciesRecipeUpdateStepDpkgInstallationOutput { + return o +} + +func (o GuestPoliciesRecipeUpdateStepDpkgInstallationOutput) ToGuestPoliciesRecipeUpdateStepDpkgInstallationPtrOutput() GuestPoliciesRecipeUpdateStepDpkgInstallationPtrOutput { + return o.ToGuestPoliciesRecipeUpdateStepDpkgInstallationPtrOutputWithContext(context.Background()) +} + +func (o GuestPoliciesRecipeUpdateStepDpkgInstallationOutput) ToGuestPoliciesRecipeUpdateStepDpkgInstallationPtrOutputWithContext(ctx context.Context) GuestPoliciesRecipeUpdateStepDpkgInstallationPtrOutput { + return o.ApplyT(func(v GuestPoliciesRecipeUpdateStepDpkgInstallation) *GuestPoliciesRecipeUpdateStepDpkgInstallation { + return &v + }).(GuestPoliciesRecipeUpdateStepDpkgInstallationPtrOutput) +} + +// The id of the relevant artifact in the recipe. +func (o GuestPoliciesRecipeUpdateStepDpkgInstallationOutput) ArtifactId() pulumi.StringOutput { + return o.ApplyT(func(v GuestPoliciesRecipeUpdateStepDpkgInstallation) string { return v.ArtifactId }).(pulumi.StringOutput) +} + +type GuestPoliciesRecipeUpdateStepDpkgInstallationPtrOutput struct{ *pulumi.OutputState } + +func (GuestPoliciesRecipeUpdateStepDpkgInstallationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**GuestPoliciesRecipeUpdateStepDpkgInstallation)(nil)).Elem() +} + +func (o GuestPoliciesRecipeUpdateStepDpkgInstallationPtrOutput) ToGuestPoliciesRecipeUpdateStepDpkgInstallationPtrOutput() GuestPoliciesRecipeUpdateStepDpkgInstallationPtrOutput { + return o +} + +func (o GuestPoliciesRecipeUpdateStepDpkgInstallationPtrOutput) ToGuestPoliciesRecipeUpdateStepDpkgInstallationPtrOutputWithContext(ctx context.Context) GuestPoliciesRecipeUpdateStepDpkgInstallationPtrOutput { + return o +} + +func (o GuestPoliciesRecipeUpdateStepDpkgInstallationPtrOutput) Elem() GuestPoliciesRecipeUpdateStepDpkgInstallationOutput { + return o.ApplyT(func(v *GuestPoliciesRecipeUpdateStepDpkgInstallation) GuestPoliciesRecipeUpdateStepDpkgInstallation { + return *v + }).(GuestPoliciesRecipeUpdateStepDpkgInstallationOutput) +} + +// The id of the relevant artifact in the recipe. +func (o GuestPoliciesRecipeUpdateStepDpkgInstallationPtrOutput) ArtifactId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GuestPoliciesRecipeUpdateStepDpkgInstallation) *string { + if v == nil { + return nil + } + return &v.ArtifactId + }).(pulumi.StringPtrOutput) +} + +type GuestPoliciesRecipeUpdateStepFileCopy struct { + // The id of the relevant artifact in the recipe. + ArtifactId string `pulumi:"artifactId"` + // Directory to extract archive to. Defaults to / on Linux or C:\ on Windows. + Destination string `pulumi:"destination"` + // Whether to allow this step to overwrite existing files.If this is false and the file already exists the file + // is not overwritten and the step is considered a success. Defaults to false. + Overwrite *bool `pulumi:"overwrite"` + // Consists of three octal digits which represent, in order, the permissions of the owner, group, and other users + // for the file (similarly to the numeric mode used in the linux chmod utility). Each digit represents a three bit + // number with the 4 bit corresponding to the read permissions, the 2 bit corresponds to the write bit, and the one + // bit corresponds to the execute permission. Default behavior is 755. + // Below are some examples of permissions and their associated values: + // read, write, and execute: 7 read and execute: 5 read and write: 6 read only: 4 + Permissions *string `pulumi:"permissions"` +} + +// GuestPoliciesRecipeUpdateStepFileCopyInput is an input type that accepts GuestPoliciesRecipeUpdateStepFileCopyArgs and GuestPoliciesRecipeUpdateStepFileCopyOutput values. +// You can construct a concrete instance of `GuestPoliciesRecipeUpdateStepFileCopyInput` via: +// +// GuestPoliciesRecipeUpdateStepFileCopyArgs{...} +type GuestPoliciesRecipeUpdateStepFileCopyInput interface { + pulumi.Input + + ToGuestPoliciesRecipeUpdateStepFileCopyOutput() GuestPoliciesRecipeUpdateStepFileCopyOutput + ToGuestPoliciesRecipeUpdateStepFileCopyOutputWithContext(context.Context) GuestPoliciesRecipeUpdateStepFileCopyOutput +} + +type GuestPoliciesRecipeUpdateStepFileCopyArgs struct { + // The id of the relevant artifact in the recipe. + ArtifactId pulumi.StringInput `pulumi:"artifactId"` + // Directory to extract archive to. Defaults to / on Linux or C:\ on Windows. + Destination pulumi.StringInput `pulumi:"destination"` + // Whether to allow this step to overwrite existing files.If this is false and the file already exists the file + // is not overwritten and the step is considered a success. Defaults to false. + Overwrite pulumi.BoolPtrInput `pulumi:"overwrite"` + // Consists of three octal digits which represent, in order, the permissions of the owner, group, and other users + // for the file (similarly to the numeric mode used in the linux chmod utility). Each digit represents a three bit + // number with the 4 bit corresponding to the read permissions, the 2 bit corresponds to the write bit, and the one + // bit corresponds to the execute permission. Default behavior is 755. + // Below are some examples of permissions and their associated values: + // read, write, and execute: 7 read and execute: 5 read and write: 6 read only: 4 + Permissions pulumi.StringPtrInput `pulumi:"permissions"` +} + +func (GuestPoliciesRecipeUpdateStepFileCopyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GuestPoliciesRecipeUpdateStepFileCopy)(nil)).Elem() +} + +func (i GuestPoliciesRecipeUpdateStepFileCopyArgs) ToGuestPoliciesRecipeUpdateStepFileCopyOutput() GuestPoliciesRecipeUpdateStepFileCopyOutput { + return i.ToGuestPoliciesRecipeUpdateStepFileCopyOutputWithContext(context.Background()) +} + +func (i GuestPoliciesRecipeUpdateStepFileCopyArgs) ToGuestPoliciesRecipeUpdateStepFileCopyOutputWithContext(ctx context.Context) GuestPoliciesRecipeUpdateStepFileCopyOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuestPoliciesRecipeUpdateStepFileCopyOutput) +} + +func (i GuestPoliciesRecipeUpdateStepFileCopyArgs) ToGuestPoliciesRecipeUpdateStepFileCopyPtrOutput() GuestPoliciesRecipeUpdateStepFileCopyPtrOutput { + return i.ToGuestPoliciesRecipeUpdateStepFileCopyPtrOutputWithContext(context.Background()) +} + +func (i GuestPoliciesRecipeUpdateStepFileCopyArgs) ToGuestPoliciesRecipeUpdateStepFileCopyPtrOutputWithContext(ctx context.Context) GuestPoliciesRecipeUpdateStepFileCopyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuestPoliciesRecipeUpdateStepFileCopyOutput).ToGuestPoliciesRecipeUpdateStepFileCopyPtrOutputWithContext(ctx) +} + +// GuestPoliciesRecipeUpdateStepFileCopyPtrInput is an input type that accepts GuestPoliciesRecipeUpdateStepFileCopyArgs, GuestPoliciesRecipeUpdateStepFileCopyPtr and GuestPoliciesRecipeUpdateStepFileCopyPtrOutput values. +// You can construct a concrete instance of `GuestPoliciesRecipeUpdateStepFileCopyPtrInput` via: +// +// GuestPoliciesRecipeUpdateStepFileCopyArgs{...} +// +// or: +// +// nil +type GuestPoliciesRecipeUpdateStepFileCopyPtrInput interface { + pulumi.Input + + ToGuestPoliciesRecipeUpdateStepFileCopyPtrOutput() GuestPoliciesRecipeUpdateStepFileCopyPtrOutput + ToGuestPoliciesRecipeUpdateStepFileCopyPtrOutputWithContext(context.Context) GuestPoliciesRecipeUpdateStepFileCopyPtrOutput +} + +type guestPoliciesRecipeUpdateStepFileCopyPtrType GuestPoliciesRecipeUpdateStepFileCopyArgs + +func GuestPoliciesRecipeUpdateStepFileCopyPtr(v *GuestPoliciesRecipeUpdateStepFileCopyArgs) GuestPoliciesRecipeUpdateStepFileCopyPtrInput { + return (*guestPoliciesRecipeUpdateStepFileCopyPtrType)(v) +} + +func (*guestPoliciesRecipeUpdateStepFileCopyPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**GuestPoliciesRecipeUpdateStepFileCopy)(nil)).Elem() +} + +func (i *guestPoliciesRecipeUpdateStepFileCopyPtrType) ToGuestPoliciesRecipeUpdateStepFileCopyPtrOutput() GuestPoliciesRecipeUpdateStepFileCopyPtrOutput { + return i.ToGuestPoliciesRecipeUpdateStepFileCopyPtrOutputWithContext(context.Background()) +} + +func (i *guestPoliciesRecipeUpdateStepFileCopyPtrType) ToGuestPoliciesRecipeUpdateStepFileCopyPtrOutputWithContext(ctx context.Context) GuestPoliciesRecipeUpdateStepFileCopyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuestPoliciesRecipeUpdateStepFileCopyPtrOutput) +} + +type GuestPoliciesRecipeUpdateStepFileCopyOutput struct{ *pulumi.OutputState } + +func (GuestPoliciesRecipeUpdateStepFileCopyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GuestPoliciesRecipeUpdateStepFileCopy)(nil)).Elem() +} + +func (o GuestPoliciesRecipeUpdateStepFileCopyOutput) ToGuestPoliciesRecipeUpdateStepFileCopyOutput() GuestPoliciesRecipeUpdateStepFileCopyOutput { + return o +} + +func (o GuestPoliciesRecipeUpdateStepFileCopyOutput) ToGuestPoliciesRecipeUpdateStepFileCopyOutputWithContext(ctx context.Context) GuestPoliciesRecipeUpdateStepFileCopyOutput { + return o +} + +func (o GuestPoliciesRecipeUpdateStepFileCopyOutput) ToGuestPoliciesRecipeUpdateStepFileCopyPtrOutput() GuestPoliciesRecipeUpdateStepFileCopyPtrOutput { + return o.ToGuestPoliciesRecipeUpdateStepFileCopyPtrOutputWithContext(context.Background()) +} + +func (o GuestPoliciesRecipeUpdateStepFileCopyOutput) ToGuestPoliciesRecipeUpdateStepFileCopyPtrOutputWithContext(ctx context.Context) GuestPoliciesRecipeUpdateStepFileCopyPtrOutput { + return o.ApplyT(func(v GuestPoliciesRecipeUpdateStepFileCopy) *GuestPoliciesRecipeUpdateStepFileCopy { + return &v + }).(GuestPoliciesRecipeUpdateStepFileCopyPtrOutput) +} + +// The id of the relevant artifact in the recipe. +func (o GuestPoliciesRecipeUpdateStepFileCopyOutput) ArtifactId() pulumi.StringOutput { + return o.ApplyT(func(v GuestPoliciesRecipeUpdateStepFileCopy) string { return v.ArtifactId }).(pulumi.StringOutput) +} + +// Directory to extract archive to. Defaults to / on Linux or C:\ on Windows. +func (o GuestPoliciesRecipeUpdateStepFileCopyOutput) Destination() pulumi.StringOutput { + return o.ApplyT(func(v GuestPoliciesRecipeUpdateStepFileCopy) string { return v.Destination }).(pulumi.StringOutput) +} + +// Whether to allow this step to overwrite existing files.If this is false and the file already exists the file +// is not overwritten and the step is considered a success. Defaults to false. +func (o GuestPoliciesRecipeUpdateStepFileCopyOutput) Overwrite() pulumi.BoolPtrOutput { + return o.ApplyT(func(v GuestPoliciesRecipeUpdateStepFileCopy) *bool { return v.Overwrite }).(pulumi.BoolPtrOutput) +} + +// Consists of three octal digits which represent, in order, the permissions of the owner, group, and other users +// for the file (similarly to the numeric mode used in the linux chmod utility). Each digit represents a three bit +// number with the 4 bit corresponding to the read permissions, the 2 bit corresponds to the write bit, and the one +// bit corresponds to the execute permission. Default behavior is 755. +// Below are some examples of permissions and their associated values: +// read, write, and execute: 7 read and execute: 5 read and write: 6 read only: 4 +func (o GuestPoliciesRecipeUpdateStepFileCopyOutput) Permissions() pulumi.StringPtrOutput { + return o.ApplyT(func(v GuestPoliciesRecipeUpdateStepFileCopy) *string { return v.Permissions }).(pulumi.StringPtrOutput) +} + +type GuestPoliciesRecipeUpdateStepFileCopyPtrOutput struct{ *pulumi.OutputState } + +func (GuestPoliciesRecipeUpdateStepFileCopyPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**GuestPoliciesRecipeUpdateStepFileCopy)(nil)).Elem() +} + +func (o GuestPoliciesRecipeUpdateStepFileCopyPtrOutput) ToGuestPoliciesRecipeUpdateStepFileCopyPtrOutput() GuestPoliciesRecipeUpdateStepFileCopyPtrOutput { + return o +} + +func (o GuestPoliciesRecipeUpdateStepFileCopyPtrOutput) ToGuestPoliciesRecipeUpdateStepFileCopyPtrOutputWithContext(ctx context.Context) GuestPoliciesRecipeUpdateStepFileCopyPtrOutput { + return o +} + +func (o GuestPoliciesRecipeUpdateStepFileCopyPtrOutput) Elem() GuestPoliciesRecipeUpdateStepFileCopyOutput { + return o.ApplyT(func(v *GuestPoliciesRecipeUpdateStepFileCopy) GuestPoliciesRecipeUpdateStepFileCopy { return *v }).(GuestPoliciesRecipeUpdateStepFileCopyOutput) +} + +// The id of the relevant artifact in the recipe. +func (o GuestPoliciesRecipeUpdateStepFileCopyPtrOutput) ArtifactId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GuestPoliciesRecipeUpdateStepFileCopy) *string { + if v == nil { + return nil + } + return &v.ArtifactId + }).(pulumi.StringPtrOutput) +} + +// Directory to extract archive to. Defaults to / on Linux or C:\ on Windows. +func (o GuestPoliciesRecipeUpdateStepFileCopyPtrOutput) Destination() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GuestPoliciesRecipeUpdateStepFileCopy) *string { + if v == nil { + return nil + } + return &v.Destination + }).(pulumi.StringPtrOutput) +} + +// Whether to allow this step to overwrite existing files.If this is false and the file already exists the file +// is not overwritten and the step is considered a success. Defaults to false. +func (o GuestPoliciesRecipeUpdateStepFileCopyPtrOutput) Overwrite() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *GuestPoliciesRecipeUpdateStepFileCopy) *bool { + if v == nil { + return nil + } + return v.Overwrite + }).(pulumi.BoolPtrOutput) +} + +// Consists of three octal digits which represent, in order, the permissions of the owner, group, and other users +// for the file (similarly to the numeric mode used in the linux chmod utility). Each digit represents a three bit +// number with the 4 bit corresponding to the read permissions, the 2 bit corresponds to the write bit, and the one +// bit corresponds to the execute permission. Default behavior is 755. +// Below are some examples of permissions and their associated values: +// read, write, and execute: 7 read and execute: 5 read and write: 6 read only: 4 +func (o GuestPoliciesRecipeUpdateStepFileCopyPtrOutput) Permissions() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GuestPoliciesRecipeUpdateStepFileCopy) *string { + if v == nil { + return nil + } + return v.Permissions + }).(pulumi.StringPtrOutput) +} + +type GuestPoliciesRecipeUpdateStepFileExec struct { + // Return codes that indicate that the software installed or updated successfully. Behaviour defaults to [0] + AllowedExitCodes []int `pulumi:"allowedExitCodes"` + // Arguments to be passed to the provided executable. + Args []string `pulumi:"args"` + // The id of the relevant artifact in the recipe. + ArtifactId *string `pulumi:"artifactId"` + // The absolute path of the file on the local filesystem. + LocalPath *string `pulumi:"localPath"` +} + +// GuestPoliciesRecipeUpdateStepFileExecInput is an input type that accepts GuestPoliciesRecipeUpdateStepFileExecArgs and GuestPoliciesRecipeUpdateStepFileExecOutput values. +// You can construct a concrete instance of `GuestPoliciesRecipeUpdateStepFileExecInput` via: +// +// GuestPoliciesRecipeUpdateStepFileExecArgs{...} +type GuestPoliciesRecipeUpdateStepFileExecInput interface { + pulumi.Input + + ToGuestPoliciesRecipeUpdateStepFileExecOutput() GuestPoliciesRecipeUpdateStepFileExecOutput + ToGuestPoliciesRecipeUpdateStepFileExecOutputWithContext(context.Context) GuestPoliciesRecipeUpdateStepFileExecOutput +} + +type GuestPoliciesRecipeUpdateStepFileExecArgs struct { + // Return codes that indicate that the software installed or updated successfully. Behaviour defaults to [0] + AllowedExitCodes pulumi.IntArrayInput `pulumi:"allowedExitCodes"` + // Arguments to be passed to the provided executable. + Args pulumi.StringArrayInput `pulumi:"args"` + // The id of the relevant artifact in the recipe. + ArtifactId pulumi.StringPtrInput `pulumi:"artifactId"` + // The absolute path of the file on the local filesystem. + LocalPath pulumi.StringPtrInput `pulumi:"localPath"` +} + +func (GuestPoliciesRecipeUpdateStepFileExecArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GuestPoliciesRecipeUpdateStepFileExec)(nil)).Elem() +} + +func (i GuestPoliciesRecipeUpdateStepFileExecArgs) ToGuestPoliciesRecipeUpdateStepFileExecOutput() GuestPoliciesRecipeUpdateStepFileExecOutput { + return i.ToGuestPoliciesRecipeUpdateStepFileExecOutputWithContext(context.Background()) +} + +func (i GuestPoliciesRecipeUpdateStepFileExecArgs) ToGuestPoliciesRecipeUpdateStepFileExecOutputWithContext(ctx context.Context) GuestPoliciesRecipeUpdateStepFileExecOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuestPoliciesRecipeUpdateStepFileExecOutput) +} + +func (i GuestPoliciesRecipeUpdateStepFileExecArgs) ToGuestPoliciesRecipeUpdateStepFileExecPtrOutput() GuestPoliciesRecipeUpdateStepFileExecPtrOutput { + return i.ToGuestPoliciesRecipeUpdateStepFileExecPtrOutputWithContext(context.Background()) +} + +func (i GuestPoliciesRecipeUpdateStepFileExecArgs) ToGuestPoliciesRecipeUpdateStepFileExecPtrOutputWithContext(ctx context.Context) GuestPoliciesRecipeUpdateStepFileExecPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuestPoliciesRecipeUpdateStepFileExecOutput).ToGuestPoliciesRecipeUpdateStepFileExecPtrOutputWithContext(ctx) +} + +// GuestPoliciesRecipeUpdateStepFileExecPtrInput is an input type that accepts GuestPoliciesRecipeUpdateStepFileExecArgs, GuestPoliciesRecipeUpdateStepFileExecPtr and GuestPoliciesRecipeUpdateStepFileExecPtrOutput values. +// You can construct a concrete instance of `GuestPoliciesRecipeUpdateStepFileExecPtrInput` via: +// +// GuestPoliciesRecipeUpdateStepFileExecArgs{...} +// +// or: +// +// nil +type GuestPoliciesRecipeUpdateStepFileExecPtrInput interface { + pulumi.Input + + ToGuestPoliciesRecipeUpdateStepFileExecPtrOutput() GuestPoliciesRecipeUpdateStepFileExecPtrOutput + ToGuestPoliciesRecipeUpdateStepFileExecPtrOutputWithContext(context.Context) GuestPoliciesRecipeUpdateStepFileExecPtrOutput +} + +type guestPoliciesRecipeUpdateStepFileExecPtrType GuestPoliciesRecipeUpdateStepFileExecArgs + +func GuestPoliciesRecipeUpdateStepFileExecPtr(v *GuestPoliciesRecipeUpdateStepFileExecArgs) GuestPoliciesRecipeUpdateStepFileExecPtrInput { + return (*guestPoliciesRecipeUpdateStepFileExecPtrType)(v) +} + +func (*guestPoliciesRecipeUpdateStepFileExecPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**GuestPoliciesRecipeUpdateStepFileExec)(nil)).Elem() +} + +func (i *guestPoliciesRecipeUpdateStepFileExecPtrType) ToGuestPoliciesRecipeUpdateStepFileExecPtrOutput() GuestPoliciesRecipeUpdateStepFileExecPtrOutput { + return i.ToGuestPoliciesRecipeUpdateStepFileExecPtrOutputWithContext(context.Background()) +} + +func (i *guestPoliciesRecipeUpdateStepFileExecPtrType) ToGuestPoliciesRecipeUpdateStepFileExecPtrOutputWithContext(ctx context.Context) GuestPoliciesRecipeUpdateStepFileExecPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuestPoliciesRecipeUpdateStepFileExecPtrOutput) +} + +type GuestPoliciesRecipeUpdateStepFileExecOutput struct{ *pulumi.OutputState } + +func (GuestPoliciesRecipeUpdateStepFileExecOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GuestPoliciesRecipeUpdateStepFileExec)(nil)).Elem() +} + +func (o GuestPoliciesRecipeUpdateStepFileExecOutput) ToGuestPoliciesRecipeUpdateStepFileExecOutput() GuestPoliciesRecipeUpdateStepFileExecOutput { + return o +} + +func (o GuestPoliciesRecipeUpdateStepFileExecOutput) ToGuestPoliciesRecipeUpdateStepFileExecOutputWithContext(ctx context.Context) GuestPoliciesRecipeUpdateStepFileExecOutput { + return o +} + +func (o GuestPoliciesRecipeUpdateStepFileExecOutput) ToGuestPoliciesRecipeUpdateStepFileExecPtrOutput() GuestPoliciesRecipeUpdateStepFileExecPtrOutput { + return o.ToGuestPoliciesRecipeUpdateStepFileExecPtrOutputWithContext(context.Background()) +} + +func (o GuestPoliciesRecipeUpdateStepFileExecOutput) ToGuestPoliciesRecipeUpdateStepFileExecPtrOutputWithContext(ctx context.Context) GuestPoliciesRecipeUpdateStepFileExecPtrOutput { + return o.ApplyT(func(v GuestPoliciesRecipeUpdateStepFileExec) *GuestPoliciesRecipeUpdateStepFileExec { + return &v + }).(GuestPoliciesRecipeUpdateStepFileExecPtrOutput) +} + +// Return codes that indicate that the software installed or updated successfully. Behaviour defaults to [0] +func (o GuestPoliciesRecipeUpdateStepFileExecOutput) AllowedExitCodes() pulumi.IntArrayOutput { + return o.ApplyT(func(v GuestPoliciesRecipeUpdateStepFileExec) []int { return v.AllowedExitCodes }).(pulumi.IntArrayOutput) +} + +// Arguments to be passed to the provided executable. +func (o GuestPoliciesRecipeUpdateStepFileExecOutput) Args() pulumi.StringArrayOutput { + return o.ApplyT(func(v GuestPoliciesRecipeUpdateStepFileExec) []string { return v.Args }).(pulumi.StringArrayOutput) +} + +// The id of the relevant artifact in the recipe. +func (o GuestPoliciesRecipeUpdateStepFileExecOutput) ArtifactId() pulumi.StringPtrOutput { + return o.ApplyT(func(v GuestPoliciesRecipeUpdateStepFileExec) *string { return v.ArtifactId }).(pulumi.StringPtrOutput) +} + +// The absolute path of the file on the local filesystem. +func (o GuestPoliciesRecipeUpdateStepFileExecOutput) LocalPath() pulumi.StringPtrOutput { + return o.ApplyT(func(v GuestPoliciesRecipeUpdateStepFileExec) *string { return v.LocalPath }).(pulumi.StringPtrOutput) +} + +type GuestPoliciesRecipeUpdateStepFileExecPtrOutput struct{ *pulumi.OutputState } + +func (GuestPoliciesRecipeUpdateStepFileExecPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**GuestPoliciesRecipeUpdateStepFileExec)(nil)).Elem() +} + +func (o GuestPoliciesRecipeUpdateStepFileExecPtrOutput) ToGuestPoliciesRecipeUpdateStepFileExecPtrOutput() GuestPoliciesRecipeUpdateStepFileExecPtrOutput { + return o +} + +func (o GuestPoliciesRecipeUpdateStepFileExecPtrOutput) ToGuestPoliciesRecipeUpdateStepFileExecPtrOutputWithContext(ctx context.Context) GuestPoliciesRecipeUpdateStepFileExecPtrOutput { + return o +} + +func (o GuestPoliciesRecipeUpdateStepFileExecPtrOutput) Elem() GuestPoliciesRecipeUpdateStepFileExecOutput { + return o.ApplyT(func(v *GuestPoliciesRecipeUpdateStepFileExec) GuestPoliciesRecipeUpdateStepFileExec { return *v }).(GuestPoliciesRecipeUpdateStepFileExecOutput) +} + +// Return codes that indicate that the software installed or updated successfully. Behaviour defaults to [0] +func (o GuestPoliciesRecipeUpdateStepFileExecPtrOutput) AllowedExitCodes() pulumi.IntArrayOutput { + return o.ApplyT(func(v *GuestPoliciesRecipeUpdateStepFileExec) []int { + if v == nil { + return nil + } + return v.AllowedExitCodes + }).(pulumi.IntArrayOutput) +} + +// Arguments to be passed to the provided executable. +func (o GuestPoliciesRecipeUpdateStepFileExecPtrOutput) Args() pulumi.StringArrayOutput { + return o.ApplyT(func(v *GuestPoliciesRecipeUpdateStepFileExec) []string { + if v == nil { + return nil + } + return v.Args + }).(pulumi.StringArrayOutput) +} + +// The id of the relevant artifact in the recipe. +func (o GuestPoliciesRecipeUpdateStepFileExecPtrOutput) ArtifactId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GuestPoliciesRecipeUpdateStepFileExec) *string { + if v == nil { + return nil + } + return v.ArtifactId + }).(pulumi.StringPtrOutput) +} + +// The absolute path of the file on the local filesystem. +func (o GuestPoliciesRecipeUpdateStepFileExecPtrOutput) LocalPath() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GuestPoliciesRecipeUpdateStepFileExec) *string { + if v == nil { + return nil + } + return v.LocalPath + }).(pulumi.StringPtrOutput) +} + +type GuestPoliciesRecipeUpdateStepMsiInstallation struct { + // Return codes that indicate that the software installed or updated successfully. Behaviour defaults to [0] + AllowedExitCodes []int `pulumi:"allowedExitCodes"` + // The id of the relevant artifact in the recipe. + ArtifactId string `pulumi:"artifactId"` + // The flags to use when installing the MSI. Defaults to the install flag. + Flags []string `pulumi:"flags"` +} + +// GuestPoliciesRecipeUpdateStepMsiInstallationInput is an input type that accepts GuestPoliciesRecipeUpdateStepMsiInstallationArgs and GuestPoliciesRecipeUpdateStepMsiInstallationOutput values. +// You can construct a concrete instance of `GuestPoliciesRecipeUpdateStepMsiInstallationInput` via: +// +// GuestPoliciesRecipeUpdateStepMsiInstallationArgs{...} +type GuestPoliciesRecipeUpdateStepMsiInstallationInput interface { + pulumi.Input + + ToGuestPoliciesRecipeUpdateStepMsiInstallationOutput() GuestPoliciesRecipeUpdateStepMsiInstallationOutput + ToGuestPoliciesRecipeUpdateStepMsiInstallationOutputWithContext(context.Context) GuestPoliciesRecipeUpdateStepMsiInstallationOutput +} + +type GuestPoliciesRecipeUpdateStepMsiInstallationArgs struct { + // Return codes that indicate that the software installed or updated successfully. Behaviour defaults to [0] + AllowedExitCodes pulumi.IntArrayInput `pulumi:"allowedExitCodes"` + // The id of the relevant artifact in the recipe. + ArtifactId pulumi.StringInput `pulumi:"artifactId"` + // The flags to use when installing the MSI. Defaults to the install flag. + Flags pulumi.StringArrayInput `pulumi:"flags"` +} + +func (GuestPoliciesRecipeUpdateStepMsiInstallationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GuestPoliciesRecipeUpdateStepMsiInstallation)(nil)).Elem() +} + +func (i GuestPoliciesRecipeUpdateStepMsiInstallationArgs) ToGuestPoliciesRecipeUpdateStepMsiInstallationOutput() GuestPoliciesRecipeUpdateStepMsiInstallationOutput { + return i.ToGuestPoliciesRecipeUpdateStepMsiInstallationOutputWithContext(context.Background()) +} + +func (i GuestPoliciesRecipeUpdateStepMsiInstallationArgs) ToGuestPoliciesRecipeUpdateStepMsiInstallationOutputWithContext(ctx context.Context) GuestPoliciesRecipeUpdateStepMsiInstallationOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuestPoliciesRecipeUpdateStepMsiInstallationOutput) +} + +func (i GuestPoliciesRecipeUpdateStepMsiInstallationArgs) ToGuestPoliciesRecipeUpdateStepMsiInstallationPtrOutput() GuestPoliciesRecipeUpdateStepMsiInstallationPtrOutput { + return i.ToGuestPoliciesRecipeUpdateStepMsiInstallationPtrOutputWithContext(context.Background()) +} + +func (i GuestPoliciesRecipeUpdateStepMsiInstallationArgs) ToGuestPoliciesRecipeUpdateStepMsiInstallationPtrOutputWithContext(ctx context.Context) GuestPoliciesRecipeUpdateStepMsiInstallationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuestPoliciesRecipeUpdateStepMsiInstallationOutput).ToGuestPoliciesRecipeUpdateStepMsiInstallationPtrOutputWithContext(ctx) +} + +// GuestPoliciesRecipeUpdateStepMsiInstallationPtrInput is an input type that accepts GuestPoliciesRecipeUpdateStepMsiInstallationArgs, GuestPoliciesRecipeUpdateStepMsiInstallationPtr and GuestPoliciesRecipeUpdateStepMsiInstallationPtrOutput values. +// You can construct a concrete instance of `GuestPoliciesRecipeUpdateStepMsiInstallationPtrInput` via: +// +// GuestPoliciesRecipeUpdateStepMsiInstallationArgs{...} +// +// or: +// +// nil +type GuestPoliciesRecipeUpdateStepMsiInstallationPtrInput interface { + pulumi.Input + + ToGuestPoliciesRecipeUpdateStepMsiInstallationPtrOutput() GuestPoliciesRecipeUpdateStepMsiInstallationPtrOutput + ToGuestPoliciesRecipeUpdateStepMsiInstallationPtrOutputWithContext(context.Context) GuestPoliciesRecipeUpdateStepMsiInstallationPtrOutput +} + +type guestPoliciesRecipeUpdateStepMsiInstallationPtrType GuestPoliciesRecipeUpdateStepMsiInstallationArgs + +func GuestPoliciesRecipeUpdateStepMsiInstallationPtr(v *GuestPoliciesRecipeUpdateStepMsiInstallationArgs) GuestPoliciesRecipeUpdateStepMsiInstallationPtrInput { + return (*guestPoliciesRecipeUpdateStepMsiInstallationPtrType)(v) +} + +func (*guestPoliciesRecipeUpdateStepMsiInstallationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**GuestPoliciesRecipeUpdateStepMsiInstallation)(nil)).Elem() +} + +func (i *guestPoliciesRecipeUpdateStepMsiInstallationPtrType) ToGuestPoliciesRecipeUpdateStepMsiInstallationPtrOutput() GuestPoliciesRecipeUpdateStepMsiInstallationPtrOutput { + return i.ToGuestPoliciesRecipeUpdateStepMsiInstallationPtrOutputWithContext(context.Background()) +} + +func (i *guestPoliciesRecipeUpdateStepMsiInstallationPtrType) ToGuestPoliciesRecipeUpdateStepMsiInstallationPtrOutputWithContext(ctx context.Context) GuestPoliciesRecipeUpdateStepMsiInstallationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuestPoliciesRecipeUpdateStepMsiInstallationPtrOutput) +} + +type GuestPoliciesRecipeUpdateStepMsiInstallationOutput struct{ *pulumi.OutputState } + +func (GuestPoliciesRecipeUpdateStepMsiInstallationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GuestPoliciesRecipeUpdateStepMsiInstallation)(nil)).Elem() +} + +func (o GuestPoliciesRecipeUpdateStepMsiInstallationOutput) ToGuestPoliciesRecipeUpdateStepMsiInstallationOutput() GuestPoliciesRecipeUpdateStepMsiInstallationOutput { + return o +} + +func (o GuestPoliciesRecipeUpdateStepMsiInstallationOutput) ToGuestPoliciesRecipeUpdateStepMsiInstallationOutputWithContext(ctx context.Context) GuestPoliciesRecipeUpdateStepMsiInstallationOutput { + return o +} + +func (o GuestPoliciesRecipeUpdateStepMsiInstallationOutput) ToGuestPoliciesRecipeUpdateStepMsiInstallationPtrOutput() GuestPoliciesRecipeUpdateStepMsiInstallationPtrOutput { + return o.ToGuestPoliciesRecipeUpdateStepMsiInstallationPtrOutputWithContext(context.Background()) +} + +func (o GuestPoliciesRecipeUpdateStepMsiInstallationOutput) ToGuestPoliciesRecipeUpdateStepMsiInstallationPtrOutputWithContext(ctx context.Context) GuestPoliciesRecipeUpdateStepMsiInstallationPtrOutput { + return o.ApplyT(func(v GuestPoliciesRecipeUpdateStepMsiInstallation) *GuestPoliciesRecipeUpdateStepMsiInstallation { + return &v + }).(GuestPoliciesRecipeUpdateStepMsiInstallationPtrOutput) +} + +// Return codes that indicate that the software installed or updated successfully. Behaviour defaults to [0] +func (o GuestPoliciesRecipeUpdateStepMsiInstallationOutput) AllowedExitCodes() pulumi.IntArrayOutput { + return o.ApplyT(func(v GuestPoliciesRecipeUpdateStepMsiInstallation) []int { return v.AllowedExitCodes }).(pulumi.IntArrayOutput) +} + +// The id of the relevant artifact in the recipe. +func (o GuestPoliciesRecipeUpdateStepMsiInstallationOutput) ArtifactId() pulumi.StringOutput { + return o.ApplyT(func(v GuestPoliciesRecipeUpdateStepMsiInstallation) string { return v.ArtifactId }).(pulumi.StringOutput) +} + +// The flags to use when installing the MSI. Defaults to the install flag. +func (o GuestPoliciesRecipeUpdateStepMsiInstallationOutput) Flags() pulumi.StringArrayOutput { + return o.ApplyT(func(v GuestPoliciesRecipeUpdateStepMsiInstallation) []string { return v.Flags }).(pulumi.StringArrayOutput) +} + +type GuestPoliciesRecipeUpdateStepMsiInstallationPtrOutput struct{ *pulumi.OutputState } + +func (GuestPoliciesRecipeUpdateStepMsiInstallationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**GuestPoliciesRecipeUpdateStepMsiInstallation)(nil)).Elem() +} + +func (o GuestPoliciesRecipeUpdateStepMsiInstallationPtrOutput) ToGuestPoliciesRecipeUpdateStepMsiInstallationPtrOutput() GuestPoliciesRecipeUpdateStepMsiInstallationPtrOutput { + return o +} + +func (o GuestPoliciesRecipeUpdateStepMsiInstallationPtrOutput) ToGuestPoliciesRecipeUpdateStepMsiInstallationPtrOutputWithContext(ctx context.Context) GuestPoliciesRecipeUpdateStepMsiInstallationPtrOutput { + return o +} + +func (o GuestPoliciesRecipeUpdateStepMsiInstallationPtrOutput) Elem() GuestPoliciesRecipeUpdateStepMsiInstallationOutput { + return o.ApplyT(func(v *GuestPoliciesRecipeUpdateStepMsiInstallation) GuestPoliciesRecipeUpdateStepMsiInstallation { + return *v + }).(GuestPoliciesRecipeUpdateStepMsiInstallationOutput) +} + +// Return codes that indicate that the software installed or updated successfully. Behaviour defaults to [0] +func (o GuestPoliciesRecipeUpdateStepMsiInstallationPtrOutput) AllowedExitCodes() pulumi.IntArrayOutput { + return o.ApplyT(func(v *GuestPoliciesRecipeUpdateStepMsiInstallation) []int { + if v == nil { + return nil + } + return v.AllowedExitCodes + }).(pulumi.IntArrayOutput) +} + +// The id of the relevant artifact in the recipe. +func (o GuestPoliciesRecipeUpdateStepMsiInstallationPtrOutput) ArtifactId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GuestPoliciesRecipeUpdateStepMsiInstallation) *string { + if v == nil { + return nil + } + return &v.ArtifactId + }).(pulumi.StringPtrOutput) +} + +// The flags to use when installing the MSI. Defaults to the install flag. +func (o GuestPoliciesRecipeUpdateStepMsiInstallationPtrOutput) Flags() pulumi.StringArrayOutput { + return o.ApplyT(func(v *GuestPoliciesRecipeUpdateStepMsiInstallation) []string { + if v == nil { + return nil + } + return v.Flags + }).(pulumi.StringArrayOutput) +} + +type GuestPoliciesRecipeUpdateStepRpmInstallation struct { + // The id of the relevant artifact in the recipe. + ArtifactId string `pulumi:"artifactId"` +} + +// GuestPoliciesRecipeUpdateStepRpmInstallationInput is an input type that accepts GuestPoliciesRecipeUpdateStepRpmInstallationArgs and GuestPoliciesRecipeUpdateStepRpmInstallationOutput values. +// You can construct a concrete instance of `GuestPoliciesRecipeUpdateStepRpmInstallationInput` via: +// +// GuestPoliciesRecipeUpdateStepRpmInstallationArgs{...} +type GuestPoliciesRecipeUpdateStepRpmInstallationInput interface { + pulumi.Input + + ToGuestPoliciesRecipeUpdateStepRpmInstallationOutput() GuestPoliciesRecipeUpdateStepRpmInstallationOutput + ToGuestPoliciesRecipeUpdateStepRpmInstallationOutputWithContext(context.Context) GuestPoliciesRecipeUpdateStepRpmInstallationOutput +} + +type GuestPoliciesRecipeUpdateStepRpmInstallationArgs struct { + // The id of the relevant artifact in the recipe. + ArtifactId pulumi.StringInput `pulumi:"artifactId"` +} + +func (GuestPoliciesRecipeUpdateStepRpmInstallationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GuestPoliciesRecipeUpdateStepRpmInstallation)(nil)).Elem() +} + +func (i GuestPoliciesRecipeUpdateStepRpmInstallationArgs) ToGuestPoliciesRecipeUpdateStepRpmInstallationOutput() GuestPoliciesRecipeUpdateStepRpmInstallationOutput { + return i.ToGuestPoliciesRecipeUpdateStepRpmInstallationOutputWithContext(context.Background()) +} + +func (i GuestPoliciesRecipeUpdateStepRpmInstallationArgs) ToGuestPoliciesRecipeUpdateStepRpmInstallationOutputWithContext(ctx context.Context) GuestPoliciesRecipeUpdateStepRpmInstallationOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuestPoliciesRecipeUpdateStepRpmInstallationOutput) +} + +func (i GuestPoliciesRecipeUpdateStepRpmInstallationArgs) ToGuestPoliciesRecipeUpdateStepRpmInstallationPtrOutput() GuestPoliciesRecipeUpdateStepRpmInstallationPtrOutput { + return i.ToGuestPoliciesRecipeUpdateStepRpmInstallationPtrOutputWithContext(context.Background()) +} + +func (i GuestPoliciesRecipeUpdateStepRpmInstallationArgs) ToGuestPoliciesRecipeUpdateStepRpmInstallationPtrOutputWithContext(ctx context.Context) GuestPoliciesRecipeUpdateStepRpmInstallationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuestPoliciesRecipeUpdateStepRpmInstallationOutput).ToGuestPoliciesRecipeUpdateStepRpmInstallationPtrOutputWithContext(ctx) +} + +// GuestPoliciesRecipeUpdateStepRpmInstallationPtrInput is an input type that accepts GuestPoliciesRecipeUpdateStepRpmInstallationArgs, GuestPoliciesRecipeUpdateStepRpmInstallationPtr and GuestPoliciesRecipeUpdateStepRpmInstallationPtrOutput values. +// You can construct a concrete instance of `GuestPoliciesRecipeUpdateStepRpmInstallationPtrInput` via: +// +// GuestPoliciesRecipeUpdateStepRpmInstallationArgs{...} +// +// or: +// +// nil +type GuestPoliciesRecipeUpdateStepRpmInstallationPtrInput interface { + pulumi.Input + + ToGuestPoliciesRecipeUpdateStepRpmInstallationPtrOutput() GuestPoliciesRecipeUpdateStepRpmInstallationPtrOutput + ToGuestPoliciesRecipeUpdateStepRpmInstallationPtrOutputWithContext(context.Context) GuestPoliciesRecipeUpdateStepRpmInstallationPtrOutput +} + +type guestPoliciesRecipeUpdateStepRpmInstallationPtrType GuestPoliciesRecipeUpdateStepRpmInstallationArgs + +func GuestPoliciesRecipeUpdateStepRpmInstallationPtr(v *GuestPoliciesRecipeUpdateStepRpmInstallationArgs) GuestPoliciesRecipeUpdateStepRpmInstallationPtrInput { + return (*guestPoliciesRecipeUpdateStepRpmInstallationPtrType)(v) +} + +func (*guestPoliciesRecipeUpdateStepRpmInstallationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**GuestPoliciesRecipeUpdateStepRpmInstallation)(nil)).Elem() +} + +func (i *guestPoliciesRecipeUpdateStepRpmInstallationPtrType) ToGuestPoliciesRecipeUpdateStepRpmInstallationPtrOutput() GuestPoliciesRecipeUpdateStepRpmInstallationPtrOutput { + return i.ToGuestPoliciesRecipeUpdateStepRpmInstallationPtrOutputWithContext(context.Background()) +} + +func (i *guestPoliciesRecipeUpdateStepRpmInstallationPtrType) ToGuestPoliciesRecipeUpdateStepRpmInstallationPtrOutputWithContext(ctx context.Context) GuestPoliciesRecipeUpdateStepRpmInstallationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuestPoliciesRecipeUpdateStepRpmInstallationPtrOutput) +} + +type GuestPoliciesRecipeUpdateStepRpmInstallationOutput struct{ *pulumi.OutputState } + +func (GuestPoliciesRecipeUpdateStepRpmInstallationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GuestPoliciesRecipeUpdateStepRpmInstallation)(nil)).Elem() +} + +func (o GuestPoliciesRecipeUpdateStepRpmInstallationOutput) ToGuestPoliciesRecipeUpdateStepRpmInstallationOutput() GuestPoliciesRecipeUpdateStepRpmInstallationOutput { + return o +} + +func (o GuestPoliciesRecipeUpdateStepRpmInstallationOutput) ToGuestPoliciesRecipeUpdateStepRpmInstallationOutputWithContext(ctx context.Context) GuestPoliciesRecipeUpdateStepRpmInstallationOutput { + return o +} + +func (o GuestPoliciesRecipeUpdateStepRpmInstallationOutput) ToGuestPoliciesRecipeUpdateStepRpmInstallationPtrOutput() GuestPoliciesRecipeUpdateStepRpmInstallationPtrOutput { + return o.ToGuestPoliciesRecipeUpdateStepRpmInstallationPtrOutputWithContext(context.Background()) +} + +func (o GuestPoliciesRecipeUpdateStepRpmInstallationOutput) ToGuestPoliciesRecipeUpdateStepRpmInstallationPtrOutputWithContext(ctx context.Context) GuestPoliciesRecipeUpdateStepRpmInstallationPtrOutput { + return o.ApplyT(func(v GuestPoliciesRecipeUpdateStepRpmInstallation) *GuestPoliciesRecipeUpdateStepRpmInstallation { + return &v + }).(GuestPoliciesRecipeUpdateStepRpmInstallationPtrOutput) +} + +// The id of the relevant artifact in the recipe. +func (o GuestPoliciesRecipeUpdateStepRpmInstallationOutput) ArtifactId() pulumi.StringOutput { + return o.ApplyT(func(v GuestPoliciesRecipeUpdateStepRpmInstallation) string { return v.ArtifactId }).(pulumi.StringOutput) +} + +type GuestPoliciesRecipeUpdateStepRpmInstallationPtrOutput struct{ *pulumi.OutputState } + +func (GuestPoliciesRecipeUpdateStepRpmInstallationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**GuestPoliciesRecipeUpdateStepRpmInstallation)(nil)).Elem() +} + +func (o GuestPoliciesRecipeUpdateStepRpmInstallationPtrOutput) ToGuestPoliciesRecipeUpdateStepRpmInstallationPtrOutput() GuestPoliciesRecipeUpdateStepRpmInstallationPtrOutput { + return o +} + +func (o GuestPoliciesRecipeUpdateStepRpmInstallationPtrOutput) ToGuestPoliciesRecipeUpdateStepRpmInstallationPtrOutputWithContext(ctx context.Context) GuestPoliciesRecipeUpdateStepRpmInstallationPtrOutput { + return o +} + +func (o GuestPoliciesRecipeUpdateStepRpmInstallationPtrOutput) Elem() GuestPoliciesRecipeUpdateStepRpmInstallationOutput { + return o.ApplyT(func(v *GuestPoliciesRecipeUpdateStepRpmInstallation) GuestPoliciesRecipeUpdateStepRpmInstallation { + return *v + }).(GuestPoliciesRecipeUpdateStepRpmInstallationOutput) +} + +// The id of the relevant artifact in the recipe. +func (o GuestPoliciesRecipeUpdateStepRpmInstallationPtrOutput) ArtifactId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GuestPoliciesRecipeUpdateStepRpmInstallation) *string { + if v == nil { + return nil + } + return &v.ArtifactId + }).(pulumi.StringPtrOutput) +} + +type GuestPoliciesRecipeUpdateStepScriptRun struct { + // Return codes that indicate that the software installed or updated successfully. Behaviour defaults to [0] + AllowedExitCodes []int `pulumi:"allowedExitCodes"` + // The script interpreter to use to run the script. If no interpreter is specified the script is executed directly, + // which likely only succeed for scripts with shebang lines. + Interpreter *string `pulumi:"interpreter"` + // The shell script to be executed. + Script string `pulumi:"script"` +} + +// GuestPoliciesRecipeUpdateStepScriptRunInput is an input type that accepts GuestPoliciesRecipeUpdateStepScriptRunArgs and GuestPoliciesRecipeUpdateStepScriptRunOutput values. +// You can construct a concrete instance of `GuestPoliciesRecipeUpdateStepScriptRunInput` via: +// +// GuestPoliciesRecipeUpdateStepScriptRunArgs{...} +type GuestPoliciesRecipeUpdateStepScriptRunInput interface { + pulumi.Input + + ToGuestPoliciesRecipeUpdateStepScriptRunOutput() GuestPoliciesRecipeUpdateStepScriptRunOutput + ToGuestPoliciesRecipeUpdateStepScriptRunOutputWithContext(context.Context) GuestPoliciesRecipeUpdateStepScriptRunOutput +} + +type GuestPoliciesRecipeUpdateStepScriptRunArgs struct { + // Return codes that indicate that the software installed or updated successfully. Behaviour defaults to [0] + AllowedExitCodes pulumi.IntArrayInput `pulumi:"allowedExitCodes"` + // The script interpreter to use to run the script. If no interpreter is specified the script is executed directly, + // which likely only succeed for scripts with shebang lines. + Interpreter pulumi.StringPtrInput `pulumi:"interpreter"` + // The shell script to be executed. + Script pulumi.StringInput `pulumi:"script"` +} + +func (GuestPoliciesRecipeUpdateStepScriptRunArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GuestPoliciesRecipeUpdateStepScriptRun)(nil)).Elem() +} + +func (i GuestPoliciesRecipeUpdateStepScriptRunArgs) ToGuestPoliciesRecipeUpdateStepScriptRunOutput() GuestPoliciesRecipeUpdateStepScriptRunOutput { + return i.ToGuestPoliciesRecipeUpdateStepScriptRunOutputWithContext(context.Background()) +} + +func (i GuestPoliciesRecipeUpdateStepScriptRunArgs) ToGuestPoliciesRecipeUpdateStepScriptRunOutputWithContext(ctx context.Context) GuestPoliciesRecipeUpdateStepScriptRunOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuestPoliciesRecipeUpdateStepScriptRunOutput) +} + +func (i GuestPoliciesRecipeUpdateStepScriptRunArgs) ToGuestPoliciesRecipeUpdateStepScriptRunPtrOutput() GuestPoliciesRecipeUpdateStepScriptRunPtrOutput { + return i.ToGuestPoliciesRecipeUpdateStepScriptRunPtrOutputWithContext(context.Background()) +} + +func (i GuestPoliciesRecipeUpdateStepScriptRunArgs) ToGuestPoliciesRecipeUpdateStepScriptRunPtrOutputWithContext(ctx context.Context) GuestPoliciesRecipeUpdateStepScriptRunPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuestPoliciesRecipeUpdateStepScriptRunOutput).ToGuestPoliciesRecipeUpdateStepScriptRunPtrOutputWithContext(ctx) +} + +// GuestPoliciesRecipeUpdateStepScriptRunPtrInput is an input type that accepts GuestPoliciesRecipeUpdateStepScriptRunArgs, GuestPoliciesRecipeUpdateStepScriptRunPtr and GuestPoliciesRecipeUpdateStepScriptRunPtrOutput values. +// You can construct a concrete instance of `GuestPoliciesRecipeUpdateStepScriptRunPtrInput` via: +// +// GuestPoliciesRecipeUpdateStepScriptRunArgs{...} +// +// or: +// +// nil +type GuestPoliciesRecipeUpdateStepScriptRunPtrInput interface { + pulumi.Input + + ToGuestPoliciesRecipeUpdateStepScriptRunPtrOutput() GuestPoliciesRecipeUpdateStepScriptRunPtrOutput + ToGuestPoliciesRecipeUpdateStepScriptRunPtrOutputWithContext(context.Context) GuestPoliciesRecipeUpdateStepScriptRunPtrOutput +} + +type guestPoliciesRecipeUpdateStepScriptRunPtrType GuestPoliciesRecipeUpdateStepScriptRunArgs + +func GuestPoliciesRecipeUpdateStepScriptRunPtr(v *GuestPoliciesRecipeUpdateStepScriptRunArgs) GuestPoliciesRecipeUpdateStepScriptRunPtrInput { + return (*guestPoliciesRecipeUpdateStepScriptRunPtrType)(v) +} + +func (*guestPoliciesRecipeUpdateStepScriptRunPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**GuestPoliciesRecipeUpdateStepScriptRun)(nil)).Elem() +} + +func (i *guestPoliciesRecipeUpdateStepScriptRunPtrType) ToGuestPoliciesRecipeUpdateStepScriptRunPtrOutput() GuestPoliciesRecipeUpdateStepScriptRunPtrOutput { + return i.ToGuestPoliciesRecipeUpdateStepScriptRunPtrOutputWithContext(context.Background()) +} + +func (i *guestPoliciesRecipeUpdateStepScriptRunPtrType) ToGuestPoliciesRecipeUpdateStepScriptRunPtrOutputWithContext(ctx context.Context) GuestPoliciesRecipeUpdateStepScriptRunPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuestPoliciesRecipeUpdateStepScriptRunPtrOutput) +} + +type GuestPoliciesRecipeUpdateStepScriptRunOutput struct{ *pulumi.OutputState } + +func (GuestPoliciesRecipeUpdateStepScriptRunOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GuestPoliciesRecipeUpdateStepScriptRun)(nil)).Elem() +} + +func (o GuestPoliciesRecipeUpdateStepScriptRunOutput) ToGuestPoliciesRecipeUpdateStepScriptRunOutput() GuestPoliciesRecipeUpdateStepScriptRunOutput { + return o +} + +func (o GuestPoliciesRecipeUpdateStepScriptRunOutput) ToGuestPoliciesRecipeUpdateStepScriptRunOutputWithContext(ctx context.Context) GuestPoliciesRecipeUpdateStepScriptRunOutput { + return o +} + +func (o GuestPoliciesRecipeUpdateStepScriptRunOutput) ToGuestPoliciesRecipeUpdateStepScriptRunPtrOutput() GuestPoliciesRecipeUpdateStepScriptRunPtrOutput { + return o.ToGuestPoliciesRecipeUpdateStepScriptRunPtrOutputWithContext(context.Background()) +} + +func (o GuestPoliciesRecipeUpdateStepScriptRunOutput) ToGuestPoliciesRecipeUpdateStepScriptRunPtrOutputWithContext(ctx context.Context) GuestPoliciesRecipeUpdateStepScriptRunPtrOutput { + return o.ApplyT(func(v GuestPoliciesRecipeUpdateStepScriptRun) *GuestPoliciesRecipeUpdateStepScriptRun { + return &v + }).(GuestPoliciesRecipeUpdateStepScriptRunPtrOutput) +} + +// Return codes that indicate that the software installed or updated successfully. Behaviour defaults to [0] +func (o GuestPoliciesRecipeUpdateStepScriptRunOutput) AllowedExitCodes() pulumi.IntArrayOutput { + return o.ApplyT(func(v GuestPoliciesRecipeUpdateStepScriptRun) []int { return v.AllowedExitCodes }).(pulumi.IntArrayOutput) +} + +// The script interpreter to use to run the script. If no interpreter is specified the script is executed directly, +// which likely only succeed for scripts with shebang lines. +func (o GuestPoliciesRecipeUpdateStepScriptRunOutput) Interpreter() pulumi.StringPtrOutput { + return o.ApplyT(func(v GuestPoliciesRecipeUpdateStepScriptRun) *string { return v.Interpreter }).(pulumi.StringPtrOutput) +} + +// The shell script to be executed. +func (o GuestPoliciesRecipeUpdateStepScriptRunOutput) Script() pulumi.StringOutput { + return o.ApplyT(func(v GuestPoliciesRecipeUpdateStepScriptRun) string { return v.Script }).(pulumi.StringOutput) +} + +type GuestPoliciesRecipeUpdateStepScriptRunPtrOutput struct{ *pulumi.OutputState } + +func (GuestPoliciesRecipeUpdateStepScriptRunPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**GuestPoliciesRecipeUpdateStepScriptRun)(nil)).Elem() +} + +func (o GuestPoliciesRecipeUpdateStepScriptRunPtrOutput) ToGuestPoliciesRecipeUpdateStepScriptRunPtrOutput() GuestPoliciesRecipeUpdateStepScriptRunPtrOutput { + return o +} + +func (o GuestPoliciesRecipeUpdateStepScriptRunPtrOutput) ToGuestPoliciesRecipeUpdateStepScriptRunPtrOutputWithContext(ctx context.Context) GuestPoliciesRecipeUpdateStepScriptRunPtrOutput { + return o +} + +func (o GuestPoliciesRecipeUpdateStepScriptRunPtrOutput) Elem() GuestPoliciesRecipeUpdateStepScriptRunOutput { + return o.ApplyT(func(v *GuestPoliciesRecipeUpdateStepScriptRun) GuestPoliciesRecipeUpdateStepScriptRun { return *v }).(GuestPoliciesRecipeUpdateStepScriptRunOutput) +} + +// Return codes that indicate that the software installed or updated successfully. Behaviour defaults to [0] +func (o GuestPoliciesRecipeUpdateStepScriptRunPtrOutput) AllowedExitCodes() pulumi.IntArrayOutput { + return o.ApplyT(func(v *GuestPoliciesRecipeUpdateStepScriptRun) []int { + if v == nil { + return nil + } + return v.AllowedExitCodes + }).(pulumi.IntArrayOutput) +} + +// The script interpreter to use to run the script. If no interpreter is specified the script is executed directly, +// which likely only succeed for scripts with shebang lines. +func (o GuestPoliciesRecipeUpdateStepScriptRunPtrOutput) Interpreter() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GuestPoliciesRecipeUpdateStepScriptRun) *string { + if v == nil { + return nil + } + return v.Interpreter + }).(pulumi.StringPtrOutput) +} + +// The shell script to be executed. +func (o GuestPoliciesRecipeUpdateStepScriptRunPtrOutput) Script() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GuestPoliciesRecipeUpdateStepScriptRun) *string { + if v == nil { + return nil + } + return &v.Script + }).(pulumi.StringPtrOutput) +} + type PatchDeploymentInstanceFilter struct { // Target all VM instances in the project. If true, no other criteria is permitted. All *bool `pulumi:"all"` @@ -4496,6 +9305,64 @@ func (o PatchDeploymentRecurringScheduleWeeklyPtrOutput) DayOfWeek() pulumi.Stri } func init() { + pulumi.RegisterOutputType(GuestPoliciesAssignmentOutput{}) + pulumi.RegisterOutputType(GuestPoliciesAssignmentPtrOutput{}) + pulumi.RegisterOutputType(GuestPoliciesAssignmentGroupLabelOutput{}) + pulumi.RegisterOutputType(GuestPoliciesAssignmentGroupLabelArrayOutput{}) + pulumi.RegisterOutputType(GuestPoliciesAssignmentOsTypeOutput{}) + pulumi.RegisterOutputType(GuestPoliciesAssignmentOsTypeArrayOutput{}) + pulumi.RegisterOutputType(GuestPoliciesPackageOutput{}) + pulumi.RegisterOutputType(GuestPoliciesPackageArrayOutput{}) + pulumi.RegisterOutputType(GuestPoliciesPackageRepositoryOutput{}) + pulumi.RegisterOutputType(GuestPoliciesPackageRepositoryArrayOutput{}) + pulumi.RegisterOutputType(GuestPoliciesPackageRepositoryAptOutput{}) + pulumi.RegisterOutputType(GuestPoliciesPackageRepositoryAptPtrOutput{}) + pulumi.RegisterOutputType(GuestPoliciesPackageRepositoryGooOutput{}) + pulumi.RegisterOutputType(GuestPoliciesPackageRepositoryGooPtrOutput{}) + pulumi.RegisterOutputType(GuestPoliciesPackageRepositoryYumOutput{}) + pulumi.RegisterOutputType(GuestPoliciesPackageRepositoryYumPtrOutput{}) + pulumi.RegisterOutputType(GuestPoliciesPackageRepositoryZypperOutput{}) + pulumi.RegisterOutputType(GuestPoliciesPackageRepositoryZypperPtrOutput{}) + pulumi.RegisterOutputType(GuestPoliciesRecipeOutput{}) + pulumi.RegisterOutputType(GuestPoliciesRecipeArrayOutput{}) + pulumi.RegisterOutputType(GuestPoliciesRecipeArtifactOutput{}) + pulumi.RegisterOutputType(GuestPoliciesRecipeArtifactArrayOutput{}) + pulumi.RegisterOutputType(GuestPoliciesRecipeArtifactGcsOutput{}) + pulumi.RegisterOutputType(GuestPoliciesRecipeArtifactGcsPtrOutput{}) + pulumi.RegisterOutputType(GuestPoliciesRecipeArtifactRemoteOutput{}) + pulumi.RegisterOutputType(GuestPoliciesRecipeArtifactRemotePtrOutput{}) + pulumi.RegisterOutputType(GuestPoliciesRecipeInstallStepOutput{}) + pulumi.RegisterOutputType(GuestPoliciesRecipeInstallStepArrayOutput{}) + pulumi.RegisterOutputType(GuestPoliciesRecipeInstallStepArchiveExtractionOutput{}) + pulumi.RegisterOutputType(GuestPoliciesRecipeInstallStepArchiveExtractionPtrOutput{}) + pulumi.RegisterOutputType(GuestPoliciesRecipeInstallStepDpkgInstallationOutput{}) + pulumi.RegisterOutputType(GuestPoliciesRecipeInstallStepDpkgInstallationPtrOutput{}) + pulumi.RegisterOutputType(GuestPoliciesRecipeInstallStepFileCopyOutput{}) + pulumi.RegisterOutputType(GuestPoliciesRecipeInstallStepFileCopyPtrOutput{}) + pulumi.RegisterOutputType(GuestPoliciesRecipeInstallStepFileExecOutput{}) + pulumi.RegisterOutputType(GuestPoliciesRecipeInstallStepFileExecPtrOutput{}) + pulumi.RegisterOutputType(GuestPoliciesRecipeInstallStepMsiInstallationOutput{}) + pulumi.RegisterOutputType(GuestPoliciesRecipeInstallStepMsiInstallationPtrOutput{}) + pulumi.RegisterOutputType(GuestPoliciesRecipeInstallStepRpmInstallationOutput{}) + pulumi.RegisterOutputType(GuestPoliciesRecipeInstallStepRpmInstallationPtrOutput{}) + pulumi.RegisterOutputType(GuestPoliciesRecipeInstallStepScriptRunOutput{}) + pulumi.RegisterOutputType(GuestPoliciesRecipeInstallStepScriptRunPtrOutput{}) + pulumi.RegisterOutputType(GuestPoliciesRecipeUpdateStepOutput{}) + pulumi.RegisterOutputType(GuestPoliciesRecipeUpdateStepArrayOutput{}) + pulumi.RegisterOutputType(GuestPoliciesRecipeUpdateStepArchiveExtractionOutput{}) + pulumi.RegisterOutputType(GuestPoliciesRecipeUpdateStepArchiveExtractionPtrOutput{}) + pulumi.RegisterOutputType(GuestPoliciesRecipeUpdateStepDpkgInstallationOutput{}) + pulumi.RegisterOutputType(GuestPoliciesRecipeUpdateStepDpkgInstallationPtrOutput{}) + pulumi.RegisterOutputType(GuestPoliciesRecipeUpdateStepFileCopyOutput{}) + pulumi.RegisterOutputType(GuestPoliciesRecipeUpdateStepFileCopyPtrOutput{}) + pulumi.RegisterOutputType(GuestPoliciesRecipeUpdateStepFileExecOutput{}) + pulumi.RegisterOutputType(GuestPoliciesRecipeUpdateStepFileExecPtrOutput{}) + pulumi.RegisterOutputType(GuestPoliciesRecipeUpdateStepMsiInstallationOutput{}) + pulumi.RegisterOutputType(GuestPoliciesRecipeUpdateStepMsiInstallationPtrOutput{}) + pulumi.RegisterOutputType(GuestPoliciesRecipeUpdateStepRpmInstallationOutput{}) + pulumi.RegisterOutputType(GuestPoliciesRecipeUpdateStepRpmInstallationPtrOutput{}) + pulumi.RegisterOutputType(GuestPoliciesRecipeUpdateStepScriptRunOutput{}) + pulumi.RegisterOutputType(GuestPoliciesRecipeUpdateStepScriptRunPtrOutput{}) pulumi.RegisterOutputType(PatchDeploymentInstanceFilterOutput{}) pulumi.RegisterOutputType(PatchDeploymentInstanceFilterPtrOutput{}) pulumi.RegisterOutputType(PatchDeploymentInstanceFilterGroupLabelOutput{}) diff --git a/sdk/go/gcp/provider.go b/sdk/go/gcp/provider.go index 64463e4316..a75e0893e0 100644 --- a/sdk/go/gcp/provider.go +++ b/sdk/go/gcp/provider.go @@ -56,6 +56,7 @@ type providerArgs struct { BigtableCustomEndpoint *string `pulumi:"bigtableCustomEndpoint"` BillingCustomEndpoint *string `pulumi:"billingCustomEndpoint"` BinaryAuthorizationCustomEndpoint *string `pulumi:"binaryAuthorizationCustomEndpoint"` + CloudAssetCustomEndpoint *string `pulumi:"cloudAssetCustomEndpoint"` CloudBillingCustomEndpoint *string `pulumi:"cloudBillingCustomEndpoint"` CloudBuildCustomEndpoint *string `pulumi:"cloudBuildCustomEndpoint"` CloudFunctionsCustomEndpoint *string `pulumi:"cloudFunctionsCustomEndpoint"` @@ -141,6 +142,7 @@ type ProviderArgs struct { BigtableCustomEndpoint pulumi.StringPtrInput BillingCustomEndpoint pulumi.StringPtrInput BinaryAuthorizationCustomEndpoint pulumi.StringPtrInput + CloudAssetCustomEndpoint pulumi.StringPtrInput CloudBillingCustomEndpoint pulumi.StringPtrInput CloudBuildCustomEndpoint pulumi.StringPtrInput CloudFunctionsCustomEndpoint pulumi.StringPtrInput diff --git a/sdk/go/gcp/sql/getDatabaseInstance.go b/sdk/go/gcp/sql/getDatabaseInstance.go new file mode 100644 index 0000000000..449b1b9594 --- /dev/null +++ b/sdk/go/gcp/sql/getDatabaseInstance.go @@ -0,0 +1,62 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package sql + +import ( + "github.com/pulumi/pulumi/sdk/v2/go/pulumi" +) + +// Use this data source to get information about a Cloud SQL instance +func LookupDatabaseInstance(ctx *pulumi.Context, args *LookupDatabaseInstanceArgs, opts ...pulumi.InvokeOption) (*LookupDatabaseInstanceResult, error) { + var rv LookupDatabaseInstanceResult + err := ctx.Invoke("gcp:sql/getDatabaseInstance:getDatabaseInstance", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +// A collection of arguments for invoking getDatabaseInstance. +type LookupDatabaseInstanceArgs struct { + // The name of the instance. + Name string `pulumi:"name"` +} + +// A collection of values returned by getDatabaseInstance. +type LookupDatabaseInstanceResult struct { + // The connection name of the instance to be used in connection strings. + ConnectionName string `pulumi:"connectionName"` + // The MySQL, PostgreSQL or SQL Server (beta) version to use. + DatabaseVersion string `pulumi:"databaseVersion"` + EncryptionKeyName string `pulumi:"encryptionKeyName"` + // The first IPv4 address of any type assigned. + FirstIpAddress string `pulumi:"firstIpAddress"` + // The provider-assigned unique ID for this managed resource. + Id string `pulumi:"id"` + IpAddresses []GetDatabaseInstanceIpAddress `pulumi:"ipAddresses"` + // The name of the instance that will act as + // the master in the replication setup. + MasterInstanceName string `pulumi:"masterInstanceName"` + // A name for this whitelist entry. + Name string `pulumi:"name"` + // The first private (`PRIVATE`) IPv4 address assigned. + PrivateIpAddress string `pulumi:"privateIpAddress"` + Project string `pulumi:"project"` + // The first public (`PRIMARY`) IPv4 address assigned. + PublicIpAddress string `pulumi:"publicIpAddress"` + Region string `pulumi:"region"` + // The configuration for replication. The + // configuration is detailed below. + ReplicaConfigurations []GetDatabaseInstanceReplicaConfiguration `pulumi:"replicaConfigurations"` + // Initial root password. Required for MS SQL Server, ignored by MySQL and PostgreSQL. + RootPassword string `pulumi:"rootPassword"` + // The URI of the created resource. + SelfLink string `pulumi:"selfLink"` + ServerCaCerts []GetDatabaseInstanceServerCaCert `pulumi:"serverCaCerts"` + // The service account email address assigned to the instance. + ServiceAccountEmailAddress string `pulumi:"serviceAccountEmailAddress"` + // The settings to use for the database. The + // configuration is detailed below. + Settings []GetDatabaseInstanceSetting `pulumi:"settings"` +} diff --git a/sdk/go/gcp/sql/pulumiTypes.go b/sdk/go/gcp/sql/pulumiTypes.go index 06d945e859..c1727f89d6 100644 --- a/sdk/go/gcp/sql/pulumiTypes.go +++ b/sdk/go/gcp/sql/pulumiTypes.go @@ -2287,6 +2287,1361 @@ func (o GetCaCertsCertArrayOutput) Index(i pulumi.IntInput) GetCaCertsCertOutput }).(GetCaCertsCertOutput) } +type GetDatabaseInstanceIpAddress struct { + IpAddress string `pulumi:"ipAddress"` + TimeToRetire string `pulumi:"timeToRetire"` + Type string `pulumi:"type"` +} + +// GetDatabaseInstanceIpAddressInput is an input type that accepts GetDatabaseInstanceIpAddressArgs and GetDatabaseInstanceIpAddressOutput values. +// You can construct a concrete instance of `GetDatabaseInstanceIpAddressInput` via: +// +// GetDatabaseInstanceIpAddressArgs{...} +type GetDatabaseInstanceIpAddressInput interface { + pulumi.Input + + ToGetDatabaseInstanceIpAddressOutput() GetDatabaseInstanceIpAddressOutput + ToGetDatabaseInstanceIpAddressOutputWithContext(context.Context) GetDatabaseInstanceIpAddressOutput +} + +type GetDatabaseInstanceIpAddressArgs struct { + IpAddress pulumi.StringInput `pulumi:"ipAddress"` + TimeToRetire pulumi.StringInput `pulumi:"timeToRetire"` + Type pulumi.StringInput `pulumi:"type"` +} + +func (GetDatabaseInstanceIpAddressArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetDatabaseInstanceIpAddress)(nil)).Elem() +} + +func (i GetDatabaseInstanceIpAddressArgs) ToGetDatabaseInstanceIpAddressOutput() GetDatabaseInstanceIpAddressOutput { + return i.ToGetDatabaseInstanceIpAddressOutputWithContext(context.Background()) +} + +func (i GetDatabaseInstanceIpAddressArgs) ToGetDatabaseInstanceIpAddressOutputWithContext(ctx context.Context) GetDatabaseInstanceIpAddressOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetDatabaseInstanceIpAddressOutput) +} + +// GetDatabaseInstanceIpAddressArrayInput is an input type that accepts GetDatabaseInstanceIpAddressArray and GetDatabaseInstanceIpAddressArrayOutput values. +// You can construct a concrete instance of `GetDatabaseInstanceIpAddressArrayInput` via: +// +// GetDatabaseInstanceIpAddressArray{ GetDatabaseInstanceIpAddressArgs{...} } +type GetDatabaseInstanceIpAddressArrayInput interface { + pulumi.Input + + ToGetDatabaseInstanceIpAddressArrayOutput() GetDatabaseInstanceIpAddressArrayOutput + ToGetDatabaseInstanceIpAddressArrayOutputWithContext(context.Context) GetDatabaseInstanceIpAddressArrayOutput +} + +type GetDatabaseInstanceIpAddressArray []GetDatabaseInstanceIpAddressInput + +func (GetDatabaseInstanceIpAddressArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetDatabaseInstanceIpAddress)(nil)).Elem() +} + +func (i GetDatabaseInstanceIpAddressArray) ToGetDatabaseInstanceIpAddressArrayOutput() GetDatabaseInstanceIpAddressArrayOutput { + return i.ToGetDatabaseInstanceIpAddressArrayOutputWithContext(context.Background()) +} + +func (i GetDatabaseInstanceIpAddressArray) ToGetDatabaseInstanceIpAddressArrayOutputWithContext(ctx context.Context) GetDatabaseInstanceIpAddressArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetDatabaseInstanceIpAddressArrayOutput) +} + +type GetDatabaseInstanceIpAddressOutput struct{ *pulumi.OutputState } + +func (GetDatabaseInstanceIpAddressOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetDatabaseInstanceIpAddress)(nil)).Elem() +} + +func (o GetDatabaseInstanceIpAddressOutput) ToGetDatabaseInstanceIpAddressOutput() GetDatabaseInstanceIpAddressOutput { + return o +} + +func (o GetDatabaseInstanceIpAddressOutput) ToGetDatabaseInstanceIpAddressOutputWithContext(ctx context.Context) GetDatabaseInstanceIpAddressOutput { + return o +} + +func (o GetDatabaseInstanceIpAddressOutput) IpAddress() pulumi.StringOutput { + return o.ApplyT(func(v GetDatabaseInstanceIpAddress) string { return v.IpAddress }).(pulumi.StringOutput) +} + +func (o GetDatabaseInstanceIpAddressOutput) TimeToRetire() pulumi.StringOutput { + return o.ApplyT(func(v GetDatabaseInstanceIpAddress) string { return v.TimeToRetire }).(pulumi.StringOutput) +} + +func (o GetDatabaseInstanceIpAddressOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v GetDatabaseInstanceIpAddress) string { return v.Type }).(pulumi.StringOutput) +} + +type GetDatabaseInstanceIpAddressArrayOutput struct{ *pulumi.OutputState } + +func (GetDatabaseInstanceIpAddressArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetDatabaseInstanceIpAddress)(nil)).Elem() +} + +func (o GetDatabaseInstanceIpAddressArrayOutput) ToGetDatabaseInstanceIpAddressArrayOutput() GetDatabaseInstanceIpAddressArrayOutput { + return o +} + +func (o GetDatabaseInstanceIpAddressArrayOutput) ToGetDatabaseInstanceIpAddressArrayOutputWithContext(ctx context.Context) GetDatabaseInstanceIpAddressArrayOutput { + return o +} + +func (o GetDatabaseInstanceIpAddressArrayOutput) Index(i pulumi.IntInput) GetDatabaseInstanceIpAddressOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetDatabaseInstanceIpAddress { + return vs[0].([]GetDatabaseInstanceIpAddress)[vs[1].(int)] + }).(GetDatabaseInstanceIpAddressOutput) +} + +type GetDatabaseInstanceReplicaConfiguration struct { + // PEM representation of the trusted CA's x509 certificate. + CaCertificate string `pulumi:"caCertificate"` + // PEM representation of the slave's x509 certificate. + ClientCertificate string `pulumi:"clientCertificate"` + // PEM representation of the slave's private key. + ClientKey string `pulumi:"clientKey"` + // The number of seconds between connect retries. + ConnectRetryInterval int `pulumi:"connectRetryInterval"` + // Path to a SQL file in GCS from which slave instances are created. + DumpFilePath string `pulumi:"dumpFilePath"` + // Specifies if the replica is the failover target. + FailoverTarget bool `pulumi:"failoverTarget"` + // Time in ms between replication heartbeats. + MasterHeartbeatPeriod int `pulumi:"masterHeartbeatPeriod"` + // Password for the replication connection. + Password string `pulumi:"password"` + SslCipher string `pulumi:"sslCipher"` + // Username for replication connection. + Username string `pulumi:"username"` + // True if the master's common name value is checked during the SSL handshake. + VerifyServerCertificate bool `pulumi:"verifyServerCertificate"` +} + +// GetDatabaseInstanceReplicaConfigurationInput is an input type that accepts GetDatabaseInstanceReplicaConfigurationArgs and GetDatabaseInstanceReplicaConfigurationOutput values. +// You can construct a concrete instance of `GetDatabaseInstanceReplicaConfigurationInput` via: +// +// GetDatabaseInstanceReplicaConfigurationArgs{...} +type GetDatabaseInstanceReplicaConfigurationInput interface { + pulumi.Input + + ToGetDatabaseInstanceReplicaConfigurationOutput() GetDatabaseInstanceReplicaConfigurationOutput + ToGetDatabaseInstanceReplicaConfigurationOutputWithContext(context.Context) GetDatabaseInstanceReplicaConfigurationOutput +} + +type GetDatabaseInstanceReplicaConfigurationArgs struct { + // PEM representation of the trusted CA's x509 certificate. + CaCertificate pulumi.StringInput `pulumi:"caCertificate"` + // PEM representation of the slave's x509 certificate. + ClientCertificate pulumi.StringInput `pulumi:"clientCertificate"` + // PEM representation of the slave's private key. + ClientKey pulumi.StringInput `pulumi:"clientKey"` + // The number of seconds between connect retries. + ConnectRetryInterval pulumi.IntInput `pulumi:"connectRetryInterval"` + // Path to a SQL file in GCS from which slave instances are created. + DumpFilePath pulumi.StringInput `pulumi:"dumpFilePath"` + // Specifies if the replica is the failover target. + FailoverTarget pulumi.BoolInput `pulumi:"failoverTarget"` + // Time in ms between replication heartbeats. + MasterHeartbeatPeriod pulumi.IntInput `pulumi:"masterHeartbeatPeriod"` + // Password for the replication connection. + Password pulumi.StringInput `pulumi:"password"` + SslCipher pulumi.StringInput `pulumi:"sslCipher"` + // Username for replication connection. + Username pulumi.StringInput `pulumi:"username"` + // True if the master's common name value is checked during the SSL handshake. + VerifyServerCertificate pulumi.BoolInput `pulumi:"verifyServerCertificate"` +} + +func (GetDatabaseInstanceReplicaConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetDatabaseInstanceReplicaConfiguration)(nil)).Elem() +} + +func (i GetDatabaseInstanceReplicaConfigurationArgs) ToGetDatabaseInstanceReplicaConfigurationOutput() GetDatabaseInstanceReplicaConfigurationOutput { + return i.ToGetDatabaseInstanceReplicaConfigurationOutputWithContext(context.Background()) +} + +func (i GetDatabaseInstanceReplicaConfigurationArgs) ToGetDatabaseInstanceReplicaConfigurationOutputWithContext(ctx context.Context) GetDatabaseInstanceReplicaConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetDatabaseInstanceReplicaConfigurationOutput) +} + +// GetDatabaseInstanceReplicaConfigurationArrayInput is an input type that accepts GetDatabaseInstanceReplicaConfigurationArray and GetDatabaseInstanceReplicaConfigurationArrayOutput values. +// You can construct a concrete instance of `GetDatabaseInstanceReplicaConfigurationArrayInput` via: +// +// GetDatabaseInstanceReplicaConfigurationArray{ GetDatabaseInstanceReplicaConfigurationArgs{...} } +type GetDatabaseInstanceReplicaConfigurationArrayInput interface { + pulumi.Input + + ToGetDatabaseInstanceReplicaConfigurationArrayOutput() GetDatabaseInstanceReplicaConfigurationArrayOutput + ToGetDatabaseInstanceReplicaConfigurationArrayOutputWithContext(context.Context) GetDatabaseInstanceReplicaConfigurationArrayOutput +} + +type GetDatabaseInstanceReplicaConfigurationArray []GetDatabaseInstanceReplicaConfigurationInput + +func (GetDatabaseInstanceReplicaConfigurationArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetDatabaseInstanceReplicaConfiguration)(nil)).Elem() +} + +func (i GetDatabaseInstanceReplicaConfigurationArray) ToGetDatabaseInstanceReplicaConfigurationArrayOutput() GetDatabaseInstanceReplicaConfigurationArrayOutput { + return i.ToGetDatabaseInstanceReplicaConfigurationArrayOutputWithContext(context.Background()) +} + +func (i GetDatabaseInstanceReplicaConfigurationArray) ToGetDatabaseInstanceReplicaConfigurationArrayOutputWithContext(ctx context.Context) GetDatabaseInstanceReplicaConfigurationArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetDatabaseInstanceReplicaConfigurationArrayOutput) +} + +type GetDatabaseInstanceReplicaConfigurationOutput struct{ *pulumi.OutputState } + +func (GetDatabaseInstanceReplicaConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetDatabaseInstanceReplicaConfiguration)(nil)).Elem() +} + +func (o GetDatabaseInstanceReplicaConfigurationOutput) ToGetDatabaseInstanceReplicaConfigurationOutput() GetDatabaseInstanceReplicaConfigurationOutput { + return o +} + +func (o GetDatabaseInstanceReplicaConfigurationOutput) ToGetDatabaseInstanceReplicaConfigurationOutputWithContext(ctx context.Context) GetDatabaseInstanceReplicaConfigurationOutput { + return o +} + +// PEM representation of the trusted CA's x509 certificate. +func (o GetDatabaseInstanceReplicaConfigurationOutput) CaCertificate() pulumi.StringOutput { + return o.ApplyT(func(v GetDatabaseInstanceReplicaConfiguration) string { return v.CaCertificate }).(pulumi.StringOutput) +} + +// PEM representation of the slave's x509 certificate. +func (o GetDatabaseInstanceReplicaConfigurationOutput) ClientCertificate() pulumi.StringOutput { + return o.ApplyT(func(v GetDatabaseInstanceReplicaConfiguration) string { return v.ClientCertificate }).(pulumi.StringOutput) +} + +// PEM representation of the slave's private key. +func (o GetDatabaseInstanceReplicaConfigurationOutput) ClientKey() pulumi.StringOutput { + return o.ApplyT(func(v GetDatabaseInstanceReplicaConfiguration) string { return v.ClientKey }).(pulumi.StringOutput) +} + +// The number of seconds between connect retries. +func (o GetDatabaseInstanceReplicaConfigurationOutput) ConnectRetryInterval() pulumi.IntOutput { + return o.ApplyT(func(v GetDatabaseInstanceReplicaConfiguration) int { return v.ConnectRetryInterval }).(pulumi.IntOutput) +} + +// Path to a SQL file in GCS from which slave instances are created. +func (o GetDatabaseInstanceReplicaConfigurationOutput) DumpFilePath() pulumi.StringOutput { + return o.ApplyT(func(v GetDatabaseInstanceReplicaConfiguration) string { return v.DumpFilePath }).(pulumi.StringOutput) +} + +// Specifies if the replica is the failover target. +func (o GetDatabaseInstanceReplicaConfigurationOutput) FailoverTarget() pulumi.BoolOutput { + return o.ApplyT(func(v GetDatabaseInstanceReplicaConfiguration) bool { return v.FailoverTarget }).(pulumi.BoolOutput) +} + +// Time in ms between replication heartbeats. +func (o GetDatabaseInstanceReplicaConfigurationOutput) MasterHeartbeatPeriod() pulumi.IntOutput { + return o.ApplyT(func(v GetDatabaseInstanceReplicaConfiguration) int { return v.MasterHeartbeatPeriod }).(pulumi.IntOutput) +} + +// Password for the replication connection. +func (o GetDatabaseInstanceReplicaConfigurationOutput) Password() pulumi.StringOutput { + return o.ApplyT(func(v GetDatabaseInstanceReplicaConfiguration) string { return v.Password }).(pulumi.StringOutput) +} + +func (o GetDatabaseInstanceReplicaConfigurationOutput) SslCipher() pulumi.StringOutput { + return o.ApplyT(func(v GetDatabaseInstanceReplicaConfiguration) string { return v.SslCipher }).(pulumi.StringOutput) +} + +// Username for replication connection. +func (o GetDatabaseInstanceReplicaConfigurationOutput) Username() pulumi.StringOutput { + return o.ApplyT(func(v GetDatabaseInstanceReplicaConfiguration) string { return v.Username }).(pulumi.StringOutput) +} + +// True if the master's common name value is checked during the SSL handshake. +func (o GetDatabaseInstanceReplicaConfigurationOutput) VerifyServerCertificate() pulumi.BoolOutput { + return o.ApplyT(func(v GetDatabaseInstanceReplicaConfiguration) bool { return v.VerifyServerCertificate }).(pulumi.BoolOutput) +} + +type GetDatabaseInstanceReplicaConfigurationArrayOutput struct{ *pulumi.OutputState } + +func (GetDatabaseInstanceReplicaConfigurationArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetDatabaseInstanceReplicaConfiguration)(nil)).Elem() +} + +func (o GetDatabaseInstanceReplicaConfigurationArrayOutput) ToGetDatabaseInstanceReplicaConfigurationArrayOutput() GetDatabaseInstanceReplicaConfigurationArrayOutput { + return o +} + +func (o GetDatabaseInstanceReplicaConfigurationArrayOutput) ToGetDatabaseInstanceReplicaConfigurationArrayOutputWithContext(ctx context.Context) GetDatabaseInstanceReplicaConfigurationArrayOutput { + return o +} + +func (o GetDatabaseInstanceReplicaConfigurationArrayOutput) Index(i pulumi.IntInput) GetDatabaseInstanceReplicaConfigurationOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetDatabaseInstanceReplicaConfiguration { + return vs[0].([]GetDatabaseInstanceReplicaConfiguration)[vs[1].(int)] + }).(GetDatabaseInstanceReplicaConfigurationOutput) +} + +type GetDatabaseInstanceServerCaCert struct { + Cert string `pulumi:"cert"` + CommonName string `pulumi:"commonName"` + CreateTime string `pulumi:"createTime"` + // The [RFC 3339](https://tools.ietf.org/html/rfc3339) + // formatted date time string indicating when this whitelist expires. + ExpirationTime string `pulumi:"expirationTime"` + Sha1Fingerprint string `pulumi:"sha1Fingerprint"` +} + +// GetDatabaseInstanceServerCaCertInput is an input type that accepts GetDatabaseInstanceServerCaCertArgs and GetDatabaseInstanceServerCaCertOutput values. +// You can construct a concrete instance of `GetDatabaseInstanceServerCaCertInput` via: +// +// GetDatabaseInstanceServerCaCertArgs{...} +type GetDatabaseInstanceServerCaCertInput interface { + pulumi.Input + + ToGetDatabaseInstanceServerCaCertOutput() GetDatabaseInstanceServerCaCertOutput + ToGetDatabaseInstanceServerCaCertOutputWithContext(context.Context) GetDatabaseInstanceServerCaCertOutput +} + +type GetDatabaseInstanceServerCaCertArgs struct { + Cert pulumi.StringInput `pulumi:"cert"` + CommonName pulumi.StringInput `pulumi:"commonName"` + CreateTime pulumi.StringInput `pulumi:"createTime"` + // The [RFC 3339](https://tools.ietf.org/html/rfc3339) + // formatted date time string indicating when this whitelist expires. + ExpirationTime pulumi.StringInput `pulumi:"expirationTime"` + Sha1Fingerprint pulumi.StringInput `pulumi:"sha1Fingerprint"` +} + +func (GetDatabaseInstanceServerCaCertArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetDatabaseInstanceServerCaCert)(nil)).Elem() +} + +func (i GetDatabaseInstanceServerCaCertArgs) ToGetDatabaseInstanceServerCaCertOutput() GetDatabaseInstanceServerCaCertOutput { + return i.ToGetDatabaseInstanceServerCaCertOutputWithContext(context.Background()) +} + +func (i GetDatabaseInstanceServerCaCertArgs) ToGetDatabaseInstanceServerCaCertOutputWithContext(ctx context.Context) GetDatabaseInstanceServerCaCertOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetDatabaseInstanceServerCaCertOutput) +} + +// GetDatabaseInstanceServerCaCertArrayInput is an input type that accepts GetDatabaseInstanceServerCaCertArray and GetDatabaseInstanceServerCaCertArrayOutput values. +// You can construct a concrete instance of `GetDatabaseInstanceServerCaCertArrayInput` via: +// +// GetDatabaseInstanceServerCaCertArray{ GetDatabaseInstanceServerCaCertArgs{...} } +type GetDatabaseInstanceServerCaCertArrayInput interface { + pulumi.Input + + ToGetDatabaseInstanceServerCaCertArrayOutput() GetDatabaseInstanceServerCaCertArrayOutput + ToGetDatabaseInstanceServerCaCertArrayOutputWithContext(context.Context) GetDatabaseInstanceServerCaCertArrayOutput +} + +type GetDatabaseInstanceServerCaCertArray []GetDatabaseInstanceServerCaCertInput + +func (GetDatabaseInstanceServerCaCertArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetDatabaseInstanceServerCaCert)(nil)).Elem() +} + +func (i GetDatabaseInstanceServerCaCertArray) ToGetDatabaseInstanceServerCaCertArrayOutput() GetDatabaseInstanceServerCaCertArrayOutput { + return i.ToGetDatabaseInstanceServerCaCertArrayOutputWithContext(context.Background()) +} + +func (i GetDatabaseInstanceServerCaCertArray) ToGetDatabaseInstanceServerCaCertArrayOutputWithContext(ctx context.Context) GetDatabaseInstanceServerCaCertArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetDatabaseInstanceServerCaCertArrayOutput) +} + +type GetDatabaseInstanceServerCaCertOutput struct{ *pulumi.OutputState } + +func (GetDatabaseInstanceServerCaCertOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetDatabaseInstanceServerCaCert)(nil)).Elem() +} + +func (o GetDatabaseInstanceServerCaCertOutput) ToGetDatabaseInstanceServerCaCertOutput() GetDatabaseInstanceServerCaCertOutput { + return o +} + +func (o GetDatabaseInstanceServerCaCertOutput) ToGetDatabaseInstanceServerCaCertOutputWithContext(ctx context.Context) GetDatabaseInstanceServerCaCertOutput { + return o +} + +func (o GetDatabaseInstanceServerCaCertOutput) Cert() pulumi.StringOutput { + return o.ApplyT(func(v GetDatabaseInstanceServerCaCert) string { return v.Cert }).(pulumi.StringOutput) +} + +func (o GetDatabaseInstanceServerCaCertOutput) CommonName() pulumi.StringOutput { + return o.ApplyT(func(v GetDatabaseInstanceServerCaCert) string { return v.CommonName }).(pulumi.StringOutput) +} + +func (o GetDatabaseInstanceServerCaCertOutput) CreateTime() pulumi.StringOutput { + return o.ApplyT(func(v GetDatabaseInstanceServerCaCert) string { return v.CreateTime }).(pulumi.StringOutput) +} + +// The [RFC 3339](https://tools.ietf.org/html/rfc3339) +// formatted date time string indicating when this whitelist expires. +func (o GetDatabaseInstanceServerCaCertOutput) ExpirationTime() pulumi.StringOutput { + return o.ApplyT(func(v GetDatabaseInstanceServerCaCert) string { return v.ExpirationTime }).(pulumi.StringOutput) +} + +func (o GetDatabaseInstanceServerCaCertOutput) Sha1Fingerprint() pulumi.StringOutput { + return o.ApplyT(func(v GetDatabaseInstanceServerCaCert) string { return v.Sha1Fingerprint }).(pulumi.StringOutput) +} + +type GetDatabaseInstanceServerCaCertArrayOutput struct{ *pulumi.OutputState } + +func (GetDatabaseInstanceServerCaCertArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetDatabaseInstanceServerCaCert)(nil)).Elem() +} + +func (o GetDatabaseInstanceServerCaCertArrayOutput) ToGetDatabaseInstanceServerCaCertArrayOutput() GetDatabaseInstanceServerCaCertArrayOutput { + return o +} + +func (o GetDatabaseInstanceServerCaCertArrayOutput) ToGetDatabaseInstanceServerCaCertArrayOutputWithContext(ctx context.Context) GetDatabaseInstanceServerCaCertArrayOutput { + return o +} + +func (o GetDatabaseInstanceServerCaCertArrayOutput) Index(i pulumi.IntInput) GetDatabaseInstanceServerCaCertOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetDatabaseInstanceServerCaCert { + return vs[0].([]GetDatabaseInstanceServerCaCert)[vs[1].(int)] + }).(GetDatabaseInstanceServerCaCertOutput) +} + +type GetDatabaseInstanceSetting struct { + // This specifies when the instance should be + // active. Can be either `ALWAYS`, `NEVER` or `ON_DEMAND`. + ActivationPolicy string `pulumi:"activationPolicy"` + // (Deprecated) This property is only applicable to First Generation instances. + // First Generation instances are now deprecated, see [here](https://cloud.google.com/sql/docs/mysql/upgrade-2nd-gen) + // for information on how to upgrade to Second Generation instances. + // A list of Google App Engine (GAE) project names that are allowed to access this instance. + AuthorizedGaeApplications []string `pulumi:"authorizedGaeApplications"` + // The availability type of the Cloud SQL + // instance, high availability (`REGIONAL`) or single zone (`ZONAL`). + AvailabilityType string `pulumi:"availabilityType"` + BackupConfigurations []GetDatabaseInstanceSettingBackupConfiguration `pulumi:"backupConfigurations"` + // (Deprecated) This property is only applicable to First Generation instances. + // First Generation instances are now deprecated, see [here](https://cloud.google.com/sql/docs/mysql/upgrade-2nd-gen) + CrashSafeReplication bool `pulumi:"crashSafeReplication"` + DatabaseFlags []GetDatabaseInstanceSettingDatabaseFlag `pulumi:"databaseFlags"` + // Configuration to increase storage size automatically. + DiskAutoresize bool `pulumi:"diskAutoresize"` + // The size of data disk, in GB. + DiskSize int `pulumi:"diskSize"` + // The type of data disk. + DiskType string `pulumi:"diskType"` + IpConfigurations []GetDatabaseInstanceSettingIpConfiguration `pulumi:"ipConfigurations"` + LocationPreferences []GetDatabaseInstanceSettingLocationPreference `pulumi:"locationPreferences"` + MaintenanceWindows []GetDatabaseInstanceSettingMaintenanceWindow `pulumi:"maintenanceWindows"` + // Pricing plan for this instance. + PricingPlan string `pulumi:"pricingPlan"` + // This property is only applicable to First Generation instances. + // First Generation instances are now deprecated, see [here](https://cloud.google.com/sql/docs/mysql/upgrade-2nd-gen) + ReplicationType string `pulumi:"replicationType"` + // The machine type to use. + Tier string `pulumi:"tier"` + // A set of key/value user label pairs to assign to the instance. + UserLabels map[string]string `pulumi:"userLabels"` + Version int `pulumi:"version"` +} + +// GetDatabaseInstanceSettingInput is an input type that accepts GetDatabaseInstanceSettingArgs and GetDatabaseInstanceSettingOutput values. +// You can construct a concrete instance of `GetDatabaseInstanceSettingInput` via: +// +// GetDatabaseInstanceSettingArgs{...} +type GetDatabaseInstanceSettingInput interface { + pulumi.Input + + ToGetDatabaseInstanceSettingOutput() GetDatabaseInstanceSettingOutput + ToGetDatabaseInstanceSettingOutputWithContext(context.Context) GetDatabaseInstanceSettingOutput +} + +type GetDatabaseInstanceSettingArgs struct { + // This specifies when the instance should be + // active. Can be either `ALWAYS`, `NEVER` or `ON_DEMAND`. + ActivationPolicy pulumi.StringInput `pulumi:"activationPolicy"` + // (Deprecated) This property is only applicable to First Generation instances. + // First Generation instances are now deprecated, see [here](https://cloud.google.com/sql/docs/mysql/upgrade-2nd-gen) + // for information on how to upgrade to Second Generation instances. + // A list of Google App Engine (GAE) project names that are allowed to access this instance. + AuthorizedGaeApplications pulumi.StringArrayInput `pulumi:"authorizedGaeApplications"` + // The availability type of the Cloud SQL + // instance, high availability (`REGIONAL`) or single zone (`ZONAL`). + AvailabilityType pulumi.StringInput `pulumi:"availabilityType"` + BackupConfigurations GetDatabaseInstanceSettingBackupConfigurationArrayInput `pulumi:"backupConfigurations"` + // (Deprecated) This property is only applicable to First Generation instances. + // First Generation instances are now deprecated, see [here](https://cloud.google.com/sql/docs/mysql/upgrade-2nd-gen) + CrashSafeReplication pulumi.BoolInput `pulumi:"crashSafeReplication"` + DatabaseFlags GetDatabaseInstanceSettingDatabaseFlagArrayInput `pulumi:"databaseFlags"` + // Configuration to increase storage size automatically. + DiskAutoresize pulumi.BoolInput `pulumi:"diskAutoresize"` + // The size of data disk, in GB. + DiskSize pulumi.IntInput `pulumi:"diskSize"` + // The type of data disk. + DiskType pulumi.StringInput `pulumi:"diskType"` + IpConfigurations GetDatabaseInstanceSettingIpConfigurationArrayInput `pulumi:"ipConfigurations"` + LocationPreferences GetDatabaseInstanceSettingLocationPreferenceArrayInput `pulumi:"locationPreferences"` + MaintenanceWindows GetDatabaseInstanceSettingMaintenanceWindowArrayInput `pulumi:"maintenanceWindows"` + // Pricing plan for this instance. + PricingPlan pulumi.StringInput `pulumi:"pricingPlan"` + // This property is only applicable to First Generation instances. + // First Generation instances are now deprecated, see [here](https://cloud.google.com/sql/docs/mysql/upgrade-2nd-gen) + ReplicationType pulumi.StringInput `pulumi:"replicationType"` + // The machine type to use. + Tier pulumi.StringInput `pulumi:"tier"` + // A set of key/value user label pairs to assign to the instance. + UserLabels pulumi.StringMapInput `pulumi:"userLabels"` + Version pulumi.IntInput `pulumi:"version"` +} + +func (GetDatabaseInstanceSettingArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetDatabaseInstanceSetting)(nil)).Elem() +} + +func (i GetDatabaseInstanceSettingArgs) ToGetDatabaseInstanceSettingOutput() GetDatabaseInstanceSettingOutput { + return i.ToGetDatabaseInstanceSettingOutputWithContext(context.Background()) +} + +func (i GetDatabaseInstanceSettingArgs) ToGetDatabaseInstanceSettingOutputWithContext(ctx context.Context) GetDatabaseInstanceSettingOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetDatabaseInstanceSettingOutput) +} + +// GetDatabaseInstanceSettingArrayInput is an input type that accepts GetDatabaseInstanceSettingArray and GetDatabaseInstanceSettingArrayOutput values. +// You can construct a concrete instance of `GetDatabaseInstanceSettingArrayInput` via: +// +// GetDatabaseInstanceSettingArray{ GetDatabaseInstanceSettingArgs{...} } +type GetDatabaseInstanceSettingArrayInput interface { + pulumi.Input + + ToGetDatabaseInstanceSettingArrayOutput() GetDatabaseInstanceSettingArrayOutput + ToGetDatabaseInstanceSettingArrayOutputWithContext(context.Context) GetDatabaseInstanceSettingArrayOutput +} + +type GetDatabaseInstanceSettingArray []GetDatabaseInstanceSettingInput + +func (GetDatabaseInstanceSettingArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetDatabaseInstanceSetting)(nil)).Elem() +} + +func (i GetDatabaseInstanceSettingArray) ToGetDatabaseInstanceSettingArrayOutput() GetDatabaseInstanceSettingArrayOutput { + return i.ToGetDatabaseInstanceSettingArrayOutputWithContext(context.Background()) +} + +func (i GetDatabaseInstanceSettingArray) ToGetDatabaseInstanceSettingArrayOutputWithContext(ctx context.Context) GetDatabaseInstanceSettingArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetDatabaseInstanceSettingArrayOutput) +} + +type GetDatabaseInstanceSettingOutput struct{ *pulumi.OutputState } + +func (GetDatabaseInstanceSettingOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetDatabaseInstanceSetting)(nil)).Elem() +} + +func (o GetDatabaseInstanceSettingOutput) ToGetDatabaseInstanceSettingOutput() GetDatabaseInstanceSettingOutput { + return o +} + +func (o GetDatabaseInstanceSettingOutput) ToGetDatabaseInstanceSettingOutputWithContext(ctx context.Context) GetDatabaseInstanceSettingOutput { + return o +} + +// This specifies when the instance should be +// active. Can be either `ALWAYS`, `NEVER` or `ON_DEMAND`. +func (o GetDatabaseInstanceSettingOutput) ActivationPolicy() pulumi.StringOutput { + return o.ApplyT(func(v GetDatabaseInstanceSetting) string { return v.ActivationPolicy }).(pulumi.StringOutput) +} + +// (Deprecated) This property is only applicable to First Generation instances. +// First Generation instances are now deprecated, see [here](https://cloud.google.com/sql/docs/mysql/upgrade-2nd-gen) +// for information on how to upgrade to Second Generation instances. +// A list of Google App Engine (GAE) project names that are allowed to access this instance. +func (o GetDatabaseInstanceSettingOutput) AuthorizedGaeApplications() pulumi.StringArrayOutput { + return o.ApplyT(func(v GetDatabaseInstanceSetting) []string { return v.AuthorizedGaeApplications }).(pulumi.StringArrayOutput) +} + +// The availability type of the Cloud SQL +// instance, high availability (`REGIONAL`) or single zone (`ZONAL`). +func (o GetDatabaseInstanceSettingOutput) AvailabilityType() pulumi.StringOutput { + return o.ApplyT(func(v GetDatabaseInstanceSetting) string { return v.AvailabilityType }).(pulumi.StringOutput) +} + +func (o GetDatabaseInstanceSettingOutput) BackupConfigurations() GetDatabaseInstanceSettingBackupConfigurationArrayOutput { + return o.ApplyT(func(v GetDatabaseInstanceSetting) []GetDatabaseInstanceSettingBackupConfiguration { + return v.BackupConfigurations + }).(GetDatabaseInstanceSettingBackupConfigurationArrayOutput) +} + +// (Deprecated) This property is only applicable to First Generation instances. +// First Generation instances are now deprecated, see [here](https://cloud.google.com/sql/docs/mysql/upgrade-2nd-gen) +func (o GetDatabaseInstanceSettingOutput) CrashSafeReplication() pulumi.BoolOutput { + return o.ApplyT(func(v GetDatabaseInstanceSetting) bool { return v.CrashSafeReplication }).(pulumi.BoolOutput) +} + +func (o GetDatabaseInstanceSettingOutput) DatabaseFlags() GetDatabaseInstanceSettingDatabaseFlagArrayOutput { + return o.ApplyT(func(v GetDatabaseInstanceSetting) []GetDatabaseInstanceSettingDatabaseFlag { return v.DatabaseFlags }).(GetDatabaseInstanceSettingDatabaseFlagArrayOutput) +} + +// Configuration to increase storage size automatically. +func (o GetDatabaseInstanceSettingOutput) DiskAutoresize() pulumi.BoolOutput { + return o.ApplyT(func(v GetDatabaseInstanceSetting) bool { return v.DiskAutoresize }).(pulumi.BoolOutput) +} + +// The size of data disk, in GB. +func (o GetDatabaseInstanceSettingOutput) DiskSize() pulumi.IntOutput { + return o.ApplyT(func(v GetDatabaseInstanceSetting) int { return v.DiskSize }).(pulumi.IntOutput) +} + +// The type of data disk. +func (o GetDatabaseInstanceSettingOutput) DiskType() pulumi.StringOutput { + return o.ApplyT(func(v GetDatabaseInstanceSetting) string { return v.DiskType }).(pulumi.StringOutput) +} + +func (o GetDatabaseInstanceSettingOutput) IpConfigurations() GetDatabaseInstanceSettingIpConfigurationArrayOutput { + return o.ApplyT(func(v GetDatabaseInstanceSetting) []GetDatabaseInstanceSettingIpConfiguration { + return v.IpConfigurations + }).(GetDatabaseInstanceSettingIpConfigurationArrayOutput) +} + +func (o GetDatabaseInstanceSettingOutput) LocationPreferences() GetDatabaseInstanceSettingLocationPreferenceArrayOutput { + return o.ApplyT(func(v GetDatabaseInstanceSetting) []GetDatabaseInstanceSettingLocationPreference { + return v.LocationPreferences + }).(GetDatabaseInstanceSettingLocationPreferenceArrayOutput) +} + +func (o GetDatabaseInstanceSettingOutput) MaintenanceWindows() GetDatabaseInstanceSettingMaintenanceWindowArrayOutput { + return o.ApplyT(func(v GetDatabaseInstanceSetting) []GetDatabaseInstanceSettingMaintenanceWindow { + return v.MaintenanceWindows + }).(GetDatabaseInstanceSettingMaintenanceWindowArrayOutput) +} + +// Pricing plan for this instance. +func (o GetDatabaseInstanceSettingOutput) PricingPlan() pulumi.StringOutput { + return o.ApplyT(func(v GetDatabaseInstanceSetting) string { return v.PricingPlan }).(pulumi.StringOutput) +} + +// This property is only applicable to First Generation instances. +// First Generation instances are now deprecated, see [here](https://cloud.google.com/sql/docs/mysql/upgrade-2nd-gen) +func (o GetDatabaseInstanceSettingOutput) ReplicationType() pulumi.StringOutput { + return o.ApplyT(func(v GetDatabaseInstanceSetting) string { return v.ReplicationType }).(pulumi.StringOutput) +} + +// The machine type to use. +func (o GetDatabaseInstanceSettingOutput) Tier() pulumi.StringOutput { + return o.ApplyT(func(v GetDatabaseInstanceSetting) string { return v.Tier }).(pulumi.StringOutput) +} + +// A set of key/value user label pairs to assign to the instance. +func (o GetDatabaseInstanceSettingOutput) UserLabels() pulumi.StringMapOutput { + return o.ApplyT(func(v GetDatabaseInstanceSetting) map[string]string { return v.UserLabels }).(pulumi.StringMapOutput) +} + +func (o GetDatabaseInstanceSettingOutput) Version() pulumi.IntOutput { + return o.ApplyT(func(v GetDatabaseInstanceSetting) int { return v.Version }).(pulumi.IntOutput) +} + +type GetDatabaseInstanceSettingArrayOutput struct{ *pulumi.OutputState } + +func (GetDatabaseInstanceSettingArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetDatabaseInstanceSetting)(nil)).Elem() +} + +func (o GetDatabaseInstanceSettingArrayOutput) ToGetDatabaseInstanceSettingArrayOutput() GetDatabaseInstanceSettingArrayOutput { + return o +} + +func (o GetDatabaseInstanceSettingArrayOutput) ToGetDatabaseInstanceSettingArrayOutputWithContext(ctx context.Context) GetDatabaseInstanceSettingArrayOutput { + return o +} + +func (o GetDatabaseInstanceSettingArrayOutput) Index(i pulumi.IntInput) GetDatabaseInstanceSettingOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetDatabaseInstanceSetting { + return vs[0].([]GetDatabaseInstanceSetting)[vs[1].(int)] + }).(GetDatabaseInstanceSettingOutput) +} + +type GetDatabaseInstanceSettingBackupConfiguration struct { + // True if binary logging is enabled. + BinaryLogEnabled bool `pulumi:"binaryLogEnabled"` + // True if backup configuration is enabled. + Enabled bool `pulumi:"enabled"` + Location string `pulumi:"location"` + // `HH:MM` format time indicating when backup configuration starts. + StartTime string `pulumi:"startTime"` +} + +// GetDatabaseInstanceSettingBackupConfigurationInput is an input type that accepts GetDatabaseInstanceSettingBackupConfigurationArgs and GetDatabaseInstanceSettingBackupConfigurationOutput values. +// You can construct a concrete instance of `GetDatabaseInstanceSettingBackupConfigurationInput` via: +// +// GetDatabaseInstanceSettingBackupConfigurationArgs{...} +type GetDatabaseInstanceSettingBackupConfigurationInput interface { + pulumi.Input + + ToGetDatabaseInstanceSettingBackupConfigurationOutput() GetDatabaseInstanceSettingBackupConfigurationOutput + ToGetDatabaseInstanceSettingBackupConfigurationOutputWithContext(context.Context) GetDatabaseInstanceSettingBackupConfigurationOutput +} + +type GetDatabaseInstanceSettingBackupConfigurationArgs struct { + // True if binary logging is enabled. + BinaryLogEnabled pulumi.BoolInput `pulumi:"binaryLogEnabled"` + // True if backup configuration is enabled. + Enabled pulumi.BoolInput `pulumi:"enabled"` + Location pulumi.StringInput `pulumi:"location"` + // `HH:MM` format time indicating when backup configuration starts. + StartTime pulumi.StringInput `pulumi:"startTime"` +} + +func (GetDatabaseInstanceSettingBackupConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetDatabaseInstanceSettingBackupConfiguration)(nil)).Elem() +} + +func (i GetDatabaseInstanceSettingBackupConfigurationArgs) ToGetDatabaseInstanceSettingBackupConfigurationOutput() GetDatabaseInstanceSettingBackupConfigurationOutput { + return i.ToGetDatabaseInstanceSettingBackupConfigurationOutputWithContext(context.Background()) +} + +func (i GetDatabaseInstanceSettingBackupConfigurationArgs) ToGetDatabaseInstanceSettingBackupConfigurationOutputWithContext(ctx context.Context) GetDatabaseInstanceSettingBackupConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetDatabaseInstanceSettingBackupConfigurationOutput) +} + +// GetDatabaseInstanceSettingBackupConfigurationArrayInput is an input type that accepts GetDatabaseInstanceSettingBackupConfigurationArray and GetDatabaseInstanceSettingBackupConfigurationArrayOutput values. +// You can construct a concrete instance of `GetDatabaseInstanceSettingBackupConfigurationArrayInput` via: +// +// GetDatabaseInstanceSettingBackupConfigurationArray{ GetDatabaseInstanceSettingBackupConfigurationArgs{...} } +type GetDatabaseInstanceSettingBackupConfigurationArrayInput interface { + pulumi.Input + + ToGetDatabaseInstanceSettingBackupConfigurationArrayOutput() GetDatabaseInstanceSettingBackupConfigurationArrayOutput + ToGetDatabaseInstanceSettingBackupConfigurationArrayOutputWithContext(context.Context) GetDatabaseInstanceSettingBackupConfigurationArrayOutput +} + +type GetDatabaseInstanceSettingBackupConfigurationArray []GetDatabaseInstanceSettingBackupConfigurationInput + +func (GetDatabaseInstanceSettingBackupConfigurationArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetDatabaseInstanceSettingBackupConfiguration)(nil)).Elem() +} + +func (i GetDatabaseInstanceSettingBackupConfigurationArray) ToGetDatabaseInstanceSettingBackupConfigurationArrayOutput() GetDatabaseInstanceSettingBackupConfigurationArrayOutput { + return i.ToGetDatabaseInstanceSettingBackupConfigurationArrayOutputWithContext(context.Background()) +} + +func (i GetDatabaseInstanceSettingBackupConfigurationArray) ToGetDatabaseInstanceSettingBackupConfigurationArrayOutputWithContext(ctx context.Context) GetDatabaseInstanceSettingBackupConfigurationArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetDatabaseInstanceSettingBackupConfigurationArrayOutput) +} + +type GetDatabaseInstanceSettingBackupConfigurationOutput struct{ *pulumi.OutputState } + +func (GetDatabaseInstanceSettingBackupConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetDatabaseInstanceSettingBackupConfiguration)(nil)).Elem() +} + +func (o GetDatabaseInstanceSettingBackupConfigurationOutput) ToGetDatabaseInstanceSettingBackupConfigurationOutput() GetDatabaseInstanceSettingBackupConfigurationOutput { + return o +} + +func (o GetDatabaseInstanceSettingBackupConfigurationOutput) ToGetDatabaseInstanceSettingBackupConfigurationOutputWithContext(ctx context.Context) GetDatabaseInstanceSettingBackupConfigurationOutput { + return o +} + +// True if binary logging is enabled. +func (o GetDatabaseInstanceSettingBackupConfigurationOutput) BinaryLogEnabled() pulumi.BoolOutput { + return o.ApplyT(func(v GetDatabaseInstanceSettingBackupConfiguration) bool { return v.BinaryLogEnabled }).(pulumi.BoolOutput) +} + +// True if backup configuration is enabled. +func (o GetDatabaseInstanceSettingBackupConfigurationOutput) Enabled() pulumi.BoolOutput { + return o.ApplyT(func(v GetDatabaseInstanceSettingBackupConfiguration) bool { return v.Enabled }).(pulumi.BoolOutput) +} + +func (o GetDatabaseInstanceSettingBackupConfigurationOutput) Location() pulumi.StringOutput { + return o.ApplyT(func(v GetDatabaseInstanceSettingBackupConfiguration) string { return v.Location }).(pulumi.StringOutput) +} + +// `HH:MM` format time indicating when backup configuration starts. +func (o GetDatabaseInstanceSettingBackupConfigurationOutput) StartTime() pulumi.StringOutput { + return o.ApplyT(func(v GetDatabaseInstanceSettingBackupConfiguration) string { return v.StartTime }).(pulumi.StringOutput) +} + +type GetDatabaseInstanceSettingBackupConfigurationArrayOutput struct{ *pulumi.OutputState } + +func (GetDatabaseInstanceSettingBackupConfigurationArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetDatabaseInstanceSettingBackupConfiguration)(nil)).Elem() +} + +func (o GetDatabaseInstanceSettingBackupConfigurationArrayOutput) ToGetDatabaseInstanceSettingBackupConfigurationArrayOutput() GetDatabaseInstanceSettingBackupConfigurationArrayOutput { + return o +} + +func (o GetDatabaseInstanceSettingBackupConfigurationArrayOutput) ToGetDatabaseInstanceSettingBackupConfigurationArrayOutputWithContext(ctx context.Context) GetDatabaseInstanceSettingBackupConfigurationArrayOutput { + return o +} + +func (o GetDatabaseInstanceSettingBackupConfigurationArrayOutput) Index(i pulumi.IntInput) GetDatabaseInstanceSettingBackupConfigurationOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetDatabaseInstanceSettingBackupConfiguration { + return vs[0].([]GetDatabaseInstanceSettingBackupConfiguration)[vs[1].(int)] + }).(GetDatabaseInstanceSettingBackupConfigurationOutput) +} + +type GetDatabaseInstanceSettingDatabaseFlag struct { + // The name of the instance. + Name string `pulumi:"name"` + // A CIDR notation IPv4 or IPv6 address that is allowed to access this instance. + Value string `pulumi:"value"` +} + +// GetDatabaseInstanceSettingDatabaseFlagInput is an input type that accepts GetDatabaseInstanceSettingDatabaseFlagArgs and GetDatabaseInstanceSettingDatabaseFlagOutput values. +// You can construct a concrete instance of `GetDatabaseInstanceSettingDatabaseFlagInput` via: +// +// GetDatabaseInstanceSettingDatabaseFlagArgs{...} +type GetDatabaseInstanceSettingDatabaseFlagInput interface { + pulumi.Input + + ToGetDatabaseInstanceSettingDatabaseFlagOutput() GetDatabaseInstanceSettingDatabaseFlagOutput + ToGetDatabaseInstanceSettingDatabaseFlagOutputWithContext(context.Context) GetDatabaseInstanceSettingDatabaseFlagOutput +} + +type GetDatabaseInstanceSettingDatabaseFlagArgs struct { + // The name of the instance. + Name pulumi.StringInput `pulumi:"name"` + // A CIDR notation IPv4 or IPv6 address that is allowed to access this instance. + Value pulumi.StringInput `pulumi:"value"` +} + +func (GetDatabaseInstanceSettingDatabaseFlagArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetDatabaseInstanceSettingDatabaseFlag)(nil)).Elem() +} + +func (i GetDatabaseInstanceSettingDatabaseFlagArgs) ToGetDatabaseInstanceSettingDatabaseFlagOutput() GetDatabaseInstanceSettingDatabaseFlagOutput { + return i.ToGetDatabaseInstanceSettingDatabaseFlagOutputWithContext(context.Background()) +} + +func (i GetDatabaseInstanceSettingDatabaseFlagArgs) ToGetDatabaseInstanceSettingDatabaseFlagOutputWithContext(ctx context.Context) GetDatabaseInstanceSettingDatabaseFlagOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetDatabaseInstanceSettingDatabaseFlagOutput) +} + +// GetDatabaseInstanceSettingDatabaseFlagArrayInput is an input type that accepts GetDatabaseInstanceSettingDatabaseFlagArray and GetDatabaseInstanceSettingDatabaseFlagArrayOutput values. +// You can construct a concrete instance of `GetDatabaseInstanceSettingDatabaseFlagArrayInput` via: +// +// GetDatabaseInstanceSettingDatabaseFlagArray{ GetDatabaseInstanceSettingDatabaseFlagArgs{...} } +type GetDatabaseInstanceSettingDatabaseFlagArrayInput interface { + pulumi.Input + + ToGetDatabaseInstanceSettingDatabaseFlagArrayOutput() GetDatabaseInstanceSettingDatabaseFlagArrayOutput + ToGetDatabaseInstanceSettingDatabaseFlagArrayOutputWithContext(context.Context) GetDatabaseInstanceSettingDatabaseFlagArrayOutput +} + +type GetDatabaseInstanceSettingDatabaseFlagArray []GetDatabaseInstanceSettingDatabaseFlagInput + +func (GetDatabaseInstanceSettingDatabaseFlagArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetDatabaseInstanceSettingDatabaseFlag)(nil)).Elem() +} + +func (i GetDatabaseInstanceSettingDatabaseFlagArray) ToGetDatabaseInstanceSettingDatabaseFlagArrayOutput() GetDatabaseInstanceSettingDatabaseFlagArrayOutput { + return i.ToGetDatabaseInstanceSettingDatabaseFlagArrayOutputWithContext(context.Background()) +} + +func (i GetDatabaseInstanceSettingDatabaseFlagArray) ToGetDatabaseInstanceSettingDatabaseFlagArrayOutputWithContext(ctx context.Context) GetDatabaseInstanceSettingDatabaseFlagArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetDatabaseInstanceSettingDatabaseFlagArrayOutput) +} + +type GetDatabaseInstanceSettingDatabaseFlagOutput struct{ *pulumi.OutputState } + +func (GetDatabaseInstanceSettingDatabaseFlagOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetDatabaseInstanceSettingDatabaseFlag)(nil)).Elem() +} + +func (o GetDatabaseInstanceSettingDatabaseFlagOutput) ToGetDatabaseInstanceSettingDatabaseFlagOutput() GetDatabaseInstanceSettingDatabaseFlagOutput { + return o +} + +func (o GetDatabaseInstanceSettingDatabaseFlagOutput) ToGetDatabaseInstanceSettingDatabaseFlagOutputWithContext(ctx context.Context) GetDatabaseInstanceSettingDatabaseFlagOutput { + return o +} + +// The name of the instance. +func (o GetDatabaseInstanceSettingDatabaseFlagOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v GetDatabaseInstanceSettingDatabaseFlag) string { return v.Name }).(pulumi.StringOutput) +} + +// A CIDR notation IPv4 or IPv6 address that is allowed to access this instance. +func (o GetDatabaseInstanceSettingDatabaseFlagOutput) Value() pulumi.StringOutput { + return o.ApplyT(func(v GetDatabaseInstanceSettingDatabaseFlag) string { return v.Value }).(pulumi.StringOutput) +} + +type GetDatabaseInstanceSettingDatabaseFlagArrayOutput struct{ *pulumi.OutputState } + +func (GetDatabaseInstanceSettingDatabaseFlagArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetDatabaseInstanceSettingDatabaseFlag)(nil)).Elem() +} + +func (o GetDatabaseInstanceSettingDatabaseFlagArrayOutput) ToGetDatabaseInstanceSettingDatabaseFlagArrayOutput() GetDatabaseInstanceSettingDatabaseFlagArrayOutput { + return o +} + +func (o GetDatabaseInstanceSettingDatabaseFlagArrayOutput) ToGetDatabaseInstanceSettingDatabaseFlagArrayOutputWithContext(ctx context.Context) GetDatabaseInstanceSettingDatabaseFlagArrayOutput { + return o +} + +func (o GetDatabaseInstanceSettingDatabaseFlagArrayOutput) Index(i pulumi.IntInput) GetDatabaseInstanceSettingDatabaseFlagOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetDatabaseInstanceSettingDatabaseFlag { + return vs[0].([]GetDatabaseInstanceSettingDatabaseFlag)[vs[1].(int)] + }).(GetDatabaseInstanceSettingDatabaseFlagOutput) +} + +type GetDatabaseInstanceSettingIpConfiguration struct { + AuthorizedNetworks []GetDatabaseInstanceSettingIpConfigurationAuthorizedNetwork `pulumi:"authorizedNetworks"` + // Whether this Cloud SQL instance should be assigned a public IPV4 address. + Ipv4Enabled bool `pulumi:"ipv4Enabled"` + // The VPC network from which the Cloud SQL instance is accessible for private IP. + PrivateNetwork string `pulumi:"privateNetwork"` + // True if mysqld default to `REQUIRE X509` for users connecting over IP. + RequireSsl bool `pulumi:"requireSsl"` +} + +// GetDatabaseInstanceSettingIpConfigurationInput is an input type that accepts GetDatabaseInstanceSettingIpConfigurationArgs and GetDatabaseInstanceSettingIpConfigurationOutput values. +// You can construct a concrete instance of `GetDatabaseInstanceSettingIpConfigurationInput` via: +// +// GetDatabaseInstanceSettingIpConfigurationArgs{...} +type GetDatabaseInstanceSettingIpConfigurationInput interface { + pulumi.Input + + ToGetDatabaseInstanceSettingIpConfigurationOutput() GetDatabaseInstanceSettingIpConfigurationOutput + ToGetDatabaseInstanceSettingIpConfigurationOutputWithContext(context.Context) GetDatabaseInstanceSettingIpConfigurationOutput +} + +type GetDatabaseInstanceSettingIpConfigurationArgs struct { + AuthorizedNetworks GetDatabaseInstanceSettingIpConfigurationAuthorizedNetworkArrayInput `pulumi:"authorizedNetworks"` + // Whether this Cloud SQL instance should be assigned a public IPV4 address. + Ipv4Enabled pulumi.BoolInput `pulumi:"ipv4Enabled"` + // The VPC network from which the Cloud SQL instance is accessible for private IP. + PrivateNetwork pulumi.StringInput `pulumi:"privateNetwork"` + // True if mysqld default to `REQUIRE X509` for users connecting over IP. + RequireSsl pulumi.BoolInput `pulumi:"requireSsl"` +} + +func (GetDatabaseInstanceSettingIpConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetDatabaseInstanceSettingIpConfiguration)(nil)).Elem() +} + +func (i GetDatabaseInstanceSettingIpConfigurationArgs) ToGetDatabaseInstanceSettingIpConfigurationOutput() GetDatabaseInstanceSettingIpConfigurationOutput { + return i.ToGetDatabaseInstanceSettingIpConfigurationOutputWithContext(context.Background()) +} + +func (i GetDatabaseInstanceSettingIpConfigurationArgs) ToGetDatabaseInstanceSettingIpConfigurationOutputWithContext(ctx context.Context) GetDatabaseInstanceSettingIpConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetDatabaseInstanceSettingIpConfigurationOutput) +} + +// GetDatabaseInstanceSettingIpConfigurationArrayInput is an input type that accepts GetDatabaseInstanceSettingIpConfigurationArray and GetDatabaseInstanceSettingIpConfigurationArrayOutput values. +// You can construct a concrete instance of `GetDatabaseInstanceSettingIpConfigurationArrayInput` via: +// +// GetDatabaseInstanceSettingIpConfigurationArray{ GetDatabaseInstanceSettingIpConfigurationArgs{...} } +type GetDatabaseInstanceSettingIpConfigurationArrayInput interface { + pulumi.Input + + ToGetDatabaseInstanceSettingIpConfigurationArrayOutput() GetDatabaseInstanceSettingIpConfigurationArrayOutput + ToGetDatabaseInstanceSettingIpConfigurationArrayOutputWithContext(context.Context) GetDatabaseInstanceSettingIpConfigurationArrayOutput +} + +type GetDatabaseInstanceSettingIpConfigurationArray []GetDatabaseInstanceSettingIpConfigurationInput + +func (GetDatabaseInstanceSettingIpConfigurationArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetDatabaseInstanceSettingIpConfiguration)(nil)).Elem() +} + +func (i GetDatabaseInstanceSettingIpConfigurationArray) ToGetDatabaseInstanceSettingIpConfigurationArrayOutput() GetDatabaseInstanceSettingIpConfigurationArrayOutput { + return i.ToGetDatabaseInstanceSettingIpConfigurationArrayOutputWithContext(context.Background()) +} + +func (i GetDatabaseInstanceSettingIpConfigurationArray) ToGetDatabaseInstanceSettingIpConfigurationArrayOutputWithContext(ctx context.Context) GetDatabaseInstanceSettingIpConfigurationArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetDatabaseInstanceSettingIpConfigurationArrayOutput) +} + +type GetDatabaseInstanceSettingIpConfigurationOutput struct{ *pulumi.OutputState } + +func (GetDatabaseInstanceSettingIpConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetDatabaseInstanceSettingIpConfiguration)(nil)).Elem() +} + +func (o GetDatabaseInstanceSettingIpConfigurationOutput) ToGetDatabaseInstanceSettingIpConfigurationOutput() GetDatabaseInstanceSettingIpConfigurationOutput { + return o +} + +func (o GetDatabaseInstanceSettingIpConfigurationOutput) ToGetDatabaseInstanceSettingIpConfigurationOutputWithContext(ctx context.Context) GetDatabaseInstanceSettingIpConfigurationOutput { + return o +} + +func (o GetDatabaseInstanceSettingIpConfigurationOutput) AuthorizedNetworks() GetDatabaseInstanceSettingIpConfigurationAuthorizedNetworkArrayOutput { + return o.ApplyT(func(v GetDatabaseInstanceSettingIpConfiguration) []GetDatabaseInstanceSettingIpConfigurationAuthorizedNetwork { + return v.AuthorizedNetworks + }).(GetDatabaseInstanceSettingIpConfigurationAuthorizedNetworkArrayOutput) +} + +// Whether this Cloud SQL instance should be assigned a public IPV4 address. +func (o GetDatabaseInstanceSettingIpConfigurationOutput) Ipv4Enabled() pulumi.BoolOutput { + return o.ApplyT(func(v GetDatabaseInstanceSettingIpConfiguration) bool { return v.Ipv4Enabled }).(pulumi.BoolOutput) +} + +// The VPC network from which the Cloud SQL instance is accessible for private IP. +func (o GetDatabaseInstanceSettingIpConfigurationOutput) PrivateNetwork() pulumi.StringOutput { + return o.ApplyT(func(v GetDatabaseInstanceSettingIpConfiguration) string { return v.PrivateNetwork }).(pulumi.StringOutput) +} + +// True if mysqld default to `REQUIRE X509` for users connecting over IP. +func (o GetDatabaseInstanceSettingIpConfigurationOutput) RequireSsl() pulumi.BoolOutput { + return o.ApplyT(func(v GetDatabaseInstanceSettingIpConfiguration) bool { return v.RequireSsl }).(pulumi.BoolOutput) +} + +type GetDatabaseInstanceSettingIpConfigurationArrayOutput struct{ *pulumi.OutputState } + +func (GetDatabaseInstanceSettingIpConfigurationArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetDatabaseInstanceSettingIpConfiguration)(nil)).Elem() +} + +func (o GetDatabaseInstanceSettingIpConfigurationArrayOutput) ToGetDatabaseInstanceSettingIpConfigurationArrayOutput() GetDatabaseInstanceSettingIpConfigurationArrayOutput { + return o +} + +func (o GetDatabaseInstanceSettingIpConfigurationArrayOutput) ToGetDatabaseInstanceSettingIpConfigurationArrayOutputWithContext(ctx context.Context) GetDatabaseInstanceSettingIpConfigurationArrayOutput { + return o +} + +func (o GetDatabaseInstanceSettingIpConfigurationArrayOutput) Index(i pulumi.IntInput) GetDatabaseInstanceSettingIpConfigurationOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetDatabaseInstanceSettingIpConfiguration { + return vs[0].([]GetDatabaseInstanceSettingIpConfiguration)[vs[1].(int)] + }).(GetDatabaseInstanceSettingIpConfigurationOutput) +} + +type GetDatabaseInstanceSettingIpConfigurationAuthorizedNetwork struct { + // The [RFC 3339](https://tools.ietf.org/html/rfc3339) + // formatted date time string indicating when this whitelist expires. + ExpirationTime string `pulumi:"expirationTime"` + // The name of the instance. + Name string `pulumi:"name"` + // A CIDR notation IPv4 or IPv6 address that is allowed to access this instance. + Value string `pulumi:"value"` +} + +// GetDatabaseInstanceSettingIpConfigurationAuthorizedNetworkInput is an input type that accepts GetDatabaseInstanceSettingIpConfigurationAuthorizedNetworkArgs and GetDatabaseInstanceSettingIpConfigurationAuthorizedNetworkOutput values. +// You can construct a concrete instance of `GetDatabaseInstanceSettingIpConfigurationAuthorizedNetworkInput` via: +// +// GetDatabaseInstanceSettingIpConfigurationAuthorizedNetworkArgs{...} +type GetDatabaseInstanceSettingIpConfigurationAuthorizedNetworkInput interface { + pulumi.Input + + ToGetDatabaseInstanceSettingIpConfigurationAuthorizedNetworkOutput() GetDatabaseInstanceSettingIpConfigurationAuthorizedNetworkOutput + ToGetDatabaseInstanceSettingIpConfigurationAuthorizedNetworkOutputWithContext(context.Context) GetDatabaseInstanceSettingIpConfigurationAuthorizedNetworkOutput +} + +type GetDatabaseInstanceSettingIpConfigurationAuthorizedNetworkArgs struct { + // The [RFC 3339](https://tools.ietf.org/html/rfc3339) + // formatted date time string indicating when this whitelist expires. + ExpirationTime pulumi.StringInput `pulumi:"expirationTime"` + // The name of the instance. + Name pulumi.StringInput `pulumi:"name"` + // A CIDR notation IPv4 or IPv6 address that is allowed to access this instance. + Value pulumi.StringInput `pulumi:"value"` +} + +func (GetDatabaseInstanceSettingIpConfigurationAuthorizedNetworkArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetDatabaseInstanceSettingIpConfigurationAuthorizedNetwork)(nil)).Elem() +} + +func (i GetDatabaseInstanceSettingIpConfigurationAuthorizedNetworkArgs) ToGetDatabaseInstanceSettingIpConfigurationAuthorizedNetworkOutput() GetDatabaseInstanceSettingIpConfigurationAuthorizedNetworkOutput { + return i.ToGetDatabaseInstanceSettingIpConfigurationAuthorizedNetworkOutputWithContext(context.Background()) +} + +func (i GetDatabaseInstanceSettingIpConfigurationAuthorizedNetworkArgs) ToGetDatabaseInstanceSettingIpConfigurationAuthorizedNetworkOutputWithContext(ctx context.Context) GetDatabaseInstanceSettingIpConfigurationAuthorizedNetworkOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetDatabaseInstanceSettingIpConfigurationAuthorizedNetworkOutput) +} + +// GetDatabaseInstanceSettingIpConfigurationAuthorizedNetworkArrayInput is an input type that accepts GetDatabaseInstanceSettingIpConfigurationAuthorizedNetworkArray and GetDatabaseInstanceSettingIpConfigurationAuthorizedNetworkArrayOutput values. +// You can construct a concrete instance of `GetDatabaseInstanceSettingIpConfigurationAuthorizedNetworkArrayInput` via: +// +// GetDatabaseInstanceSettingIpConfigurationAuthorizedNetworkArray{ GetDatabaseInstanceSettingIpConfigurationAuthorizedNetworkArgs{...} } +type GetDatabaseInstanceSettingIpConfigurationAuthorizedNetworkArrayInput interface { + pulumi.Input + + ToGetDatabaseInstanceSettingIpConfigurationAuthorizedNetworkArrayOutput() GetDatabaseInstanceSettingIpConfigurationAuthorizedNetworkArrayOutput + ToGetDatabaseInstanceSettingIpConfigurationAuthorizedNetworkArrayOutputWithContext(context.Context) GetDatabaseInstanceSettingIpConfigurationAuthorizedNetworkArrayOutput +} + +type GetDatabaseInstanceSettingIpConfigurationAuthorizedNetworkArray []GetDatabaseInstanceSettingIpConfigurationAuthorizedNetworkInput + +func (GetDatabaseInstanceSettingIpConfigurationAuthorizedNetworkArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetDatabaseInstanceSettingIpConfigurationAuthorizedNetwork)(nil)).Elem() +} + +func (i GetDatabaseInstanceSettingIpConfigurationAuthorizedNetworkArray) ToGetDatabaseInstanceSettingIpConfigurationAuthorizedNetworkArrayOutput() GetDatabaseInstanceSettingIpConfigurationAuthorizedNetworkArrayOutput { + return i.ToGetDatabaseInstanceSettingIpConfigurationAuthorizedNetworkArrayOutputWithContext(context.Background()) +} + +func (i GetDatabaseInstanceSettingIpConfigurationAuthorizedNetworkArray) ToGetDatabaseInstanceSettingIpConfigurationAuthorizedNetworkArrayOutputWithContext(ctx context.Context) GetDatabaseInstanceSettingIpConfigurationAuthorizedNetworkArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetDatabaseInstanceSettingIpConfigurationAuthorizedNetworkArrayOutput) +} + +type GetDatabaseInstanceSettingIpConfigurationAuthorizedNetworkOutput struct{ *pulumi.OutputState } + +func (GetDatabaseInstanceSettingIpConfigurationAuthorizedNetworkOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetDatabaseInstanceSettingIpConfigurationAuthorizedNetwork)(nil)).Elem() +} + +func (o GetDatabaseInstanceSettingIpConfigurationAuthorizedNetworkOutput) ToGetDatabaseInstanceSettingIpConfigurationAuthorizedNetworkOutput() GetDatabaseInstanceSettingIpConfigurationAuthorizedNetworkOutput { + return o +} + +func (o GetDatabaseInstanceSettingIpConfigurationAuthorizedNetworkOutput) ToGetDatabaseInstanceSettingIpConfigurationAuthorizedNetworkOutputWithContext(ctx context.Context) GetDatabaseInstanceSettingIpConfigurationAuthorizedNetworkOutput { + return o +} + +// The [RFC 3339](https://tools.ietf.org/html/rfc3339) +// formatted date time string indicating when this whitelist expires. +func (o GetDatabaseInstanceSettingIpConfigurationAuthorizedNetworkOutput) ExpirationTime() pulumi.StringOutput { + return o.ApplyT(func(v GetDatabaseInstanceSettingIpConfigurationAuthorizedNetwork) string { return v.ExpirationTime }).(pulumi.StringOutput) +} + +// The name of the instance. +func (o GetDatabaseInstanceSettingIpConfigurationAuthorizedNetworkOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v GetDatabaseInstanceSettingIpConfigurationAuthorizedNetwork) string { return v.Name }).(pulumi.StringOutput) +} + +// A CIDR notation IPv4 or IPv6 address that is allowed to access this instance. +func (o GetDatabaseInstanceSettingIpConfigurationAuthorizedNetworkOutput) Value() pulumi.StringOutput { + return o.ApplyT(func(v GetDatabaseInstanceSettingIpConfigurationAuthorizedNetwork) string { return v.Value }).(pulumi.StringOutput) +} + +type GetDatabaseInstanceSettingIpConfigurationAuthorizedNetworkArrayOutput struct{ *pulumi.OutputState } + +func (GetDatabaseInstanceSettingIpConfigurationAuthorizedNetworkArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetDatabaseInstanceSettingIpConfigurationAuthorizedNetwork)(nil)).Elem() +} + +func (o GetDatabaseInstanceSettingIpConfigurationAuthorizedNetworkArrayOutput) ToGetDatabaseInstanceSettingIpConfigurationAuthorizedNetworkArrayOutput() GetDatabaseInstanceSettingIpConfigurationAuthorizedNetworkArrayOutput { + return o +} + +func (o GetDatabaseInstanceSettingIpConfigurationAuthorizedNetworkArrayOutput) ToGetDatabaseInstanceSettingIpConfigurationAuthorizedNetworkArrayOutputWithContext(ctx context.Context) GetDatabaseInstanceSettingIpConfigurationAuthorizedNetworkArrayOutput { + return o +} + +func (o GetDatabaseInstanceSettingIpConfigurationAuthorizedNetworkArrayOutput) Index(i pulumi.IntInput) GetDatabaseInstanceSettingIpConfigurationAuthorizedNetworkOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetDatabaseInstanceSettingIpConfigurationAuthorizedNetwork { + return vs[0].([]GetDatabaseInstanceSettingIpConfigurationAuthorizedNetwork)[vs[1].(int)] + }).(GetDatabaseInstanceSettingIpConfigurationAuthorizedNetworkOutput) +} + +type GetDatabaseInstanceSettingLocationPreference struct { + // A GAE application whose zone to remain in. + FollowGaeApplication string `pulumi:"followGaeApplication"` + // The preferred compute engine. + Zone string `pulumi:"zone"` +} + +// GetDatabaseInstanceSettingLocationPreferenceInput is an input type that accepts GetDatabaseInstanceSettingLocationPreferenceArgs and GetDatabaseInstanceSettingLocationPreferenceOutput values. +// You can construct a concrete instance of `GetDatabaseInstanceSettingLocationPreferenceInput` via: +// +// GetDatabaseInstanceSettingLocationPreferenceArgs{...} +type GetDatabaseInstanceSettingLocationPreferenceInput interface { + pulumi.Input + + ToGetDatabaseInstanceSettingLocationPreferenceOutput() GetDatabaseInstanceSettingLocationPreferenceOutput + ToGetDatabaseInstanceSettingLocationPreferenceOutputWithContext(context.Context) GetDatabaseInstanceSettingLocationPreferenceOutput +} + +type GetDatabaseInstanceSettingLocationPreferenceArgs struct { + // A GAE application whose zone to remain in. + FollowGaeApplication pulumi.StringInput `pulumi:"followGaeApplication"` + // The preferred compute engine. + Zone pulumi.StringInput `pulumi:"zone"` +} + +func (GetDatabaseInstanceSettingLocationPreferenceArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetDatabaseInstanceSettingLocationPreference)(nil)).Elem() +} + +func (i GetDatabaseInstanceSettingLocationPreferenceArgs) ToGetDatabaseInstanceSettingLocationPreferenceOutput() GetDatabaseInstanceSettingLocationPreferenceOutput { + return i.ToGetDatabaseInstanceSettingLocationPreferenceOutputWithContext(context.Background()) +} + +func (i GetDatabaseInstanceSettingLocationPreferenceArgs) ToGetDatabaseInstanceSettingLocationPreferenceOutputWithContext(ctx context.Context) GetDatabaseInstanceSettingLocationPreferenceOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetDatabaseInstanceSettingLocationPreferenceOutput) +} + +// GetDatabaseInstanceSettingLocationPreferenceArrayInput is an input type that accepts GetDatabaseInstanceSettingLocationPreferenceArray and GetDatabaseInstanceSettingLocationPreferenceArrayOutput values. +// You can construct a concrete instance of `GetDatabaseInstanceSettingLocationPreferenceArrayInput` via: +// +// GetDatabaseInstanceSettingLocationPreferenceArray{ GetDatabaseInstanceSettingLocationPreferenceArgs{...} } +type GetDatabaseInstanceSettingLocationPreferenceArrayInput interface { + pulumi.Input + + ToGetDatabaseInstanceSettingLocationPreferenceArrayOutput() GetDatabaseInstanceSettingLocationPreferenceArrayOutput + ToGetDatabaseInstanceSettingLocationPreferenceArrayOutputWithContext(context.Context) GetDatabaseInstanceSettingLocationPreferenceArrayOutput +} + +type GetDatabaseInstanceSettingLocationPreferenceArray []GetDatabaseInstanceSettingLocationPreferenceInput + +func (GetDatabaseInstanceSettingLocationPreferenceArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetDatabaseInstanceSettingLocationPreference)(nil)).Elem() +} + +func (i GetDatabaseInstanceSettingLocationPreferenceArray) ToGetDatabaseInstanceSettingLocationPreferenceArrayOutput() GetDatabaseInstanceSettingLocationPreferenceArrayOutput { + return i.ToGetDatabaseInstanceSettingLocationPreferenceArrayOutputWithContext(context.Background()) +} + +func (i GetDatabaseInstanceSettingLocationPreferenceArray) ToGetDatabaseInstanceSettingLocationPreferenceArrayOutputWithContext(ctx context.Context) GetDatabaseInstanceSettingLocationPreferenceArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetDatabaseInstanceSettingLocationPreferenceArrayOutput) +} + +type GetDatabaseInstanceSettingLocationPreferenceOutput struct{ *pulumi.OutputState } + +func (GetDatabaseInstanceSettingLocationPreferenceOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetDatabaseInstanceSettingLocationPreference)(nil)).Elem() +} + +func (o GetDatabaseInstanceSettingLocationPreferenceOutput) ToGetDatabaseInstanceSettingLocationPreferenceOutput() GetDatabaseInstanceSettingLocationPreferenceOutput { + return o +} + +func (o GetDatabaseInstanceSettingLocationPreferenceOutput) ToGetDatabaseInstanceSettingLocationPreferenceOutputWithContext(ctx context.Context) GetDatabaseInstanceSettingLocationPreferenceOutput { + return o +} + +// A GAE application whose zone to remain in. +func (o GetDatabaseInstanceSettingLocationPreferenceOutput) FollowGaeApplication() pulumi.StringOutput { + return o.ApplyT(func(v GetDatabaseInstanceSettingLocationPreference) string { return v.FollowGaeApplication }).(pulumi.StringOutput) +} + +// The preferred compute engine. +func (o GetDatabaseInstanceSettingLocationPreferenceOutput) Zone() pulumi.StringOutput { + return o.ApplyT(func(v GetDatabaseInstanceSettingLocationPreference) string { return v.Zone }).(pulumi.StringOutput) +} + +type GetDatabaseInstanceSettingLocationPreferenceArrayOutput struct{ *pulumi.OutputState } + +func (GetDatabaseInstanceSettingLocationPreferenceArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetDatabaseInstanceSettingLocationPreference)(nil)).Elem() +} + +func (o GetDatabaseInstanceSettingLocationPreferenceArrayOutput) ToGetDatabaseInstanceSettingLocationPreferenceArrayOutput() GetDatabaseInstanceSettingLocationPreferenceArrayOutput { + return o +} + +func (o GetDatabaseInstanceSettingLocationPreferenceArrayOutput) ToGetDatabaseInstanceSettingLocationPreferenceArrayOutputWithContext(ctx context.Context) GetDatabaseInstanceSettingLocationPreferenceArrayOutput { + return o +} + +func (o GetDatabaseInstanceSettingLocationPreferenceArrayOutput) Index(i pulumi.IntInput) GetDatabaseInstanceSettingLocationPreferenceOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetDatabaseInstanceSettingLocationPreference { + return vs[0].([]GetDatabaseInstanceSettingLocationPreference)[vs[1].(int)] + }).(GetDatabaseInstanceSettingLocationPreferenceOutput) +} + +type GetDatabaseInstanceSettingMaintenanceWindow struct { + // Day of week (`1-7`), starting on Monday. + Day int `pulumi:"day"` + // Hour of day (`0-23`), ignored if `day` not set. + Hour int `pulumi:"hour"` + // Receive updates earlier (`canary`) or later (`stable`). + UpdateTrack string `pulumi:"updateTrack"` +} + +// GetDatabaseInstanceSettingMaintenanceWindowInput is an input type that accepts GetDatabaseInstanceSettingMaintenanceWindowArgs and GetDatabaseInstanceSettingMaintenanceWindowOutput values. +// You can construct a concrete instance of `GetDatabaseInstanceSettingMaintenanceWindowInput` via: +// +// GetDatabaseInstanceSettingMaintenanceWindowArgs{...} +type GetDatabaseInstanceSettingMaintenanceWindowInput interface { + pulumi.Input + + ToGetDatabaseInstanceSettingMaintenanceWindowOutput() GetDatabaseInstanceSettingMaintenanceWindowOutput + ToGetDatabaseInstanceSettingMaintenanceWindowOutputWithContext(context.Context) GetDatabaseInstanceSettingMaintenanceWindowOutput +} + +type GetDatabaseInstanceSettingMaintenanceWindowArgs struct { + // Day of week (`1-7`), starting on Monday. + Day pulumi.IntInput `pulumi:"day"` + // Hour of day (`0-23`), ignored if `day` not set. + Hour pulumi.IntInput `pulumi:"hour"` + // Receive updates earlier (`canary`) or later (`stable`). + UpdateTrack pulumi.StringInput `pulumi:"updateTrack"` +} + +func (GetDatabaseInstanceSettingMaintenanceWindowArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetDatabaseInstanceSettingMaintenanceWindow)(nil)).Elem() +} + +func (i GetDatabaseInstanceSettingMaintenanceWindowArgs) ToGetDatabaseInstanceSettingMaintenanceWindowOutput() GetDatabaseInstanceSettingMaintenanceWindowOutput { + return i.ToGetDatabaseInstanceSettingMaintenanceWindowOutputWithContext(context.Background()) +} + +func (i GetDatabaseInstanceSettingMaintenanceWindowArgs) ToGetDatabaseInstanceSettingMaintenanceWindowOutputWithContext(ctx context.Context) GetDatabaseInstanceSettingMaintenanceWindowOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetDatabaseInstanceSettingMaintenanceWindowOutput) +} + +// GetDatabaseInstanceSettingMaintenanceWindowArrayInput is an input type that accepts GetDatabaseInstanceSettingMaintenanceWindowArray and GetDatabaseInstanceSettingMaintenanceWindowArrayOutput values. +// You can construct a concrete instance of `GetDatabaseInstanceSettingMaintenanceWindowArrayInput` via: +// +// GetDatabaseInstanceSettingMaintenanceWindowArray{ GetDatabaseInstanceSettingMaintenanceWindowArgs{...} } +type GetDatabaseInstanceSettingMaintenanceWindowArrayInput interface { + pulumi.Input + + ToGetDatabaseInstanceSettingMaintenanceWindowArrayOutput() GetDatabaseInstanceSettingMaintenanceWindowArrayOutput + ToGetDatabaseInstanceSettingMaintenanceWindowArrayOutputWithContext(context.Context) GetDatabaseInstanceSettingMaintenanceWindowArrayOutput +} + +type GetDatabaseInstanceSettingMaintenanceWindowArray []GetDatabaseInstanceSettingMaintenanceWindowInput + +func (GetDatabaseInstanceSettingMaintenanceWindowArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetDatabaseInstanceSettingMaintenanceWindow)(nil)).Elem() +} + +func (i GetDatabaseInstanceSettingMaintenanceWindowArray) ToGetDatabaseInstanceSettingMaintenanceWindowArrayOutput() GetDatabaseInstanceSettingMaintenanceWindowArrayOutput { + return i.ToGetDatabaseInstanceSettingMaintenanceWindowArrayOutputWithContext(context.Background()) +} + +func (i GetDatabaseInstanceSettingMaintenanceWindowArray) ToGetDatabaseInstanceSettingMaintenanceWindowArrayOutputWithContext(ctx context.Context) GetDatabaseInstanceSettingMaintenanceWindowArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetDatabaseInstanceSettingMaintenanceWindowArrayOutput) +} + +type GetDatabaseInstanceSettingMaintenanceWindowOutput struct{ *pulumi.OutputState } + +func (GetDatabaseInstanceSettingMaintenanceWindowOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetDatabaseInstanceSettingMaintenanceWindow)(nil)).Elem() +} + +func (o GetDatabaseInstanceSettingMaintenanceWindowOutput) ToGetDatabaseInstanceSettingMaintenanceWindowOutput() GetDatabaseInstanceSettingMaintenanceWindowOutput { + return o +} + +func (o GetDatabaseInstanceSettingMaintenanceWindowOutput) ToGetDatabaseInstanceSettingMaintenanceWindowOutputWithContext(ctx context.Context) GetDatabaseInstanceSettingMaintenanceWindowOutput { + return o +} + +// Day of week (`1-7`), starting on Monday. +func (o GetDatabaseInstanceSettingMaintenanceWindowOutput) Day() pulumi.IntOutput { + return o.ApplyT(func(v GetDatabaseInstanceSettingMaintenanceWindow) int { return v.Day }).(pulumi.IntOutput) +} + +// Hour of day (`0-23`), ignored if `day` not set. +func (o GetDatabaseInstanceSettingMaintenanceWindowOutput) Hour() pulumi.IntOutput { + return o.ApplyT(func(v GetDatabaseInstanceSettingMaintenanceWindow) int { return v.Hour }).(pulumi.IntOutput) +} + +// Receive updates earlier (`canary`) or later (`stable`). +func (o GetDatabaseInstanceSettingMaintenanceWindowOutput) UpdateTrack() pulumi.StringOutput { + return o.ApplyT(func(v GetDatabaseInstanceSettingMaintenanceWindow) string { return v.UpdateTrack }).(pulumi.StringOutput) +} + +type GetDatabaseInstanceSettingMaintenanceWindowArrayOutput struct{ *pulumi.OutputState } + +func (GetDatabaseInstanceSettingMaintenanceWindowArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetDatabaseInstanceSettingMaintenanceWindow)(nil)).Elem() +} + +func (o GetDatabaseInstanceSettingMaintenanceWindowArrayOutput) ToGetDatabaseInstanceSettingMaintenanceWindowArrayOutput() GetDatabaseInstanceSettingMaintenanceWindowArrayOutput { + return o +} + +func (o GetDatabaseInstanceSettingMaintenanceWindowArrayOutput) ToGetDatabaseInstanceSettingMaintenanceWindowArrayOutputWithContext(ctx context.Context) GetDatabaseInstanceSettingMaintenanceWindowArrayOutput { + return o +} + +func (o GetDatabaseInstanceSettingMaintenanceWindowArrayOutput) Index(i pulumi.IntInput) GetDatabaseInstanceSettingMaintenanceWindowOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetDatabaseInstanceSettingMaintenanceWindow { + return vs[0].([]GetDatabaseInstanceSettingMaintenanceWindow)[vs[1].(int)] + }).(GetDatabaseInstanceSettingMaintenanceWindowOutput) +} + func init() { pulumi.RegisterOutputType(DatabaseInstanceIpAddressOutput{}) pulumi.RegisterOutputType(DatabaseInstanceIpAddressArrayOutput{}) @@ -2310,4 +3665,24 @@ func init() { pulumi.RegisterOutputType(DatabaseInstanceSettingsMaintenanceWindowPtrOutput{}) pulumi.RegisterOutputType(GetCaCertsCertOutput{}) pulumi.RegisterOutputType(GetCaCertsCertArrayOutput{}) + pulumi.RegisterOutputType(GetDatabaseInstanceIpAddressOutput{}) + pulumi.RegisterOutputType(GetDatabaseInstanceIpAddressArrayOutput{}) + pulumi.RegisterOutputType(GetDatabaseInstanceReplicaConfigurationOutput{}) + pulumi.RegisterOutputType(GetDatabaseInstanceReplicaConfigurationArrayOutput{}) + pulumi.RegisterOutputType(GetDatabaseInstanceServerCaCertOutput{}) + pulumi.RegisterOutputType(GetDatabaseInstanceServerCaCertArrayOutput{}) + pulumi.RegisterOutputType(GetDatabaseInstanceSettingOutput{}) + pulumi.RegisterOutputType(GetDatabaseInstanceSettingArrayOutput{}) + pulumi.RegisterOutputType(GetDatabaseInstanceSettingBackupConfigurationOutput{}) + pulumi.RegisterOutputType(GetDatabaseInstanceSettingBackupConfigurationArrayOutput{}) + pulumi.RegisterOutputType(GetDatabaseInstanceSettingDatabaseFlagOutput{}) + pulumi.RegisterOutputType(GetDatabaseInstanceSettingDatabaseFlagArrayOutput{}) + pulumi.RegisterOutputType(GetDatabaseInstanceSettingIpConfigurationOutput{}) + pulumi.RegisterOutputType(GetDatabaseInstanceSettingIpConfigurationArrayOutput{}) + pulumi.RegisterOutputType(GetDatabaseInstanceSettingIpConfigurationAuthorizedNetworkOutput{}) + pulumi.RegisterOutputType(GetDatabaseInstanceSettingIpConfigurationAuthorizedNetworkArrayOutput{}) + pulumi.RegisterOutputType(GetDatabaseInstanceSettingLocationPreferenceOutput{}) + pulumi.RegisterOutputType(GetDatabaseInstanceSettingLocationPreferenceArrayOutput{}) + pulumi.RegisterOutputType(GetDatabaseInstanceSettingMaintenanceWindowOutput{}) + pulumi.RegisterOutputType(GetDatabaseInstanceSettingMaintenanceWindowArrayOutput{}) } diff --git a/sdk/nodejs/cloudasset/folderFeed.ts b/sdk/nodejs/cloudasset/folderFeed.ts new file mode 100644 index 0000000000..03d0cfbf31 --- /dev/null +++ b/sdk/nodejs/cloudasset/folderFeed.ts @@ -0,0 +1,242 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "../types/input"; +import * as outputs from "../types/output"; +import * as utilities from "../utilities"; + +/** + * Describes a Cloud Asset Inventory feed used to to listen to asset updates. + * + * To get more information about FolderFeed, see: + * + * * [API documentation](https://cloud.google.com/asset-inventory/docs/reference/rest/) + * * How-to Guides + * * [Official Documentation](https://cloud.google.com/asset-inventory/docs) + * + * ## Example Usage + */ +export class FolderFeed extends pulumi.CustomResource { + /** + * Get an existing FolderFeed resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state Any extra arguments used during the lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, state?: FolderFeedState, opts?: pulumi.CustomResourceOptions): FolderFeed { + return new FolderFeed(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'gcp:cloudasset/folderFeed:FolderFeed'; + + /** + * Returns true if the given object is an instance of FolderFeed. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is FolderFeed { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === FolderFeed.__pulumiType; + } + + /** + * A list of the full names of the assets to receive updates. You must specify either or both of + * assetNames and assetTypes. Only asset updates matching specified assetNames and assetTypes are + * exported to the feed. For example: //compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1. + * See https://cloud.google.com/apis/design/resourceNames#fullResourceName for more info. + */ + public readonly assetNames!: pulumi.Output; + /** + * A list of types of the assets to receive updates. You must specify either or both of assetNames + * and assetTypes. Only asset updates matching specified assetNames and assetTypes are exported to + * the feed. For example: "compute.googleapis.com/Disk" + * See https://cloud.google.com/asset-inventory/docs/supported-asset-types for a list of all + * supported asset types. + */ + public readonly assetTypes!: pulumi.Output; + /** + * The project whose identity will be used when sending messages to the + * destination pubsub topic. It also specifies the project for API + * enablement check, quota, and billing. + */ + public readonly billingProject!: pulumi.Output; + /** + * Asset content type. If not specified, no content but the asset name and type will be returned. + */ + public readonly contentType!: pulumi.Output; + /** + * This is the client-assigned asset feed identifier and it needs to be unique under a specific parent. + */ + public readonly feedId!: pulumi.Output; + /** + * Output configuration for asset feed destination. Structure is documented below. + */ + public readonly feedOutputConfig!: pulumi.Output; + /** + * The folder this feed should be created in. + */ + public readonly folder!: pulumi.Output; + /** + * The ID of the folder where this feed has been created. Both [FOLDER_NUMBER] and folders/[FOLDER_NUMBER] are accepted. + */ + public /*out*/ readonly folderId!: pulumi.Output; + /** + * The format will be folders/{folder_number}/feeds/{client-assigned_feed_identifier}. + */ + public /*out*/ readonly name!: pulumi.Output; + + /** + * Create a FolderFeed resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: FolderFeedArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: FolderFeedArgs | FolderFeedState, opts?: pulumi.CustomResourceOptions) { + let inputs: pulumi.Inputs = {}; + if (opts && opts.id) { + const state = argsOrState as FolderFeedState | undefined; + inputs["assetNames"] = state ? state.assetNames : undefined; + inputs["assetTypes"] = state ? state.assetTypes : undefined; + inputs["billingProject"] = state ? state.billingProject : undefined; + inputs["contentType"] = state ? state.contentType : undefined; + inputs["feedId"] = state ? state.feedId : undefined; + inputs["feedOutputConfig"] = state ? state.feedOutputConfig : undefined; + inputs["folder"] = state ? state.folder : undefined; + inputs["folderId"] = state ? state.folderId : undefined; + inputs["name"] = state ? state.name : undefined; + } else { + const args = argsOrState as FolderFeedArgs | undefined; + if (!args || args.billingProject === undefined) { + throw new Error("Missing required property 'billingProject'"); + } + if (!args || args.feedId === undefined) { + throw new Error("Missing required property 'feedId'"); + } + if (!args || args.feedOutputConfig === undefined) { + throw new Error("Missing required property 'feedOutputConfig'"); + } + if (!args || args.folder === undefined) { + throw new Error("Missing required property 'folder'"); + } + inputs["assetNames"] = args ? args.assetNames : undefined; + inputs["assetTypes"] = args ? args.assetTypes : undefined; + inputs["billingProject"] = args ? args.billingProject : undefined; + inputs["contentType"] = args ? args.contentType : undefined; + inputs["feedId"] = args ? args.feedId : undefined; + inputs["feedOutputConfig"] = args ? args.feedOutputConfig : undefined; + inputs["folder"] = args ? args.folder : undefined; + inputs["folderId"] = undefined /*out*/; + inputs["name"] = undefined /*out*/; + } + if (!opts) { + opts = {} + } + + if (!opts.version) { + opts.version = utilities.getVersion(); + } + super(FolderFeed.__pulumiType, name, inputs, opts); + } +} + +/** + * Input properties used for looking up and filtering FolderFeed resources. + */ +export interface FolderFeedState { + /** + * A list of the full names of the assets to receive updates. You must specify either or both of + * assetNames and assetTypes. Only asset updates matching specified assetNames and assetTypes are + * exported to the feed. For example: //compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1. + * See https://cloud.google.com/apis/design/resourceNames#fullResourceName for more info. + */ + readonly assetNames?: pulumi.Input[]>; + /** + * A list of types of the assets to receive updates. You must specify either or both of assetNames + * and assetTypes. Only asset updates matching specified assetNames and assetTypes are exported to + * the feed. For example: "compute.googleapis.com/Disk" + * See https://cloud.google.com/asset-inventory/docs/supported-asset-types for a list of all + * supported asset types. + */ + readonly assetTypes?: pulumi.Input[]>; + /** + * The project whose identity will be used when sending messages to the + * destination pubsub topic. It also specifies the project for API + * enablement check, quota, and billing. + */ + readonly billingProject?: pulumi.Input; + /** + * Asset content type. If not specified, no content but the asset name and type will be returned. + */ + readonly contentType?: pulumi.Input; + /** + * This is the client-assigned asset feed identifier and it needs to be unique under a specific parent. + */ + readonly feedId?: pulumi.Input; + /** + * Output configuration for asset feed destination. Structure is documented below. + */ + readonly feedOutputConfig?: pulumi.Input; + /** + * The folder this feed should be created in. + */ + readonly folder?: pulumi.Input; + /** + * The ID of the folder where this feed has been created. Both [FOLDER_NUMBER] and folders/[FOLDER_NUMBER] are accepted. + */ + readonly folderId?: pulumi.Input; + /** + * The format will be folders/{folder_number}/feeds/{client-assigned_feed_identifier}. + */ + readonly name?: pulumi.Input; +} + +/** + * The set of arguments for constructing a FolderFeed resource. + */ +export interface FolderFeedArgs { + /** + * A list of the full names of the assets to receive updates. You must specify either or both of + * assetNames and assetTypes. Only asset updates matching specified assetNames and assetTypes are + * exported to the feed. For example: //compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1. + * See https://cloud.google.com/apis/design/resourceNames#fullResourceName for more info. + */ + readonly assetNames?: pulumi.Input[]>; + /** + * A list of types of the assets to receive updates. You must specify either or both of assetNames + * and assetTypes. Only asset updates matching specified assetNames and assetTypes are exported to + * the feed. For example: "compute.googleapis.com/Disk" + * See https://cloud.google.com/asset-inventory/docs/supported-asset-types for a list of all + * supported asset types. + */ + readonly assetTypes?: pulumi.Input[]>; + /** + * The project whose identity will be used when sending messages to the + * destination pubsub topic. It also specifies the project for API + * enablement check, quota, and billing. + */ + readonly billingProject: pulumi.Input; + /** + * Asset content type. If not specified, no content but the asset name and type will be returned. + */ + readonly contentType?: pulumi.Input; + /** + * This is the client-assigned asset feed identifier and it needs to be unique under a specific parent. + */ + readonly feedId: pulumi.Input; + /** + * Output configuration for asset feed destination. Structure is documented below. + */ + readonly feedOutputConfig: pulumi.Input; + /** + * The folder this feed should be created in. + */ + readonly folder: pulumi.Input; +} diff --git a/sdk/nodejs/cloudasset/index.ts b/sdk/nodejs/cloudasset/index.ts new file mode 100644 index 0000000000..ac7ba76913 --- /dev/null +++ b/sdk/nodejs/cloudasset/index.ts @@ -0,0 +1,7 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +// Export members: +export * from "./folderFeed"; +export * from "./organizationFeed"; +export * from "./projectFeed"; diff --git a/sdk/nodejs/cloudasset/organizationFeed.ts b/sdk/nodejs/cloudasset/organizationFeed.ts new file mode 100644 index 0000000000..a86978ab8a --- /dev/null +++ b/sdk/nodejs/cloudasset/organizationFeed.ts @@ -0,0 +1,232 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "../types/input"; +import * as outputs from "../types/output"; +import * as utilities from "../utilities"; + +/** + * Describes a Cloud Asset Inventory feed used to to listen to asset updates. + * + * To get more information about OrganizationFeed, see: + * + * * [API documentation](https://cloud.google.com/asset-inventory/docs/reference/rest/) + * * How-to Guides + * * [Official Documentation](https://cloud.google.com/asset-inventory/docs) + * + * ## Example Usage + */ +export class OrganizationFeed extends pulumi.CustomResource { + /** + * Get an existing OrganizationFeed resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state Any extra arguments used during the lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, state?: OrganizationFeedState, opts?: pulumi.CustomResourceOptions): OrganizationFeed { + return new OrganizationFeed(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'gcp:cloudasset/organizationFeed:OrganizationFeed'; + + /** + * Returns true if the given object is an instance of OrganizationFeed. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is OrganizationFeed { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === OrganizationFeed.__pulumiType; + } + + /** + * A list of the full names of the assets to receive updates. You must specify either or both of + * assetNames and assetTypes. Only asset updates matching specified assetNames and assetTypes are + * exported to the feed. For example: //compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1. + * See https://cloud.google.com/apis/design/resourceNames#fullResourceName for more info. + */ + public readonly assetNames!: pulumi.Output; + /** + * A list of types of the assets to receive updates. You must specify either or both of assetNames + * and assetTypes. Only asset updates matching specified assetNames and assetTypes are exported to + * the feed. For example: "compute.googleapis.com/Disk" + * See https://cloud.google.com/asset-inventory/docs/supported-asset-types for a list of all + * supported asset types. + */ + public readonly assetTypes!: pulumi.Output; + /** + * The project whose identity will be used when sending messages to the + * destination pubsub topic. It also specifies the project for API + * enablement check, quota, and billing. + */ + public readonly billingProject!: pulumi.Output; + /** + * Asset content type. If not specified, no content but the asset name and type will be returned. + */ + public readonly contentType!: pulumi.Output; + /** + * This is the client-assigned asset feed identifier and it needs to be unique under a specific parent. + */ + public readonly feedId!: pulumi.Output; + /** + * Output configuration for asset feed destination. Structure is documented below. + */ + public readonly feedOutputConfig!: pulumi.Output; + /** + * The format will be organizations/{organization_number}/feeds/{client-assigned_feed_identifier}. + */ + public /*out*/ readonly name!: pulumi.Output; + /** + * The organization this feed should be created in. + */ + public readonly orgId!: pulumi.Output; + + /** + * Create a OrganizationFeed resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: OrganizationFeedArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: OrganizationFeedArgs | OrganizationFeedState, opts?: pulumi.CustomResourceOptions) { + let inputs: pulumi.Inputs = {}; + if (opts && opts.id) { + const state = argsOrState as OrganizationFeedState | undefined; + inputs["assetNames"] = state ? state.assetNames : undefined; + inputs["assetTypes"] = state ? state.assetTypes : undefined; + inputs["billingProject"] = state ? state.billingProject : undefined; + inputs["contentType"] = state ? state.contentType : undefined; + inputs["feedId"] = state ? state.feedId : undefined; + inputs["feedOutputConfig"] = state ? state.feedOutputConfig : undefined; + inputs["name"] = state ? state.name : undefined; + inputs["orgId"] = state ? state.orgId : undefined; + } else { + const args = argsOrState as OrganizationFeedArgs | undefined; + if (!args || args.billingProject === undefined) { + throw new Error("Missing required property 'billingProject'"); + } + if (!args || args.feedId === undefined) { + throw new Error("Missing required property 'feedId'"); + } + if (!args || args.feedOutputConfig === undefined) { + throw new Error("Missing required property 'feedOutputConfig'"); + } + if (!args || args.orgId === undefined) { + throw new Error("Missing required property 'orgId'"); + } + inputs["assetNames"] = args ? args.assetNames : undefined; + inputs["assetTypes"] = args ? args.assetTypes : undefined; + inputs["billingProject"] = args ? args.billingProject : undefined; + inputs["contentType"] = args ? args.contentType : undefined; + inputs["feedId"] = args ? args.feedId : undefined; + inputs["feedOutputConfig"] = args ? args.feedOutputConfig : undefined; + inputs["orgId"] = args ? args.orgId : undefined; + inputs["name"] = undefined /*out*/; + } + if (!opts) { + opts = {} + } + + if (!opts.version) { + opts.version = utilities.getVersion(); + } + super(OrganizationFeed.__pulumiType, name, inputs, opts); + } +} + +/** + * Input properties used for looking up and filtering OrganizationFeed resources. + */ +export interface OrganizationFeedState { + /** + * A list of the full names of the assets to receive updates. You must specify either or both of + * assetNames and assetTypes. Only asset updates matching specified assetNames and assetTypes are + * exported to the feed. For example: //compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1. + * See https://cloud.google.com/apis/design/resourceNames#fullResourceName for more info. + */ + readonly assetNames?: pulumi.Input[]>; + /** + * A list of types of the assets to receive updates. You must specify either or both of assetNames + * and assetTypes. Only asset updates matching specified assetNames and assetTypes are exported to + * the feed. For example: "compute.googleapis.com/Disk" + * See https://cloud.google.com/asset-inventory/docs/supported-asset-types for a list of all + * supported asset types. + */ + readonly assetTypes?: pulumi.Input[]>; + /** + * The project whose identity will be used when sending messages to the + * destination pubsub topic. It also specifies the project for API + * enablement check, quota, and billing. + */ + readonly billingProject?: pulumi.Input; + /** + * Asset content type. If not specified, no content but the asset name and type will be returned. + */ + readonly contentType?: pulumi.Input; + /** + * This is the client-assigned asset feed identifier and it needs to be unique under a specific parent. + */ + readonly feedId?: pulumi.Input; + /** + * Output configuration for asset feed destination. Structure is documented below. + */ + readonly feedOutputConfig?: pulumi.Input; + /** + * The format will be organizations/{organization_number}/feeds/{client-assigned_feed_identifier}. + */ + readonly name?: pulumi.Input; + /** + * The organization this feed should be created in. + */ + readonly orgId?: pulumi.Input; +} + +/** + * The set of arguments for constructing a OrganizationFeed resource. + */ +export interface OrganizationFeedArgs { + /** + * A list of the full names of the assets to receive updates. You must specify either or both of + * assetNames and assetTypes. Only asset updates matching specified assetNames and assetTypes are + * exported to the feed. For example: //compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1. + * See https://cloud.google.com/apis/design/resourceNames#fullResourceName for more info. + */ + readonly assetNames?: pulumi.Input[]>; + /** + * A list of types of the assets to receive updates. You must specify either or both of assetNames + * and assetTypes. Only asset updates matching specified assetNames and assetTypes are exported to + * the feed. For example: "compute.googleapis.com/Disk" + * See https://cloud.google.com/asset-inventory/docs/supported-asset-types for a list of all + * supported asset types. + */ + readonly assetTypes?: pulumi.Input[]>; + /** + * The project whose identity will be used when sending messages to the + * destination pubsub topic. It also specifies the project for API + * enablement check, quota, and billing. + */ + readonly billingProject: pulumi.Input; + /** + * Asset content type. If not specified, no content but the asset name and type will be returned. + */ + readonly contentType?: pulumi.Input; + /** + * This is the client-assigned asset feed identifier and it needs to be unique under a specific parent. + */ + readonly feedId: pulumi.Input; + /** + * Output configuration for asset feed destination. Structure is documented below. + */ + readonly feedOutputConfig: pulumi.Input; + /** + * The organization this feed should be created in. + */ + readonly orgId: pulumi.Input; +} diff --git a/sdk/nodejs/cloudasset/projectFeed.ts b/sdk/nodejs/cloudasset/projectFeed.ts new file mode 100644 index 0000000000..90f04849df --- /dev/null +++ b/sdk/nodejs/cloudasset/projectFeed.ts @@ -0,0 +1,232 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "../types/input"; +import * as outputs from "../types/output"; +import * as utilities from "../utilities"; + +/** + * Describes a Cloud Asset Inventory feed used to to listen to asset updates. + * + * To get more information about ProjectFeed, see: + * + * * [API documentation](https://cloud.google.com/asset-inventory/docs/reference/rest/) + * * How-to Guides + * * [Official Documentation](https://cloud.google.com/asset-inventory/docs) + * + * ## Example Usage + */ +export class ProjectFeed extends pulumi.CustomResource { + /** + * Get an existing ProjectFeed resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state Any extra arguments used during the lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, state?: ProjectFeedState, opts?: pulumi.CustomResourceOptions): ProjectFeed { + return new ProjectFeed(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'gcp:cloudasset/projectFeed:ProjectFeed'; + + /** + * Returns true if the given object is an instance of ProjectFeed. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is ProjectFeed { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === ProjectFeed.__pulumiType; + } + + /** + * A list of the full names of the assets to receive updates. You must specify either or both of + * assetNames and assetTypes. Only asset updates matching specified assetNames and assetTypes are + * exported to the feed. For example: //compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1. + * See https://cloud.google.com/apis/design/resourceNames#fullResourceName for more info. + */ + public readonly assetNames!: pulumi.Output; + /** + * A list of types of the assets to receive updates. You must specify either or both of assetNames + * and assetTypes. Only asset updates matching specified assetNames and assetTypes are exported to + * the feed. For example: "compute.googleapis.com/Disk" + * See https://cloud.google.com/asset-inventory/docs/supported-asset-types for a list of all + * supported asset types. + */ + public readonly assetTypes!: pulumi.Output; + /** + * The project whose identity will be used when sending messages to the + * destination pubsub topic. It also specifies the project for API + * enablement check, quota, and billing. If not specified, the resource's + * project will be used. + */ + public readonly billingProject!: pulumi.Output; + /** + * Asset content type. If not specified, no content but the asset name and type will be returned. + */ + public readonly contentType!: pulumi.Output; + /** + * This is the client-assigned asset feed identifier and it needs to be unique under a specific parent. + */ + public readonly feedId!: pulumi.Output; + /** + * Output configuration for asset feed destination. Structure is documented below. + */ + public readonly feedOutputConfig!: pulumi.Output; + /** + * The format will be projects/{projectNumber}/feeds/{client-assigned_feed_identifier}. + */ + public /*out*/ readonly name!: pulumi.Output; + /** + * The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + */ + public readonly project!: pulumi.Output; + + /** + * Create a ProjectFeed resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: ProjectFeedArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: ProjectFeedArgs | ProjectFeedState, opts?: pulumi.CustomResourceOptions) { + let inputs: pulumi.Inputs = {}; + if (opts && opts.id) { + const state = argsOrState as ProjectFeedState | undefined; + inputs["assetNames"] = state ? state.assetNames : undefined; + inputs["assetTypes"] = state ? state.assetTypes : undefined; + inputs["billingProject"] = state ? state.billingProject : undefined; + inputs["contentType"] = state ? state.contentType : undefined; + inputs["feedId"] = state ? state.feedId : undefined; + inputs["feedOutputConfig"] = state ? state.feedOutputConfig : undefined; + inputs["name"] = state ? state.name : undefined; + inputs["project"] = state ? state.project : undefined; + } else { + const args = argsOrState as ProjectFeedArgs | undefined; + if (!args || args.feedId === undefined) { + throw new Error("Missing required property 'feedId'"); + } + if (!args || args.feedOutputConfig === undefined) { + throw new Error("Missing required property 'feedOutputConfig'"); + } + inputs["assetNames"] = args ? args.assetNames : undefined; + inputs["assetTypes"] = args ? args.assetTypes : undefined; + inputs["billingProject"] = args ? args.billingProject : undefined; + inputs["contentType"] = args ? args.contentType : undefined; + inputs["feedId"] = args ? args.feedId : undefined; + inputs["feedOutputConfig"] = args ? args.feedOutputConfig : undefined; + inputs["project"] = args ? args.project : undefined; + inputs["name"] = undefined /*out*/; + } + if (!opts) { + opts = {} + } + + if (!opts.version) { + opts.version = utilities.getVersion(); + } + super(ProjectFeed.__pulumiType, name, inputs, opts); + } +} + +/** + * Input properties used for looking up and filtering ProjectFeed resources. + */ +export interface ProjectFeedState { + /** + * A list of the full names of the assets to receive updates. You must specify either or both of + * assetNames and assetTypes. Only asset updates matching specified assetNames and assetTypes are + * exported to the feed. For example: //compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1. + * See https://cloud.google.com/apis/design/resourceNames#fullResourceName for more info. + */ + readonly assetNames?: pulumi.Input[]>; + /** + * A list of types of the assets to receive updates. You must specify either or both of assetNames + * and assetTypes. Only asset updates matching specified assetNames and assetTypes are exported to + * the feed. For example: "compute.googleapis.com/Disk" + * See https://cloud.google.com/asset-inventory/docs/supported-asset-types for a list of all + * supported asset types. + */ + readonly assetTypes?: pulumi.Input[]>; + /** + * The project whose identity will be used when sending messages to the + * destination pubsub topic. It also specifies the project for API + * enablement check, quota, and billing. If not specified, the resource's + * project will be used. + */ + readonly billingProject?: pulumi.Input; + /** + * Asset content type. If not specified, no content but the asset name and type will be returned. + */ + readonly contentType?: pulumi.Input; + /** + * This is the client-assigned asset feed identifier and it needs to be unique under a specific parent. + */ + readonly feedId?: pulumi.Input; + /** + * Output configuration for asset feed destination. Structure is documented below. + */ + readonly feedOutputConfig?: pulumi.Input; + /** + * The format will be projects/{projectNumber}/feeds/{client-assigned_feed_identifier}. + */ + readonly name?: pulumi.Input; + /** + * The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + */ + readonly project?: pulumi.Input; +} + +/** + * The set of arguments for constructing a ProjectFeed resource. + */ +export interface ProjectFeedArgs { + /** + * A list of the full names of the assets to receive updates. You must specify either or both of + * assetNames and assetTypes. Only asset updates matching specified assetNames and assetTypes are + * exported to the feed. For example: //compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1. + * See https://cloud.google.com/apis/design/resourceNames#fullResourceName for more info. + */ + readonly assetNames?: pulumi.Input[]>; + /** + * A list of types of the assets to receive updates. You must specify either or both of assetNames + * and assetTypes. Only asset updates matching specified assetNames and assetTypes are exported to + * the feed. For example: "compute.googleapis.com/Disk" + * See https://cloud.google.com/asset-inventory/docs/supported-asset-types for a list of all + * supported asset types. + */ + readonly assetTypes?: pulumi.Input[]>; + /** + * The project whose identity will be used when sending messages to the + * destination pubsub topic. It also specifies the project for API + * enablement check, quota, and billing. If not specified, the resource's + * project will be used. + */ + readonly billingProject?: pulumi.Input; + /** + * Asset content type. If not specified, no content but the asset name and type will be returned. + */ + readonly contentType?: pulumi.Input; + /** + * This is the client-assigned asset feed identifier and it needs to be unique under a specific parent. + */ + readonly feedId: pulumi.Input; + /** + * Output configuration for asset feed destination. Structure is documented below. + */ + readonly feedOutputConfig: pulumi.Input; + /** + * The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + */ + readonly project?: pulumi.Input; +} diff --git a/sdk/nodejs/cloudfunctions/function.ts b/sdk/nodejs/cloudfunctions/function.ts index 7884ed2b8a..9faa6eff41 100644 --- a/sdk/nodejs/cloudfunctions/function.ts +++ b/sdk/nodejs/cloudfunctions/function.ts @@ -98,7 +98,7 @@ export class Function extends pulumi.CustomResource { public readonly region!: pulumi.Output; /** * The runtime in which the function is going to run. - * Eg. `"nodejs8"`, `"nodejs10"`, `"python37"`, `"go111"`. + * Eg. `"nodejs8"`, `"nodejs10"`, `"python37"`, `"go111"`, `"go113"`. */ public readonly runtime!: pulumi.Output; /** @@ -260,7 +260,7 @@ export interface FunctionState { readonly region?: pulumi.Input; /** * The runtime in which the function is going to run. - * Eg. `"nodejs8"`, `"nodejs10"`, `"python37"`, `"go111"`. + * Eg. `"nodejs8"`, `"nodejs10"`, `"python37"`, `"go111"`, `"go113"`. */ readonly runtime?: pulumi.Input; /** @@ -352,7 +352,7 @@ export interface FunctionArgs { readonly region?: pulumi.Input; /** * The runtime in which the function is going to run. - * Eg. `"nodejs8"`, `"nodejs10"`, `"python37"`, `"go111"`. + * Eg. `"nodejs8"`, `"nodejs10"`, `"python37"`, `"go111"`, `"go113"`. */ readonly runtime: pulumi.Input; /** diff --git a/sdk/nodejs/compute/backendService.ts b/sdk/nodejs/compute/backendService.ts index e2d06f30bd..e902954de9 100644 --- a/sdk/nodejs/compute/backendService.ts +++ b/sdk/nodejs/compute/backendService.ts @@ -112,10 +112,11 @@ export class BackendService extends pulumi.CustomResource { /** * The set of URLs to the HttpHealthCheck or HttpsHealthCheck resource * for health checking this BackendService. Currently at most one health - * check can be specified, and a health check is required. + * check can be specified. + * A health check must be specified unless the backend service uses an internet NEG as a backend. * For internal load balancing, a URL to a HealthCheck resource must be specified instead. */ - public readonly healthChecks!: pulumi.Output; + public readonly healthChecks!: pulumi.Output; /** * Settings for enabling Cloud Identity Aware Proxy Structure is documented below. */ @@ -209,7 +210,7 @@ export class BackendService extends pulumi.CustomResource { * @param args The arguments to use to populate this resource's properties. * @param opts A bag of options that control this resource's behavior. */ - constructor(name: string, args: BackendServiceArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, args?: BackendServiceArgs, opts?: pulumi.CustomResourceOptions) constructor(name: string, argsOrState?: BackendServiceArgs | BackendServiceState, opts?: pulumi.CustomResourceOptions) { let inputs: pulumi.Inputs = {}; if (opts && opts.id) { @@ -241,9 +242,6 @@ export class BackendService extends pulumi.CustomResource { inputs["timeoutSec"] = state ? state.timeoutSec : undefined; } else { const args = argsOrState as BackendServiceArgs | undefined; - if (!args || args.healthChecks === undefined) { - throw new Error("Missing required property 'healthChecks'"); - } inputs["affinityCookieTtlSec"] = args ? args.affinityCookieTtlSec : undefined; inputs["backends"] = args ? args.backends : undefined; inputs["cdnPolicy"] = args ? args.cdnPolicy : undefined; @@ -347,7 +345,8 @@ export interface BackendServiceState { /** * The set of URLs to the HttpHealthCheck or HttpsHealthCheck resource * for health checking this BackendService. Currently at most one health - * check can be specified, and a health check is required. + * check can be specified. + * A health check must be specified unless the backend service uses an internet NEG as a backend. * For internal load balancing, a URL to a HealthCheck resource must be specified instead. */ readonly healthChecks?: pulumi.Input; @@ -496,10 +495,11 @@ export interface BackendServiceArgs { /** * The set of URLs to the HttpHealthCheck or HttpsHealthCheck resource * for health checking this BackendService. Currently at most one health - * check can be specified, and a health check is required. + * check can be specified. + * A health check must be specified unless the backend service uses an internet NEG as a backend. * For internal load balancing, a URL to a HealthCheck resource must be specified instead. */ - readonly healthChecks: pulumi.Input; + readonly healthChecks?: pulumi.Input; /** * Settings for enabling Cloud Identity Aware Proxy Structure is documented below. */ diff --git a/sdk/nodejs/config/vars.ts b/sdk/nodejs/config/vars.ts index 0942ae055c..55da8a3cc4 100644 --- a/sdk/nodejs/config/vars.ts +++ b/sdk/nodejs/config/vars.ts @@ -20,6 +20,7 @@ export let bigqueryReservationCustomEndpoint: string | undefined = __config.get( export let bigtableCustomEndpoint: string | undefined = __config.get("bigtableCustomEndpoint"); export let billingCustomEndpoint: string | undefined = __config.get("billingCustomEndpoint"); export let binaryAuthorizationCustomEndpoint: string | undefined = __config.get("binaryAuthorizationCustomEndpoint"); +export let cloudAssetCustomEndpoint: string | undefined = __config.get("cloudAssetCustomEndpoint"); export let cloudBillingCustomEndpoint: string | undefined = __config.get("cloudBillingCustomEndpoint"); export let cloudBuildCustomEndpoint: string | undefined = __config.get("cloudBuildCustomEndpoint"); export let cloudFunctionsCustomEndpoint: string | undefined = __config.get("cloudFunctionsCustomEndpoint"); diff --git a/sdk/nodejs/container/cluster.ts b/sdk/nodejs/container/cluster.ts index 3a95c8c32f..205fc5bd1c 100644 --- a/sdk/nodejs/container/cluster.ts +++ b/sdk/nodejs/container/cluster.ts @@ -88,6 +88,11 @@ export class Cluster extends pulumi.CustomResource { * for more information. */ public readonly defaultMaxPodsPerNode!: pulumi.Output; + /** + * ) + * [GKE SNAT](https://cloud.google.com/kubernetes-engine/docs/how-to/ip-masquerade-agent#how_ipmasq_works) DefaultSnatStatus contains the desired state of whether default sNAT should be disabled on the cluster, [API doc](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1beta1/projects.locations.clusters#networkconfig). + */ + public readonly defaultSnatStatus!: pulumi.Output; /** * Description of the cluster. */ @@ -368,6 +373,7 @@ export class Cluster extends pulumi.CustomResource { inputs["clusterTelemetry"] = state ? state.clusterTelemetry : undefined; inputs["databaseEncryption"] = state ? state.databaseEncryption : undefined; inputs["defaultMaxPodsPerNode"] = state ? state.defaultMaxPodsPerNode : undefined; + inputs["defaultSnatStatus"] = state ? state.defaultSnatStatus : undefined; inputs["description"] = state ? state.description : undefined; inputs["enableBinaryAuthorization"] = state ? state.enableBinaryAuthorization : undefined; inputs["enableIntranodeVisibility"] = state ? state.enableIntranodeVisibility : undefined; @@ -418,6 +424,7 @@ export class Cluster extends pulumi.CustomResource { inputs["clusterTelemetry"] = args ? args.clusterTelemetry : undefined; inputs["databaseEncryption"] = args ? args.databaseEncryption : undefined; inputs["defaultMaxPodsPerNode"] = args ? args.defaultMaxPodsPerNode : undefined; + inputs["defaultSnatStatus"] = args ? args.defaultSnatStatus : undefined; inputs["description"] = args ? args.description : undefined; inputs["enableBinaryAuthorization"] = args ? args.enableBinaryAuthorization : undefined; inputs["enableIntranodeVisibility"] = args ? args.enableIntranodeVisibility : undefined; @@ -518,6 +525,11 @@ export interface ClusterState { * for more information. */ readonly defaultMaxPodsPerNode?: pulumi.Input; + /** + * ) + * [GKE SNAT](https://cloud.google.com/kubernetes-engine/docs/how-to/ip-masquerade-agent#how_ipmasq_works) DefaultSnatStatus contains the desired state of whether default sNAT should be disabled on the cluster, [API doc](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1beta1/projects.locations.clusters#networkconfig). + */ + readonly defaultSnatStatus?: pulumi.Input; /** * Description of the cluster. */ @@ -827,6 +839,11 @@ export interface ClusterArgs { * for more information. */ readonly defaultMaxPodsPerNode?: pulumi.Input; + /** + * ) + * [GKE SNAT](https://cloud.google.com/kubernetes-engine/docs/how-to/ip-masquerade-agent#how_ipmasq_works) DefaultSnatStatus contains the desired state of whether default sNAT should be disabled on the cluster, [API doc](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1beta1/projects.locations.clusters#networkconfig). + */ + readonly defaultSnatStatus?: pulumi.Input; /** * Description of the cluster. */ diff --git a/sdk/nodejs/container/getCluster.ts b/sdk/nodejs/container/getCluster.ts index 5890df6dd1..2f829e4c40 100644 --- a/sdk/nodejs/container/getCluster.ts +++ b/sdk/nodejs/container/getCluster.ts @@ -69,6 +69,7 @@ export interface GetClusterResult { readonly clusterTelemetries: outputs.container.GetClusterClusterTelemetry[]; readonly databaseEncryptions: outputs.container.GetClusterDatabaseEncryption[]; readonly defaultMaxPodsPerNode: number; + readonly defaultSnatStatuses: outputs.container.GetClusterDefaultSnatStatus[]; readonly description: string; readonly enableBinaryAuthorization: boolean; readonly enableIntranodeVisibility: boolean; diff --git a/sdk/nodejs/index.ts b/sdk/nodejs/index.ts index 83bde8da93..15cb9cee96 100644 --- a/sdk/nodejs/index.ts +++ b/sdk/nodejs/index.ts @@ -13,6 +13,7 @@ import * as bigquery from "./bigquery"; import * as bigtable from "./bigtable"; import * as billing from "./billing"; import * as binaryauthorization from "./binaryauthorization"; +import * as cloudasset from "./cloudasset"; import * as cloudbuild from "./cloudbuild"; import * as cloudfunctions from "./cloudfunctions"; import * as cloudidentity from "./cloudidentity"; @@ -71,4 +72,4 @@ import * as storage from "./storage"; import * as tpu from "./tpu"; import * as types from "./types"; import * as vpcaccess from "./vpcaccess"; -export {accesscontextmanager, appengine, artifactregistry, bigquery, bigtable, billing, binaryauthorization, cloudbuild, cloudfunctions, cloudidentity, cloudrun, cloudscheduler, cloudtasks, composer, compute, config, container, containeranalysis, datacatalog, dataflow, datafusion, dataproc, datastore, deploymentmanager, diagflow, dns, endpoints, filestore, firebase, firestore, folder, gameservices, healthcare, iam, iap, identityplatform, iot, kms, logging, memcache, ml, monitoring, networkmanagement, notebooks, organizations, osconfig, oslogin, projects, pubsub, redis, resourcemanager, runtimeconfig, secretmanager, securitycenter, serviceAccount, servicedirectory, servicenetworking, serviceusage, sourcerepo, spanner, sql, storage, tpu, types, vpcaccess}; +export {accesscontextmanager, appengine, artifactregistry, bigquery, bigtable, billing, binaryauthorization, cloudasset, cloudbuild, cloudfunctions, cloudidentity, cloudrun, cloudscheduler, cloudtasks, composer, compute, config, container, containeranalysis, datacatalog, dataflow, datafusion, dataproc, datastore, deploymentmanager, diagflow, dns, endpoints, filestore, firebase, firestore, folder, gameservices, healthcare, iam, iap, identityplatform, iot, kms, logging, memcache, ml, monitoring, networkmanagement, notebooks, organizations, osconfig, oslogin, projects, pubsub, redis, resourcemanager, runtimeconfig, secretmanager, securitycenter, serviceAccount, servicedirectory, servicenetworking, serviceusage, sourcerepo, spanner, sql, storage, tpu, types, vpcaccess}; diff --git a/sdk/nodejs/monitoring/index.ts b/sdk/nodejs/monitoring/index.ts index 86474da32a..f383469ff6 100644 --- a/sdk/nodejs/monitoring/index.ts +++ b/sdk/nodejs/monitoring/index.ts @@ -10,6 +10,7 @@ export * from "./getNotificationChannel"; export * from "./getSecretVersion"; export * from "./getUptimeCheckIPs"; export * from "./group"; +export * from "./metricDescriptor"; export * from "./notificationChannel"; export * from "./slo"; export * from "./uptimeCheckConfig"; diff --git a/sdk/nodejs/monitoring/metricDescriptor.ts b/sdk/nodejs/monitoring/metricDescriptor.ts new file mode 100644 index 0000000000..ad491d8891 --- /dev/null +++ b/sdk/nodejs/monitoring/metricDescriptor.ts @@ -0,0 +1,317 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "../types/input"; +import * as outputs from "../types/output"; +import * as utilities from "../utilities"; + +/** + * Defines a metric type and its schema. Once a metric descriptor is created, deleting or altering it stops data collection and makes the metric type's existing data unusable. + * + * To get more information about MetricDescriptor, see: + * + * * [API documentation](https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.metricDescriptors) + * * How-to Guides + * * [Official Documentation](https://cloud.google.com/monitoring/custom-metrics/) + * + * ## Example Usage + */ +export class MetricDescriptor extends pulumi.CustomResource { + /** + * Get an existing MetricDescriptor resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state Any extra arguments used during the lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, state?: MetricDescriptorState, opts?: pulumi.CustomResourceOptions): MetricDescriptor { + return new MetricDescriptor(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'gcp:monitoring/metricDescriptor:MetricDescriptor'; + + /** + * Returns true if the given object is an instance of MetricDescriptor. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is MetricDescriptor { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === MetricDescriptor.__pulumiType; + } + + /** + * A human-readable description for the label. + */ + public readonly description!: pulumi.Output; + /** + * A concise name for the metric, which can be displayed in user interfaces. Use sentence case without an ending period, for example "Request count". + */ + public readonly displayName!: pulumi.Output; + /** + * The set of labels that can be used to describe a specific instance of this metric type. In order to delete a label, the entire resource must be deleted, then created with the desired labels. Structure is documented below. + */ + public readonly labels!: pulumi.Output; + /** + * The launch stage of the metric definition. + */ + public readonly launchStage!: pulumi.Output; + /** + * Metadata which can be used to guide usage of the metric. Structure is documented below. + */ + public readonly metadata!: pulumi.Output; + /** + * Whether the metric records instantaneous values, changes to a value, etc. Some combinations of metricKind and valueType might not be supported. + */ + public readonly metricKind!: pulumi.Output; + /** + * If present, then a time series, which is identified partially by a metric type and a MonitoredResourceDescriptor, that + * is associated with this metric type can only be associated with one of the monitored resource types listed here. This + * field allows time series to be associated with the intersection of this metric type and the monitored resource types in + * this list. + */ + public /*out*/ readonly monitoredResourceTypes!: pulumi.Output; + /** + * The resource name of the metric descriptor. + */ + public /*out*/ readonly name!: pulumi.Output; + /** + * The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + */ + public readonly project!: pulumi.Output; + /** + * The metric type, including its DNS name prefix. The type is not URL-encoded. All service defined metrics must be prefixed with the service name, in the format of {service name}/{relative metric name}, such as cloudsql.googleapis.com/database/cpu/utilization. The relative metric name must have only upper and lower-case letters, digits, '/' and underscores '_' are allowed. Additionally, the maximum number of characters allowed for the relativeMetricName is 100. All user-defined metric types have the DNS name custom.googleapis.com, external.googleapis.com, or logging.googleapis.com/user/. + */ + public readonly type!: pulumi.Output; + /** + * The units in which the metric value is reported. It is only applicable if the + * valueType is INT64, DOUBLE, or DISTRIBUTION. The unit defines the representation of + * the stored metric values. + * Different systems may scale the values to be more easily displayed (so a value of + * 0.02KBy might be displayed as 20By, and a value of 3523KBy might be displayed as + * 3.5MBy). However, if the unit is KBy, then the value of the metric is always in + * thousands of bytes, no matter how it may be displayed. + * If you want a custom metric to record the exact number of CPU-seconds used by a job, + * you can create an INT64 CUMULATIVE metric whose unit is s{CPU} (or equivalently + * 1s{CPU} or just s). If the job uses 12,005 CPU-seconds, then the value is written as + * 12005. + * Alternatively, if you want a custom metric to record data in a more granular way, you + * can create a DOUBLE CUMULATIVE metric whose unit is ks{CPU}, and then write the value + * 12.005 (which is 12005/1000), or use Kis{CPU} and write 11.723 (which is 12005/1024). + * The supported units are a subset of The Unified Code for Units of Measure standard. + * More info can be found in the API documentation + * (https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.metricDescriptors). + */ + public readonly unit!: pulumi.Output; + /** + * The type of data that can be assigned to the label. + */ + public readonly valueType!: pulumi.Output; + + /** + * Create a MetricDescriptor resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: MetricDescriptorArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: MetricDescriptorArgs | MetricDescriptorState, opts?: pulumi.CustomResourceOptions) { + let inputs: pulumi.Inputs = {}; + if (opts && opts.id) { + const state = argsOrState as MetricDescriptorState | undefined; + inputs["description"] = state ? state.description : undefined; + inputs["displayName"] = state ? state.displayName : undefined; + inputs["labels"] = state ? state.labels : undefined; + inputs["launchStage"] = state ? state.launchStage : undefined; + inputs["metadata"] = state ? state.metadata : undefined; + inputs["metricKind"] = state ? state.metricKind : undefined; + inputs["monitoredResourceTypes"] = state ? state.monitoredResourceTypes : undefined; + inputs["name"] = state ? state.name : undefined; + inputs["project"] = state ? state.project : undefined; + inputs["type"] = state ? state.type : undefined; + inputs["unit"] = state ? state.unit : undefined; + inputs["valueType"] = state ? state.valueType : undefined; + } else { + const args = argsOrState as MetricDescriptorArgs | undefined; + if (!args || args.description === undefined) { + throw new Error("Missing required property 'description'"); + } + if (!args || args.displayName === undefined) { + throw new Error("Missing required property 'displayName'"); + } + if (!args || args.metricKind === undefined) { + throw new Error("Missing required property 'metricKind'"); + } + if (!args || args.type === undefined) { + throw new Error("Missing required property 'type'"); + } + if (!args || args.valueType === undefined) { + throw new Error("Missing required property 'valueType'"); + } + inputs["description"] = args ? args.description : undefined; + inputs["displayName"] = args ? args.displayName : undefined; + inputs["labels"] = args ? args.labels : undefined; + inputs["launchStage"] = args ? args.launchStage : undefined; + inputs["metadata"] = args ? args.metadata : undefined; + inputs["metricKind"] = args ? args.metricKind : undefined; + inputs["project"] = args ? args.project : undefined; + inputs["type"] = args ? args.type : undefined; + inputs["unit"] = args ? args.unit : undefined; + inputs["valueType"] = args ? args.valueType : undefined; + inputs["monitoredResourceTypes"] = undefined /*out*/; + inputs["name"] = undefined /*out*/; + } + if (!opts) { + opts = {} + } + + if (!opts.version) { + opts.version = utilities.getVersion(); + } + super(MetricDescriptor.__pulumiType, name, inputs, opts); + } +} + +/** + * Input properties used for looking up and filtering MetricDescriptor resources. + */ +export interface MetricDescriptorState { + /** + * A human-readable description for the label. + */ + readonly description?: pulumi.Input; + /** + * A concise name for the metric, which can be displayed in user interfaces. Use sentence case without an ending period, for example "Request count". + */ + readonly displayName?: pulumi.Input; + /** + * The set of labels that can be used to describe a specific instance of this metric type. In order to delete a label, the entire resource must be deleted, then created with the desired labels. Structure is documented below. + */ + readonly labels?: pulumi.Input[]>; + /** + * The launch stage of the metric definition. + */ + readonly launchStage?: pulumi.Input; + /** + * Metadata which can be used to guide usage of the metric. Structure is documented below. + */ + readonly metadata?: pulumi.Input; + /** + * Whether the metric records instantaneous values, changes to a value, etc. Some combinations of metricKind and valueType might not be supported. + */ + readonly metricKind?: pulumi.Input; + /** + * If present, then a time series, which is identified partially by a metric type and a MonitoredResourceDescriptor, that + * is associated with this metric type can only be associated with one of the monitored resource types listed here. This + * field allows time series to be associated with the intersection of this metric type and the monitored resource types in + * this list. + */ + readonly monitoredResourceTypes?: pulumi.Input[]>; + /** + * The resource name of the metric descriptor. + */ + readonly name?: pulumi.Input; + /** + * The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + */ + readonly project?: pulumi.Input; + /** + * The metric type, including its DNS name prefix. The type is not URL-encoded. All service defined metrics must be prefixed with the service name, in the format of {service name}/{relative metric name}, such as cloudsql.googleapis.com/database/cpu/utilization. The relative metric name must have only upper and lower-case letters, digits, '/' and underscores '_' are allowed. Additionally, the maximum number of characters allowed for the relativeMetricName is 100. All user-defined metric types have the DNS name custom.googleapis.com, external.googleapis.com, or logging.googleapis.com/user/. + */ + readonly type?: pulumi.Input; + /** + * The units in which the metric value is reported. It is only applicable if the + * valueType is INT64, DOUBLE, or DISTRIBUTION. The unit defines the representation of + * the stored metric values. + * Different systems may scale the values to be more easily displayed (so a value of + * 0.02KBy might be displayed as 20By, and a value of 3523KBy might be displayed as + * 3.5MBy). However, if the unit is KBy, then the value of the metric is always in + * thousands of bytes, no matter how it may be displayed. + * If you want a custom metric to record the exact number of CPU-seconds used by a job, + * you can create an INT64 CUMULATIVE metric whose unit is s{CPU} (or equivalently + * 1s{CPU} or just s). If the job uses 12,005 CPU-seconds, then the value is written as + * 12005. + * Alternatively, if you want a custom metric to record data in a more granular way, you + * can create a DOUBLE CUMULATIVE metric whose unit is ks{CPU}, and then write the value + * 12.005 (which is 12005/1000), or use Kis{CPU} and write 11.723 (which is 12005/1024). + * The supported units are a subset of The Unified Code for Units of Measure standard. + * More info can be found in the API documentation + * (https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.metricDescriptors). + */ + readonly unit?: pulumi.Input; + /** + * The type of data that can be assigned to the label. + */ + readonly valueType?: pulumi.Input; +} + +/** + * The set of arguments for constructing a MetricDescriptor resource. + */ +export interface MetricDescriptorArgs { + /** + * A human-readable description for the label. + */ + readonly description: pulumi.Input; + /** + * A concise name for the metric, which can be displayed in user interfaces. Use sentence case without an ending period, for example "Request count". + */ + readonly displayName: pulumi.Input; + /** + * The set of labels that can be used to describe a specific instance of this metric type. In order to delete a label, the entire resource must be deleted, then created with the desired labels. Structure is documented below. + */ + readonly labels?: pulumi.Input[]>; + /** + * The launch stage of the metric definition. + */ + readonly launchStage?: pulumi.Input; + /** + * Metadata which can be used to guide usage of the metric. Structure is documented below. + */ + readonly metadata?: pulumi.Input; + /** + * Whether the metric records instantaneous values, changes to a value, etc. Some combinations of metricKind and valueType might not be supported. + */ + readonly metricKind: pulumi.Input; + /** + * The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + */ + readonly project?: pulumi.Input; + /** + * The metric type, including its DNS name prefix. The type is not URL-encoded. All service defined metrics must be prefixed with the service name, in the format of {service name}/{relative metric name}, such as cloudsql.googleapis.com/database/cpu/utilization. The relative metric name must have only upper and lower-case letters, digits, '/' and underscores '_' are allowed. Additionally, the maximum number of characters allowed for the relativeMetricName is 100. All user-defined metric types have the DNS name custom.googleapis.com, external.googleapis.com, or logging.googleapis.com/user/. + */ + readonly type: pulumi.Input; + /** + * The units in which the metric value is reported. It is only applicable if the + * valueType is INT64, DOUBLE, or DISTRIBUTION. The unit defines the representation of + * the stored metric values. + * Different systems may scale the values to be more easily displayed (so a value of + * 0.02KBy might be displayed as 20By, and a value of 3523KBy might be displayed as + * 3.5MBy). However, if the unit is KBy, then the value of the metric is always in + * thousands of bytes, no matter how it may be displayed. + * If you want a custom metric to record the exact number of CPU-seconds used by a job, + * you can create an INT64 CUMULATIVE metric whose unit is s{CPU} (or equivalently + * 1s{CPU} or just s). If the job uses 12,005 CPU-seconds, then the value is written as + * 12005. + * Alternatively, if you want a custom metric to record data in a more granular way, you + * can create a DOUBLE CUMULATIVE metric whose unit is ks{CPU}, and then write the value + * 12.005 (which is 12005/1000), or use Kis{CPU} and write 11.723 (which is 12005/1024). + * The supported units are a subset of The Unified Code for Units of Measure standard. + * More info can be found in the API documentation + * (https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.metricDescriptors). + */ + readonly unit?: pulumi.Input; + /** + * The type of data that can be assigned to the label. + */ + readonly valueType: pulumi.Input; +} diff --git a/sdk/nodejs/organizations/folder.ts b/sdk/nodejs/organizations/folder.ts index cd91b26f3b..b9ba90566e 100644 --- a/sdk/nodejs/organizations/folder.ts +++ b/sdk/nodejs/organizations/folder.ts @@ -57,6 +57,10 @@ export class Folder extends pulumi.CustomResource { * A folder’s display name must be unique amongst its siblings, e.g. no two folders with the same parent can share the same display name. The display name must start and end with a letter or digit, may contain letters, digits, spaces, hyphens and underscores and can be no longer than 30 characters. */ public readonly displayName!: pulumi.Output; + /** + * The folder id from the name "folders/{folder_id}" + */ + public /*out*/ readonly folderId!: pulumi.Output; /** * The lifecycle state of the folder such as `ACTIVE` or `DELETE_REQUESTED`. */ @@ -85,6 +89,7 @@ export class Folder extends pulumi.CustomResource { const state = argsOrState as FolderState | undefined; inputs["createTime"] = state ? state.createTime : undefined; inputs["displayName"] = state ? state.displayName : undefined; + inputs["folderId"] = state ? state.folderId : undefined; inputs["lifecycleState"] = state ? state.lifecycleState : undefined; inputs["name"] = state ? state.name : undefined; inputs["parent"] = state ? state.parent : undefined; @@ -99,6 +104,7 @@ export class Folder extends pulumi.CustomResource { inputs["displayName"] = args ? args.displayName : undefined; inputs["parent"] = args ? args.parent : undefined; inputs["createTime"] = undefined /*out*/; + inputs["folderId"] = undefined /*out*/; inputs["lifecycleState"] = undefined /*out*/; inputs["name"] = undefined /*out*/; } @@ -127,6 +133,10 @@ export interface FolderState { * A folder’s display name must be unique amongst its siblings, e.g. no two folders with the same parent can share the same display name. The display name must start and end with a letter or digit, may contain letters, digits, spaces, hyphens and underscores and can be no longer than 30 characters. */ readonly displayName?: pulumi.Input; + /** + * The folder id from the name "folders/{folder_id}" + */ + readonly folderId?: pulumi.Input; /** * The lifecycle state of the folder such as `ACTIVE` or `DELETE_REQUESTED`. */ diff --git a/sdk/nodejs/organizations/getFolder.ts b/sdk/nodejs/organizations/getFolder.ts index ff97ff2abe..213a7b811a 100644 --- a/sdk/nodejs/organizations/getFolder.ts +++ b/sdk/nodejs/organizations/getFolder.ts @@ -50,6 +50,7 @@ export interface GetFolderResult { */ readonly displayName: string; readonly folder: string; + readonly folderId: string; /** * The provider-assigned unique ID for this managed resource. */ diff --git a/sdk/nodejs/osconfig/guestPolicies.ts b/sdk/nodejs/osconfig/guestPolicies.ts new file mode 100644 index 0000000000..2ae657be05 --- /dev/null +++ b/sdk/nodejs/osconfig/guestPolicies.ts @@ -0,0 +1,274 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "../types/input"; +import * as outputs from "../types/output"; +import * as utilities from "../utilities"; + +export class GuestPolicies extends pulumi.CustomResource { + /** + * Get an existing GuestPolicies resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state Any extra arguments used during the lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, state?: GuestPoliciesState, opts?: pulumi.CustomResourceOptions): GuestPolicies { + return new GuestPolicies(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'gcp:osconfig/guestPolicies:GuestPolicies'; + + /** + * Returns true if the given object is an instance of GuestPolicies. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is GuestPolicies { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === GuestPolicies.__pulumiType; + } + + /** + * Specifies the VM instances that are assigned to this policy. This allows you to target sets + * or groups of VM instances by different parameters such as labels, names, OS, or zones. + * If left empty, all VM instances underneath this policy are targeted. + * At the same level in the resource hierarchy (that is within a project), the service prevents + * the creation of multiple policies that conflict with each other. + * For more information, see how the service + * [handles assignment conflicts](https://cloud.google.com/compute/docs/os-config-management/create-guest-policy#handle-conflicts). Structure is documented below. + */ + public readonly assignment!: pulumi.Output; + /** + * Time this guest policy was created. A timestamp in RFC3339 UTC "Zulu" format, accurate to nanoseconds. Example: + * "2014-10-02T15:01:23.045123456Z". + */ + public /*out*/ readonly createTime!: pulumi.Output; + /** + * Description of the guest policy. Length of the description is limited to 1024 characters. + */ + public readonly description!: pulumi.Output; + /** + * The etag for this guest policy. If this is provided on update, it must match the server's etag. + */ + public readonly etag!: pulumi.Output; + /** + * The logical name of the guest policy in the project with the following restrictions: + * * Must contain only lowercase letters, numbers, and hyphens. + * * Must start with a letter. + * * Must be between 1-63 characters. + * * Must end with a number or a letter. + * * Must be unique within the project. + */ + public readonly guestPolicyId!: pulumi.Output; + /** + * Unique identifier for the recipe. Only one recipe with a given name is installed on an instance. + * Names are also used to identify resources which helps to determine whether guest policies have conflicts. + * This means that requests to create multiple recipes with the same name and version are rejected since they + * could potentially have conflicting assignments. + */ + public /*out*/ readonly name!: pulumi.Output; + /** + * A list of package repositories to configure on the VM instance. + * This is done before any other configs are applied so they can use these repos. + * Package repositories are only configured if the corresponding package manager(s) are available. Structure is documented below. + */ + public readonly packageRepositories!: pulumi.Output; + /** + * The software packages to be managed by this policy. Structure is documented below. + */ + public readonly packages!: pulumi.Output; + /** + * The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + */ + public readonly project!: pulumi.Output; + /** + * A list of Recipes to install on the VM instance. Structure is documented below. + */ + public readonly recipes!: pulumi.Output; + /** + * Last time this guest policy was updated. A timestamp in RFC3339 UTC "Zulu" format, accurate to nanoseconds. Example: + * "2014-10-02T15:01:23.045123456Z". + */ + public /*out*/ readonly updateTime!: pulumi.Output; + + /** + * Create a GuestPolicies resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: GuestPoliciesArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: GuestPoliciesArgs | GuestPoliciesState, opts?: pulumi.CustomResourceOptions) { + let inputs: pulumi.Inputs = {}; + if (opts && opts.id) { + const state = argsOrState as GuestPoliciesState | undefined; + inputs["assignment"] = state ? state.assignment : undefined; + inputs["createTime"] = state ? state.createTime : undefined; + inputs["description"] = state ? state.description : undefined; + inputs["etag"] = state ? state.etag : undefined; + inputs["guestPolicyId"] = state ? state.guestPolicyId : undefined; + inputs["name"] = state ? state.name : undefined; + inputs["packageRepositories"] = state ? state.packageRepositories : undefined; + inputs["packages"] = state ? state.packages : undefined; + inputs["project"] = state ? state.project : undefined; + inputs["recipes"] = state ? state.recipes : undefined; + inputs["updateTime"] = state ? state.updateTime : undefined; + } else { + const args = argsOrState as GuestPoliciesArgs | undefined; + if (!args || args.assignment === undefined) { + throw new Error("Missing required property 'assignment'"); + } + if (!args || args.guestPolicyId === undefined) { + throw new Error("Missing required property 'guestPolicyId'"); + } + inputs["assignment"] = args ? args.assignment : undefined; + inputs["description"] = args ? args.description : undefined; + inputs["etag"] = args ? args.etag : undefined; + inputs["guestPolicyId"] = args ? args.guestPolicyId : undefined; + inputs["packageRepositories"] = args ? args.packageRepositories : undefined; + inputs["packages"] = args ? args.packages : undefined; + inputs["project"] = args ? args.project : undefined; + inputs["recipes"] = args ? args.recipes : undefined; + inputs["createTime"] = undefined /*out*/; + inputs["name"] = undefined /*out*/; + inputs["updateTime"] = undefined /*out*/; + } + if (!opts) { + opts = {} + } + + if (!opts.version) { + opts.version = utilities.getVersion(); + } + super(GuestPolicies.__pulumiType, name, inputs, opts); + } +} + +/** + * Input properties used for looking up and filtering GuestPolicies resources. + */ +export interface GuestPoliciesState { + /** + * Specifies the VM instances that are assigned to this policy. This allows you to target sets + * or groups of VM instances by different parameters such as labels, names, OS, or zones. + * If left empty, all VM instances underneath this policy are targeted. + * At the same level in the resource hierarchy (that is within a project), the service prevents + * the creation of multiple policies that conflict with each other. + * For more information, see how the service + * [handles assignment conflicts](https://cloud.google.com/compute/docs/os-config-management/create-guest-policy#handle-conflicts). Structure is documented below. + */ + readonly assignment?: pulumi.Input; + /** + * Time this guest policy was created. A timestamp in RFC3339 UTC "Zulu" format, accurate to nanoseconds. Example: + * "2014-10-02T15:01:23.045123456Z". + */ + readonly createTime?: pulumi.Input; + /** + * Description of the guest policy. Length of the description is limited to 1024 characters. + */ + readonly description?: pulumi.Input; + /** + * The etag for this guest policy. If this is provided on update, it must match the server's etag. + */ + readonly etag?: pulumi.Input; + /** + * The logical name of the guest policy in the project with the following restrictions: + * * Must contain only lowercase letters, numbers, and hyphens. + * * Must start with a letter. + * * Must be between 1-63 characters. + * * Must end with a number or a letter. + * * Must be unique within the project. + */ + readonly guestPolicyId?: pulumi.Input; + /** + * Unique identifier for the recipe. Only one recipe with a given name is installed on an instance. + * Names are also used to identify resources which helps to determine whether guest policies have conflicts. + * This means that requests to create multiple recipes with the same name and version are rejected since they + * could potentially have conflicting assignments. + */ + readonly name?: pulumi.Input; + /** + * A list of package repositories to configure on the VM instance. + * This is done before any other configs are applied so they can use these repos. + * Package repositories are only configured if the corresponding package manager(s) are available. Structure is documented below. + */ + readonly packageRepositories?: pulumi.Input[]>; + /** + * The software packages to be managed by this policy. Structure is documented below. + */ + readonly packages?: pulumi.Input[]>; + /** + * The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + */ + readonly project?: pulumi.Input; + /** + * A list of Recipes to install on the VM instance. Structure is documented below. + */ + readonly recipes?: pulumi.Input[]>; + /** + * Last time this guest policy was updated. A timestamp in RFC3339 UTC "Zulu" format, accurate to nanoseconds. Example: + * "2014-10-02T15:01:23.045123456Z". + */ + readonly updateTime?: pulumi.Input; +} + +/** + * The set of arguments for constructing a GuestPolicies resource. + */ +export interface GuestPoliciesArgs { + /** + * Specifies the VM instances that are assigned to this policy. This allows you to target sets + * or groups of VM instances by different parameters such as labels, names, OS, or zones. + * If left empty, all VM instances underneath this policy are targeted. + * At the same level in the resource hierarchy (that is within a project), the service prevents + * the creation of multiple policies that conflict with each other. + * For more information, see how the service + * [handles assignment conflicts](https://cloud.google.com/compute/docs/os-config-management/create-guest-policy#handle-conflicts). Structure is documented below. + */ + readonly assignment: pulumi.Input; + /** + * Description of the guest policy. Length of the description is limited to 1024 characters. + */ + readonly description?: pulumi.Input; + /** + * The etag for this guest policy. If this is provided on update, it must match the server's etag. + */ + readonly etag?: pulumi.Input; + /** + * The logical name of the guest policy in the project with the following restrictions: + * * Must contain only lowercase letters, numbers, and hyphens. + * * Must start with a letter. + * * Must be between 1-63 characters. + * * Must end with a number or a letter. + * * Must be unique within the project. + */ + readonly guestPolicyId: pulumi.Input; + /** + * A list of package repositories to configure on the VM instance. + * This is done before any other configs are applied so they can use these repos. + * Package repositories are only configured if the corresponding package manager(s) are available. Structure is documented below. + */ + readonly packageRepositories?: pulumi.Input[]>; + /** + * The software packages to be managed by this policy. Structure is documented below. + */ + readonly packages?: pulumi.Input[]>; + /** + * The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + */ + readonly project?: pulumi.Input; + /** + * A list of Recipes to install on the VM instance. Structure is documented below. + */ + readonly recipes?: pulumi.Input[]>; +} diff --git a/sdk/nodejs/osconfig/index.ts b/sdk/nodejs/osconfig/index.ts index 96e56950cf..9682f0ce1f 100644 --- a/sdk/nodejs/osconfig/index.ts +++ b/sdk/nodejs/osconfig/index.ts @@ -2,4 +2,5 @@ // *** Do not edit by hand unless you're certain you know what you are doing! *** // Export members: +export * from "./guestPolicies"; export * from "./patchDeployment"; diff --git a/sdk/nodejs/provider.ts b/sdk/nodejs/provider.ts index 94f0dafa80..50da1162da 100644 --- a/sdk/nodejs/provider.ts +++ b/sdk/nodejs/provider.ts @@ -49,6 +49,7 @@ export class Provider extends pulumi.ProviderResource { inputs["bigtableCustomEndpoint"] = args ? args.bigtableCustomEndpoint : undefined; inputs["billingCustomEndpoint"] = args ? args.billingCustomEndpoint : undefined; inputs["binaryAuthorizationCustomEndpoint"] = args ? args.binaryAuthorizationCustomEndpoint : undefined; + inputs["cloudAssetCustomEndpoint"] = args ? args.cloudAssetCustomEndpoint : undefined; inputs["cloudBillingCustomEndpoint"] = args ? args.cloudBillingCustomEndpoint : undefined; inputs["cloudBuildCustomEndpoint"] = args ? args.cloudBuildCustomEndpoint : undefined; inputs["cloudFunctionsCustomEndpoint"] = args ? args.cloudFunctionsCustomEndpoint : undefined; @@ -145,6 +146,7 @@ export interface ProviderArgs { readonly bigtableCustomEndpoint?: pulumi.Input; readonly billingCustomEndpoint?: pulumi.Input; readonly binaryAuthorizationCustomEndpoint?: pulumi.Input; + readonly cloudAssetCustomEndpoint?: pulumi.Input; readonly cloudBillingCustomEndpoint?: pulumi.Input; readonly cloudBuildCustomEndpoint?: pulumi.Input; readonly cloudFunctionsCustomEndpoint?: pulumi.Input; diff --git a/sdk/nodejs/sql/getDatabaseInstance.ts b/sdk/nodejs/sql/getDatabaseInstance.ts new file mode 100644 index 0000000000..2baaa58c22 --- /dev/null +++ b/sdk/nodejs/sql/getDatabaseInstance.ts @@ -0,0 +1,99 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "../types/input"; +import * as outputs from "../types/output"; +import * as utilities from "../utilities"; + +/** + * Use this data source to get information about a Cloud SQL instance + */ +export function getDatabaseInstance(args: GetDatabaseInstanceArgs, opts?: pulumi.InvokeOptions): Promise { + if (!opts) { + opts = {} + } + + if (!opts.version) { + opts.version = utilities.getVersion(); + } + return pulumi.runtime.invoke("gcp:sql/getDatabaseInstance:getDatabaseInstance", { + "name": args.name, + }, opts); +} + +/** + * A collection of arguments for invoking getDatabaseInstance. + */ +export interface GetDatabaseInstanceArgs { + /** + * The name of the instance. + */ + readonly name: string; +} + +/** + * A collection of values returned by getDatabaseInstance. + */ +export interface GetDatabaseInstanceResult { + /** + * The connection name of the instance to be used in connection strings. + */ + readonly connectionName: string; + /** + * The MySQL, PostgreSQL or SQL Server (beta) version to use. + */ + readonly databaseVersion: string; + readonly encryptionKeyName: string; + /** + * The first IPv4 address of any type assigned. + */ + readonly firstIpAddress: string; + /** + * The provider-assigned unique ID for this managed resource. + */ + readonly id: string; + readonly ipAddresses: outputs.sql.GetDatabaseInstanceIpAddress[]; + /** + * The name of the instance that will act as + * the master in the replication setup. + */ + readonly masterInstanceName: string; + /** + * A name for this whitelist entry. + */ + readonly name: string; + /** + * The first private (`PRIVATE`) IPv4 address assigned. + */ + readonly privateIpAddress: string; + readonly project: string; + /** + * The first public (`PRIMARY`) IPv4 address assigned. + */ + readonly publicIpAddress: string; + readonly region: string; + /** + * The configuration for replication. The + * configuration is detailed below. + */ + readonly replicaConfigurations: outputs.sql.GetDatabaseInstanceReplicaConfiguration[]; + /** + * Initial root password. Required for MS SQL Server, ignored by MySQL and PostgreSQL. + */ + readonly rootPassword: string; + /** + * The URI of the created resource. + */ + readonly selfLink: string; + readonly serverCaCerts: outputs.sql.GetDatabaseInstanceServerCaCert[]; + /** + * The service account email address assigned to the instance. + */ + readonly serviceAccountEmailAddress: string; + /** + * The settings to use for the database. The + * configuration is detailed below. + */ + readonly settings: outputs.sql.GetDatabaseInstanceSetting[]; +} diff --git a/sdk/nodejs/sql/index.ts b/sdk/nodejs/sql/index.ts index c367426d61..aa6c185c50 100644 --- a/sdk/nodejs/sql/index.ts +++ b/sdk/nodejs/sql/index.ts @@ -5,6 +5,7 @@ export * from "./database"; export * from "./databaseInstance"; export * from "./getCaCerts"; +export * from "./getDatabaseInstance"; export * from "./sourceRepresentationInstance"; export * from "./sslCert"; export * from "./user"; diff --git a/sdk/nodejs/tsconfig.json b/sdk/nodejs/tsconfig.json index b4b9a54d36..42c67993aa 100644 --- a/sdk/nodejs/tsconfig.json +++ b/sdk/nodejs/tsconfig.json @@ -62,6 +62,10 @@ "binaryauthorization/attestorIamPolicy.ts", "binaryauthorization/index.ts", "binaryauthorization/policy.ts", + "cloudasset/folderFeed.ts", + "cloudasset/index.ts", + "cloudasset/organizationFeed.ts", + "cloudasset/projectFeed.ts", "cloudbuild/index.ts", "cloudbuild/trigger.ts", "cloudfunctions/function.ts", @@ -377,6 +381,7 @@ "monitoring/getUptimeCheckIPs.ts", "monitoring/group.ts", "monitoring/index.ts", + "monitoring/metricDescriptor.ts", "monitoring/notificationChannel.ts", "monitoring/slo.ts", "monitoring/uptimeCheckConfig.ts", @@ -403,6 +408,7 @@ "organizations/index.ts", "organizations/policy.ts", "organizations/project.ts", + "osconfig/guestPolicies.ts", "osconfig/index.ts", "osconfig/patchDeployment.ts", "oslogin/index.ts", @@ -490,6 +496,7 @@ "sql/database.ts", "sql/databaseInstance.ts", "sql/getCaCerts.ts", + "sql/getDatabaseInstance.ts", "sql/index.ts", "sql/sourceRepresentationInstance.ts", "sql/sslCert.ts", diff --git a/sdk/nodejs/types/input.ts b/sdk/nodejs/types/input.ts index f1ad56c69d..6d3374f29c 100644 --- a/sdk/nodejs/types/input.ts +++ b/sdk/nodejs/types/input.ts @@ -2136,6 +2136,50 @@ export namespace binaryauthorization { } } +export namespace cloudasset { + export interface FolderFeedFeedOutputConfig { + /** + * Destination on Cloud Pubsub. Structure is documented below. + */ + pubsubDestination: pulumi.Input; + } + + export interface FolderFeedFeedOutputConfigPubsubDestination { + /** + * Destination on Cloud Pubsub topic. + */ + topic: pulumi.Input; + } + + export interface OrganizationFeedFeedOutputConfig { + /** + * Destination on Cloud Pubsub. Structure is documented below. + */ + pubsubDestination: pulumi.Input; + } + + export interface OrganizationFeedFeedOutputConfigPubsubDestination { + /** + * Destination on Cloud Pubsub topic. + */ + topic: pulumi.Input; + } + + export interface ProjectFeedFeedOutputConfig { + /** + * Destination on Cloud Pubsub. Structure is documented below. + */ + pubsubDestination: pulumi.Input; + } + + export interface ProjectFeedFeedOutputConfigPubsubDestination { + /** + * Destination on Cloud Pubsub topic. + */ + topic: pulumi.Input; + } +} + export namespace cloudbuild { export interface TriggerBuild { /** @@ -10141,6 +10185,14 @@ export namespace container { state: pulumi.Input; } + export interface ClusterDefaultSnatStatus { + /** + * The status of the Istio addon, which makes it easy to set up Istio for services in a + * cluster. It is disabled by default. Set `disabled = false` to enable. + */ + disabled: pulumi.Input; + } + export interface ClusterIpAllocationPolicy { /** * The IP address range for the cluster pod IPs. @@ -12199,6 +12251,38 @@ export namespace filestore { * The name of the fileshare (16 characters or less) */ name: pulumi.Input; + nfsExportOptions?: pulumi.Input[]>; + } + + export interface InstanceFileSharesNfsExportOption { + /** + * Either READ_ONLY, for allowing only read requests on the exported directory, + * or READ_WRITE, for allowing both read and write requests. The default is READ_WRITE. + */ + accessMode?: pulumi.Input; + /** + * An integer representing the anonymous group id with a default value of 65534. + * Anon_gid may only be set with squashMode of ROOT_SQUASH. An error will be returned + * if this field is specified for other squashMode settings. + */ + anonGid?: pulumi.Input; + /** + * An integer representing the anonymous user id with a default value of 65534. + * Anon_uid may only be set with squashMode of ROOT_SQUASH. An error will be returned + * if this field is specified for other squashMode settings. + */ + anonUid?: pulumi.Input; + /** + * List of either IPv4 addresses, or ranges in CIDR notation which may mount the file share. + * Overlapping IP ranges are not allowed, both within and across NfsExportOptions. An error will be returned. + * The limit is 64 IP ranges/addresses for each FileShareConfig among all NfsExportOptions. + */ + ipRanges?: pulumi.Input[]>; + /** + * Either NO_ROOT_SQUASH, for allowing root access on the exported directory, or ROOT_SQUASH, + * for not allowing root access. The default is NO_ROOT_SQUASH. + */ + squashMode?: pulumi.Input; } export interface InstanceNetwork { @@ -13903,6 +13987,32 @@ export namespace monitoring { resourceName?: pulumi.Input; } + export interface MetricDescriptorLabel { + /** + * A human-readable description for the label. + */ + description?: pulumi.Input; + /** + * The key for this label. The key must not exceed 100 characters. The first character of the key must be an upper- or lower-case letter, the remaining characters must be letters, digits or underscores, and the key must match the regular expression [a-zA-Z][a-zA-Z0-9_]* + */ + key: pulumi.Input; + /** + * The type of data that can be assigned to the label. + */ + valueType?: pulumi.Input; + } + + export interface MetricDescriptorMetadata { + /** + * The delay of data points caused by ingestion. Data points older than this age are guaranteed to be ingested and available to be read, excluding data loss due to errors. In `[duration format](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf?&_ga=2.264881487.1507873253.1593446723-935052455.1591817775#google.protobuf.Duration)`. + */ + ingestDelay?: pulumi.Input; + /** + * The sampling period of metric data points. For metrics which are written periodically, consecutive data points are stored at this time interval, excluding data loss due to errors. Metrics with a higher granularity have a smaller sampling period. In `[duration format](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf?&_ga=2.264881487.1507873253.1593446723-935052455.1591817775#google.protobuf.Duration)`. + */ + samplePeriod?: pulumi.Input; + } + export interface NotificationChannelSensitiveLabels { /** * An authorization token for a notification channel. Channel types that support this field include: slack **Note**: This property is sensitive and will not be displayed in the plan. @@ -14690,6 +14800,543 @@ export namespace organizations { } export namespace osconfig { + export interface GuestPoliciesAssignment { + /** + * Targets instances matching at least one of these label sets. This allows an assignment to target disparate groups, + * for example "env=prod or env=staging". Structure is documented below. + */ + groupLabels?: pulumi.Input[]>; + /** + * Targets VM instances whose name starts with one of these prefixes. + * Like labels, this is another way to group VM instances when targeting configs, + * for example prefix="prod-". + * Only supported for project-level policies. + */ + instanceNamePrefixes?: pulumi.Input[]>; + /** + * Targets any of the instances specified. Instances are specified by their URI in the form + * zones/[ZONE]/instances/[INSTANCE_NAME]. + * Instance targeting is uncommon and is supported to facilitate the management of changes + * by the instance or to target specific VM instances for development and testing. + * Only supported for project-level policies and must reference instances within this project. + */ + instances?: pulumi.Input[]>; + /** + * Targets VM instances matching at least one of the following OS types. + * VM instances must match all supplied criteria for a given OsType to be included. Structure is documented below. + */ + osTypes?: pulumi.Input[]>; + /** + * Targets instances in any of these zones. Leave empty to target instances in any zone. + * Zonal targeting is uncommon and is supported to facilitate the management of changes by zone. + */ + zones?: pulumi.Input[]>; + } + + export interface GuestPoliciesAssignmentGroupLabel { + /** + * Google Compute Engine instance labels that must be present for an instance to be included in this assignment group. + */ + labels: pulumi.Input<{[key: string]: pulumi.Input}>; + } + + export interface GuestPoliciesAssignmentOsType { + /** + * Targets VM instances with OS Inventory enabled and having the following OS architecture. + */ + osArchitecture?: pulumi.Input; + /** + * Targets VM instances with OS Inventory enabled and having the following OS short name, for example "debian" or "windows". + */ + osShortName?: pulumi.Input; + /** + * Targets VM instances with OS Inventory enabled and having the following following OS version. + */ + osVersion?: pulumi.Input; + } + + export interface GuestPoliciesPackage { + /** + * Default is INSTALLED. The desired state the agent should maintain for this recipe. + * INSTALLED: The software recipe is installed on the instance but won't be updated to new versions. + * INSTALLED_KEEP_UPDATED: The software recipe is installed on the instance. The recipe is updated to a higher version, + * if a higher version of the recipe is assigned to this instance. + * REMOVE: Remove is unsupported for software recipes and attempts to create or update a recipe to the REMOVE state is rejected. + */ + desiredState?: pulumi.Input; + /** + * Type of package manager that can be used to install this package. If a system does not have the package manager, + * the package is not installed or removed no error message is returned. By default, or if you specify ANY, + * the agent attempts to install and remove this package using the default package manager. + * This is useful when creating a policy that applies to different types of systems. + * The default behavior is ANY. + */ + manager?: pulumi.Input; + /** + * Unique identifier for the recipe. Only one recipe with a given name is installed on an instance. + * Names are also used to identify resources which helps to determine whether guest policies have conflicts. + * This means that requests to create multiple recipes with the same name and version are rejected since they + * could potentially have conflicting assignments. + */ + name: pulumi.Input; + } + + export interface GuestPoliciesPackageRepository { + /** + * An Apt Repository. Structure is documented below. + */ + apt?: pulumi.Input; + /** + * A Goo Repository. Structure is documented below. + */ + goo?: pulumi.Input; + /** + * A Yum Repository. Structure is documented below. + */ + yum?: pulumi.Input; + /** + * A Zypper Repository. Structure is documented below. + */ + zypper?: pulumi.Input; + } + + export interface GuestPoliciesPackageRepositoryApt { + /** + * Type of archive files in this repository. The default behavior is DEB. + */ + archiveType?: pulumi.Input; + /** + * List of components for this repository. Must contain at least one item. + */ + components: pulumi.Input[]>; + /** + * Distribution of this repository. + */ + distribution: pulumi.Input; + /** + * URI of the key file for this repository. The agent maintains a keyring at + * /etc/apt/trusted.gpg.d/osconfig_agent_managed.gpg containing all the keys in any applied guest policy. + */ + gpgKey?: pulumi.Input; + /** + * URI from which to fetch the object. It should contain both the protocol and path following the format {protocol}://{location}. + */ + uri: pulumi.Input; + } + + export interface GuestPoliciesPackageRepositoryGoo { + /** + * Unique identifier for the recipe. Only one recipe with a given name is installed on an instance. + * Names are also used to identify resources which helps to determine whether guest policies have conflicts. + * This means that requests to create multiple recipes with the same name and version are rejected since they + * could potentially have conflicting assignments. + */ + name: pulumi.Input; + /** + * The url of the repository. + */ + url: pulumi.Input; + } + + export interface GuestPoliciesPackageRepositoryYum { + /** + * The location of the repository directory. + */ + baseUrl: pulumi.Input; + /** + * The display name of the repository. + */ + displayName?: pulumi.Input; + /** + * URIs of GPG keys. + */ + gpgKeys?: pulumi.Input[]>; + /** + * Id of the artifact, which the installation and update steps of this recipe can reference. + * Artifacts in a recipe cannot have the same id. + */ + id: pulumi.Input; + } + + export interface GuestPoliciesPackageRepositoryZypper { + /** + * The location of the repository directory. + */ + baseUrl: pulumi.Input; + /** + * The display name of the repository. + */ + displayName?: pulumi.Input; + /** + * URIs of GPG keys. + */ + gpgKeys?: pulumi.Input[]>; + /** + * Id of the artifact, which the installation and update steps of this recipe can reference. + * Artifacts in a recipe cannot have the same id. + */ + id: pulumi.Input; + } + + export interface GuestPoliciesRecipe { + /** + * Resources available to be used in the steps in the recipe. Structure is documented below. + */ + artifacts?: pulumi.Input[]>; + /** + * Default is INSTALLED. The desired state the agent should maintain for this recipe. + * INSTALLED: The software recipe is installed on the instance but won't be updated to new versions. + * INSTALLED_KEEP_UPDATED: The software recipe is installed on the instance. The recipe is updated to a higher version, + * if a higher version of the recipe is assigned to this instance. + * REMOVE: Remove is unsupported for software recipes and attempts to create or update a recipe to the REMOVE state is rejected. + */ + desiredState?: pulumi.Input; + /** + * Actions to be taken for installing this recipe. On failure it stops executing steps and does not attempt another installation. + * Any steps taken (including partially completed steps) are not rolled back. Structure is documented below. + */ + installSteps?: pulumi.Input[]>; + /** + * Unique identifier for the recipe. Only one recipe with a given name is installed on an instance. + * Names are also used to identify resources which helps to determine whether guest policies have conflicts. + * This means that requests to create multiple recipes with the same name and version are rejected since they + * could potentially have conflicting assignments. + */ + name: pulumi.Input; + /** + * Actions to be taken for updating this recipe. On failure it stops executing steps and does not attempt another update for this recipe. + * Any steps taken (including partially completed steps) are not rolled back. Structure is documented below. + */ + updateSteps?: pulumi.Input[]>; + /** + * The version of this software recipe. Version can be up to 4 period separated numbers (e.g. 12.34.56.78). + */ + version?: pulumi.Input; + } + + export interface GuestPoliciesRecipeArtifact { + /** + * Defaults to false. When false, recipes are subject to validations based on the artifact type: + * Remote: A checksum must be specified, and only protocols with transport-layer security are permitted. + * GCS: An object generation number must be specified. + */ + allowInsecure?: pulumi.Input; + /** + * A Google Cloud Storage artifact. Structure is documented below. + */ + gcs?: pulumi.Input; + /** + * Id of the artifact, which the installation and update steps of this recipe can reference. + * Artifacts in a recipe cannot have the same id. + */ + id: pulumi.Input; + /** + * A generic remote artifact. Structure is documented below. + */ + remote?: pulumi.Input; + } + + export interface GuestPoliciesRecipeArtifactGcs { + /** + * Bucket of the Google Cloud Storage object. Given an example URL: https://storage.googleapis.com/my-bucket/foo/bar#1234567 + * this value would be my-bucket. + */ + bucket?: pulumi.Input; + /** + * Must be provided if allowInsecure is false. Generation number of the Google Cloud Storage object. + * https://storage.googleapis.com/my-bucket/foo/bar#1234567 this value would be 1234567. + */ + generation?: pulumi.Input; + /** + * Name of the Google Cloud Storage object. Given an example URL: https://storage.googleapis.com/my-bucket/foo/bar#1234567 + * this value would be foo/bar. + */ + object?: pulumi.Input; + } + + export interface GuestPoliciesRecipeArtifactRemote { + /** + * Must be provided if allowInsecure is false. SHA256 checksum in hex format, to compare to the checksum of the artifact. + * If the checksum is not empty and it doesn't match the artifact then the recipe installation fails before running any + * of the steps. + */ + checkSum?: pulumi.Input; + /** + * URI from which to fetch the object. It should contain both the protocol and path following the format {protocol}://{location}. + */ + uri?: pulumi.Input; + } + + export interface GuestPoliciesRecipeInstallStep { + /** + * Extracts an archive into the specified directory. Structure is documented below. + */ + archiveExtraction?: pulumi.Input; + /** + * Installs a deb file via dpkg. Structure is documented below. + */ + dpkgInstallation?: pulumi.Input; + /** + * Copies a file onto the instance. Structure is documented below. + */ + fileCopy?: pulumi.Input; + /** + * Executes an artifact or local file. Structure is documented below. + */ + fileExec?: pulumi.Input; + /** + * Installs an MSI file. Structure is documented below. + */ + msiInstallation?: pulumi.Input; + /** + * Installs an rpm file via the rpm utility. Structure is documented below. + */ + rpmInstallation?: pulumi.Input; + /** + * Runs commands in a shell. Structure is documented below. + */ + scriptRun?: pulumi.Input; + } + + export interface GuestPoliciesRecipeInstallStepArchiveExtraction { + /** + * The id of the relevant artifact in the recipe. + */ + artifactId: pulumi.Input; + /** + * Directory to extract archive to. Defaults to / on Linux or C:\ on Windows. + */ + destination?: pulumi.Input; + /** + * The type of the archive to extract. + */ + type: pulumi.Input; + } + + export interface GuestPoliciesRecipeInstallStepDpkgInstallation { + /** + * The id of the relevant artifact in the recipe. + */ + artifactId: pulumi.Input; + } + + export interface GuestPoliciesRecipeInstallStepFileCopy { + /** + * The id of the relevant artifact in the recipe. + */ + artifactId: pulumi.Input; + /** + * Directory to extract archive to. Defaults to / on Linux or C:\ on Windows. + */ + destination: pulumi.Input; + /** + * Whether to allow this step to overwrite existing files.If this is false and the file already exists the file + * is not overwritten and the step is considered a success. Defaults to false. + */ + overwrite?: pulumi.Input; + /** + * Consists of three octal digits which represent, in order, the permissions of the owner, group, and other users + * for the file (similarly to the numeric mode used in the linux chmod utility). Each digit represents a three bit + * number with the 4 bit corresponding to the read permissions, the 2 bit corresponds to the write bit, and the one + * bit corresponds to the execute permission. Default behavior is 755. + * Below are some examples of permissions and their associated values: + * read, write, and execute: 7 read and execute: 5 read and write: 6 read only: 4 + */ + permissions?: pulumi.Input; + } + + export interface GuestPoliciesRecipeInstallStepFileExec { + /** + * Return codes that indicate that the software installed or updated successfully. Behaviour defaults to [0] + */ + allowedExitCodes?: pulumi.Input; + /** + * Arguments to be passed to the provided executable. + */ + args?: pulumi.Input[]>; + /** + * The id of the relevant artifact in the recipe. + */ + artifactId?: pulumi.Input; + /** + * The absolute path of the file on the local filesystem. + */ + localPath?: pulumi.Input; + } + + export interface GuestPoliciesRecipeInstallStepMsiInstallation { + /** + * Return codes that indicate that the software installed or updated successfully. Behaviour defaults to [0] + */ + allowedExitCodes?: pulumi.Input[]>; + /** + * The id of the relevant artifact in the recipe. + */ + artifactId: pulumi.Input; + /** + * The flags to use when installing the MSI. Defaults to the install flag. + */ + flags?: pulumi.Input[]>; + } + + export interface GuestPoliciesRecipeInstallStepRpmInstallation { + /** + * The id of the relevant artifact in the recipe. + */ + artifactId: pulumi.Input; + } + + export interface GuestPoliciesRecipeInstallStepScriptRun { + /** + * Return codes that indicate that the software installed or updated successfully. Behaviour defaults to [0] + */ + allowedExitCodes?: pulumi.Input[]>; + /** + * The script interpreter to use to run the script. If no interpreter is specified the script is executed directly, + * which likely only succeed for scripts with shebang lines. + */ + interpreter?: pulumi.Input; + /** + * The shell script to be executed. + */ + script: pulumi.Input; + } + + export interface GuestPoliciesRecipeUpdateStep { + /** + * Extracts an archive into the specified directory. Structure is documented below. + */ + archiveExtraction?: pulumi.Input; + /** + * Installs a deb file via dpkg. Structure is documented below. + */ + dpkgInstallation?: pulumi.Input; + /** + * Copies a file onto the instance. Structure is documented below. + */ + fileCopy?: pulumi.Input; + /** + * Executes an artifact or local file. Structure is documented below. + */ + fileExec?: pulumi.Input; + /** + * Installs an MSI file. Structure is documented below. + */ + msiInstallation?: pulumi.Input; + /** + * Installs an rpm file via the rpm utility. Structure is documented below. + */ + rpmInstallation?: pulumi.Input; + /** + * Runs commands in a shell. Structure is documented below. + */ + scriptRun?: pulumi.Input; + } + + export interface GuestPoliciesRecipeUpdateStepArchiveExtraction { + /** + * The id of the relevant artifact in the recipe. + */ + artifactId: pulumi.Input; + /** + * Directory to extract archive to. Defaults to / on Linux or C:\ on Windows. + */ + destination?: pulumi.Input; + /** + * The type of the archive to extract. + */ + type: pulumi.Input; + } + + export interface GuestPoliciesRecipeUpdateStepDpkgInstallation { + /** + * The id of the relevant artifact in the recipe. + */ + artifactId: pulumi.Input; + } + + export interface GuestPoliciesRecipeUpdateStepFileCopy { + /** + * The id of the relevant artifact in the recipe. + */ + artifactId: pulumi.Input; + /** + * Directory to extract archive to. Defaults to / on Linux or C:\ on Windows. + */ + destination: pulumi.Input; + /** + * Whether to allow this step to overwrite existing files.If this is false and the file already exists the file + * is not overwritten and the step is considered a success. Defaults to false. + */ + overwrite?: pulumi.Input; + /** + * Consists of three octal digits which represent, in order, the permissions of the owner, group, and other users + * for the file (similarly to the numeric mode used in the linux chmod utility). Each digit represents a three bit + * number with the 4 bit corresponding to the read permissions, the 2 bit corresponds to the write bit, and the one + * bit corresponds to the execute permission. Default behavior is 755. + * Below are some examples of permissions and their associated values: + * read, write, and execute: 7 read and execute: 5 read and write: 6 read only: 4 + */ + permissions?: pulumi.Input; + } + + export interface GuestPoliciesRecipeUpdateStepFileExec { + /** + * Return codes that indicate that the software installed or updated successfully. Behaviour defaults to [0] + */ + allowedExitCodes?: pulumi.Input[]>; + /** + * Arguments to be passed to the provided executable. + */ + args?: pulumi.Input[]>; + /** + * The id of the relevant artifact in the recipe. + */ + artifactId?: pulumi.Input; + /** + * The absolute path of the file on the local filesystem. + */ + localPath?: pulumi.Input; + } + + export interface GuestPoliciesRecipeUpdateStepMsiInstallation { + /** + * Return codes that indicate that the software installed or updated successfully. Behaviour defaults to [0] + */ + allowedExitCodes?: pulumi.Input[]>; + /** + * The id of the relevant artifact in the recipe. + */ + artifactId: pulumi.Input; + /** + * The flags to use when installing the MSI. Defaults to the install flag. + */ + flags?: pulumi.Input[]>; + } + + export interface GuestPoliciesRecipeUpdateStepRpmInstallation { + /** + * The id of the relevant artifact in the recipe. + */ + artifactId: pulumi.Input; + } + + export interface GuestPoliciesRecipeUpdateStepScriptRun { + /** + * Return codes that indicate that the software installed or updated successfully. Behaviour defaults to [0] + */ + allowedExitCodes?: pulumi.Input[]>; + /** + * The script interpreter to use to run the script. If no interpreter is specified the script is executed directly, + * which likely only succeed for scripts with shebang lines. + */ + interpreter?: pulumi.Input; + /** + * The shell script to be executed. + */ + script: pulumi.Input; + } + export interface PatchDeploymentInstanceFilter { /** * Target all VM instances in the project. If true, no other criteria is permitted. diff --git a/sdk/nodejs/types/output.ts b/sdk/nodejs/types/output.ts index a531842e0b..deef89b4c6 100644 --- a/sdk/nodejs/types/output.ts +++ b/sdk/nodejs/types/output.ts @@ -2136,6 +2136,50 @@ export namespace binaryauthorization { } } +export namespace cloudasset { + export interface FolderFeedFeedOutputConfig { + /** + * Destination on Cloud Pubsub. Structure is documented below. + */ + pubsubDestination: outputs.cloudasset.FolderFeedFeedOutputConfigPubsubDestination; + } + + export interface FolderFeedFeedOutputConfigPubsubDestination { + /** + * Destination on Cloud Pubsub topic. + */ + topic: string; + } + + export interface OrganizationFeedFeedOutputConfig { + /** + * Destination on Cloud Pubsub. Structure is documented below. + */ + pubsubDestination: outputs.cloudasset.OrganizationFeedFeedOutputConfigPubsubDestination; + } + + export interface OrganizationFeedFeedOutputConfigPubsubDestination { + /** + * Destination on Cloud Pubsub topic. + */ + topic: string; + } + + export interface ProjectFeedFeedOutputConfig { + /** + * Destination on Cloud Pubsub. Structure is documented below. + */ + pubsubDestination: outputs.cloudasset.ProjectFeedFeedOutputConfigPubsubDestination; + } + + export interface ProjectFeedFeedOutputConfigPubsubDestination { + /** + * Destination on Cloud Pubsub topic. + */ + topic: string; + } +} + export namespace cloudbuild { export interface TriggerBuild { /** @@ -10614,6 +10658,14 @@ export namespace container { state: string; } + export interface ClusterDefaultSnatStatus { + /** + * The status of the Istio addon, which makes it easy to set up Istio for services in a + * cluster. It is disabled by default. Set `disabled = false` to enable. + */ + disabled: boolean; + } + export interface ClusterIpAllocationPolicy { /** * The IP address range for the cluster pod IPs. @@ -11311,6 +11363,10 @@ export namespace container { state: string; } + export interface GetClusterDefaultSnatStatus { + disabled: boolean; + } + export interface GetClusterIpAllocationPolicy { clusterIpv4CidrBlock: string; clusterSecondaryRangeName: string; @@ -13069,6 +13125,38 @@ export namespace filestore { * The name of the fileshare (16 characters or less) */ name: string; + nfsExportOptions?: outputs.filestore.InstanceFileSharesNfsExportOption[]; + } + + export interface InstanceFileSharesNfsExportOption { + /** + * Either READ_ONLY, for allowing only read requests on the exported directory, + * or READ_WRITE, for allowing both read and write requests. The default is READ_WRITE. + */ + accessMode?: string; + /** + * An integer representing the anonymous group id with a default value of 65534. + * Anon_gid may only be set with squashMode of ROOT_SQUASH. An error will be returned + * if this field is specified for other squashMode settings. + */ + anonGid?: number; + /** + * An integer representing the anonymous user id with a default value of 65534. + * Anon_uid may only be set with squashMode of ROOT_SQUASH. An error will be returned + * if this field is specified for other squashMode settings. + */ + anonUid?: number; + /** + * List of either IPv4 addresses, or ranges in CIDR notation which may mount the file share. + * Overlapping IP ranges are not allowed, both within and across NfsExportOptions. An error will be returned. + * The limit is 64 IP ranges/addresses for each FileShareConfig among all NfsExportOptions. + */ + ipRanges?: string[]; + /** + * Either NO_ROOT_SQUASH, for allowing root access on the exported directory, or ROOT_SQUASH, + * for not allowing root access. The default is NO_ROOT_SQUASH. + */ + squashMode?: string; } export interface InstanceNetwork { @@ -14873,6 +14961,32 @@ export namespace monitoring { region: string; } + export interface MetricDescriptorLabel { + /** + * A human-readable description for the label. + */ + description?: string; + /** + * The key for this label. The key must not exceed 100 characters. The first character of the key must be an upper- or lower-case letter, the remaining characters must be letters, digits or underscores, and the key must match the regular expression [a-zA-Z][a-zA-Z0-9_]* + */ + key: string; + /** + * The type of data that can be assigned to the label. + */ + valueType?: string; + } + + export interface MetricDescriptorMetadata { + /** + * The delay of data points caused by ingestion. Data points older than this age are guaranteed to be ingested and available to be read, excluding data loss due to errors. In `[duration format](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf?&_ga=2.264881487.1507873253.1593446723-935052455.1591817775#google.protobuf.Duration)`. + */ + ingestDelay?: string; + /** + * The sampling period of metric data points. For metrics which are written periodically, consecutive data points are stored at this time interval, excluding data loss due to errors. Metrics with a higher granularity have a smaller sampling period. In `[duration format](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf?&_ga=2.264881487.1507873253.1593446723-935052455.1591817775#google.protobuf.Duration)`. + */ + samplePeriod?: string; + } + export interface NotificationChannelSensitiveLabels { /** * An authorization token for a notification channel. Channel types that support this field include: slack **Note**: This property is sensitive and will not be displayed in the plan. @@ -15660,6 +15774,543 @@ export namespace organizations { } export namespace osconfig { + export interface GuestPoliciesAssignment { + /** + * Targets instances matching at least one of these label sets. This allows an assignment to target disparate groups, + * for example "env=prod or env=staging". Structure is documented below. + */ + groupLabels?: outputs.osconfig.GuestPoliciesAssignmentGroupLabel[]; + /** + * Targets VM instances whose name starts with one of these prefixes. + * Like labels, this is another way to group VM instances when targeting configs, + * for example prefix="prod-". + * Only supported for project-level policies. + */ + instanceNamePrefixes?: string[]; + /** + * Targets any of the instances specified. Instances are specified by their URI in the form + * zones/[ZONE]/instances/[INSTANCE_NAME]. + * Instance targeting is uncommon and is supported to facilitate the management of changes + * by the instance or to target specific VM instances for development and testing. + * Only supported for project-level policies and must reference instances within this project. + */ + instances?: string[]; + /** + * Targets VM instances matching at least one of the following OS types. + * VM instances must match all supplied criteria for a given OsType to be included. Structure is documented below. + */ + osTypes?: outputs.osconfig.GuestPoliciesAssignmentOsType[]; + /** + * Targets instances in any of these zones. Leave empty to target instances in any zone. + * Zonal targeting is uncommon and is supported to facilitate the management of changes by zone. + */ + zones?: string[]; + } + + export interface GuestPoliciesAssignmentGroupLabel { + /** + * Google Compute Engine instance labels that must be present for an instance to be included in this assignment group. + */ + labels: {[key: string]: string}; + } + + export interface GuestPoliciesAssignmentOsType { + /** + * Targets VM instances with OS Inventory enabled and having the following OS architecture. + */ + osArchitecture?: string; + /** + * Targets VM instances with OS Inventory enabled and having the following OS short name, for example "debian" or "windows". + */ + osShortName?: string; + /** + * Targets VM instances with OS Inventory enabled and having the following following OS version. + */ + osVersion?: string; + } + + export interface GuestPoliciesPackage { + /** + * Default is INSTALLED. The desired state the agent should maintain for this recipe. + * INSTALLED: The software recipe is installed on the instance but won't be updated to new versions. + * INSTALLED_KEEP_UPDATED: The software recipe is installed on the instance. The recipe is updated to a higher version, + * if a higher version of the recipe is assigned to this instance. + * REMOVE: Remove is unsupported for software recipes and attempts to create or update a recipe to the REMOVE state is rejected. + */ + desiredState?: string; + /** + * Type of package manager that can be used to install this package. If a system does not have the package manager, + * the package is not installed or removed no error message is returned. By default, or if you specify ANY, + * the agent attempts to install and remove this package using the default package manager. + * This is useful when creating a policy that applies to different types of systems. + * The default behavior is ANY. + */ + manager?: string; + /** + * Unique identifier for the recipe. Only one recipe with a given name is installed on an instance. + * Names are also used to identify resources which helps to determine whether guest policies have conflicts. + * This means that requests to create multiple recipes with the same name and version are rejected since they + * could potentially have conflicting assignments. + */ + name: string; + } + + export interface GuestPoliciesPackageRepository { + /** + * An Apt Repository. Structure is documented below. + */ + apt?: outputs.osconfig.GuestPoliciesPackageRepositoryApt; + /** + * A Goo Repository. Structure is documented below. + */ + goo?: outputs.osconfig.GuestPoliciesPackageRepositoryGoo; + /** + * A Yum Repository. Structure is documented below. + */ + yum?: outputs.osconfig.GuestPoliciesPackageRepositoryYum; + /** + * A Zypper Repository. Structure is documented below. + */ + zypper?: outputs.osconfig.GuestPoliciesPackageRepositoryZypper; + } + + export interface GuestPoliciesPackageRepositoryApt { + /** + * Type of archive files in this repository. The default behavior is DEB. + */ + archiveType?: string; + /** + * List of components for this repository. Must contain at least one item. + */ + components: string[]; + /** + * Distribution of this repository. + */ + distribution: string; + /** + * URI of the key file for this repository. The agent maintains a keyring at + * /etc/apt/trusted.gpg.d/osconfig_agent_managed.gpg containing all the keys in any applied guest policy. + */ + gpgKey?: string; + /** + * URI from which to fetch the object. It should contain both the protocol and path following the format {protocol}://{location}. + */ + uri: string; + } + + export interface GuestPoliciesPackageRepositoryGoo { + /** + * Unique identifier for the recipe. Only one recipe with a given name is installed on an instance. + * Names are also used to identify resources which helps to determine whether guest policies have conflicts. + * This means that requests to create multiple recipes with the same name and version are rejected since they + * could potentially have conflicting assignments. + */ + name: string; + /** + * The url of the repository. + */ + url: string; + } + + export interface GuestPoliciesPackageRepositoryYum { + /** + * The location of the repository directory. + */ + baseUrl: string; + /** + * The display name of the repository. + */ + displayName?: string; + /** + * URIs of GPG keys. + */ + gpgKeys?: string[]; + /** + * Id of the artifact, which the installation and update steps of this recipe can reference. + * Artifacts in a recipe cannot have the same id. + */ + id: string; + } + + export interface GuestPoliciesPackageRepositoryZypper { + /** + * The location of the repository directory. + */ + baseUrl: string; + /** + * The display name of the repository. + */ + displayName?: string; + /** + * URIs of GPG keys. + */ + gpgKeys?: string[]; + /** + * Id of the artifact, which the installation and update steps of this recipe can reference. + * Artifacts in a recipe cannot have the same id. + */ + id: string; + } + + export interface GuestPoliciesRecipe { + /** + * Resources available to be used in the steps in the recipe. Structure is documented below. + */ + artifacts?: outputs.osconfig.GuestPoliciesRecipeArtifact[]; + /** + * Default is INSTALLED. The desired state the agent should maintain for this recipe. + * INSTALLED: The software recipe is installed on the instance but won't be updated to new versions. + * INSTALLED_KEEP_UPDATED: The software recipe is installed on the instance. The recipe is updated to a higher version, + * if a higher version of the recipe is assigned to this instance. + * REMOVE: Remove is unsupported for software recipes and attempts to create or update a recipe to the REMOVE state is rejected. + */ + desiredState?: string; + /** + * Actions to be taken for installing this recipe. On failure it stops executing steps and does not attempt another installation. + * Any steps taken (including partially completed steps) are not rolled back. Structure is documented below. + */ + installSteps?: outputs.osconfig.GuestPoliciesRecipeInstallStep[]; + /** + * Unique identifier for the recipe. Only one recipe with a given name is installed on an instance. + * Names are also used to identify resources which helps to determine whether guest policies have conflicts. + * This means that requests to create multiple recipes with the same name and version are rejected since they + * could potentially have conflicting assignments. + */ + name: string; + /** + * Actions to be taken for updating this recipe. On failure it stops executing steps and does not attempt another update for this recipe. + * Any steps taken (including partially completed steps) are not rolled back. Structure is documented below. + */ + updateSteps?: outputs.osconfig.GuestPoliciesRecipeUpdateStep[]; + /** + * The version of this software recipe. Version can be up to 4 period separated numbers (e.g. 12.34.56.78). + */ + version?: string; + } + + export interface GuestPoliciesRecipeArtifact { + /** + * Defaults to false. When false, recipes are subject to validations based on the artifact type: + * Remote: A checksum must be specified, and only protocols with transport-layer security are permitted. + * GCS: An object generation number must be specified. + */ + allowInsecure?: boolean; + /** + * A Google Cloud Storage artifact. Structure is documented below. + */ + gcs?: outputs.osconfig.GuestPoliciesRecipeArtifactGcs; + /** + * Id of the artifact, which the installation and update steps of this recipe can reference. + * Artifacts in a recipe cannot have the same id. + */ + id: string; + /** + * A generic remote artifact. Structure is documented below. + */ + remote?: outputs.osconfig.GuestPoliciesRecipeArtifactRemote; + } + + export interface GuestPoliciesRecipeArtifactGcs { + /** + * Bucket of the Google Cloud Storage object. Given an example URL: https://storage.googleapis.com/my-bucket/foo/bar#1234567 + * this value would be my-bucket. + */ + bucket?: string; + /** + * Must be provided if allowInsecure is false. Generation number of the Google Cloud Storage object. + * https://storage.googleapis.com/my-bucket/foo/bar#1234567 this value would be 1234567. + */ + generation?: number; + /** + * Name of the Google Cloud Storage object. Given an example URL: https://storage.googleapis.com/my-bucket/foo/bar#1234567 + * this value would be foo/bar. + */ + object?: string; + } + + export interface GuestPoliciesRecipeArtifactRemote { + /** + * Must be provided if allowInsecure is false. SHA256 checksum in hex format, to compare to the checksum of the artifact. + * If the checksum is not empty and it doesn't match the artifact then the recipe installation fails before running any + * of the steps. + */ + checkSum?: string; + /** + * URI from which to fetch the object. It should contain both the protocol and path following the format {protocol}://{location}. + */ + uri?: string; + } + + export interface GuestPoliciesRecipeInstallStep { + /** + * Extracts an archive into the specified directory. Structure is documented below. + */ + archiveExtraction?: outputs.osconfig.GuestPoliciesRecipeInstallStepArchiveExtraction; + /** + * Installs a deb file via dpkg. Structure is documented below. + */ + dpkgInstallation?: outputs.osconfig.GuestPoliciesRecipeInstallStepDpkgInstallation; + /** + * Copies a file onto the instance. Structure is documented below. + */ + fileCopy?: outputs.osconfig.GuestPoliciesRecipeInstallStepFileCopy; + /** + * Executes an artifact or local file. Structure is documented below. + */ + fileExec?: outputs.osconfig.GuestPoliciesRecipeInstallStepFileExec; + /** + * Installs an MSI file. Structure is documented below. + */ + msiInstallation?: outputs.osconfig.GuestPoliciesRecipeInstallStepMsiInstallation; + /** + * Installs an rpm file via the rpm utility. Structure is documented below. + */ + rpmInstallation?: outputs.osconfig.GuestPoliciesRecipeInstallStepRpmInstallation; + /** + * Runs commands in a shell. Structure is documented below. + */ + scriptRun?: outputs.osconfig.GuestPoliciesRecipeInstallStepScriptRun; + } + + export interface GuestPoliciesRecipeInstallStepArchiveExtraction { + /** + * The id of the relevant artifact in the recipe. + */ + artifactId: string; + /** + * Directory to extract archive to. Defaults to / on Linux or C:\ on Windows. + */ + destination: string; + /** + * The type of the archive to extract. + */ + type: string; + } + + export interface GuestPoliciesRecipeInstallStepDpkgInstallation { + /** + * The id of the relevant artifact in the recipe. + */ + artifactId: string; + } + + export interface GuestPoliciesRecipeInstallStepFileCopy { + /** + * The id of the relevant artifact in the recipe. + */ + artifactId: string; + /** + * Directory to extract archive to. Defaults to / on Linux or C:\ on Windows. + */ + destination: string; + /** + * Whether to allow this step to overwrite existing files.If this is false and the file already exists the file + * is not overwritten and the step is considered a success. Defaults to false. + */ + overwrite?: boolean; + /** + * Consists of three octal digits which represent, in order, the permissions of the owner, group, and other users + * for the file (similarly to the numeric mode used in the linux chmod utility). Each digit represents a three bit + * number with the 4 bit corresponding to the read permissions, the 2 bit corresponds to the write bit, and the one + * bit corresponds to the execute permission. Default behavior is 755. + * Below are some examples of permissions and their associated values: + * read, write, and execute: 7 read and execute: 5 read and write: 6 read only: 4 + */ + permissions?: string; + } + + export interface GuestPoliciesRecipeInstallStepFileExec { + /** + * Return codes that indicate that the software installed or updated successfully. Behaviour defaults to [0] + */ + allowedExitCodes: string; + /** + * Arguments to be passed to the provided executable. + */ + args?: string[]; + /** + * The id of the relevant artifact in the recipe. + */ + artifactId?: string; + /** + * The absolute path of the file on the local filesystem. + */ + localPath?: string; + } + + export interface GuestPoliciesRecipeInstallStepMsiInstallation { + /** + * Return codes that indicate that the software installed or updated successfully. Behaviour defaults to [0] + */ + allowedExitCodes: number[]; + /** + * The id of the relevant artifact in the recipe. + */ + artifactId: string; + /** + * The flags to use when installing the MSI. Defaults to the install flag. + */ + flags: string[]; + } + + export interface GuestPoliciesRecipeInstallStepRpmInstallation { + /** + * The id of the relevant artifact in the recipe. + */ + artifactId: string; + } + + export interface GuestPoliciesRecipeInstallStepScriptRun { + /** + * Return codes that indicate that the software installed or updated successfully. Behaviour defaults to [0] + */ + allowedExitCodes: number[]; + /** + * The script interpreter to use to run the script. If no interpreter is specified the script is executed directly, + * which likely only succeed for scripts with shebang lines. + */ + interpreter?: string; + /** + * The shell script to be executed. + */ + script: string; + } + + export interface GuestPoliciesRecipeUpdateStep { + /** + * Extracts an archive into the specified directory. Structure is documented below. + */ + archiveExtraction?: outputs.osconfig.GuestPoliciesRecipeUpdateStepArchiveExtraction; + /** + * Installs a deb file via dpkg. Structure is documented below. + */ + dpkgInstallation?: outputs.osconfig.GuestPoliciesRecipeUpdateStepDpkgInstallation; + /** + * Copies a file onto the instance. Structure is documented below. + */ + fileCopy?: outputs.osconfig.GuestPoliciesRecipeUpdateStepFileCopy; + /** + * Executes an artifact or local file. Structure is documented below. + */ + fileExec?: outputs.osconfig.GuestPoliciesRecipeUpdateStepFileExec; + /** + * Installs an MSI file. Structure is documented below. + */ + msiInstallation?: outputs.osconfig.GuestPoliciesRecipeUpdateStepMsiInstallation; + /** + * Installs an rpm file via the rpm utility. Structure is documented below. + */ + rpmInstallation?: outputs.osconfig.GuestPoliciesRecipeUpdateStepRpmInstallation; + /** + * Runs commands in a shell. Structure is documented below. + */ + scriptRun?: outputs.osconfig.GuestPoliciesRecipeUpdateStepScriptRun; + } + + export interface GuestPoliciesRecipeUpdateStepArchiveExtraction { + /** + * The id of the relevant artifact in the recipe. + */ + artifactId: string; + /** + * Directory to extract archive to. Defaults to / on Linux or C:\ on Windows. + */ + destination: string; + /** + * The type of the archive to extract. + */ + type: string; + } + + export interface GuestPoliciesRecipeUpdateStepDpkgInstallation { + /** + * The id of the relevant artifact in the recipe. + */ + artifactId: string; + } + + export interface GuestPoliciesRecipeUpdateStepFileCopy { + /** + * The id of the relevant artifact in the recipe. + */ + artifactId: string; + /** + * Directory to extract archive to. Defaults to / on Linux or C:\ on Windows. + */ + destination: string; + /** + * Whether to allow this step to overwrite existing files.If this is false and the file already exists the file + * is not overwritten and the step is considered a success. Defaults to false. + */ + overwrite?: boolean; + /** + * Consists of three octal digits which represent, in order, the permissions of the owner, group, and other users + * for the file (similarly to the numeric mode used in the linux chmod utility). Each digit represents a three bit + * number with the 4 bit corresponding to the read permissions, the 2 bit corresponds to the write bit, and the one + * bit corresponds to the execute permission. Default behavior is 755. + * Below are some examples of permissions and their associated values: + * read, write, and execute: 7 read and execute: 5 read and write: 6 read only: 4 + */ + permissions?: string; + } + + export interface GuestPoliciesRecipeUpdateStepFileExec { + /** + * Return codes that indicate that the software installed or updated successfully. Behaviour defaults to [0] + */ + allowedExitCodes: number[]; + /** + * Arguments to be passed to the provided executable. + */ + args?: string[]; + /** + * The id of the relevant artifact in the recipe. + */ + artifactId?: string; + /** + * The absolute path of the file on the local filesystem. + */ + localPath?: string; + } + + export interface GuestPoliciesRecipeUpdateStepMsiInstallation { + /** + * Return codes that indicate that the software installed or updated successfully. Behaviour defaults to [0] + */ + allowedExitCodes: number[]; + /** + * The id of the relevant artifact in the recipe. + */ + artifactId: string; + /** + * The flags to use when installing the MSI. Defaults to the install flag. + */ + flags: string[]; + } + + export interface GuestPoliciesRecipeUpdateStepRpmInstallation { + /** + * The id of the relevant artifact in the recipe. + */ + artifactId: string; + } + + export interface GuestPoliciesRecipeUpdateStepScriptRun { + /** + * Return codes that indicate that the software installed or updated successfully. Behaviour defaults to [0] + */ + allowedExitCodes: number[]; + /** + * The script interpreter to use to run the script. If no interpreter is specified the script is executed directly, + * which likely only succeed for scripts with shebang lines. + */ + interpreter?: string; + /** + * The shell script to be executed. + */ + script: string; + } + export interface PatchDeploymentInstanceFilter { /** * Target all VM instances in the project. If true, no other criteria is permitted. @@ -16792,6 +17443,213 @@ export namespace sql { */ sha1Fingerprint: string; } + + export interface GetDatabaseInstanceIpAddress { + ipAddress: string; + timeToRetire: string; + type: string; + } + + export interface GetDatabaseInstanceReplicaConfiguration { + /** + * PEM representation of the trusted CA's x509 certificate. + */ + caCertificate: string; + /** + * PEM representation of the slave's x509 certificate. + */ + clientCertificate: string; + /** + * PEM representation of the slave's private key. + */ + clientKey: string; + /** + * The number of seconds between connect retries. + */ + connectRetryInterval: number; + /** + * Path to a SQL file in GCS from which slave instances are created. + */ + dumpFilePath: string; + /** + * Specifies if the replica is the failover target. + */ + failoverTarget: boolean; + /** + * Time in ms between replication heartbeats. + */ + masterHeartbeatPeriod: number; + /** + * Password for the replication connection. + */ + password: string; + sslCipher: string; + /** + * Username for replication connection. + */ + username: string; + /** + * True if the master's common name value is checked during the SSL handshake. + */ + verifyServerCertificate: boolean; + } + + export interface GetDatabaseInstanceServerCaCert { + cert: string; + commonName: string; + createTime: string; + /** + * The [RFC 3339](https://tools.ietf.org/html/rfc3339) + * formatted date time string indicating when this whitelist expires. + */ + expirationTime: string; + sha1Fingerprint: string; + } + + export interface GetDatabaseInstanceSetting { + /** + * This specifies when the instance should be + * active. Can be either `ALWAYS`, `NEVER` or `ON_DEMAND`. + */ + activationPolicy: string; + /** + * (Deprecated) This property is only applicable to First Generation instances. + * First Generation instances are now deprecated, see [here](https://cloud.google.com/sql/docs/mysql/upgrade-2nd-gen) + * for information on how to upgrade to Second Generation instances. + * A list of Google App Engine (GAE) project names that are allowed to access this instance. + */ + authorizedGaeApplications: string[]; + /** + * The availability type of the Cloud SQL + * instance, high availability (`REGIONAL`) or single zone (`ZONAL`). + */ + availabilityType: string; + backupConfigurations: outputs.sql.GetDatabaseInstanceSettingBackupConfiguration[]; + /** + * (Deprecated) This property is only applicable to First Generation instances. + * First Generation instances are now deprecated, see [here](https://cloud.google.com/sql/docs/mysql/upgrade-2nd-gen) + */ + crashSafeReplication: boolean; + databaseFlags: outputs.sql.GetDatabaseInstanceSettingDatabaseFlag[]; + /** + * Configuration to increase storage size automatically. + */ + diskAutoresize: boolean; + /** + * The size of data disk, in GB. + */ + diskSize: number; + /** + * The type of data disk. + */ + diskType: string; + ipConfigurations: outputs.sql.GetDatabaseInstanceSettingIpConfiguration[]; + locationPreferences: outputs.sql.GetDatabaseInstanceSettingLocationPreference[]; + maintenanceWindows: outputs.sql.GetDatabaseInstanceSettingMaintenanceWindow[]; + /** + * Pricing plan for this instance. + */ + pricingPlan: string; + /** + * This property is only applicable to First Generation instances. + * First Generation instances are now deprecated, see [here](https://cloud.google.com/sql/docs/mysql/upgrade-2nd-gen) + */ + replicationType: string; + /** + * The machine type to use. + */ + tier: string; + /** + * A set of key/value user label pairs to assign to the instance. + */ + userLabels: {[key: string]: string}; + version: number; + } + + export interface GetDatabaseInstanceSettingBackupConfiguration { + /** + * True if binary logging is enabled. + */ + binaryLogEnabled: boolean; + /** + * True if backup configuration is enabled. + */ + enabled: boolean; + location: string; + /** + * `HH:MM` format time indicating when backup configuration starts. + */ + startTime: string; + } + + export interface GetDatabaseInstanceSettingDatabaseFlag { + /** + * The name of the instance. + */ + name: string; + /** + * A CIDR notation IPv4 or IPv6 address that is allowed to access this instance. + */ + value: string; + } + + export interface GetDatabaseInstanceSettingIpConfiguration { + authorizedNetworks: outputs.sql.GetDatabaseInstanceSettingIpConfigurationAuthorizedNetwork[]; + /** + * Whether this Cloud SQL instance should be assigned a public IPV4 address. + */ + ipv4Enabled: boolean; + /** + * The VPC network from which the Cloud SQL instance is accessible for private IP. + */ + privateNetwork: string; + /** + * True if mysqld default to `REQUIRE X509` for users connecting over IP. + */ + requireSsl: boolean; + } + + export interface GetDatabaseInstanceSettingIpConfigurationAuthorizedNetwork { + /** + * The [RFC 3339](https://tools.ietf.org/html/rfc3339) + * formatted date time string indicating when this whitelist expires. + */ + expirationTime: string; + /** + * The name of the instance. + */ + name: string; + /** + * A CIDR notation IPv4 or IPv6 address that is allowed to access this instance. + */ + value: string; + } + + export interface GetDatabaseInstanceSettingLocationPreference { + /** + * A GAE application whose zone to remain in. + */ + followGaeApplication: string; + /** + * The preferred compute engine. + */ + zone: string; + } + + export interface GetDatabaseInstanceSettingMaintenanceWindow { + /** + * Day of week (`1-7`), starting on Monday. + */ + day: number; + /** + * Hour of day (`0-23`), ignored if `day` not set. + */ + hour: number; + /** + * Receive updates earlier (`canary`) or later (`stable`). + */ + updateTrack: string; + } } export namespace storage { diff --git a/sdk/python/pulumi_gcp/__init__.py b/sdk/python/pulumi_gcp/__init__.py index e41507cb48..f631f27f42 100644 --- a/sdk/python/pulumi_gcp/__init__.py +++ b/sdk/python/pulumi_gcp/__init__.py @@ -15,6 +15,7 @@ 'bigtable', 'billing', 'binaryauthorization', + 'cloudasset', 'cloudbuild', 'cloudfunctions', 'cloudidentity', diff --git a/sdk/python/pulumi_gcp/cloudasset/__init__.py b/sdk/python/pulumi_gcp/cloudasset/__init__.py new file mode 100644 index 0000000000..865c5dc682 --- /dev/null +++ b/sdk/python/pulumi_gcp/cloudasset/__init__.py @@ -0,0 +1,8 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +# Export this package's modules as members: +from .folder_feed import * +from .organization_feed import * +from .project_feed import * diff --git a/sdk/python/pulumi_gcp/cloudasset/folder_feed.py b/sdk/python/pulumi_gcp/cloudasset/folder_feed.py new file mode 100644 index 0000000000..e8f72e32f7 --- /dev/null +++ b/sdk/python/pulumi_gcp/cloudasset/folder_feed.py @@ -0,0 +1,189 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import warnings +import pulumi +import pulumi.runtime +from typing import Union +from .. import utilities, tables + + +class FolderFeed(pulumi.CustomResource): + asset_names: pulumi.Output[list] + """ + A list of the full names of the assets to receive updates. You must specify either or both of + assetNames and assetTypes. Only asset updates matching specified assetNames and assetTypes are + exported to the feed. For example: //compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1. + See https://cloud.google.com/apis/design/resourceNames#fullResourceName for more info. + """ + asset_types: pulumi.Output[list] + """ + A list of types of the assets to receive updates. You must specify either or both of assetNames + and assetTypes. Only asset updates matching specified assetNames and assetTypes are exported to + the feed. For example: "compute.googleapis.com/Disk" + See https://cloud.google.com/asset-inventory/docs/supported-asset-types for a list of all + supported asset types. + """ + billing_project: pulumi.Output[str] + """ + The project whose identity will be used when sending messages to the + destination pubsub topic. It also specifies the project for API + enablement check, quota, and billing. + """ + content_type: pulumi.Output[str] + """ + Asset content type. If not specified, no content but the asset name and type will be returned. + """ + feed_id: pulumi.Output[str] + """ + This is the client-assigned asset feed identifier and it needs to be unique under a specific parent. + """ + feed_output_config: pulumi.Output[dict] + """ + Output configuration for asset feed destination. Structure is documented below. + + * `pubsubDestination` (`dict`) - Destination on Cloud Pubsub. Structure is documented below. + * `topic` (`str`) - Destination on Cloud Pubsub topic. + """ + folder: pulumi.Output[str] + """ + The folder this feed should be created in. + """ + folder_id: pulumi.Output[str] + """ + The ID of the folder where this feed has been created. Both [FOLDER_NUMBER] and folders/[FOLDER_NUMBER] are accepted. + """ + name: pulumi.Output[str] + """ + The format will be folders/{folder_number}/feeds/{client-assigned_feed_identifier}. + """ + def __init__(__self__, resource_name, opts=None, asset_names=None, asset_types=None, billing_project=None, content_type=None, feed_id=None, feed_output_config=None, folder=None, __props__=None, __name__=None, __opts__=None): + """ + Describes a Cloud Asset Inventory feed used to to listen to asset updates. + + To get more information about FolderFeed, see: + + * [API documentation](https://cloud.google.com/asset-inventory/docs/reference/rest/) + * How-to Guides + * [Official Documentation](https://cloud.google.com/asset-inventory/docs) + + ## Example Usage + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[list] asset_names: A list of the full names of the assets to receive updates. You must specify either or both of + assetNames and assetTypes. Only asset updates matching specified assetNames and assetTypes are + exported to the feed. For example: //compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1. + See https://cloud.google.com/apis/design/resourceNames#fullResourceName for more info. + :param pulumi.Input[list] asset_types: A list of types of the assets to receive updates. You must specify either or both of assetNames + and assetTypes. Only asset updates matching specified assetNames and assetTypes are exported to + the feed. For example: "compute.googleapis.com/Disk" + See https://cloud.google.com/asset-inventory/docs/supported-asset-types for a list of all + supported asset types. + :param pulumi.Input[str] billing_project: The project whose identity will be used when sending messages to the + destination pubsub topic. It also specifies the project for API + enablement check, quota, and billing. + :param pulumi.Input[str] content_type: Asset content type. If not specified, no content but the asset name and type will be returned. + :param pulumi.Input[str] feed_id: This is the client-assigned asset feed identifier and it needs to be unique under a specific parent. + :param pulumi.Input[dict] feed_output_config: Output configuration for asset feed destination. Structure is documented below. + :param pulumi.Input[str] folder: The folder this feed should be created in. + + The **feed_output_config** object supports the following: + + * `pubsubDestination` (`pulumi.Input[dict]`) - Destination on Cloud Pubsub. Structure is documented below. + * `topic` (`pulumi.Input[str]`) - Destination on Cloud Pubsub topic. + """ + if __name__ is not None: + warnings.warn("explicit use of __name__ is deprecated", DeprecationWarning) + resource_name = __name__ + if __opts__ is not None: + warnings.warn("explicit use of __opts__ is deprecated, use 'opts' instead", DeprecationWarning) + opts = __opts__ + if opts is None: + opts = pulumi.ResourceOptions() + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.version is None: + opts.version = utilities.get_version() + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = dict() + + __props__['asset_names'] = asset_names + __props__['asset_types'] = asset_types + if billing_project is None: + raise TypeError("Missing required property 'billing_project'") + __props__['billing_project'] = billing_project + __props__['content_type'] = content_type + if feed_id is None: + raise TypeError("Missing required property 'feed_id'") + __props__['feed_id'] = feed_id + if feed_output_config is None: + raise TypeError("Missing required property 'feed_output_config'") + __props__['feed_output_config'] = feed_output_config + if folder is None: + raise TypeError("Missing required property 'folder'") + __props__['folder'] = folder + __props__['folder_id'] = None + __props__['name'] = None + super(FolderFeed, __self__).__init__( + 'gcp:cloudasset/folderFeed:FolderFeed', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name, id, opts=None, asset_names=None, asset_types=None, billing_project=None, content_type=None, feed_id=None, feed_output_config=None, folder=None, folder_id=None, name=None): + """ + Get an existing FolderFeed resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param str id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[list] asset_names: A list of the full names of the assets to receive updates. You must specify either or both of + assetNames and assetTypes. Only asset updates matching specified assetNames and assetTypes are + exported to the feed. For example: //compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1. + See https://cloud.google.com/apis/design/resourceNames#fullResourceName for more info. + :param pulumi.Input[list] asset_types: A list of types of the assets to receive updates. You must specify either or both of assetNames + and assetTypes. Only asset updates matching specified assetNames and assetTypes are exported to + the feed. For example: "compute.googleapis.com/Disk" + See https://cloud.google.com/asset-inventory/docs/supported-asset-types for a list of all + supported asset types. + :param pulumi.Input[str] billing_project: The project whose identity will be used when sending messages to the + destination pubsub topic. It also specifies the project for API + enablement check, quota, and billing. + :param pulumi.Input[str] content_type: Asset content type. If not specified, no content but the asset name and type will be returned. + :param pulumi.Input[str] feed_id: This is the client-assigned asset feed identifier and it needs to be unique under a specific parent. + :param pulumi.Input[dict] feed_output_config: Output configuration for asset feed destination. Structure is documented below. + :param pulumi.Input[str] folder: The folder this feed should be created in. + :param pulumi.Input[str] folder_id: The ID of the folder where this feed has been created. Both [FOLDER_NUMBER] and folders/[FOLDER_NUMBER] are accepted. + :param pulumi.Input[str] name: The format will be folders/{folder_number}/feeds/{client-assigned_feed_identifier}. + + The **feed_output_config** object supports the following: + + * `pubsubDestination` (`pulumi.Input[dict]`) - Destination on Cloud Pubsub. Structure is documented below. + * `topic` (`pulumi.Input[str]`) - Destination on Cloud Pubsub topic. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = dict() + + __props__["asset_names"] = asset_names + __props__["asset_types"] = asset_types + __props__["billing_project"] = billing_project + __props__["content_type"] = content_type + __props__["feed_id"] = feed_id + __props__["feed_output_config"] = feed_output_config + __props__["folder"] = folder + __props__["folder_id"] = folder_id + __props__["name"] = name + return FolderFeed(resource_name, opts=opts, __props__=__props__) + + def translate_output_property(self, prop): + return tables._CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop + + def translate_input_property(self, prop): + return tables._SNAKE_TO_CAMEL_CASE_TABLE.get(prop) or prop diff --git a/sdk/python/pulumi_gcp/cloudasset/organization_feed.py b/sdk/python/pulumi_gcp/cloudasset/organization_feed.py new file mode 100644 index 0000000000..c966b78153 --- /dev/null +++ b/sdk/python/pulumi_gcp/cloudasset/organization_feed.py @@ -0,0 +1,182 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import warnings +import pulumi +import pulumi.runtime +from typing import Union +from .. import utilities, tables + + +class OrganizationFeed(pulumi.CustomResource): + asset_names: pulumi.Output[list] + """ + A list of the full names of the assets to receive updates. You must specify either or both of + assetNames and assetTypes. Only asset updates matching specified assetNames and assetTypes are + exported to the feed. For example: //compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1. + See https://cloud.google.com/apis/design/resourceNames#fullResourceName for more info. + """ + asset_types: pulumi.Output[list] + """ + A list of types of the assets to receive updates. You must specify either or both of assetNames + and assetTypes. Only asset updates matching specified assetNames and assetTypes are exported to + the feed. For example: "compute.googleapis.com/Disk" + See https://cloud.google.com/asset-inventory/docs/supported-asset-types for a list of all + supported asset types. + """ + billing_project: pulumi.Output[str] + """ + The project whose identity will be used when sending messages to the + destination pubsub topic. It also specifies the project for API + enablement check, quota, and billing. + """ + content_type: pulumi.Output[str] + """ + Asset content type. If not specified, no content but the asset name and type will be returned. + """ + feed_id: pulumi.Output[str] + """ + This is the client-assigned asset feed identifier and it needs to be unique under a specific parent. + """ + feed_output_config: pulumi.Output[dict] + """ + Output configuration for asset feed destination. Structure is documented below. + + * `pubsubDestination` (`dict`) - Destination on Cloud Pubsub. Structure is documented below. + * `topic` (`str`) - Destination on Cloud Pubsub topic. + """ + name: pulumi.Output[str] + """ + The format will be organizations/{organization_number}/feeds/{client-assigned_feed_identifier}. + """ + org_id: pulumi.Output[str] + """ + The organization this feed should be created in. + """ + def __init__(__self__, resource_name, opts=None, asset_names=None, asset_types=None, billing_project=None, content_type=None, feed_id=None, feed_output_config=None, org_id=None, __props__=None, __name__=None, __opts__=None): + """ + Describes a Cloud Asset Inventory feed used to to listen to asset updates. + + To get more information about OrganizationFeed, see: + + * [API documentation](https://cloud.google.com/asset-inventory/docs/reference/rest/) + * How-to Guides + * [Official Documentation](https://cloud.google.com/asset-inventory/docs) + + ## Example Usage + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[list] asset_names: A list of the full names of the assets to receive updates. You must specify either or both of + assetNames and assetTypes. Only asset updates matching specified assetNames and assetTypes are + exported to the feed. For example: //compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1. + See https://cloud.google.com/apis/design/resourceNames#fullResourceName for more info. + :param pulumi.Input[list] asset_types: A list of types of the assets to receive updates. You must specify either or both of assetNames + and assetTypes. Only asset updates matching specified assetNames and assetTypes are exported to + the feed. For example: "compute.googleapis.com/Disk" + See https://cloud.google.com/asset-inventory/docs/supported-asset-types for a list of all + supported asset types. + :param pulumi.Input[str] billing_project: The project whose identity will be used when sending messages to the + destination pubsub topic. It also specifies the project for API + enablement check, quota, and billing. + :param pulumi.Input[str] content_type: Asset content type. If not specified, no content but the asset name and type will be returned. + :param pulumi.Input[str] feed_id: This is the client-assigned asset feed identifier and it needs to be unique under a specific parent. + :param pulumi.Input[dict] feed_output_config: Output configuration for asset feed destination. Structure is documented below. + :param pulumi.Input[str] org_id: The organization this feed should be created in. + + The **feed_output_config** object supports the following: + + * `pubsubDestination` (`pulumi.Input[dict]`) - Destination on Cloud Pubsub. Structure is documented below. + * `topic` (`pulumi.Input[str]`) - Destination on Cloud Pubsub topic. + """ + if __name__ is not None: + warnings.warn("explicit use of __name__ is deprecated", DeprecationWarning) + resource_name = __name__ + if __opts__ is not None: + warnings.warn("explicit use of __opts__ is deprecated, use 'opts' instead", DeprecationWarning) + opts = __opts__ + if opts is None: + opts = pulumi.ResourceOptions() + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.version is None: + opts.version = utilities.get_version() + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = dict() + + __props__['asset_names'] = asset_names + __props__['asset_types'] = asset_types + if billing_project is None: + raise TypeError("Missing required property 'billing_project'") + __props__['billing_project'] = billing_project + __props__['content_type'] = content_type + if feed_id is None: + raise TypeError("Missing required property 'feed_id'") + __props__['feed_id'] = feed_id + if feed_output_config is None: + raise TypeError("Missing required property 'feed_output_config'") + __props__['feed_output_config'] = feed_output_config + if org_id is None: + raise TypeError("Missing required property 'org_id'") + __props__['org_id'] = org_id + __props__['name'] = None + super(OrganizationFeed, __self__).__init__( + 'gcp:cloudasset/organizationFeed:OrganizationFeed', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name, id, opts=None, asset_names=None, asset_types=None, billing_project=None, content_type=None, feed_id=None, feed_output_config=None, name=None, org_id=None): + """ + Get an existing OrganizationFeed resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param str id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[list] asset_names: A list of the full names of the assets to receive updates. You must specify either or both of + assetNames and assetTypes. Only asset updates matching specified assetNames and assetTypes are + exported to the feed. For example: //compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1. + See https://cloud.google.com/apis/design/resourceNames#fullResourceName for more info. + :param pulumi.Input[list] asset_types: A list of types of the assets to receive updates. You must specify either or both of assetNames + and assetTypes. Only asset updates matching specified assetNames and assetTypes are exported to + the feed. For example: "compute.googleapis.com/Disk" + See https://cloud.google.com/asset-inventory/docs/supported-asset-types for a list of all + supported asset types. + :param pulumi.Input[str] billing_project: The project whose identity will be used when sending messages to the + destination pubsub topic. It also specifies the project for API + enablement check, quota, and billing. + :param pulumi.Input[str] content_type: Asset content type. If not specified, no content but the asset name and type will be returned. + :param pulumi.Input[str] feed_id: This is the client-assigned asset feed identifier and it needs to be unique under a specific parent. + :param pulumi.Input[dict] feed_output_config: Output configuration for asset feed destination. Structure is documented below. + :param pulumi.Input[str] name: The format will be organizations/{organization_number}/feeds/{client-assigned_feed_identifier}. + :param pulumi.Input[str] org_id: The organization this feed should be created in. + + The **feed_output_config** object supports the following: + + * `pubsubDestination` (`pulumi.Input[dict]`) - Destination on Cloud Pubsub. Structure is documented below. + * `topic` (`pulumi.Input[str]`) - Destination on Cloud Pubsub topic. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = dict() + + __props__["asset_names"] = asset_names + __props__["asset_types"] = asset_types + __props__["billing_project"] = billing_project + __props__["content_type"] = content_type + __props__["feed_id"] = feed_id + __props__["feed_output_config"] = feed_output_config + __props__["name"] = name + __props__["org_id"] = org_id + return OrganizationFeed(resource_name, opts=opts, __props__=__props__) + + def translate_output_property(self, prop): + return tables._CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop + + def translate_input_property(self, prop): + return tables._SNAKE_TO_CAMEL_CASE_TABLE.get(prop) or prop diff --git a/sdk/python/pulumi_gcp/cloudasset/project_feed.py b/sdk/python/pulumi_gcp/cloudasset/project_feed.py new file mode 100644 index 0000000000..f8b368d572 --- /dev/null +++ b/sdk/python/pulumi_gcp/cloudasset/project_feed.py @@ -0,0 +1,184 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import warnings +import pulumi +import pulumi.runtime +from typing import Union +from .. import utilities, tables + + +class ProjectFeed(pulumi.CustomResource): + asset_names: pulumi.Output[list] + """ + A list of the full names of the assets to receive updates. You must specify either or both of + assetNames and assetTypes. Only asset updates matching specified assetNames and assetTypes are + exported to the feed. For example: //compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1. + See https://cloud.google.com/apis/design/resourceNames#fullResourceName for more info. + """ + asset_types: pulumi.Output[list] + """ + A list of types of the assets to receive updates. You must specify either or both of assetNames + and assetTypes. Only asset updates matching specified assetNames and assetTypes are exported to + the feed. For example: "compute.googleapis.com/Disk" + See https://cloud.google.com/asset-inventory/docs/supported-asset-types for a list of all + supported asset types. + """ + billing_project: pulumi.Output[str] + """ + The project whose identity will be used when sending messages to the + destination pubsub topic. It also specifies the project for API + enablement check, quota, and billing. If not specified, the resource's + project will be used. + """ + content_type: pulumi.Output[str] + """ + Asset content type. If not specified, no content but the asset name and type will be returned. + """ + feed_id: pulumi.Output[str] + """ + This is the client-assigned asset feed identifier and it needs to be unique under a specific parent. + """ + feed_output_config: pulumi.Output[dict] + """ + Output configuration for asset feed destination. Structure is documented below. + + * `pubsubDestination` (`dict`) - Destination on Cloud Pubsub. Structure is documented below. + * `topic` (`str`) - Destination on Cloud Pubsub topic. + """ + name: pulumi.Output[str] + """ + The format will be projects/{projectNumber}/feeds/{client-assigned_feed_identifier}. + """ + project: pulumi.Output[str] + """ + The ID of the project in which the resource belongs. + If it is not provided, the provider project is used. + """ + def __init__(__self__, resource_name, opts=None, asset_names=None, asset_types=None, billing_project=None, content_type=None, feed_id=None, feed_output_config=None, project=None, __props__=None, __name__=None, __opts__=None): + """ + Describes a Cloud Asset Inventory feed used to to listen to asset updates. + + To get more information about ProjectFeed, see: + + * [API documentation](https://cloud.google.com/asset-inventory/docs/reference/rest/) + * How-to Guides + * [Official Documentation](https://cloud.google.com/asset-inventory/docs) + + ## Example Usage + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[list] asset_names: A list of the full names of the assets to receive updates. You must specify either or both of + assetNames and assetTypes. Only asset updates matching specified assetNames and assetTypes are + exported to the feed. For example: //compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1. + See https://cloud.google.com/apis/design/resourceNames#fullResourceName for more info. + :param pulumi.Input[list] asset_types: A list of types of the assets to receive updates. You must specify either or both of assetNames + and assetTypes. Only asset updates matching specified assetNames and assetTypes are exported to + the feed. For example: "compute.googleapis.com/Disk" + See https://cloud.google.com/asset-inventory/docs/supported-asset-types for a list of all + supported asset types. + :param pulumi.Input[str] billing_project: The project whose identity will be used when sending messages to the + destination pubsub topic. It also specifies the project for API + enablement check, quota, and billing. If not specified, the resource's + project will be used. + :param pulumi.Input[str] content_type: Asset content type. If not specified, no content but the asset name and type will be returned. + :param pulumi.Input[str] feed_id: This is the client-assigned asset feed identifier and it needs to be unique under a specific parent. + :param pulumi.Input[dict] feed_output_config: Output configuration for asset feed destination. Structure is documented below. + :param pulumi.Input[str] project: The ID of the project in which the resource belongs. + If it is not provided, the provider project is used. + + The **feed_output_config** object supports the following: + + * `pubsubDestination` (`pulumi.Input[dict]`) - Destination on Cloud Pubsub. Structure is documented below. + * `topic` (`pulumi.Input[str]`) - Destination on Cloud Pubsub topic. + """ + if __name__ is not None: + warnings.warn("explicit use of __name__ is deprecated", DeprecationWarning) + resource_name = __name__ + if __opts__ is not None: + warnings.warn("explicit use of __opts__ is deprecated, use 'opts' instead", DeprecationWarning) + opts = __opts__ + if opts is None: + opts = pulumi.ResourceOptions() + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.version is None: + opts.version = utilities.get_version() + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = dict() + + __props__['asset_names'] = asset_names + __props__['asset_types'] = asset_types + __props__['billing_project'] = billing_project + __props__['content_type'] = content_type + if feed_id is None: + raise TypeError("Missing required property 'feed_id'") + __props__['feed_id'] = feed_id + if feed_output_config is None: + raise TypeError("Missing required property 'feed_output_config'") + __props__['feed_output_config'] = feed_output_config + __props__['project'] = project + __props__['name'] = None + super(ProjectFeed, __self__).__init__( + 'gcp:cloudasset/projectFeed:ProjectFeed', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name, id, opts=None, asset_names=None, asset_types=None, billing_project=None, content_type=None, feed_id=None, feed_output_config=None, name=None, project=None): + """ + Get an existing ProjectFeed resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param str id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[list] asset_names: A list of the full names of the assets to receive updates. You must specify either or both of + assetNames and assetTypes. Only asset updates matching specified assetNames and assetTypes are + exported to the feed. For example: //compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1. + See https://cloud.google.com/apis/design/resourceNames#fullResourceName for more info. + :param pulumi.Input[list] asset_types: A list of types of the assets to receive updates. You must specify either or both of assetNames + and assetTypes. Only asset updates matching specified assetNames and assetTypes are exported to + the feed. For example: "compute.googleapis.com/Disk" + See https://cloud.google.com/asset-inventory/docs/supported-asset-types for a list of all + supported asset types. + :param pulumi.Input[str] billing_project: The project whose identity will be used when sending messages to the + destination pubsub topic. It also specifies the project for API + enablement check, quota, and billing. If not specified, the resource's + project will be used. + :param pulumi.Input[str] content_type: Asset content type. If not specified, no content but the asset name and type will be returned. + :param pulumi.Input[str] feed_id: This is the client-assigned asset feed identifier and it needs to be unique under a specific parent. + :param pulumi.Input[dict] feed_output_config: Output configuration for asset feed destination. Structure is documented below. + :param pulumi.Input[str] name: The format will be projects/{projectNumber}/feeds/{client-assigned_feed_identifier}. + :param pulumi.Input[str] project: The ID of the project in which the resource belongs. + If it is not provided, the provider project is used. + + The **feed_output_config** object supports the following: + + * `pubsubDestination` (`pulumi.Input[dict]`) - Destination on Cloud Pubsub. Structure is documented below. + * `topic` (`pulumi.Input[str]`) - Destination on Cloud Pubsub topic. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = dict() + + __props__["asset_names"] = asset_names + __props__["asset_types"] = asset_types + __props__["billing_project"] = billing_project + __props__["content_type"] = content_type + __props__["feed_id"] = feed_id + __props__["feed_output_config"] = feed_output_config + __props__["name"] = name + __props__["project"] = project + return ProjectFeed(resource_name, opts=opts, __props__=__props__) + + def translate_output_property(self, prop): + return tables._CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop + + def translate_input_property(self, prop): + return tables._SNAKE_TO_CAMEL_CASE_TABLE.get(prop) or prop diff --git a/sdk/python/pulumi_gcp/cloudfunctions/function.py b/sdk/python/pulumi_gcp/cloudfunctions/function.py index 518c8334bf..502955d5f8 100644 --- a/sdk/python/pulumi_gcp/cloudfunctions/function.py +++ b/sdk/python/pulumi_gcp/cloudfunctions/function.py @@ -70,7 +70,7 @@ class Function(pulumi.CustomResource): runtime: pulumi.Output[str] """ The runtime in which the function is going to run. - Eg. `"nodejs8"`, `"nodejs10"`, `"python37"`, `"go111"`. + Eg. `"nodejs8"`, `"nodejs10"`, `"python37"`, `"go111"`, `"go113"`. """ service_account_email: pulumi.Output[str] """ @@ -138,7 +138,7 @@ def __init__(__self__, resource_name, opts=None, available_memory_mb=None, descr :param pulumi.Input[str] project: Project of the function. If it is not provided, the provider project is used. :param pulumi.Input[str] region: Region of function. Currently can be only "us-central1". If it is not provided, the provider region is used. :param pulumi.Input[str] runtime: The runtime in which the function is going to run. - Eg. `"nodejs8"`, `"nodejs10"`, `"python37"`, `"go111"`. + Eg. `"nodejs8"`, `"nodejs10"`, `"python37"`, `"go111"`, `"go113"`. :param pulumi.Input[str] service_account_email: If provided, the self-provided service account to run the function with. :param pulumi.Input[str] source_archive_bucket: The GCS bucket containing the zip archive which contains the function. :param pulumi.Input[str] source_archive_object: The source archive object (file) in archive bucket. @@ -233,7 +233,7 @@ def get(resource_name, id, opts=None, available_memory_mb=None, description=None :param pulumi.Input[str] project: Project of the function. If it is not provided, the provider project is used. :param pulumi.Input[str] region: Region of function. Currently can be only "us-central1". If it is not provided, the provider region is used. :param pulumi.Input[str] runtime: The runtime in which the function is going to run. - Eg. `"nodejs8"`, `"nodejs10"`, `"python37"`, `"go111"`. + Eg. `"nodejs8"`, `"nodejs10"`, `"python37"`, `"go111"`, `"go113"`. :param pulumi.Input[str] service_account_email: If provided, the self-provided service account to run the function with. :param pulumi.Input[str] source_archive_bucket: The GCS bucket containing the zip archive which contains the function. :param pulumi.Input[str] source_archive_object: The source archive object (file) in archive bucket. diff --git a/sdk/python/pulumi_gcp/compute/backend_service.py b/sdk/python/pulumi_gcp/compute/backend_service.py index 4448169e96..1640f27dfd 100644 --- a/sdk/python/pulumi_gcp/compute/backend_service.py +++ b/sdk/python/pulumi_gcp/compute/backend_service.py @@ -202,7 +202,8 @@ class BackendService(pulumi.CustomResource): """ The set of URLs to the HttpHealthCheck or HttpsHealthCheck resource for health checking this BackendService. Currently at most one health - check can be specified, and a health check is required. + check can be specified. + A health check must be specified unless the backend service uses an internet NEG as a backend. For internal load balancing, a URL to a HealthCheck resource must be specified instead. """ iap: pulumi.Output[dict] @@ -396,7 +397,8 @@ def __init__(__self__, resource_name, opts=None, affinity_cookie_ttl_sec=None, b :param pulumi.Input[bool] enable_cdn: If true, enable Cloud CDN for this BackendService. :param pulumi.Input[str] health_checks: The set of URLs to the HttpHealthCheck or HttpsHealthCheck resource for health checking this BackendService. Currently at most one health - check can be specified, and a health check is required. + check can be specified. + A health check must be specified unless the backend service uses an internet NEG as a backend. For internal load balancing, a URL to a HealthCheck resource must be specified instead. :param pulumi.Input[dict] iap: Settings for enabling Cloud Identity Aware Proxy Structure is documented below. :param pulumi.Input[str] load_balancing_scheme: Indicates whether the backend service will be used with internal or @@ -674,8 +676,6 @@ def __init__(__self__, resource_name, opts=None, affinity_cookie_ttl_sec=None, b __props__['custom_request_headers'] = custom_request_headers __props__['description'] = description __props__['enable_cdn'] = enable_cdn - if health_checks is None: - raise TypeError("Missing required property 'health_checks'") __props__['health_checks'] = health_checks __props__['iap'] = iap __props__['load_balancing_scheme'] = load_balancing_scheme @@ -735,7 +735,8 @@ def get(resource_name, id, opts=None, affinity_cookie_ttl_sec=None, backends=Non :param pulumi.Input[str] fingerprint: Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. :param pulumi.Input[str] health_checks: The set of URLs to the HttpHealthCheck or HttpsHealthCheck resource for health checking this BackendService. Currently at most one health - check can be specified, and a health check is required. + check can be specified. + A health check must be specified unless the backend service uses an internet NEG as a backend. For internal load balancing, a URL to a HealthCheck resource must be specified instead. :param pulumi.Input[dict] iap: Settings for enabling Cloud Identity Aware Proxy Structure is documented below. :param pulumi.Input[str] load_balancing_scheme: Indicates whether the backend service will be used with internal or diff --git a/sdk/python/pulumi_gcp/config/vars.py b/sdk/python/pulumi_gcp/config/vars.py index 945dcbcd03..2c7855b0d7 100644 --- a/sdk/python/pulumi_gcp/config/vars.py +++ b/sdk/python/pulumi_gcp/config/vars.py @@ -34,6 +34,8 @@ binary_authorization_custom_endpoint = __config__.get('binaryAuthorizationCustomEndpoint') +cloud_asset_custom_endpoint = __config__.get('cloudAssetCustomEndpoint') + cloud_billing_custom_endpoint = __config__.get('cloudBillingCustomEndpoint') cloud_build_custom_endpoint = __config__.get('cloudBuildCustomEndpoint') diff --git a/sdk/python/pulumi_gcp/container/cluster.py b/sdk/python/pulumi_gcp/container/cluster.py index 949575ab80..f8b511fde3 100644 --- a/sdk/python/pulumi_gcp/container/cluster.py +++ b/sdk/python/pulumi_gcp/container/cluster.py @@ -150,6 +150,14 @@ class Cluster(pulumi.CustomResource): that don't have IP Aliasing enabled. See the [official documentation](https://cloud.google.com/kubernetes-engine/docs/how-to/flexible-pod-cidr) for more information. """ + default_snat_status: pulumi.Output[dict] + """ + ) + [GKE SNAT](https://cloud.google.com/kubernetes-engine/docs/how-to/ip-masquerade-agent#how_ipmasq_works) DefaultSnatStatus contains the desired state of whether default sNAT should be disabled on the cluster, [API doc](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1beta1/projects.locations.clusters#networkconfig). + + * `disabled` (`bool`) - The status of the Istio addon, which makes it easy to set up Istio for services in a + cluster. It is disabled by default. Set `disabled = false` to enable. + """ description: pulumi.Output[str] """ Description of the cluster. @@ -690,7 +698,7 @@ class Cluster(pulumi.CustomResource): * `identityNamespace` (`str`) - Currently, the only supported identity namespace is the project's default. """ - def __init__(__self__, resource_name, opts=None, addons_config=None, authenticator_groups_config=None, cluster_autoscaling=None, cluster_ipv4_cidr=None, cluster_telemetry=None, database_encryption=None, default_max_pods_per_node=None, description=None, enable_binary_authorization=None, enable_intranode_visibility=None, enable_kubernetes_alpha=None, enable_legacy_abac=None, enable_shielded_nodes=None, enable_tpu=None, initial_node_count=None, ip_allocation_policy=None, location=None, logging_service=None, maintenance_policy=None, master_auth=None, master_authorized_networks_config=None, min_master_version=None, monitoring_service=None, name=None, network=None, network_policy=None, networking_mode=None, node_config=None, node_locations=None, node_pools=None, node_version=None, pod_security_policy_config=None, private_cluster_config=None, project=None, release_channel=None, remove_default_node_pool=None, resource_labels=None, resource_usage_export_config=None, subnetwork=None, vertical_pod_autoscaling=None, workload_identity_config=None, __props__=None, __name__=None, __opts__=None): + def __init__(__self__, resource_name, opts=None, addons_config=None, authenticator_groups_config=None, cluster_autoscaling=None, cluster_ipv4_cidr=None, cluster_telemetry=None, database_encryption=None, default_max_pods_per_node=None, default_snat_status=None, description=None, enable_binary_authorization=None, enable_intranode_visibility=None, enable_kubernetes_alpha=None, enable_legacy_abac=None, enable_shielded_nodes=None, enable_tpu=None, initial_node_count=None, ip_allocation_policy=None, location=None, logging_service=None, maintenance_policy=None, master_auth=None, master_authorized_networks_config=None, min_master_version=None, monitoring_service=None, name=None, network=None, network_policy=None, networking_mode=None, node_config=None, node_locations=None, node_pools=None, node_version=None, pod_security_policy_config=None, private_cluster_config=None, project=None, release_channel=None, remove_default_node_pool=None, resource_labels=None, resource_usage_export_config=None, subnetwork=None, vertical_pod_autoscaling=None, workload_identity_config=None, __props__=None, __name__=None, __opts__=None): """ Manages a Google Kubernetes Engine (GKE) cluster. For more information see [the official documentation](https://cloud.google.com/container-engine/docs/clusters) @@ -726,6 +734,8 @@ def __init__(__self__, resource_name, opts=None, addons_config=None, authenticat per node in this cluster. This doesn't work on "routes-based" clusters, clusters that don't have IP Aliasing enabled. See the [official documentation](https://cloud.google.com/kubernetes-engine/docs/how-to/flexible-pod-cidr) for more information. + :param pulumi.Input[dict] default_snat_status: ) + [GKE SNAT](https://cloud.google.com/kubernetes-engine/docs/how-to/ip-masquerade-agent#how_ipmasq_works) DefaultSnatStatus contains the desired state of whether default sNAT should be disabled on the cluster, [API doc](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1beta1/projects.locations.clusters#networkconfig). :param pulumi.Input[str] description: Description of the cluster. :param pulumi.Input[bool] enable_binary_authorization: Enable Binary Authorization for this cluster. If enabled, all container images will be validated by Google Binary Authorization. @@ -959,6 +969,11 @@ def __init__(__self__, resource_name, opts=None, addons_config=None, authenticat * `keyName` (`pulumi.Input[str]`) - the key to use to encrypt/decrypt secrets. See the [DatabaseEncryption definition](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1beta1/projects.locations.clusters#Cluster.DatabaseEncryption) for more information. * `state` (`pulumi.Input[str]`) - `ENCRYPTED` or `DECRYPTED` + The **default_snat_status** object supports the following: + + * `disabled` (`pulumi.Input[bool]`) - The status of the Istio addon, which makes it easy to set up Istio for services in a + cluster. It is disabled by default. Set `disabled = false` to enable. + The **ip_allocation_policy** object supports the following: * `clusterIpv4CidrBlock` (`pulumi.Input[str]`) - The IP address range for the cluster pod IPs. @@ -1289,6 +1304,7 @@ def __init__(__self__, resource_name, opts=None, addons_config=None, authenticat __props__['cluster_telemetry'] = cluster_telemetry __props__['database_encryption'] = database_encryption __props__['default_max_pods_per_node'] = default_max_pods_per_node + __props__['default_snat_status'] = default_snat_status __props__['description'] = description __props__['enable_binary_authorization'] = enable_binary_authorization __props__['enable_intranode_visibility'] = enable_intranode_visibility @@ -1337,7 +1353,7 @@ def __init__(__self__, resource_name, opts=None, addons_config=None, authenticat opts) @staticmethod - def get(resource_name, id, opts=None, addons_config=None, authenticator_groups_config=None, cluster_autoscaling=None, cluster_ipv4_cidr=None, cluster_telemetry=None, database_encryption=None, default_max_pods_per_node=None, description=None, enable_binary_authorization=None, enable_intranode_visibility=None, enable_kubernetes_alpha=None, enable_legacy_abac=None, enable_shielded_nodes=None, enable_tpu=None, endpoint=None, initial_node_count=None, instance_group_urls=None, ip_allocation_policy=None, label_fingerprint=None, location=None, logging_service=None, maintenance_policy=None, master_auth=None, master_authorized_networks_config=None, master_version=None, min_master_version=None, monitoring_service=None, name=None, network=None, network_policy=None, networking_mode=None, node_config=None, node_locations=None, node_pools=None, node_version=None, operation=None, pod_security_policy_config=None, private_cluster_config=None, project=None, release_channel=None, remove_default_node_pool=None, resource_labels=None, resource_usage_export_config=None, services_ipv4_cidr=None, subnetwork=None, tpu_ipv4_cidr_block=None, vertical_pod_autoscaling=None, workload_identity_config=None): + def get(resource_name, id, opts=None, addons_config=None, authenticator_groups_config=None, cluster_autoscaling=None, cluster_ipv4_cidr=None, cluster_telemetry=None, database_encryption=None, default_max_pods_per_node=None, default_snat_status=None, description=None, enable_binary_authorization=None, enable_intranode_visibility=None, enable_kubernetes_alpha=None, enable_legacy_abac=None, enable_shielded_nodes=None, enable_tpu=None, endpoint=None, initial_node_count=None, instance_group_urls=None, ip_allocation_policy=None, label_fingerprint=None, location=None, logging_service=None, maintenance_policy=None, master_auth=None, master_authorized_networks_config=None, master_version=None, min_master_version=None, monitoring_service=None, name=None, network=None, network_policy=None, networking_mode=None, node_config=None, node_locations=None, node_pools=None, node_version=None, operation=None, pod_security_policy_config=None, private_cluster_config=None, project=None, release_channel=None, remove_default_node_pool=None, resource_labels=None, resource_usage_export_config=None, services_ipv4_cidr=None, subnetwork=None, tpu_ipv4_cidr_block=None, vertical_pod_autoscaling=None, workload_identity_config=None): """ Get an existing Cluster resource's state with the given name, id, and optional extra properties used to qualify the lookup. @@ -1367,6 +1383,8 @@ def get(resource_name, id, opts=None, addons_config=None, authenticator_groups_c per node in this cluster. This doesn't work on "routes-based" clusters, clusters that don't have IP Aliasing enabled. See the [official documentation](https://cloud.google.com/kubernetes-engine/docs/how-to/flexible-pod-cidr) for more information. + :param pulumi.Input[dict] default_snat_status: ) + [GKE SNAT](https://cloud.google.com/kubernetes-engine/docs/how-to/ip-masquerade-agent#how_ipmasq_works) DefaultSnatStatus contains the desired state of whether default sNAT should be disabled on the cluster, [API doc](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1beta1/projects.locations.clusters#networkconfig). :param pulumi.Input[str] description: Description of the cluster. :param pulumi.Input[bool] enable_binary_authorization: Enable Binary Authorization for this cluster. If enabled, all container images will be validated by Google Binary Authorization. @@ -1614,6 +1632,11 @@ def get(resource_name, id, opts=None, addons_config=None, authenticator_groups_c * `keyName` (`pulumi.Input[str]`) - the key to use to encrypt/decrypt secrets. See the [DatabaseEncryption definition](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1beta1/projects.locations.clusters#Cluster.DatabaseEncryption) for more information. * `state` (`pulumi.Input[str]`) - `ENCRYPTED` or `DECRYPTED` + The **default_snat_status** object supports the following: + + * `disabled` (`pulumi.Input[bool]`) - The status of the Istio addon, which makes it easy to set up Istio for services in a + cluster. It is disabled by default. Set `disabled = false` to enable. + The **ip_allocation_policy** object supports the following: * `clusterIpv4CidrBlock` (`pulumi.Input[str]`) - The IP address range for the cluster pod IPs. @@ -1931,6 +1954,7 @@ def get(resource_name, id, opts=None, addons_config=None, authenticator_groups_c __props__["cluster_telemetry"] = cluster_telemetry __props__["database_encryption"] = database_encryption __props__["default_max_pods_per_node"] = default_max_pods_per_node + __props__["default_snat_status"] = default_snat_status __props__["description"] = description __props__["enable_binary_authorization"] = enable_binary_authorization __props__["enable_intranode_visibility"] = enable_intranode_visibility diff --git a/sdk/python/pulumi_gcp/container/get_cluster.py b/sdk/python/pulumi_gcp/container/get_cluster.py index 42dcd727d3..75e2d7f26d 100644 --- a/sdk/python/pulumi_gcp/container/get_cluster.py +++ b/sdk/python/pulumi_gcp/container/get_cluster.py @@ -12,7 +12,7 @@ class GetClusterResult: """ A collection of values returned by getCluster. """ - def __init__(__self__, additional_zones=None, addons_configs=None, authenticator_groups_configs=None, cluster_autoscalings=None, cluster_ipv4_cidr=None, cluster_telemetries=None, database_encryptions=None, default_max_pods_per_node=None, description=None, enable_binary_authorization=None, enable_intranode_visibility=None, enable_kubernetes_alpha=None, enable_legacy_abac=None, enable_shielded_nodes=None, enable_tpu=None, endpoint=None, id=None, initial_node_count=None, instance_group_urls=None, ip_allocation_policies=None, label_fingerprint=None, location=None, logging_service=None, maintenance_policies=None, master_authorized_networks_configs=None, master_auths=None, master_version=None, min_master_version=None, monitoring_service=None, name=None, network=None, network_policies=None, networking_mode=None, node_configs=None, node_locations=None, node_pools=None, node_version=None, operation=None, pod_security_policy_configs=None, private_cluster_configs=None, project=None, region=None, release_channels=None, remove_default_node_pool=None, resource_labels=None, resource_usage_export_configs=None, services_ipv4_cidr=None, subnetwork=None, tpu_ipv4_cidr_block=None, vertical_pod_autoscalings=None, workload_identity_configs=None, zone=None): + def __init__(__self__, additional_zones=None, addons_configs=None, authenticator_groups_configs=None, cluster_autoscalings=None, cluster_ipv4_cidr=None, cluster_telemetries=None, database_encryptions=None, default_max_pods_per_node=None, default_snat_statuses=None, description=None, enable_binary_authorization=None, enable_intranode_visibility=None, enable_kubernetes_alpha=None, enable_legacy_abac=None, enable_shielded_nodes=None, enable_tpu=None, endpoint=None, id=None, initial_node_count=None, instance_group_urls=None, ip_allocation_policies=None, label_fingerprint=None, location=None, logging_service=None, maintenance_policies=None, master_authorized_networks_configs=None, master_auths=None, master_version=None, min_master_version=None, monitoring_service=None, name=None, network=None, network_policies=None, networking_mode=None, node_configs=None, node_locations=None, node_pools=None, node_version=None, operation=None, pod_security_policy_configs=None, private_cluster_configs=None, project=None, region=None, release_channels=None, remove_default_node_pool=None, resource_labels=None, resource_usage_export_configs=None, services_ipv4_cidr=None, subnetwork=None, tpu_ipv4_cidr_block=None, vertical_pod_autoscalings=None, workload_identity_configs=None, zone=None): if additional_zones and not isinstance(additional_zones, list): raise TypeError("Expected argument 'additional_zones' to be a list") __self__.additional_zones = additional_zones @@ -37,6 +37,9 @@ def __init__(__self__, additional_zones=None, addons_configs=None, authenticator if default_max_pods_per_node and not isinstance(default_max_pods_per_node, float): raise TypeError("Expected argument 'default_max_pods_per_node' to be a float") __self__.default_max_pods_per_node = default_max_pods_per_node + if default_snat_statuses and not isinstance(default_snat_statuses, list): + raise TypeError("Expected argument 'default_snat_statuses' to be a list") + __self__.default_snat_statuses = default_snat_statuses if description and not isinstance(description, str): raise TypeError("Expected argument 'description' to be a str") __self__.description = description @@ -186,6 +189,7 @@ def __await__(self): cluster_telemetries=self.cluster_telemetries, database_encryptions=self.database_encryptions, default_max_pods_per_node=self.default_max_pods_per_node, + default_snat_statuses=self.default_snat_statuses, description=self.description, enable_binary_authorization=self.enable_binary_authorization, enable_intranode_visibility=self.enable_intranode_visibility, @@ -270,6 +274,7 @@ def get_cluster(location=None,name=None,project=None,region=None,zone=None,opts= cluster_telemetries=__ret__.get('clusterTelemetries'), database_encryptions=__ret__.get('databaseEncryptions'), default_max_pods_per_node=__ret__.get('defaultMaxPodsPerNode'), + default_snat_statuses=__ret__.get('defaultSnatStatuses'), description=__ret__.get('description'), enable_binary_authorization=__ret__.get('enableBinaryAuthorization'), enable_intranode_visibility=__ret__.get('enableIntranodeVisibility'), diff --git a/sdk/python/pulumi_gcp/filestore/instance.py b/sdk/python/pulumi_gcp/filestore/instance.py index 6a306e360e..13ce3af017 100644 --- a/sdk/python/pulumi_gcp/filestore/instance.py +++ b/sdk/python/pulumi_gcp/filestore/instance.py @@ -30,6 +30,20 @@ class Instance(pulumi.CustomResource): * `capacityGb` (`float`) - File share capacity in GiB. This must be at least 1024 GiB for the standard tier, or 2560 GiB for the premium tier. * `name` (`str`) - The name of the fileshare (16 characters or less) + * `nfsExportOptions` (`list`) + * `accessMode` (`str`) - Either READ_ONLY, for allowing only read requests on the exported directory, + or READ_WRITE, for allowing both read and write requests. The default is READ_WRITE. + * `anonGid` (`float`) - An integer representing the anonymous group id with a default value of 65534. + Anon_gid may only be set with squashMode of ROOT_SQUASH. An error will be returned + if this field is specified for other squashMode settings. + * `anonUid` (`float`) - An integer representing the anonymous user id with a default value of 65534. + Anon_uid may only be set with squashMode of ROOT_SQUASH. An error will be returned + if this field is specified for other squashMode settings. + * `ipRanges` (`list`) - List of either IPv4 addresses, or ranges in CIDR notation which may mount the file share. + Overlapping IP ranges are not allowed, both within and across NfsExportOptions. An error will be returned. + The limit is 64 IP ranges/addresses for each FileShareConfig among all NfsExportOptions. + * `squashMode` (`str`) - Either NO_ROOT_SQUASH, for allowing root access on the exported directory, or ROOT_SQUASH, + for not allowing root access. The default is NO_ROOT_SQUASH. """ labels: pulumi.Output[dict] """ @@ -99,6 +113,20 @@ def __init__(__self__, resource_name, opts=None, description=None, file_shares=N * `capacityGb` (`pulumi.Input[float]`) - File share capacity in GiB. This must be at least 1024 GiB for the standard tier, or 2560 GiB for the premium tier. * `name` (`pulumi.Input[str]`) - The name of the fileshare (16 characters or less) + * `nfsExportOptions` (`pulumi.Input[list]`) + * `accessMode` (`pulumi.Input[str]`) - Either READ_ONLY, for allowing only read requests on the exported directory, + or READ_WRITE, for allowing both read and write requests. The default is READ_WRITE. + * `anonGid` (`pulumi.Input[float]`) - An integer representing the anonymous group id with a default value of 65534. + Anon_gid may only be set with squashMode of ROOT_SQUASH. An error will be returned + if this field is specified for other squashMode settings. + * `anonUid` (`pulumi.Input[float]`) - An integer representing the anonymous user id with a default value of 65534. + Anon_uid may only be set with squashMode of ROOT_SQUASH. An error will be returned + if this field is specified for other squashMode settings. + * `ipRanges` (`pulumi.Input[list]`) - List of either IPv4 addresses, or ranges in CIDR notation which may mount the file share. + Overlapping IP ranges are not allowed, both within and across NfsExportOptions. An error will be returned. + The limit is 64 IP ranges/addresses for each FileShareConfig among all NfsExportOptions. + * `squashMode` (`pulumi.Input[str]`) - Either NO_ROOT_SQUASH, for allowing root access on the exported directory, or ROOT_SQUASH, + for not allowing root access. The default is NO_ROOT_SQUASH. The **networks** object supports the following: @@ -180,6 +208,20 @@ def get(resource_name, id, opts=None, create_time=None, description=None, etag=N * `capacityGb` (`pulumi.Input[float]`) - File share capacity in GiB. This must be at least 1024 GiB for the standard tier, or 2560 GiB for the premium tier. * `name` (`pulumi.Input[str]`) - The name of the fileshare (16 characters or less) + * `nfsExportOptions` (`pulumi.Input[list]`) + * `accessMode` (`pulumi.Input[str]`) - Either READ_ONLY, for allowing only read requests on the exported directory, + or READ_WRITE, for allowing both read and write requests. The default is READ_WRITE. + * `anonGid` (`pulumi.Input[float]`) - An integer representing the anonymous group id with a default value of 65534. + Anon_gid may only be set with squashMode of ROOT_SQUASH. An error will be returned + if this field is specified for other squashMode settings. + * `anonUid` (`pulumi.Input[float]`) - An integer representing the anonymous user id with a default value of 65534. + Anon_uid may only be set with squashMode of ROOT_SQUASH. An error will be returned + if this field is specified for other squashMode settings. + * `ipRanges` (`pulumi.Input[list]`) - List of either IPv4 addresses, or ranges in CIDR notation which may mount the file share. + Overlapping IP ranges are not allowed, both within and across NfsExportOptions. An error will be returned. + The limit is 64 IP ranges/addresses for each FileShareConfig among all NfsExportOptions. + * `squashMode` (`pulumi.Input[str]`) - Either NO_ROOT_SQUASH, for allowing root access on the exported directory, or ROOT_SQUASH, + for not allowing root access. The default is NO_ROOT_SQUASH. The **networks** object supports the following: diff --git a/sdk/python/pulumi_gcp/logging/metric.py b/sdk/python/pulumi_gcp/logging/metric.py index 470f9dc2b1..c93c2d0b12 100644 --- a/sdk/python/pulumi_gcp/logging/metric.py +++ b/sdk/python/pulumi_gcp/logging/metric.py @@ -61,15 +61,15 @@ class Metric(pulumi.CustomResource): * `description` (`str`) - A description of this metric, which is used in documentation. The maximum length of the description is 8000 characters. * `key` (`str`) - The label key. - * `valueType` (`str`) - The type of data that can be assigned to the label. + * `value_type` (`str`) - The type of data that can be assigned to the label. - * `metricKind` (`str`) - Whether the metric records instantaneous values, changes to a value, etc. + * `metric_kind` (`str`) - Whether the metric records instantaneous values, changes to a value, etc. Some combinations of metricKind and valueType might not be supported. For counter metrics, set this to DELTA. * `unit` (`str`) - The unit in which the metric value is reported. It is only applicable if the valueType is `INT64`, `DOUBLE`, or `DISTRIBUTION`. The supported units are a subset of [The Unified Code for Units of Measure](http://unitsofmeasure.org/ucum.html) standard - * `valueType` (`str`) - The type of data that can be assigned to the label. + * `value_type` (`str`) - The type of data that can be assigned to the label. """ name: pulumi.Output[str] """ @@ -165,15 +165,15 @@ def __init__(__self__, resource_name, opts=None, bucket_options=None, descriptio * `description` (`pulumi.Input[str]`) - A description of this metric, which is used in documentation. The maximum length of the description is 8000 characters. * `key` (`pulumi.Input[str]`) - The label key. - * `valueType` (`pulumi.Input[str]`) - The type of data that can be assigned to the label. + * `value_type` (`pulumi.Input[str]`) - The type of data that can be assigned to the label. - * `metricKind` (`pulumi.Input[str]`) - Whether the metric records instantaneous values, changes to a value, etc. + * `metric_kind` (`pulumi.Input[str]`) - Whether the metric records instantaneous values, changes to a value, etc. Some combinations of metricKind and valueType might not be supported. For counter metrics, set this to DELTA. * `unit` (`pulumi.Input[str]`) - The unit in which the metric value is reported. It is only applicable if the valueType is `INT64`, `DOUBLE`, or `DISTRIBUTION`. The supported units are a subset of [The Unified Code for Units of Measure](http://unitsofmeasure.org/ucum.html) standard - * `valueType` (`pulumi.Input[str]`) - The type of data that can be assigned to the label. + * `value_type` (`pulumi.Input[str]`) - The type of data that can be assigned to the label. """ if __name__ is not None: warnings.warn("explicit use of __name__ is deprecated", DeprecationWarning) @@ -274,15 +274,15 @@ def get(resource_name, id, opts=None, bucket_options=None, description=None, fil * `description` (`pulumi.Input[str]`) - A description of this metric, which is used in documentation. The maximum length of the description is 8000 characters. * `key` (`pulumi.Input[str]`) - The label key. - * `valueType` (`pulumi.Input[str]`) - The type of data that can be assigned to the label. + * `value_type` (`pulumi.Input[str]`) - The type of data that can be assigned to the label. - * `metricKind` (`pulumi.Input[str]`) - Whether the metric records instantaneous values, changes to a value, etc. + * `metric_kind` (`pulumi.Input[str]`) - Whether the metric records instantaneous values, changes to a value, etc. Some combinations of metricKind and valueType might not be supported. For counter metrics, set this to DELTA. * `unit` (`pulumi.Input[str]`) - The unit in which the metric value is reported. It is only applicable if the valueType is `INT64`, `DOUBLE`, or `DISTRIBUTION`. The supported units are a subset of [The Unified Code for Units of Measure](http://unitsofmeasure.org/ucum.html) standard - * `valueType` (`pulumi.Input[str]`) - The type of data that can be assigned to the label. + * `value_type` (`pulumi.Input[str]`) - The type of data that can be assigned to the label. """ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) diff --git a/sdk/python/pulumi_gcp/monitoring/__init__.py b/sdk/python/pulumi_gcp/monitoring/__init__.py index 03fe5a04a1..13c737accc 100644 --- a/sdk/python/pulumi_gcp/monitoring/__init__.py +++ b/sdk/python/pulumi_gcp/monitoring/__init__.py @@ -11,6 +11,7 @@ from .get_secret_version import * from .get_uptime_check_i_ps import * from .group import * +from .metric_descriptor import * from .notification_channel import * from .slo import * from .uptime_check_config import * diff --git a/sdk/python/pulumi_gcp/monitoring/metric_descriptor.py b/sdk/python/pulumi_gcp/monitoring/metric_descriptor.py new file mode 100644 index 0000000000..a0082dff44 --- /dev/null +++ b/sdk/python/pulumi_gcp/monitoring/metric_descriptor.py @@ -0,0 +1,261 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import warnings +import pulumi +import pulumi.runtime +from typing import Union +from .. import utilities, tables + + +class MetricDescriptor(pulumi.CustomResource): + description: pulumi.Output[str] + """ + A human-readable description for the label. + """ + display_name: pulumi.Output[str] + """ + A concise name for the metric, which can be displayed in user interfaces. Use sentence case without an ending period, for example "Request count". + """ + labels: pulumi.Output[list] + """ + The set of labels that can be used to describe a specific instance of this metric type. In order to delete a label, the entire resource must be deleted, then created with the desired labels. Structure is documented below. + + * `description` (`str`) - A human-readable description for the label. + * `key` (`str`) - The key for this label. The key must not exceed 100 characters. The first character of the key must be an upper- or lower-case letter, the remaining characters must be letters, digits or underscores, and the key must match the regular expression [a-zA-Z][a-zA-Z0-9_]* + * `value_type` (`str`) - The type of data that can be assigned to the label. + """ + launch_stage: pulumi.Output[str] + """ + The launch stage of the metric definition. + """ + metadata: pulumi.Output[dict] + """ + Metadata which can be used to guide usage of the metric. Structure is documented below. + + * `ingestDelay` (`str`) - The delay of data points caused by ingestion. Data points older than this age are guaranteed to be ingested and available to be read, excluding data loss due to errors. In `[duration format](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf?&_ga=2.264881487.1507873253.1593446723-935052455.1591817775#google.protobuf.Duration)`. + * `samplePeriod` (`str`) - The sampling period of metric data points. For metrics which are written periodically, consecutive data points are stored at this time interval, excluding data loss due to errors. Metrics with a higher granularity have a smaller sampling period. In `[duration format](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf?&_ga=2.264881487.1507873253.1593446723-935052455.1591817775#google.protobuf.Duration)`. + """ + metric_kind: pulumi.Output[str] + """ + Whether the metric records instantaneous values, changes to a value, etc. Some combinations of metricKind and valueType might not be supported. + """ + monitored_resource_types: pulumi.Output[list] + """ + If present, then a time series, which is identified partially by a metric type and a MonitoredResourceDescriptor, that + is associated with this metric type can only be associated with one of the monitored resource types listed here. This + field allows time series to be associated with the intersection of this metric type and the monitored resource types in + this list. + """ + name: pulumi.Output[str] + """ + The resource name of the metric descriptor. + """ + project: pulumi.Output[str] + """ + The ID of the project in which the resource belongs. + If it is not provided, the provider project is used. + """ + type: pulumi.Output[str] + """ + The metric type, including its DNS name prefix. The type is not URL-encoded. All service defined metrics must be prefixed with the service name, in the format of {service name}/{relative metric name}, such as cloudsql.googleapis.com/database/cpu/utilization. The relative metric name must have only upper and lower-case letters, digits, '/' and underscores '_' are allowed. Additionally, the maximum number of characters allowed for the relative_metric_name is 100. All user-defined metric types have the DNS name custom.googleapis.com, external.googleapis.com, or logging.googleapis.com/user/. + """ + unit: pulumi.Output[str] + """ + The units in which the metric value is reported. It is only applicable if the + valueType is INT64, DOUBLE, or DISTRIBUTION. The unit defines the representation of + the stored metric values. + Different systems may scale the values to be more easily displayed (so a value of + 0.02KBy might be displayed as 20By, and a value of 3523KBy might be displayed as + 3.5MBy). However, if the unit is KBy, then the value of the metric is always in + thousands of bytes, no matter how it may be displayed. + If you want a custom metric to record the exact number of CPU-seconds used by a job, + you can create an INT64 CUMULATIVE metric whose unit is s{CPU} (or equivalently + 1s{CPU} or just s). If the job uses 12,005 CPU-seconds, then the value is written as + 12005. + Alternatively, if you want a custom metric to record data in a more granular way, you + can create a DOUBLE CUMULATIVE metric whose unit is ks{CPU}, and then write the value + 12.005 (which is 12005/1000), or use Kis{CPU} and write 11.723 (which is 12005/1024). + The supported units are a subset of The Unified Code for Units of Measure standard. + More info can be found in the API documentation + (https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.metricDescriptors). + """ + value_type: pulumi.Output[str] + """ + The type of data that can be assigned to the label. + """ + def __init__(__self__, resource_name, opts=None, description=None, display_name=None, labels=None, launch_stage=None, metadata=None, metric_kind=None, project=None, type=None, unit=None, value_type=None, __props__=None, __name__=None, __opts__=None): + """ + Defines a metric type and its schema. Once a metric descriptor is created, deleting or altering it stops data collection and makes the metric type's existing data unusable. + + To get more information about MetricDescriptor, see: + + * [API documentation](https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.metricDescriptors) + * How-to Guides + * [Official Documentation](https://cloud.google.com/monitoring/custom-metrics/) + + ## Example Usage + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] description: A human-readable description for the label. + :param pulumi.Input[str] display_name: A concise name for the metric, which can be displayed in user interfaces. Use sentence case without an ending period, for example "Request count". + :param pulumi.Input[list] labels: The set of labels that can be used to describe a specific instance of this metric type. In order to delete a label, the entire resource must be deleted, then created with the desired labels. Structure is documented below. + :param pulumi.Input[str] launch_stage: The launch stage of the metric definition. + :param pulumi.Input[dict] metadata: Metadata which can be used to guide usage of the metric. Structure is documented below. + :param pulumi.Input[str] metric_kind: Whether the metric records instantaneous values, changes to a value, etc. Some combinations of metricKind and valueType might not be supported. + :param pulumi.Input[str] project: The ID of the project in which the resource belongs. + If it is not provided, the provider project is used. + :param pulumi.Input[str] type: The metric type, including its DNS name prefix. The type is not URL-encoded. All service defined metrics must be prefixed with the service name, in the format of {service name}/{relative metric name}, such as cloudsql.googleapis.com/database/cpu/utilization. The relative metric name must have only upper and lower-case letters, digits, '/' and underscores '_' are allowed. Additionally, the maximum number of characters allowed for the relative_metric_name is 100. All user-defined metric types have the DNS name custom.googleapis.com, external.googleapis.com, or logging.googleapis.com/user/. + :param pulumi.Input[str] unit: The units in which the metric value is reported. It is only applicable if the + valueType is INT64, DOUBLE, or DISTRIBUTION. The unit defines the representation of + the stored metric values. + Different systems may scale the values to be more easily displayed (so a value of + 0.02KBy might be displayed as 20By, and a value of 3523KBy might be displayed as + 3.5MBy). However, if the unit is KBy, then the value of the metric is always in + thousands of bytes, no matter how it may be displayed. + If you want a custom metric to record the exact number of CPU-seconds used by a job, + you can create an INT64 CUMULATIVE metric whose unit is s{CPU} (or equivalently + 1s{CPU} or just s). If the job uses 12,005 CPU-seconds, then the value is written as + 12005. + Alternatively, if you want a custom metric to record data in a more granular way, you + can create a DOUBLE CUMULATIVE metric whose unit is ks{CPU}, and then write the value + 12.005 (which is 12005/1000), or use Kis{CPU} and write 11.723 (which is 12005/1024). + The supported units are a subset of The Unified Code for Units of Measure standard. + More info can be found in the API documentation + (https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.metricDescriptors). + :param pulumi.Input[str] value_type: The type of data that can be assigned to the label. + + The **labels** object supports the following: + + * `description` (`pulumi.Input[str]`) - A human-readable description for the label. + * `key` (`pulumi.Input[str]`) - The key for this label. The key must not exceed 100 characters. The first character of the key must be an upper- or lower-case letter, the remaining characters must be letters, digits or underscores, and the key must match the regular expression [a-zA-Z][a-zA-Z0-9_]* + * `value_type` (`pulumi.Input[str]`) - The type of data that can be assigned to the label. + + The **metadata** object supports the following: + + * `ingestDelay` (`pulumi.Input[str]`) - The delay of data points caused by ingestion. Data points older than this age are guaranteed to be ingested and available to be read, excluding data loss due to errors. In `[duration format](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf?&_ga=2.264881487.1507873253.1593446723-935052455.1591817775#google.protobuf.Duration)`. + * `samplePeriod` (`pulumi.Input[str]`) - The sampling period of metric data points. For metrics which are written periodically, consecutive data points are stored at this time interval, excluding data loss due to errors. Metrics with a higher granularity have a smaller sampling period. In `[duration format](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf?&_ga=2.264881487.1507873253.1593446723-935052455.1591817775#google.protobuf.Duration)`. + """ + if __name__ is not None: + warnings.warn("explicit use of __name__ is deprecated", DeprecationWarning) + resource_name = __name__ + if __opts__ is not None: + warnings.warn("explicit use of __opts__ is deprecated, use 'opts' instead", DeprecationWarning) + opts = __opts__ + if opts is None: + opts = pulumi.ResourceOptions() + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.version is None: + opts.version = utilities.get_version() + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = dict() + + if description is None: + raise TypeError("Missing required property 'description'") + __props__['description'] = description + if display_name is None: + raise TypeError("Missing required property 'display_name'") + __props__['display_name'] = display_name + __props__['labels'] = labels + __props__['launch_stage'] = launch_stage + __props__['metadata'] = metadata + if metric_kind is None: + raise TypeError("Missing required property 'metric_kind'") + __props__['metric_kind'] = metric_kind + __props__['project'] = project + if type is None: + raise TypeError("Missing required property 'type'") + __props__['type'] = type + __props__['unit'] = unit + if value_type is None: + raise TypeError("Missing required property 'value_type'") + __props__['value_type'] = value_type + __props__['monitored_resource_types'] = None + __props__['name'] = None + super(MetricDescriptor, __self__).__init__( + 'gcp:monitoring/metricDescriptor:MetricDescriptor', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name, id, opts=None, description=None, display_name=None, labels=None, launch_stage=None, metadata=None, metric_kind=None, monitored_resource_types=None, name=None, project=None, type=None, unit=None, value_type=None): + """ + Get an existing MetricDescriptor resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param str id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] description: A human-readable description for the label. + :param pulumi.Input[str] display_name: A concise name for the metric, which can be displayed in user interfaces. Use sentence case without an ending period, for example "Request count". + :param pulumi.Input[list] labels: The set of labels that can be used to describe a specific instance of this metric type. In order to delete a label, the entire resource must be deleted, then created with the desired labels. Structure is documented below. + :param pulumi.Input[str] launch_stage: The launch stage of the metric definition. + :param pulumi.Input[dict] metadata: Metadata which can be used to guide usage of the metric. Structure is documented below. + :param pulumi.Input[str] metric_kind: Whether the metric records instantaneous values, changes to a value, etc. Some combinations of metricKind and valueType might not be supported. + :param pulumi.Input[list] monitored_resource_types: If present, then a time series, which is identified partially by a metric type and a MonitoredResourceDescriptor, that + is associated with this metric type can only be associated with one of the monitored resource types listed here. This + field allows time series to be associated with the intersection of this metric type and the monitored resource types in + this list. + :param pulumi.Input[str] name: The resource name of the metric descriptor. + :param pulumi.Input[str] project: The ID of the project in which the resource belongs. + If it is not provided, the provider project is used. + :param pulumi.Input[str] type: The metric type, including its DNS name prefix. The type is not URL-encoded. All service defined metrics must be prefixed with the service name, in the format of {service name}/{relative metric name}, such as cloudsql.googleapis.com/database/cpu/utilization. The relative metric name must have only upper and lower-case letters, digits, '/' and underscores '_' are allowed. Additionally, the maximum number of characters allowed for the relative_metric_name is 100. All user-defined metric types have the DNS name custom.googleapis.com, external.googleapis.com, or logging.googleapis.com/user/. + :param pulumi.Input[str] unit: The units in which the metric value is reported. It is only applicable if the + valueType is INT64, DOUBLE, or DISTRIBUTION. The unit defines the representation of + the stored metric values. + Different systems may scale the values to be more easily displayed (so a value of + 0.02KBy might be displayed as 20By, and a value of 3523KBy might be displayed as + 3.5MBy). However, if the unit is KBy, then the value of the metric is always in + thousands of bytes, no matter how it may be displayed. + If you want a custom metric to record the exact number of CPU-seconds used by a job, + you can create an INT64 CUMULATIVE metric whose unit is s{CPU} (or equivalently + 1s{CPU} or just s). If the job uses 12,005 CPU-seconds, then the value is written as + 12005. + Alternatively, if you want a custom metric to record data in a more granular way, you + can create a DOUBLE CUMULATIVE metric whose unit is ks{CPU}, and then write the value + 12.005 (which is 12005/1000), or use Kis{CPU} and write 11.723 (which is 12005/1024). + The supported units are a subset of The Unified Code for Units of Measure standard. + More info can be found in the API documentation + (https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.metricDescriptors). + :param pulumi.Input[str] value_type: The type of data that can be assigned to the label. + + The **labels** object supports the following: + + * `description` (`pulumi.Input[str]`) - A human-readable description for the label. + * `key` (`pulumi.Input[str]`) - The key for this label. The key must not exceed 100 characters. The first character of the key must be an upper- or lower-case letter, the remaining characters must be letters, digits or underscores, and the key must match the regular expression [a-zA-Z][a-zA-Z0-9_]* + * `value_type` (`pulumi.Input[str]`) - The type of data that can be assigned to the label. + + The **metadata** object supports the following: + + * `ingestDelay` (`pulumi.Input[str]`) - The delay of data points caused by ingestion. Data points older than this age are guaranteed to be ingested and available to be read, excluding data loss due to errors. In `[duration format](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf?&_ga=2.264881487.1507873253.1593446723-935052455.1591817775#google.protobuf.Duration)`. + * `samplePeriod` (`pulumi.Input[str]`) - The sampling period of metric data points. For metrics which are written periodically, consecutive data points are stored at this time interval, excluding data loss due to errors. Metrics with a higher granularity have a smaller sampling period. In `[duration format](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf?&_ga=2.264881487.1507873253.1593446723-935052455.1591817775#google.protobuf.Duration)`. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = dict() + + __props__["description"] = description + __props__["display_name"] = display_name + __props__["labels"] = labels + __props__["launch_stage"] = launch_stage + __props__["metadata"] = metadata + __props__["metric_kind"] = metric_kind + __props__["monitored_resource_types"] = monitored_resource_types + __props__["name"] = name + __props__["project"] = project + __props__["type"] = type + __props__["unit"] = unit + __props__["value_type"] = value_type + return MetricDescriptor(resource_name, opts=opts, __props__=__props__) + + def translate_output_property(self, prop): + return tables._CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop + + def translate_input_property(self, prop): + return tables._SNAKE_TO_CAMEL_CASE_TABLE.get(prop) or prop diff --git a/sdk/python/pulumi_gcp/organizations/folder.py b/sdk/python/pulumi_gcp/organizations/folder.py index 05fc952ef1..543623268f 100644 --- a/sdk/python/pulumi_gcp/organizations/folder.py +++ b/sdk/python/pulumi_gcp/organizations/folder.py @@ -20,6 +20,10 @@ class Folder(pulumi.CustomResource): The folder’s display name. A folder’s display name must be unique amongst its siblings, e.g. no two folders with the same parent can share the same display name. The display name must start and end with a letter or digit, may contain letters, digits, spaces, hyphens and underscores and can be no longer than 30 characters. """ + folder_id: pulumi.Output[str] + """ + The folder id from the name "folders/{folder_id}" + """ lifecycle_state: pulumi.Output[str] """ The lifecycle state of the folder such as `ACTIVE` or `DELETE_REQUESTED`. @@ -80,6 +84,7 @@ def __init__(__self__, resource_name, opts=None, display_name=None, parent=None, raise TypeError("Missing required property 'parent'") __props__['parent'] = parent __props__['create_time'] = None + __props__['folder_id'] = None __props__['lifecycle_state'] = None __props__['name'] = None super(Folder, __self__).__init__( @@ -89,7 +94,7 @@ def __init__(__self__, resource_name, opts=None, display_name=None, parent=None, opts) @staticmethod - def get(resource_name, id, opts=None, create_time=None, display_name=None, lifecycle_state=None, name=None, parent=None): + def get(resource_name, id, opts=None, create_time=None, display_name=None, folder_id=None, lifecycle_state=None, name=None, parent=None): """ Get an existing Folder resource's state with the given name, id, and optional extra properties used to qualify the lookup. @@ -101,6 +106,7 @@ def get(resource_name, id, opts=None, create_time=None, display_name=None, lifec A timestamp in RFC3339 UTC "Zulu" format, accurate to nanoseconds. Example: "2014-10-02T15:01:23.045123456Z". :param pulumi.Input[str] display_name: The folder’s display name. A folder’s display name must be unique amongst its siblings, e.g. no two folders with the same parent can share the same display name. The display name must start and end with a letter or digit, may contain letters, digits, spaces, hyphens and underscores and can be no longer than 30 characters. + :param pulumi.Input[str] folder_id: The folder id from the name "folders/{folder_id}" :param pulumi.Input[str] lifecycle_state: The lifecycle state of the folder such as `ACTIVE` or `DELETE_REQUESTED`. :param pulumi.Input[str] name: The resource name of the Folder. Its format is folders/{folder_id}. :param pulumi.Input[str] parent: The resource name of the parent Folder or Organization. @@ -112,6 +118,7 @@ def get(resource_name, id, opts=None, create_time=None, display_name=None, lifec __props__["create_time"] = create_time __props__["display_name"] = display_name + __props__["folder_id"] = folder_id __props__["lifecycle_state"] = lifecycle_state __props__["name"] = name __props__["parent"] = parent diff --git a/sdk/python/pulumi_gcp/organizations/get_folder.py b/sdk/python/pulumi_gcp/organizations/get_folder.py index d28918ec8d..cf86fb2e09 100644 --- a/sdk/python/pulumi_gcp/organizations/get_folder.py +++ b/sdk/python/pulumi_gcp/organizations/get_folder.py @@ -12,7 +12,7 @@ class GetFolderResult: """ A collection of values returned by getFolder. """ - def __init__(__self__, create_time=None, display_name=None, folder=None, id=None, lifecycle_state=None, lookup_organization=None, name=None, organization=None, parent=None): + def __init__(__self__, create_time=None, display_name=None, folder=None, folder_id=None, id=None, lifecycle_state=None, lookup_organization=None, name=None, organization=None, parent=None): if create_time and not isinstance(create_time, str): raise TypeError("Expected argument 'create_time' to be a str") __self__.create_time = create_time @@ -28,6 +28,9 @@ def __init__(__self__, create_time=None, display_name=None, folder=None, id=None if folder and not isinstance(folder, str): raise TypeError("Expected argument 'folder' to be a str") __self__.folder = folder + if folder_id and not isinstance(folder_id, str): + raise TypeError("Expected argument 'folder_id' to be a str") + __self__.folder_id = folder_id if id and not isinstance(id, str): raise TypeError("Expected argument 'id' to be a str") __self__.id = id @@ -70,6 +73,7 @@ def __await__(self): create_time=self.create_time, display_name=self.display_name, folder=self.folder, + folder_id=self.folder_id, id=self.id, lifecycle_state=self.lifecycle_state, lookup_organization=self.lookup_organization, @@ -100,6 +104,7 @@ def get_folder(folder=None,lookup_organization=None,opts=None): create_time=__ret__.get('createTime'), display_name=__ret__.get('displayName'), folder=__ret__.get('folder'), + folder_id=__ret__.get('folderId'), id=__ret__.get('id'), lifecycle_state=__ret__.get('lifecycleState'), lookup_organization=__ret__.get('lookupOrganization'), diff --git a/sdk/python/pulumi_gcp/osconfig/__init__.py b/sdk/python/pulumi_gcp/osconfig/__init__.py index 5f768b9ab8..d52610708a 100644 --- a/sdk/python/pulumi_gcp/osconfig/__init__.py +++ b/sdk/python/pulumi_gcp/osconfig/__init__.py @@ -3,4 +3,5 @@ # *** Do not edit by hand unless you're certain you know what you are doing! *** # Export this package's modules as members: +from .guest_policies import * from .patch_deployment import * diff --git a/sdk/python/pulumi_gcp/osconfig/guest_policies.py b/sdk/python/pulumi_gcp/osconfig/guest_policies.py new file mode 100644 index 0000000000..f1ee70ab25 --- /dev/null +++ b/sdk/python/pulumi_gcp/osconfig/guest_policies.py @@ -0,0 +1,762 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import warnings +import pulumi +import pulumi.runtime +from typing import Union +from .. import utilities, tables + + +class GuestPolicies(pulumi.CustomResource): + assignment: pulumi.Output[dict] + """ + Specifies the VM instances that are assigned to this policy. This allows you to target sets + or groups of VM instances by different parameters such as labels, names, OS, or zones. + If left empty, all VM instances underneath this policy are targeted. + At the same level in the resource hierarchy (that is within a project), the service prevents + the creation of multiple policies that conflict with each other. + For more information, see how the service + [handles assignment conflicts](https://cloud.google.com/compute/docs/os-config-management/create-guest-policy#handle-conflicts). Structure is documented below. + + * `groupLabels` (`list`) - Targets instances matching at least one of these label sets. This allows an assignment to target disparate groups, + for example "env=prod or env=staging". Structure is documented below. + * `labels` (`dict`) - Google Compute Engine instance labels that must be present for an instance to be included in this assignment group. + + * `instanceNamePrefixes` (`list`) - Targets VM instances whose name starts with one of these prefixes. + Like labels, this is another way to group VM instances when targeting configs, + for example prefix="prod-". + Only supported for project-level policies. + * `instances` (`list`) - Targets any of the instances specified. Instances are specified by their URI in the form + zones/[ZONE]/instances/[INSTANCE_NAME]. + Instance targeting is uncommon and is supported to facilitate the management of changes + by the instance or to target specific VM instances for development and testing. + Only supported for project-level policies and must reference instances within this project. + * `osTypes` (`list`) - Targets VM instances matching at least one of the following OS types. + VM instances must match all supplied criteria for a given OsType to be included. Structure is documented below. + * `osArchitecture` (`str`) - Targets VM instances with OS Inventory enabled and having the following OS architecture. + * `osShortName` (`str`) - Targets VM instances with OS Inventory enabled and having the following OS short name, for example "debian" or "windows". + * `osVersion` (`str`) - Targets VM instances with OS Inventory enabled and having the following following OS version. + + * `zones` (`list`) - Targets instances in any of these zones. Leave empty to target instances in any zone. + Zonal targeting is uncommon and is supported to facilitate the management of changes by zone. + """ + create_time: pulumi.Output[str] + """ + Time this guest policy was created. A timestamp in RFC3339 UTC "Zulu" format, accurate to nanoseconds. Example: + "2014-10-02T15:01:23.045123456Z". + """ + description: pulumi.Output[str] + """ + Description of the guest policy. Length of the description is limited to 1024 characters. + """ + etag: pulumi.Output[str] + """ + The etag for this guest policy. If this is provided on update, it must match the server's etag. + """ + guest_policy_id: pulumi.Output[str] + """ + The logical name of the guest policy in the project with the following restrictions: + * Must contain only lowercase letters, numbers, and hyphens. + * Must start with a letter. + * Must be between 1-63 characters. + * Must end with a number or a letter. + * Must be unique within the project. + """ + name: pulumi.Output[str] + """ + Unique identifier for the recipe. Only one recipe with a given name is installed on an instance. + Names are also used to identify resources which helps to determine whether guest policies have conflicts. + This means that requests to create multiple recipes with the same name and version are rejected since they + could potentially have conflicting assignments. + """ + package_repositories: pulumi.Output[list] + """ + A list of package repositories to configure on the VM instance. + This is done before any other configs are applied so they can use these repos. + Package repositories are only configured if the corresponding package manager(s) are available. Structure is documented below. + + * `apt` (`dict`) - An Apt Repository. Structure is documented below. + * `archiveType` (`str`) - Type of archive files in this repository. The default behavior is DEB. + * `components` (`list`) - List of components for this repository. Must contain at least one item. + * `distribution` (`str`) - Distribution of this repository. + * `gpgKey` (`str`) - URI of the key file for this repository. The agent maintains a keyring at + /etc/apt/trusted.gpg.d/osconfig_agent_managed.gpg containing all the keys in any applied guest policy. + * `uri` (`str`) - URI from which to fetch the object. It should contain both the protocol and path following the format {protocol}://{location}. + + * `goo` (`dict`) - A Goo Repository. Structure is documented below. + * `name` (`str`) - Unique identifier for the recipe. Only one recipe with a given name is installed on an instance. + Names are also used to identify resources which helps to determine whether guest policies have conflicts. + This means that requests to create multiple recipes with the same name and version are rejected since they + could potentially have conflicting assignments. + * `url` (`str`) - The url of the repository. + + * `yum` (`dict`) - A Yum Repository. Structure is documented below. + * `baseUrl` (`str`) - The location of the repository directory. + * `display_name` (`str`) - The display name of the repository. + * `gpgKeys` (`list`) - URIs of GPG keys. + * `id` (`str`) - Id of the artifact, which the installation and update steps of this recipe can reference. + Artifacts in a recipe cannot have the same id. + + * `zypper` (`dict`) - A Zypper Repository. Structure is documented below. + * `baseUrl` (`str`) - The location of the repository directory. + * `display_name` (`str`) - The display name of the repository. + * `gpgKeys` (`list`) - URIs of GPG keys. + * `id` (`str`) - Id of the artifact, which the installation and update steps of this recipe can reference. + Artifacts in a recipe cannot have the same id. + """ + packages: pulumi.Output[list] + """ + The software packages to be managed by this policy. Structure is documented below. + + * `desiredState` (`str`) - Default is INSTALLED. The desired state the agent should maintain for this recipe. + INSTALLED: The software recipe is installed on the instance but won't be updated to new versions. + INSTALLED_KEEP_UPDATED: The software recipe is installed on the instance. The recipe is updated to a higher version, + if a higher version of the recipe is assigned to this instance. + REMOVE: Remove is unsupported for software recipes and attempts to create or update a recipe to the REMOVE state is rejected. + * `manager` (`str`) - Type of package manager that can be used to install this package. If a system does not have the package manager, + the package is not installed or removed no error message is returned. By default, or if you specify ANY, + the agent attempts to install and remove this package using the default package manager. + This is useful when creating a policy that applies to different types of systems. + The default behavior is ANY. + * `name` (`str`) - Unique identifier for the recipe. Only one recipe with a given name is installed on an instance. + Names are also used to identify resources which helps to determine whether guest policies have conflicts. + This means that requests to create multiple recipes with the same name and version are rejected since they + could potentially have conflicting assignments. + """ + project: pulumi.Output[str] + """ + The ID of the project in which the resource belongs. + If it is not provided, the provider project is used. + """ + recipes: pulumi.Output[list] + """ + A list of Recipes to install on the VM instance. Structure is documented below. + + * `artifacts` (`list`) - Resources available to be used in the steps in the recipe. Structure is documented below. + * `allowInsecure` (`bool`) - Defaults to false. When false, recipes are subject to validations based on the artifact type: + Remote: A checksum must be specified, and only protocols with transport-layer security are permitted. + GCS: An object generation number must be specified. + * `gcs` (`dict`) - A Google Cloud Storage artifact. Structure is documented below. + * `bucket` (`str`) - Bucket of the Google Cloud Storage object. Given an example URL: https://storage.googleapis.com/my-bucket/foo/bar#1234567 + this value would be my-bucket. + * `generation` (`float`) - Must be provided if allowInsecure is false. Generation number of the Google Cloud Storage object. + https://storage.googleapis.com/my-bucket/foo/bar#1234567 this value would be 1234567. + * `object` (`str`) - Name of the Google Cloud Storage object. Given an example URL: https://storage.googleapis.com/my-bucket/foo/bar#1234567 + this value would be foo/bar. + + * `id` (`str`) - Id of the artifact, which the installation and update steps of this recipe can reference. + Artifacts in a recipe cannot have the same id. + * `remote` (`dict`) - A generic remote artifact. Structure is documented below. + * `checkSum` (`str`) - Must be provided if allowInsecure is false. SHA256 checksum in hex format, to compare to the checksum of the artifact. + If the checksum is not empty and it doesn't match the artifact then the recipe installation fails before running any + of the steps. + * `uri` (`str`) - URI from which to fetch the object. It should contain both the protocol and path following the format {protocol}://{location}. + + * `desiredState` (`str`) - Default is INSTALLED. The desired state the agent should maintain for this recipe. + INSTALLED: The software recipe is installed on the instance but won't be updated to new versions. + INSTALLED_KEEP_UPDATED: The software recipe is installed on the instance. The recipe is updated to a higher version, + if a higher version of the recipe is assigned to this instance. + REMOVE: Remove is unsupported for software recipes and attempts to create or update a recipe to the REMOVE state is rejected. + * `installSteps` (`list`) - Actions to be taken for installing this recipe. On failure it stops executing steps and does not attempt another installation. + Any steps taken (including partially completed steps) are not rolled back. Structure is documented below. + * `archiveExtraction` (`dict`) - Extracts an archive into the specified directory. Structure is documented below. + * `artifactId` (`str`) - The id of the relevant artifact in the recipe. + * `destination` (`str`) - Directory to extract archive to. Defaults to / on Linux or C:\ on Windows. + * `type` (`str`) - The type of the archive to extract. + + * `dpkgInstallation` (`dict`) - Installs a deb file via dpkg. Structure is documented below. + * `artifactId` (`str`) - The id of the relevant artifact in the recipe. + + * `fileCopy` (`dict`) - Copies a file onto the instance. Structure is documented below. + * `artifactId` (`str`) - The id of the relevant artifact in the recipe. + * `destination` (`str`) - Directory to extract archive to. Defaults to / on Linux or C:\ on Windows. + * `overwrite` (`bool`) - Whether to allow this step to overwrite existing files.If this is false and the file already exists the file + is not overwritten and the step is considered a success. Defaults to false. + * `permissions` (`str`) - Consists of three octal digits which represent, in order, the permissions of the owner, group, and other users + for the file (similarly to the numeric mode used in the linux chmod utility). Each digit represents a three bit + number with the 4 bit corresponding to the read permissions, the 2 bit corresponds to the write bit, and the one + bit corresponds to the execute permission. Default behavior is 755. + Below are some examples of permissions and their associated values: + read, write, and execute: 7 read and execute: 5 read and write: 6 read only: 4 + + * `fileExec` (`dict`) - Executes an artifact or local file. Structure is documented below. + * `allowedExitCodes` (`str`) - Return codes that indicate that the software installed or updated successfully. Behaviour defaults to [0] + * `args` (`list`) - Arguments to be passed to the provided executable. + * `artifactId` (`str`) - The id of the relevant artifact in the recipe. + * `localPath` (`str`) - The absolute path of the file on the local filesystem. + + * `msiInstallation` (`dict`) - Installs an MSI file. Structure is documented below. + * `allowedExitCodes` (`list`) - Return codes that indicate that the software installed or updated successfully. Behaviour defaults to [0] + * `artifactId` (`str`) - The id of the relevant artifact in the recipe. + * `flags` (`list`) - The flags to use when installing the MSI. Defaults to the install flag. + + * `rpmInstallation` (`dict`) - Installs an rpm file via the rpm utility. Structure is documented below. + * `artifactId` (`str`) - The id of the relevant artifact in the recipe. + + * `scriptRun` (`dict`) - Runs commands in a shell. Structure is documented below. + * `allowedExitCodes` (`list`) - Return codes that indicate that the software installed or updated successfully. Behaviour defaults to [0] + * `interpreter` (`str`) - The script interpreter to use to run the script. If no interpreter is specified the script is executed directly, + which likely only succeed for scripts with shebang lines. + * `script` (`str`) - The shell script to be executed. + + * `name` (`str`) - Unique identifier for the recipe. Only one recipe with a given name is installed on an instance. + Names are also used to identify resources which helps to determine whether guest policies have conflicts. + This means that requests to create multiple recipes with the same name and version are rejected since they + could potentially have conflicting assignments. + * `updateSteps` (`list`) - Actions to be taken for updating this recipe. On failure it stops executing steps and does not attempt another update for this recipe. + Any steps taken (including partially completed steps) are not rolled back. Structure is documented below. + * `archiveExtraction` (`dict`) - Extracts an archive into the specified directory. Structure is documented below. + * `artifactId` (`str`) - The id of the relevant artifact in the recipe. + * `destination` (`str`) - Directory to extract archive to. Defaults to / on Linux or C:\ on Windows. + * `type` (`str`) - The type of the archive to extract. + + * `dpkgInstallation` (`dict`) - Installs a deb file via dpkg. Structure is documented below. + * `artifactId` (`str`) - The id of the relevant artifact in the recipe. + + * `fileCopy` (`dict`) - Copies a file onto the instance. Structure is documented below. + * `artifactId` (`str`) - The id of the relevant artifact in the recipe. + * `destination` (`str`) - Directory to extract archive to. Defaults to / on Linux or C:\ on Windows. + * `overwrite` (`bool`) - Whether to allow this step to overwrite existing files.If this is false and the file already exists the file + is not overwritten and the step is considered a success. Defaults to false. + * `permissions` (`str`) - Consists of three octal digits which represent, in order, the permissions of the owner, group, and other users + for the file (similarly to the numeric mode used in the linux chmod utility). Each digit represents a three bit + number with the 4 bit corresponding to the read permissions, the 2 bit corresponds to the write bit, and the one + bit corresponds to the execute permission. Default behavior is 755. + Below are some examples of permissions and their associated values: + read, write, and execute: 7 read and execute: 5 read and write: 6 read only: 4 + + * `fileExec` (`dict`) - Executes an artifact or local file. Structure is documented below. + * `allowedExitCodes` (`list`) - Return codes that indicate that the software installed or updated successfully. Behaviour defaults to [0] + * `args` (`list`) - Arguments to be passed to the provided executable. + * `artifactId` (`str`) - The id of the relevant artifact in the recipe. + * `localPath` (`str`) - The absolute path of the file on the local filesystem. + + * `msiInstallation` (`dict`) - Installs an MSI file. Structure is documented below. + * `allowedExitCodes` (`list`) - Return codes that indicate that the software installed or updated successfully. Behaviour defaults to [0] + * `artifactId` (`str`) - The id of the relevant artifact in the recipe. + * `flags` (`list`) - The flags to use when installing the MSI. Defaults to the install flag. + + * `rpmInstallation` (`dict`) - Installs an rpm file via the rpm utility. Structure is documented below. + * `artifactId` (`str`) - The id of the relevant artifact in the recipe. + + * `scriptRun` (`dict`) - Runs commands in a shell. Structure is documented below. + * `allowedExitCodes` (`list`) - Return codes that indicate that the software installed or updated successfully. Behaviour defaults to [0] + * `interpreter` (`str`) - The script interpreter to use to run the script. If no interpreter is specified the script is executed directly, + which likely only succeed for scripts with shebang lines. + * `script` (`str`) - The shell script to be executed. + + * `version` (`str`) - The version of this software recipe. Version can be up to 4 period separated numbers (e.g. 12.34.56.78). + """ + update_time: pulumi.Output[str] + """ + Last time this guest policy was updated. A timestamp in RFC3339 UTC "Zulu" format, accurate to nanoseconds. Example: + "2014-10-02T15:01:23.045123456Z". + """ + def __init__(__self__, resource_name, opts=None, assignment=None, description=None, etag=None, guest_policy_id=None, package_repositories=None, packages=None, project=None, recipes=None, __props__=None, __name__=None, __opts__=None): + """ + Create a GuestPolicies resource with the given unique name, props, and options. + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[dict] assignment: Specifies the VM instances that are assigned to this policy. This allows you to target sets + or groups of VM instances by different parameters such as labels, names, OS, or zones. + If left empty, all VM instances underneath this policy are targeted. + At the same level in the resource hierarchy (that is within a project), the service prevents + the creation of multiple policies that conflict with each other. + For more information, see how the service + [handles assignment conflicts](https://cloud.google.com/compute/docs/os-config-management/create-guest-policy#handle-conflicts). Structure is documented below. + :param pulumi.Input[str] description: Description of the guest policy. Length of the description is limited to 1024 characters. + :param pulumi.Input[str] etag: The etag for this guest policy. If this is provided on update, it must match the server's etag. + :param pulumi.Input[str] guest_policy_id: The logical name of the guest policy in the project with the following restrictions: + * Must contain only lowercase letters, numbers, and hyphens. + * Must start with a letter. + * Must be between 1-63 characters. + * Must end with a number or a letter. + * Must be unique within the project. + :param pulumi.Input[list] package_repositories: A list of package repositories to configure on the VM instance. + This is done before any other configs are applied so they can use these repos. + Package repositories are only configured if the corresponding package manager(s) are available. Structure is documented below. + :param pulumi.Input[list] packages: The software packages to be managed by this policy. Structure is documented below. + :param pulumi.Input[str] project: The ID of the project in which the resource belongs. + If it is not provided, the provider project is used. + :param pulumi.Input[list] recipes: A list of Recipes to install on the VM instance. Structure is documented below. + + The **assignment** object supports the following: + + * `groupLabels` (`pulumi.Input[list]`) - Targets instances matching at least one of these label sets. This allows an assignment to target disparate groups, + for example "env=prod or env=staging". Structure is documented below. + * `labels` (`pulumi.Input[dict]`) - Google Compute Engine instance labels that must be present for an instance to be included in this assignment group. + + * `instanceNamePrefixes` (`pulumi.Input[list]`) - Targets VM instances whose name starts with one of these prefixes. + Like labels, this is another way to group VM instances when targeting configs, + for example prefix="prod-". + Only supported for project-level policies. + * `instances` (`pulumi.Input[list]`) - Targets any of the instances specified. Instances are specified by their URI in the form + zones/[ZONE]/instances/[INSTANCE_NAME]. + Instance targeting is uncommon and is supported to facilitate the management of changes + by the instance or to target specific VM instances for development and testing. + Only supported for project-level policies and must reference instances within this project. + * `osTypes` (`pulumi.Input[list]`) - Targets VM instances matching at least one of the following OS types. + VM instances must match all supplied criteria for a given OsType to be included. Structure is documented below. + * `osArchitecture` (`pulumi.Input[str]`) - Targets VM instances with OS Inventory enabled and having the following OS architecture. + * `osShortName` (`pulumi.Input[str]`) - Targets VM instances with OS Inventory enabled and having the following OS short name, for example "debian" or "windows". + * `osVersion` (`pulumi.Input[str]`) - Targets VM instances with OS Inventory enabled and having the following following OS version. + + * `zones` (`pulumi.Input[list]`) - Targets instances in any of these zones. Leave empty to target instances in any zone. + Zonal targeting is uncommon and is supported to facilitate the management of changes by zone. + + The **package_repositories** object supports the following: + + * `apt` (`pulumi.Input[dict]`) - An Apt Repository. Structure is documented below. + * `archiveType` (`pulumi.Input[str]`) - Type of archive files in this repository. The default behavior is DEB. + * `components` (`pulumi.Input[list]`) - List of components for this repository. Must contain at least one item. + * `distribution` (`pulumi.Input[str]`) - Distribution of this repository. + * `gpgKey` (`pulumi.Input[str]`) - URI of the key file for this repository. The agent maintains a keyring at + /etc/apt/trusted.gpg.d/osconfig_agent_managed.gpg containing all the keys in any applied guest policy. + * `uri` (`pulumi.Input[str]`) - URI from which to fetch the object. It should contain both the protocol and path following the format {protocol}://{location}. + + * `goo` (`pulumi.Input[dict]`) - A Goo Repository. Structure is documented below. + * `name` (`pulumi.Input[str]`) - Unique identifier for the recipe. Only one recipe with a given name is installed on an instance. + Names are also used to identify resources which helps to determine whether guest policies have conflicts. + This means that requests to create multiple recipes with the same name and version are rejected since they + could potentially have conflicting assignments. + * `url` (`pulumi.Input[str]`) - The url of the repository. + + * `yum` (`pulumi.Input[dict]`) - A Yum Repository. Structure is documented below. + * `baseUrl` (`pulumi.Input[str]`) - The location of the repository directory. + * `display_name` (`pulumi.Input[str]`) - The display name of the repository. + * `gpgKeys` (`pulumi.Input[list]`) - URIs of GPG keys. + * `id` (`pulumi.Input[str]`) - Id of the artifact, which the installation and update steps of this recipe can reference. + Artifacts in a recipe cannot have the same id. + + * `zypper` (`pulumi.Input[dict]`) - A Zypper Repository. Structure is documented below. + * `baseUrl` (`pulumi.Input[str]`) - The location of the repository directory. + * `display_name` (`pulumi.Input[str]`) - The display name of the repository. + * `gpgKeys` (`pulumi.Input[list]`) - URIs of GPG keys. + * `id` (`pulumi.Input[str]`) - Id of the artifact, which the installation and update steps of this recipe can reference. + Artifacts in a recipe cannot have the same id. + + The **packages** object supports the following: + + * `desiredState` (`pulumi.Input[str]`) - Default is INSTALLED. The desired state the agent should maintain for this recipe. + INSTALLED: The software recipe is installed on the instance but won't be updated to new versions. + INSTALLED_KEEP_UPDATED: The software recipe is installed on the instance. The recipe is updated to a higher version, + if a higher version of the recipe is assigned to this instance. + REMOVE: Remove is unsupported for software recipes and attempts to create or update a recipe to the REMOVE state is rejected. + * `manager` (`pulumi.Input[str]`) - Type of package manager that can be used to install this package. If a system does not have the package manager, + the package is not installed or removed no error message is returned. By default, or if you specify ANY, + the agent attempts to install and remove this package using the default package manager. + This is useful when creating a policy that applies to different types of systems. + The default behavior is ANY. + * `name` (`pulumi.Input[str]`) - Unique identifier for the recipe. Only one recipe with a given name is installed on an instance. + Names are also used to identify resources which helps to determine whether guest policies have conflicts. + This means that requests to create multiple recipes with the same name and version are rejected since they + could potentially have conflicting assignments. + + The **recipes** object supports the following: + + * `artifacts` (`pulumi.Input[list]`) - Resources available to be used in the steps in the recipe. Structure is documented below. + * `allowInsecure` (`pulumi.Input[bool]`) - Defaults to false. When false, recipes are subject to validations based on the artifact type: + Remote: A checksum must be specified, and only protocols with transport-layer security are permitted. + GCS: An object generation number must be specified. + * `gcs` (`pulumi.Input[dict]`) - A Google Cloud Storage artifact. Structure is documented below. + * `bucket` (`pulumi.Input[str]`) - Bucket of the Google Cloud Storage object. Given an example URL: https://storage.googleapis.com/my-bucket/foo/bar#1234567 + this value would be my-bucket. + * `generation` (`pulumi.Input[float]`) - Must be provided if allowInsecure is false. Generation number of the Google Cloud Storage object. + https://storage.googleapis.com/my-bucket/foo/bar#1234567 this value would be 1234567. + * `object` (`pulumi.Input[str]`) - Name of the Google Cloud Storage object. Given an example URL: https://storage.googleapis.com/my-bucket/foo/bar#1234567 + this value would be foo/bar. + + * `id` (`pulumi.Input[str]`) - Id of the artifact, which the installation and update steps of this recipe can reference. + Artifacts in a recipe cannot have the same id. + * `remote` (`pulumi.Input[dict]`) - A generic remote artifact. Structure is documented below. + * `checkSum` (`pulumi.Input[str]`) - Must be provided if allowInsecure is false. SHA256 checksum in hex format, to compare to the checksum of the artifact. + If the checksum is not empty and it doesn't match the artifact then the recipe installation fails before running any + of the steps. + * `uri` (`pulumi.Input[str]`) - URI from which to fetch the object. It should contain both the protocol and path following the format {protocol}://{location}. + + * `desiredState` (`pulumi.Input[str]`) - Default is INSTALLED. The desired state the agent should maintain for this recipe. + INSTALLED: The software recipe is installed on the instance but won't be updated to new versions. + INSTALLED_KEEP_UPDATED: The software recipe is installed on the instance. The recipe is updated to a higher version, + if a higher version of the recipe is assigned to this instance. + REMOVE: Remove is unsupported for software recipes and attempts to create or update a recipe to the REMOVE state is rejected. + * `installSteps` (`pulumi.Input[list]`) - Actions to be taken for installing this recipe. On failure it stops executing steps and does not attempt another installation. + Any steps taken (including partially completed steps) are not rolled back. Structure is documented below. + * `archiveExtraction` (`pulumi.Input[dict]`) - Extracts an archive into the specified directory. Structure is documented below. + * `artifactId` (`pulumi.Input[str]`) - The id of the relevant artifact in the recipe. + * `destination` (`pulumi.Input[str]`) - Directory to extract archive to. Defaults to / on Linux or C:\ on Windows. + * `type` (`pulumi.Input[str]`) - The type of the archive to extract. + + * `dpkgInstallation` (`pulumi.Input[dict]`) - Installs a deb file via dpkg. Structure is documented below. + * `artifactId` (`pulumi.Input[str]`) - The id of the relevant artifact in the recipe. + + * `fileCopy` (`pulumi.Input[dict]`) - Copies a file onto the instance. Structure is documented below. + * `artifactId` (`pulumi.Input[str]`) - The id of the relevant artifact in the recipe. + * `destination` (`pulumi.Input[str]`) - Directory to extract archive to. Defaults to / on Linux or C:\ on Windows. + * `overwrite` (`pulumi.Input[bool]`) - Whether to allow this step to overwrite existing files.If this is false and the file already exists the file + is not overwritten and the step is considered a success. Defaults to false. + * `permissions` (`pulumi.Input[str]`) - Consists of three octal digits which represent, in order, the permissions of the owner, group, and other users + for the file (similarly to the numeric mode used in the linux chmod utility). Each digit represents a three bit + number with the 4 bit corresponding to the read permissions, the 2 bit corresponds to the write bit, and the one + bit corresponds to the execute permission. Default behavior is 755. + Below are some examples of permissions and their associated values: + read, write, and execute: 7 read and execute: 5 read and write: 6 read only: 4 + + * `fileExec` (`pulumi.Input[dict]`) - Executes an artifact or local file. Structure is documented below. + * `allowedExitCodes` (`pulumi.Input[str]`) - Return codes that indicate that the software installed or updated successfully. Behaviour defaults to [0] + * `args` (`pulumi.Input[list]`) - Arguments to be passed to the provided executable. + * `artifactId` (`pulumi.Input[str]`) - The id of the relevant artifact in the recipe. + * `localPath` (`pulumi.Input[str]`) - The absolute path of the file on the local filesystem. + + * `msiInstallation` (`pulumi.Input[dict]`) - Installs an MSI file. Structure is documented below. + * `allowedExitCodes` (`pulumi.Input[list]`) - Return codes that indicate that the software installed or updated successfully. Behaviour defaults to [0] + * `artifactId` (`pulumi.Input[str]`) - The id of the relevant artifact in the recipe. + * `flags` (`pulumi.Input[list]`) - The flags to use when installing the MSI. Defaults to the install flag. + + * `rpmInstallation` (`pulumi.Input[dict]`) - Installs an rpm file via the rpm utility. Structure is documented below. + * `artifactId` (`pulumi.Input[str]`) - The id of the relevant artifact in the recipe. + + * `scriptRun` (`pulumi.Input[dict]`) - Runs commands in a shell. Structure is documented below. + * `allowedExitCodes` (`pulumi.Input[list]`) - Return codes that indicate that the software installed or updated successfully. Behaviour defaults to [0] + * `interpreter` (`pulumi.Input[str]`) - The script interpreter to use to run the script. If no interpreter is specified the script is executed directly, + which likely only succeed for scripts with shebang lines. + * `script` (`pulumi.Input[str]`) - The shell script to be executed. + + * `name` (`pulumi.Input[str]`) - Unique identifier for the recipe. Only one recipe with a given name is installed on an instance. + Names are also used to identify resources which helps to determine whether guest policies have conflicts. + This means that requests to create multiple recipes with the same name and version are rejected since they + could potentially have conflicting assignments. + * `updateSteps` (`pulumi.Input[list]`) - Actions to be taken for updating this recipe. On failure it stops executing steps and does not attempt another update for this recipe. + Any steps taken (including partially completed steps) are not rolled back. Structure is documented below. + * `archiveExtraction` (`pulumi.Input[dict]`) - Extracts an archive into the specified directory. Structure is documented below. + * `artifactId` (`pulumi.Input[str]`) - The id of the relevant artifact in the recipe. + * `destination` (`pulumi.Input[str]`) - Directory to extract archive to. Defaults to / on Linux or C:\ on Windows. + * `type` (`pulumi.Input[str]`) - The type of the archive to extract. + + * `dpkgInstallation` (`pulumi.Input[dict]`) - Installs a deb file via dpkg. Structure is documented below. + * `artifactId` (`pulumi.Input[str]`) - The id of the relevant artifact in the recipe. + + * `fileCopy` (`pulumi.Input[dict]`) - Copies a file onto the instance. Structure is documented below. + * `artifactId` (`pulumi.Input[str]`) - The id of the relevant artifact in the recipe. + * `destination` (`pulumi.Input[str]`) - Directory to extract archive to. Defaults to / on Linux or C:\ on Windows. + * `overwrite` (`pulumi.Input[bool]`) - Whether to allow this step to overwrite existing files.If this is false and the file already exists the file + is not overwritten and the step is considered a success. Defaults to false. + * `permissions` (`pulumi.Input[str]`) - Consists of three octal digits which represent, in order, the permissions of the owner, group, and other users + for the file (similarly to the numeric mode used in the linux chmod utility). Each digit represents a three bit + number with the 4 bit corresponding to the read permissions, the 2 bit corresponds to the write bit, and the one + bit corresponds to the execute permission. Default behavior is 755. + Below are some examples of permissions and their associated values: + read, write, and execute: 7 read and execute: 5 read and write: 6 read only: 4 + + * `fileExec` (`pulumi.Input[dict]`) - Executes an artifact or local file. Structure is documented below. + * `allowedExitCodes` (`pulumi.Input[list]`) - Return codes that indicate that the software installed or updated successfully. Behaviour defaults to [0] + * `args` (`pulumi.Input[list]`) - Arguments to be passed to the provided executable. + * `artifactId` (`pulumi.Input[str]`) - The id of the relevant artifact in the recipe. + * `localPath` (`pulumi.Input[str]`) - The absolute path of the file on the local filesystem. + + * `msiInstallation` (`pulumi.Input[dict]`) - Installs an MSI file. Structure is documented below. + * `allowedExitCodes` (`pulumi.Input[list]`) - Return codes that indicate that the software installed or updated successfully. Behaviour defaults to [0] + * `artifactId` (`pulumi.Input[str]`) - The id of the relevant artifact in the recipe. + * `flags` (`pulumi.Input[list]`) - The flags to use when installing the MSI. Defaults to the install flag. + + * `rpmInstallation` (`pulumi.Input[dict]`) - Installs an rpm file via the rpm utility. Structure is documented below. + * `artifactId` (`pulumi.Input[str]`) - The id of the relevant artifact in the recipe. + + * `scriptRun` (`pulumi.Input[dict]`) - Runs commands in a shell. Structure is documented below. + * `allowedExitCodes` (`pulumi.Input[list]`) - Return codes that indicate that the software installed or updated successfully. Behaviour defaults to [0] + * `interpreter` (`pulumi.Input[str]`) - The script interpreter to use to run the script. If no interpreter is specified the script is executed directly, + which likely only succeed for scripts with shebang lines. + * `script` (`pulumi.Input[str]`) - The shell script to be executed. + + * `version` (`pulumi.Input[str]`) - The version of this software recipe. Version can be up to 4 period separated numbers (e.g. 12.34.56.78). + """ + if __name__ is not None: + warnings.warn("explicit use of __name__ is deprecated", DeprecationWarning) + resource_name = __name__ + if __opts__ is not None: + warnings.warn("explicit use of __opts__ is deprecated, use 'opts' instead", DeprecationWarning) + opts = __opts__ + if opts is None: + opts = pulumi.ResourceOptions() + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.version is None: + opts.version = utilities.get_version() + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = dict() + + if assignment is None: + raise TypeError("Missing required property 'assignment'") + __props__['assignment'] = assignment + __props__['description'] = description + __props__['etag'] = etag + if guest_policy_id is None: + raise TypeError("Missing required property 'guest_policy_id'") + __props__['guest_policy_id'] = guest_policy_id + __props__['package_repositories'] = package_repositories + __props__['packages'] = packages + __props__['project'] = project + __props__['recipes'] = recipes + __props__['create_time'] = None + __props__['name'] = None + __props__['update_time'] = None + super(GuestPolicies, __self__).__init__( + 'gcp:osconfig/guestPolicies:GuestPolicies', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name, id, opts=None, assignment=None, create_time=None, description=None, etag=None, guest_policy_id=None, name=None, package_repositories=None, packages=None, project=None, recipes=None, update_time=None): + """ + Get an existing GuestPolicies resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param str id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[dict] assignment: Specifies the VM instances that are assigned to this policy. This allows you to target sets + or groups of VM instances by different parameters such as labels, names, OS, or zones. + If left empty, all VM instances underneath this policy are targeted. + At the same level in the resource hierarchy (that is within a project), the service prevents + the creation of multiple policies that conflict with each other. + For more information, see how the service + [handles assignment conflicts](https://cloud.google.com/compute/docs/os-config-management/create-guest-policy#handle-conflicts). Structure is documented below. + :param pulumi.Input[str] create_time: Time this guest policy was created. A timestamp in RFC3339 UTC "Zulu" format, accurate to nanoseconds. Example: + "2014-10-02T15:01:23.045123456Z". + :param pulumi.Input[str] description: Description of the guest policy. Length of the description is limited to 1024 characters. + :param pulumi.Input[str] etag: The etag for this guest policy. If this is provided on update, it must match the server's etag. + :param pulumi.Input[str] guest_policy_id: The logical name of the guest policy in the project with the following restrictions: + * Must contain only lowercase letters, numbers, and hyphens. + * Must start with a letter. + * Must be between 1-63 characters. + * Must end with a number or a letter. + * Must be unique within the project. + :param pulumi.Input[str] name: Unique identifier for the recipe. Only one recipe with a given name is installed on an instance. + Names are also used to identify resources which helps to determine whether guest policies have conflicts. + This means that requests to create multiple recipes with the same name and version are rejected since they + could potentially have conflicting assignments. + :param pulumi.Input[list] package_repositories: A list of package repositories to configure on the VM instance. + This is done before any other configs are applied so they can use these repos. + Package repositories are only configured if the corresponding package manager(s) are available. Structure is documented below. + :param pulumi.Input[list] packages: The software packages to be managed by this policy. Structure is documented below. + :param pulumi.Input[str] project: The ID of the project in which the resource belongs. + If it is not provided, the provider project is used. + :param pulumi.Input[list] recipes: A list of Recipes to install on the VM instance. Structure is documented below. + :param pulumi.Input[str] update_time: Last time this guest policy was updated. A timestamp in RFC3339 UTC "Zulu" format, accurate to nanoseconds. Example: + "2014-10-02T15:01:23.045123456Z". + + The **assignment** object supports the following: + + * `groupLabels` (`pulumi.Input[list]`) - Targets instances matching at least one of these label sets. This allows an assignment to target disparate groups, + for example "env=prod or env=staging". Structure is documented below. + * `labels` (`pulumi.Input[dict]`) - Google Compute Engine instance labels that must be present for an instance to be included in this assignment group. + + * `instanceNamePrefixes` (`pulumi.Input[list]`) - Targets VM instances whose name starts with one of these prefixes. + Like labels, this is another way to group VM instances when targeting configs, + for example prefix="prod-". + Only supported for project-level policies. + * `instances` (`pulumi.Input[list]`) - Targets any of the instances specified. Instances are specified by their URI in the form + zones/[ZONE]/instances/[INSTANCE_NAME]. + Instance targeting is uncommon and is supported to facilitate the management of changes + by the instance or to target specific VM instances for development and testing. + Only supported for project-level policies and must reference instances within this project. + * `osTypes` (`pulumi.Input[list]`) - Targets VM instances matching at least one of the following OS types. + VM instances must match all supplied criteria for a given OsType to be included. Structure is documented below. + * `osArchitecture` (`pulumi.Input[str]`) - Targets VM instances with OS Inventory enabled and having the following OS architecture. + * `osShortName` (`pulumi.Input[str]`) - Targets VM instances with OS Inventory enabled and having the following OS short name, for example "debian" or "windows". + * `osVersion` (`pulumi.Input[str]`) - Targets VM instances with OS Inventory enabled and having the following following OS version. + + * `zones` (`pulumi.Input[list]`) - Targets instances in any of these zones. Leave empty to target instances in any zone. + Zonal targeting is uncommon and is supported to facilitate the management of changes by zone. + + The **package_repositories** object supports the following: + + * `apt` (`pulumi.Input[dict]`) - An Apt Repository. Structure is documented below. + * `archiveType` (`pulumi.Input[str]`) - Type of archive files in this repository. The default behavior is DEB. + * `components` (`pulumi.Input[list]`) - List of components for this repository. Must contain at least one item. + * `distribution` (`pulumi.Input[str]`) - Distribution of this repository. + * `gpgKey` (`pulumi.Input[str]`) - URI of the key file for this repository. The agent maintains a keyring at + /etc/apt/trusted.gpg.d/osconfig_agent_managed.gpg containing all the keys in any applied guest policy. + * `uri` (`pulumi.Input[str]`) - URI from which to fetch the object. It should contain both the protocol and path following the format {protocol}://{location}. + + * `goo` (`pulumi.Input[dict]`) - A Goo Repository. Structure is documented below. + * `name` (`pulumi.Input[str]`) - Unique identifier for the recipe. Only one recipe with a given name is installed on an instance. + Names are also used to identify resources which helps to determine whether guest policies have conflicts. + This means that requests to create multiple recipes with the same name and version are rejected since they + could potentially have conflicting assignments. + * `url` (`pulumi.Input[str]`) - The url of the repository. + + * `yum` (`pulumi.Input[dict]`) - A Yum Repository. Structure is documented below. + * `baseUrl` (`pulumi.Input[str]`) - The location of the repository directory. + * `display_name` (`pulumi.Input[str]`) - The display name of the repository. + * `gpgKeys` (`pulumi.Input[list]`) - URIs of GPG keys. + * `id` (`pulumi.Input[str]`) - Id of the artifact, which the installation and update steps of this recipe can reference. + Artifacts in a recipe cannot have the same id. + + * `zypper` (`pulumi.Input[dict]`) - A Zypper Repository. Structure is documented below. + * `baseUrl` (`pulumi.Input[str]`) - The location of the repository directory. + * `display_name` (`pulumi.Input[str]`) - The display name of the repository. + * `gpgKeys` (`pulumi.Input[list]`) - URIs of GPG keys. + * `id` (`pulumi.Input[str]`) - Id of the artifact, which the installation and update steps of this recipe can reference. + Artifacts in a recipe cannot have the same id. + + The **packages** object supports the following: + + * `desiredState` (`pulumi.Input[str]`) - Default is INSTALLED. The desired state the agent should maintain for this recipe. + INSTALLED: The software recipe is installed on the instance but won't be updated to new versions. + INSTALLED_KEEP_UPDATED: The software recipe is installed on the instance. The recipe is updated to a higher version, + if a higher version of the recipe is assigned to this instance. + REMOVE: Remove is unsupported for software recipes and attempts to create or update a recipe to the REMOVE state is rejected. + * `manager` (`pulumi.Input[str]`) - Type of package manager that can be used to install this package. If a system does not have the package manager, + the package is not installed or removed no error message is returned. By default, or if you specify ANY, + the agent attempts to install and remove this package using the default package manager. + This is useful when creating a policy that applies to different types of systems. + The default behavior is ANY. + * `name` (`pulumi.Input[str]`) - Unique identifier for the recipe. Only one recipe with a given name is installed on an instance. + Names are also used to identify resources which helps to determine whether guest policies have conflicts. + This means that requests to create multiple recipes with the same name and version are rejected since they + could potentially have conflicting assignments. + + The **recipes** object supports the following: + + * `artifacts` (`pulumi.Input[list]`) - Resources available to be used in the steps in the recipe. Structure is documented below. + * `allowInsecure` (`pulumi.Input[bool]`) - Defaults to false. When false, recipes are subject to validations based on the artifact type: + Remote: A checksum must be specified, and only protocols with transport-layer security are permitted. + GCS: An object generation number must be specified. + * `gcs` (`pulumi.Input[dict]`) - A Google Cloud Storage artifact. Structure is documented below. + * `bucket` (`pulumi.Input[str]`) - Bucket of the Google Cloud Storage object. Given an example URL: https://storage.googleapis.com/my-bucket/foo/bar#1234567 + this value would be my-bucket. + * `generation` (`pulumi.Input[float]`) - Must be provided if allowInsecure is false. Generation number of the Google Cloud Storage object. + https://storage.googleapis.com/my-bucket/foo/bar#1234567 this value would be 1234567. + * `object` (`pulumi.Input[str]`) - Name of the Google Cloud Storage object. Given an example URL: https://storage.googleapis.com/my-bucket/foo/bar#1234567 + this value would be foo/bar. + + * `id` (`pulumi.Input[str]`) - Id of the artifact, which the installation and update steps of this recipe can reference. + Artifacts in a recipe cannot have the same id. + * `remote` (`pulumi.Input[dict]`) - A generic remote artifact. Structure is documented below. + * `checkSum` (`pulumi.Input[str]`) - Must be provided if allowInsecure is false. SHA256 checksum in hex format, to compare to the checksum of the artifact. + If the checksum is not empty and it doesn't match the artifact then the recipe installation fails before running any + of the steps. + * `uri` (`pulumi.Input[str]`) - URI from which to fetch the object. It should contain both the protocol and path following the format {protocol}://{location}. + + * `desiredState` (`pulumi.Input[str]`) - Default is INSTALLED. The desired state the agent should maintain for this recipe. + INSTALLED: The software recipe is installed on the instance but won't be updated to new versions. + INSTALLED_KEEP_UPDATED: The software recipe is installed on the instance. The recipe is updated to a higher version, + if a higher version of the recipe is assigned to this instance. + REMOVE: Remove is unsupported for software recipes and attempts to create or update a recipe to the REMOVE state is rejected. + * `installSteps` (`pulumi.Input[list]`) - Actions to be taken for installing this recipe. On failure it stops executing steps and does not attempt another installation. + Any steps taken (including partially completed steps) are not rolled back. Structure is documented below. + * `archiveExtraction` (`pulumi.Input[dict]`) - Extracts an archive into the specified directory. Structure is documented below. + * `artifactId` (`pulumi.Input[str]`) - The id of the relevant artifact in the recipe. + * `destination` (`pulumi.Input[str]`) - Directory to extract archive to. Defaults to / on Linux or C:\ on Windows. + * `type` (`pulumi.Input[str]`) - The type of the archive to extract. + + * `dpkgInstallation` (`pulumi.Input[dict]`) - Installs a deb file via dpkg. Structure is documented below. + * `artifactId` (`pulumi.Input[str]`) - The id of the relevant artifact in the recipe. + + * `fileCopy` (`pulumi.Input[dict]`) - Copies a file onto the instance. Structure is documented below. + * `artifactId` (`pulumi.Input[str]`) - The id of the relevant artifact in the recipe. + * `destination` (`pulumi.Input[str]`) - Directory to extract archive to. Defaults to / on Linux or C:\ on Windows. + * `overwrite` (`pulumi.Input[bool]`) - Whether to allow this step to overwrite existing files.If this is false and the file already exists the file + is not overwritten and the step is considered a success. Defaults to false. + * `permissions` (`pulumi.Input[str]`) - Consists of three octal digits which represent, in order, the permissions of the owner, group, and other users + for the file (similarly to the numeric mode used in the linux chmod utility). Each digit represents a three bit + number with the 4 bit corresponding to the read permissions, the 2 bit corresponds to the write bit, and the one + bit corresponds to the execute permission. Default behavior is 755. + Below are some examples of permissions and their associated values: + read, write, and execute: 7 read and execute: 5 read and write: 6 read only: 4 + + * `fileExec` (`pulumi.Input[dict]`) - Executes an artifact or local file. Structure is documented below. + * `allowedExitCodes` (`pulumi.Input[str]`) - Return codes that indicate that the software installed or updated successfully. Behaviour defaults to [0] + * `args` (`pulumi.Input[list]`) - Arguments to be passed to the provided executable. + * `artifactId` (`pulumi.Input[str]`) - The id of the relevant artifact in the recipe. + * `localPath` (`pulumi.Input[str]`) - The absolute path of the file on the local filesystem. + + * `msiInstallation` (`pulumi.Input[dict]`) - Installs an MSI file. Structure is documented below. + * `allowedExitCodes` (`pulumi.Input[list]`) - Return codes that indicate that the software installed or updated successfully. Behaviour defaults to [0] + * `artifactId` (`pulumi.Input[str]`) - The id of the relevant artifact in the recipe. + * `flags` (`pulumi.Input[list]`) - The flags to use when installing the MSI. Defaults to the install flag. + + * `rpmInstallation` (`pulumi.Input[dict]`) - Installs an rpm file via the rpm utility. Structure is documented below. + * `artifactId` (`pulumi.Input[str]`) - The id of the relevant artifact in the recipe. + + * `scriptRun` (`pulumi.Input[dict]`) - Runs commands in a shell. Structure is documented below. + * `allowedExitCodes` (`pulumi.Input[list]`) - Return codes that indicate that the software installed or updated successfully. Behaviour defaults to [0] + * `interpreter` (`pulumi.Input[str]`) - The script interpreter to use to run the script. If no interpreter is specified the script is executed directly, + which likely only succeed for scripts with shebang lines. + * `script` (`pulumi.Input[str]`) - The shell script to be executed. + + * `name` (`pulumi.Input[str]`) - Unique identifier for the recipe. Only one recipe with a given name is installed on an instance. + Names are also used to identify resources which helps to determine whether guest policies have conflicts. + This means that requests to create multiple recipes with the same name and version are rejected since they + could potentially have conflicting assignments. + * `updateSteps` (`pulumi.Input[list]`) - Actions to be taken for updating this recipe. On failure it stops executing steps and does not attempt another update for this recipe. + Any steps taken (including partially completed steps) are not rolled back. Structure is documented below. + * `archiveExtraction` (`pulumi.Input[dict]`) - Extracts an archive into the specified directory. Structure is documented below. + * `artifactId` (`pulumi.Input[str]`) - The id of the relevant artifact in the recipe. + * `destination` (`pulumi.Input[str]`) - Directory to extract archive to. Defaults to / on Linux or C:\ on Windows. + * `type` (`pulumi.Input[str]`) - The type of the archive to extract. + + * `dpkgInstallation` (`pulumi.Input[dict]`) - Installs a deb file via dpkg. Structure is documented below. + * `artifactId` (`pulumi.Input[str]`) - The id of the relevant artifact in the recipe. + + * `fileCopy` (`pulumi.Input[dict]`) - Copies a file onto the instance. Structure is documented below. + * `artifactId` (`pulumi.Input[str]`) - The id of the relevant artifact in the recipe. + * `destination` (`pulumi.Input[str]`) - Directory to extract archive to. Defaults to / on Linux or C:\ on Windows. + * `overwrite` (`pulumi.Input[bool]`) - Whether to allow this step to overwrite existing files.If this is false and the file already exists the file + is not overwritten and the step is considered a success. Defaults to false. + * `permissions` (`pulumi.Input[str]`) - Consists of three octal digits which represent, in order, the permissions of the owner, group, and other users + for the file (similarly to the numeric mode used in the linux chmod utility). Each digit represents a three bit + number with the 4 bit corresponding to the read permissions, the 2 bit corresponds to the write bit, and the one + bit corresponds to the execute permission. Default behavior is 755. + Below are some examples of permissions and their associated values: + read, write, and execute: 7 read and execute: 5 read and write: 6 read only: 4 + + * `fileExec` (`pulumi.Input[dict]`) - Executes an artifact or local file. Structure is documented below. + * `allowedExitCodes` (`pulumi.Input[list]`) - Return codes that indicate that the software installed or updated successfully. Behaviour defaults to [0] + * `args` (`pulumi.Input[list]`) - Arguments to be passed to the provided executable. + * `artifactId` (`pulumi.Input[str]`) - The id of the relevant artifact in the recipe. + * `localPath` (`pulumi.Input[str]`) - The absolute path of the file on the local filesystem. + + * `msiInstallation` (`pulumi.Input[dict]`) - Installs an MSI file. Structure is documented below. + * `allowedExitCodes` (`pulumi.Input[list]`) - Return codes that indicate that the software installed or updated successfully. Behaviour defaults to [0] + * `artifactId` (`pulumi.Input[str]`) - The id of the relevant artifact in the recipe. + * `flags` (`pulumi.Input[list]`) - The flags to use when installing the MSI. Defaults to the install flag. + + * `rpmInstallation` (`pulumi.Input[dict]`) - Installs an rpm file via the rpm utility. Structure is documented below. + * `artifactId` (`pulumi.Input[str]`) - The id of the relevant artifact in the recipe. + + * `scriptRun` (`pulumi.Input[dict]`) - Runs commands in a shell. Structure is documented below. + * `allowedExitCodes` (`pulumi.Input[list]`) - Return codes that indicate that the software installed or updated successfully. Behaviour defaults to [0] + * `interpreter` (`pulumi.Input[str]`) - The script interpreter to use to run the script. If no interpreter is specified the script is executed directly, + which likely only succeed for scripts with shebang lines. + * `script` (`pulumi.Input[str]`) - The shell script to be executed. + + * `version` (`pulumi.Input[str]`) - The version of this software recipe. Version can be up to 4 period separated numbers (e.g. 12.34.56.78). + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = dict() + + __props__["assignment"] = assignment + __props__["create_time"] = create_time + __props__["description"] = description + __props__["etag"] = etag + __props__["guest_policy_id"] = guest_policy_id + __props__["name"] = name + __props__["package_repositories"] = package_repositories + __props__["packages"] = packages + __props__["project"] = project + __props__["recipes"] = recipes + __props__["update_time"] = update_time + return GuestPolicies(resource_name, opts=opts, __props__=__props__) + + def translate_output_property(self, prop): + return tables._CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop + + def translate_input_property(self, prop): + return tables._SNAKE_TO_CAMEL_CASE_TABLE.get(prop) or prop diff --git a/sdk/python/pulumi_gcp/provider.py b/sdk/python/pulumi_gcp/provider.py index a0c2ceaac1..ddb4071e44 100644 --- a/sdk/python/pulumi_gcp/provider.py +++ b/sdk/python/pulumi_gcp/provider.py @@ -11,7 +11,7 @@ class Provider(pulumi.ProviderResource): - def __init__(__self__, resource_name, opts=None, access_context_manager_custom_endpoint=None, access_token=None, app_engine_custom_endpoint=None, artifact_registry_custom_endpoint=None, batching=None, big_query_custom_endpoint=None, bigquery_connection_custom_endpoint=None, bigquery_data_transfer_custom_endpoint=None, bigquery_reservation_custom_endpoint=None, bigtable_custom_endpoint=None, billing_custom_endpoint=None, binary_authorization_custom_endpoint=None, cloud_billing_custom_endpoint=None, cloud_build_custom_endpoint=None, cloud_functions_custom_endpoint=None, cloud_identity_custom_endpoint=None, cloud_iot_custom_endpoint=None, cloud_run_custom_endpoint=None, cloud_scheduler_custom_endpoint=None, cloud_tasks_custom_endpoint=None, composer_custom_endpoint=None, compute_beta_custom_endpoint=None, compute_custom_endpoint=None, container_analysis_custom_endpoint=None, container_beta_custom_endpoint=None, container_custom_endpoint=None, credentials=None, data_catalog_custom_endpoint=None, data_fusion_custom_endpoint=None, dataflow_custom_endpoint=None, dataproc_beta_custom_endpoint=None, dataproc_custom_endpoint=None, datastore_custom_endpoint=None, deployment_manager_custom_endpoint=None, dialogflow_custom_endpoint=None, dns_beta_custom_endpoint=None, dns_custom_endpoint=None, filestore_custom_endpoint=None, firebase_custom_endpoint=None, firestore_custom_endpoint=None, game_services_custom_endpoint=None, healthcare_custom_endpoint=None, iam_credentials_custom_endpoint=None, iam_custom_endpoint=None, iap_custom_endpoint=None, identity_platform_custom_endpoint=None, kms_custom_endpoint=None, logging_custom_endpoint=None, memcache_custom_endpoint=None, ml_engine_custom_endpoint=None, monitoring_custom_endpoint=None, network_management_custom_endpoint=None, notebooks_custom_endpoint=None, os_config_custom_endpoint=None, os_login_custom_endpoint=None, project=None, pubsub_custom_endpoint=None, redis_custom_endpoint=None, region=None, request_timeout=None, resource_manager_custom_endpoint=None, resource_manager_v2beta1_custom_endpoint=None, runtime_config_custom_endpoint=None, runtimeconfig_custom_endpoint=None, scopes=None, secret_manager_custom_endpoint=None, security_center_custom_endpoint=None, security_scanner_custom_endpoint=None, service_directory_custom_endpoint=None, service_management_custom_endpoint=None, service_networking_custom_endpoint=None, service_usage_custom_endpoint=None, source_repo_custom_endpoint=None, spanner_custom_endpoint=None, sql_custom_endpoint=None, storage_custom_endpoint=None, storage_transfer_custom_endpoint=None, tpu_custom_endpoint=None, user_project_override=None, vpc_access_custom_endpoint=None, zone=None, __props__=None, __name__=None, __opts__=None): + def __init__(__self__, resource_name, opts=None, access_context_manager_custom_endpoint=None, access_token=None, app_engine_custom_endpoint=None, artifact_registry_custom_endpoint=None, batching=None, big_query_custom_endpoint=None, bigquery_connection_custom_endpoint=None, bigquery_data_transfer_custom_endpoint=None, bigquery_reservation_custom_endpoint=None, bigtable_custom_endpoint=None, billing_custom_endpoint=None, binary_authorization_custom_endpoint=None, cloud_asset_custom_endpoint=None, cloud_billing_custom_endpoint=None, cloud_build_custom_endpoint=None, cloud_functions_custom_endpoint=None, cloud_identity_custom_endpoint=None, cloud_iot_custom_endpoint=None, cloud_run_custom_endpoint=None, cloud_scheduler_custom_endpoint=None, cloud_tasks_custom_endpoint=None, composer_custom_endpoint=None, compute_beta_custom_endpoint=None, compute_custom_endpoint=None, container_analysis_custom_endpoint=None, container_beta_custom_endpoint=None, container_custom_endpoint=None, credentials=None, data_catalog_custom_endpoint=None, data_fusion_custom_endpoint=None, dataflow_custom_endpoint=None, dataproc_beta_custom_endpoint=None, dataproc_custom_endpoint=None, datastore_custom_endpoint=None, deployment_manager_custom_endpoint=None, dialogflow_custom_endpoint=None, dns_beta_custom_endpoint=None, dns_custom_endpoint=None, filestore_custom_endpoint=None, firebase_custom_endpoint=None, firestore_custom_endpoint=None, game_services_custom_endpoint=None, healthcare_custom_endpoint=None, iam_credentials_custom_endpoint=None, iam_custom_endpoint=None, iap_custom_endpoint=None, identity_platform_custom_endpoint=None, kms_custom_endpoint=None, logging_custom_endpoint=None, memcache_custom_endpoint=None, ml_engine_custom_endpoint=None, monitoring_custom_endpoint=None, network_management_custom_endpoint=None, notebooks_custom_endpoint=None, os_config_custom_endpoint=None, os_login_custom_endpoint=None, project=None, pubsub_custom_endpoint=None, redis_custom_endpoint=None, region=None, request_timeout=None, resource_manager_custom_endpoint=None, resource_manager_v2beta1_custom_endpoint=None, runtime_config_custom_endpoint=None, runtimeconfig_custom_endpoint=None, scopes=None, secret_manager_custom_endpoint=None, security_center_custom_endpoint=None, security_scanner_custom_endpoint=None, service_directory_custom_endpoint=None, service_management_custom_endpoint=None, service_networking_custom_endpoint=None, service_usage_custom_endpoint=None, source_repo_custom_endpoint=None, spanner_custom_endpoint=None, sql_custom_endpoint=None, storage_custom_endpoint=None, storage_transfer_custom_endpoint=None, tpu_custom_endpoint=None, user_project_override=None, vpc_access_custom_endpoint=None, zone=None, __props__=None, __name__=None, __opts__=None): """ The provider type for the google-beta package. By default, resources use package-wide configuration settings, however an explicit `Provider` instance may be created and passed during resource @@ -55,6 +55,7 @@ def __init__(__self__, resource_name, opts=None, access_context_manager_custom_e __props__['bigtable_custom_endpoint'] = bigtable_custom_endpoint __props__['billing_custom_endpoint'] = billing_custom_endpoint __props__['binary_authorization_custom_endpoint'] = binary_authorization_custom_endpoint + __props__['cloud_asset_custom_endpoint'] = cloud_asset_custom_endpoint __props__['cloud_billing_custom_endpoint'] = cloud_billing_custom_endpoint __props__['cloud_build_custom_endpoint'] = cloud_build_custom_endpoint __props__['cloud_functions_custom_endpoint'] = cloud_functions_custom_endpoint diff --git a/sdk/python/pulumi_gcp/sql/__init__.py b/sdk/python/pulumi_gcp/sql/__init__.py index 43e1fe371a..0543debd17 100644 --- a/sdk/python/pulumi_gcp/sql/__init__.py +++ b/sdk/python/pulumi_gcp/sql/__init__.py @@ -6,6 +6,7 @@ from .database import * from .database_instance import * from .get_ca_certs import * +from .get_database_instance import * from .source_representation_instance import * from .ssl_cert import * from .user import * diff --git a/sdk/python/pulumi_gcp/sql/get_database_instance.py b/sdk/python/pulumi_gcp/sql/get_database_instance.py new file mode 100644 index 0000000000..7bc363953d --- /dev/null +++ b/sdk/python/pulumi_gcp/sql/get_database_instance.py @@ -0,0 +1,172 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import warnings +import pulumi +import pulumi.runtime +from typing import Union +from .. import utilities, tables + +class GetDatabaseInstanceResult: + """ + A collection of values returned by getDatabaseInstance. + """ + def __init__(__self__, connection_name=None, database_version=None, encryption_key_name=None, first_ip_address=None, id=None, ip_addresses=None, master_instance_name=None, name=None, private_ip_address=None, project=None, public_ip_address=None, region=None, replica_configurations=None, root_password=None, self_link=None, server_ca_certs=None, service_account_email_address=None, settings=None): + if connection_name and not isinstance(connection_name, str): + raise TypeError("Expected argument 'connection_name' to be a str") + __self__.connection_name = connection_name + """ + The connection name of the instance to be used in connection strings. + """ + if database_version and not isinstance(database_version, str): + raise TypeError("Expected argument 'database_version' to be a str") + __self__.database_version = database_version + """ + The MySQL, PostgreSQL or SQL Server (beta) version to use. + """ + if encryption_key_name and not isinstance(encryption_key_name, str): + raise TypeError("Expected argument 'encryption_key_name' to be a str") + __self__.encryption_key_name = encryption_key_name + if first_ip_address and not isinstance(first_ip_address, str): + raise TypeError("Expected argument 'first_ip_address' to be a str") + __self__.first_ip_address = first_ip_address + """ + The first IPv4 address of any type assigned. + """ + if id and not isinstance(id, str): + raise TypeError("Expected argument 'id' to be a str") + __self__.id = id + """ + The provider-assigned unique ID for this managed resource. + """ + if ip_addresses and not isinstance(ip_addresses, list): + raise TypeError("Expected argument 'ip_addresses' to be a list") + __self__.ip_addresses = ip_addresses + if master_instance_name and not isinstance(master_instance_name, str): + raise TypeError("Expected argument 'master_instance_name' to be a str") + __self__.master_instance_name = master_instance_name + """ + The name of the instance that will act as + the master in the replication setup. + """ + if name and not isinstance(name, str): + raise TypeError("Expected argument 'name' to be a str") + __self__.name = name + """ + A name for this whitelist entry. + """ + if private_ip_address and not isinstance(private_ip_address, str): + raise TypeError("Expected argument 'private_ip_address' to be a str") + __self__.private_ip_address = private_ip_address + """ + The first private (`PRIVATE`) IPv4 address assigned. + """ + if project and not isinstance(project, str): + raise TypeError("Expected argument 'project' to be a str") + __self__.project = project + if public_ip_address and not isinstance(public_ip_address, str): + raise TypeError("Expected argument 'public_ip_address' to be a str") + __self__.public_ip_address = public_ip_address + """ + The first public (`PRIMARY`) IPv4 address assigned. + """ + if region and not isinstance(region, str): + raise TypeError("Expected argument 'region' to be a str") + __self__.region = region + if replica_configurations and not isinstance(replica_configurations, list): + raise TypeError("Expected argument 'replica_configurations' to be a list") + __self__.replica_configurations = replica_configurations + """ + The configuration for replication. The + configuration is detailed below. + """ + if root_password and not isinstance(root_password, str): + raise TypeError("Expected argument 'root_password' to be a str") + __self__.root_password = root_password + """ + Initial root password. Required for MS SQL Server, ignored by MySQL and PostgreSQL. + """ + if self_link and not isinstance(self_link, str): + raise TypeError("Expected argument 'self_link' to be a str") + __self__.self_link = self_link + """ + The URI of the created resource. + """ + if server_ca_certs and not isinstance(server_ca_certs, list): + raise TypeError("Expected argument 'server_ca_certs' to be a list") + __self__.server_ca_certs = server_ca_certs + if service_account_email_address and not isinstance(service_account_email_address, str): + raise TypeError("Expected argument 'service_account_email_address' to be a str") + __self__.service_account_email_address = service_account_email_address + """ + The service account email address assigned to the instance. + """ + if settings and not isinstance(settings, list): + raise TypeError("Expected argument 'settings' to be a list") + __self__.settings = settings + """ + The settings to use for the database. The + configuration is detailed below. + """ +class AwaitableGetDatabaseInstanceResult(GetDatabaseInstanceResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetDatabaseInstanceResult( + connection_name=self.connection_name, + database_version=self.database_version, + encryption_key_name=self.encryption_key_name, + first_ip_address=self.first_ip_address, + id=self.id, + ip_addresses=self.ip_addresses, + master_instance_name=self.master_instance_name, + name=self.name, + private_ip_address=self.private_ip_address, + project=self.project, + public_ip_address=self.public_ip_address, + region=self.region, + replica_configurations=self.replica_configurations, + root_password=self.root_password, + self_link=self.self_link, + server_ca_certs=self.server_ca_certs, + service_account_email_address=self.service_account_email_address, + settings=self.settings) + +def get_database_instance(name=None,opts=None): + """ + Use this data source to get information about a Cloud SQL instance + + + :param str name: The name of the instance. + """ + __args__ = dict() + + + __args__['name'] = name + if opts is None: + opts = pulumi.InvokeOptions() + if opts.version is None: + opts.version = utilities.get_version() + __ret__ = pulumi.runtime.invoke('gcp:sql/getDatabaseInstance:getDatabaseInstance', __args__, opts=opts).value + + return AwaitableGetDatabaseInstanceResult( + connection_name=__ret__.get('connectionName'), + database_version=__ret__.get('databaseVersion'), + encryption_key_name=__ret__.get('encryptionKeyName'), + first_ip_address=__ret__.get('firstIpAddress'), + id=__ret__.get('id'), + ip_addresses=__ret__.get('ipAddresses'), + master_instance_name=__ret__.get('masterInstanceName'), + name=__ret__.get('name'), + private_ip_address=__ret__.get('privateIpAddress'), + project=__ret__.get('project'), + public_ip_address=__ret__.get('publicIpAddress'), + region=__ret__.get('region'), + replica_configurations=__ret__.get('replicaConfigurations'), + root_password=__ret__.get('rootPassword'), + self_link=__ret__.get('selfLink'), + server_ca_certs=__ret__.get('serverCaCerts'), + service_account_email_address=__ret__.get('serviceAccountEmailAddress'), + settings=__ret__.get('settings')) diff --git a/sdk/python/pulumi_gcp/tables.py b/sdk/python/pulumi_gcp/tables.py index b960d511fc..64dd4e866c 100644 --- a/sdk/python/pulumi_gcp/tables.py +++ b/sdk/python/pulumi_gcp/tables.py @@ -34,6 +34,8 @@ "app_profile_id": "appProfileId", "application_title": "applicationTitle", "archive_size_bytes": "archiveSizeBytes", + "asset_names": "assetNames", + "asset_types": "assetTypes", "attached_disks": "attachedDisks", "attempt_deadline": "attemptDeadline", "attestation_authority": "attestationAuthority", @@ -64,6 +66,7 @@ "bigquery_table_spec": "bigqueryTableSpec", "billing_account": "billingAccount", "billing_account_id": "billingAccountId", + "billing_project": "billingProject", "blacklist_patterns": "blacklistPatterns", "boolean_policy": "booleanPolicy", "boot_disk": "bootDisk", @@ -156,6 +159,7 @@ "default_response_platforms": "defaultResponsePlatforms", "default_route_action": "defaultRouteAction", "default_service": "defaultService", + "default_snat_status": "defaultSnatStatus", "default_table_expiration_ms": "defaultTableExpirationMs", "default_url_redirect": "defaultUrlRedirect", "default_version": "defaultVersion", @@ -237,6 +241,8 @@ "failover_policy": "failoverPolicy", "failover_ratio": "failoverRatio", "feature_settings": "featureSettings", + "feed_id": "feedId", + "feed_output_config": "feedOutputConfig", "fhir_store_id": "fhirStoreId", "file_shares": "fileShares", "first_ip_address": "firstIpAddress", @@ -263,6 +269,7 @@ "grpc_config": "grpcConfig", "guest_accelerators": "guestAccelerators", "guest_os_features": "guestOsFeatures", + "guest_policy_id": "guestPolicyId", "hadoop_config": "hadoopConfig", "has_credential": "hasCredential", "header_action": "headerAction", @@ -346,6 +353,7 @@ "last_modification_time": "lastModificationTime", "last_modified_time": "lastModifiedTime", "last_state_time": "lastStateTime", + "launch_stage": "launchStage", "lifecycle_rules": "lifecycleRules", "lifecycle_state": "lifecycleState", "linked_resource": "linkedResource", @@ -386,6 +394,7 @@ "metadata_fingerprint": "metadataFingerprint", "metadata_startup_script": "metadataStartupScript", "metric_descriptor": "metricDescriptor", + "metric_kind": "metricKind", "migrate_traffic": "migrateTraffic", "min_cpu_platform": "minCpuPlatform", "min_master_version": "minMasterVersion", @@ -396,6 +405,7 @@ "mirrored_resources": "mirroredResources", "ml_disabled": "mlDisabled", "monitored_resource": "monitoredResource", + "monitored_resource_types": "monitoredResourceTypes", "monitoring_service": "monitoringService", "most_disruptive_allowed_action": "mostDisruptiveAllowedAction", "mqtt_config": "mqttConfig", @@ -459,6 +469,7 @@ "output_name": "outputName", "override_strategy": "overrideStrategy", "override_value": "overrideValue", + "package_repositories": "packageRepositories", "pairing_key": "pairingKey", "parent_followup_intent_name": "parentFollowupIntentName", "parent_name": "parentName", @@ -691,6 +702,7 @@ "valid_after": "validAfter", "valid_before": "validBefore", "value_extractor": "valueExtractor", + "value_type": "valueType", "verification_status": "verificationStatus", "version_id": "versionId", "version_template": "versionTemplate", @@ -745,6 +757,8 @@ "appProfileId": "app_profile_id", "applicationTitle": "application_title", "archiveSizeBytes": "archive_size_bytes", + "assetNames": "asset_names", + "assetTypes": "asset_types", "attachedDisks": "attached_disks", "attemptDeadline": "attempt_deadline", "attestationAuthority": "attestation_authority", @@ -775,6 +789,7 @@ "bigqueryTableSpec": "bigquery_table_spec", "billingAccount": "billing_account", "billingAccountId": "billing_account_id", + "billingProject": "billing_project", "blacklistPatterns": "blacklist_patterns", "booleanPolicy": "boolean_policy", "bootDisk": "boot_disk", @@ -867,6 +882,7 @@ "defaultResponsePlatforms": "default_response_platforms", "defaultRouteAction": "default_route_action", "defaultService": "default_service", + "defaultSnatStatus": "default_snat_status", "defaultTableExpirationMs": "default_table_expiration_ms", "defaultUrlRedirect": "default_url_redirect", "defaultVersion": "default_version", @@ -948,6 +964,8 @@ "failoverPolicy": "failover_policy", "failoverRatio": "failover_ratio", "featureSettings": "feature_settings", + "feedId": "feed_id", + "feedOutputConfig": "feed_output_config", "fhirStoreId": "fhir_store_id", "fileShares": "file_shares", "firstIpAddress": "first_ip_address", @@ -974,6 +992,7 @@ "grpcConfig": "grpc_config", "guestAccelerators": "guest_accelerators", "guestOsFeatures": "guest_os_features", + "guestPolicyId": "guest_policy_id", "hadoopConfig": "hadoop_config", "hasCredential": "has_credential", "headerAction": "header_action", @@ -1057,6 +1076,7 @@ "lastModificationTime": "last_modification_time", "lastModifiedTime": "last_modified_time", "lastStateTime": "last_state_time", + "launchStage": "launch_stage", "lifecycleRules": "lifecycle_rules", "lifecycleState": "lifecycle_state", "linkedResource": "linked_resource", @@ -1097,6 +1117,7 @@ "metadataFingerprint": "metadata_fingerprint", "metadataStartupScript": "metadata_startup_script", "metricDescriptor": "metric_descriptor", + "metricKind": "metric_kind", "migrateTraffic": "migrate_traffic", "minCpuPlatform": "min_cpu_platform", "minMasterVersion": "min_master_version", @@ -1107,6 +1128,7 @@ "mirroredResources": "mirrored_resources", "mlDisabled": "ml_disabled", "monitoredResource": "monitored_resource", + "monitoredResourceTypes": "monitored_resource_types", "monitoringService": "monitoring_service", "mostDisruptiveAllowedAction": "most_disruptive_allowed_action", "mqttConfig": "mqtt_config", @@ -1170,6 +1192,7 @@ "outputName": "output_name", "overrideStrategy": "override_strategy", "overrideValue": "override_value", + "packageRepositories": "package_repositories", "pairingKey": "pairing_key", "parentFollowupIntentName": "parent_followup_intent_name", "parentName": "parent_name", @@ -1402,6 +1425,7 @@ "validAfter": "valid_after", "validBefore": "valid_before", "valueExtractor": "value_extractor", + "valueType": "value_type", "verificationStatus": "verification_status", "versionId": "version_id", "versionTemplate": "version_template",