UNPKG

@pulumi/gcp

Version:

A Pulumi package for creating and managing Google Cloud Platform resources.

158 lines (157 loc) 6.69 kB
import * as pulumi from "@pulumi/pulumi"; import * as outputs from "../types/output"; /** * List IP addresses in a project. For more information see * the official API [list](https://cloud.google.com/compute/docs/reference/latest/addresses/list) and * [aggregated list](https://cloud.google.com/compute/docs/reference/rest/v1/addresses/aggregatedList) documentation. * * ## Example Usage * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as gcp from "@pulumi/gcp"; * * const test = gcp.compute.getAddresses({ * filter: "name:test-*", * }); * const prod = new gcp.dns.ManagedZone("prod", { * name: "prod-zone", * dnsName: "prod.mydomain.com.", * }); * const frontend = new gcp.dns.RecordSet("frontend", { * name: pulumi.interpolate`frontend.${prod.dnsName}`, * type: "A", * ttl: 300, * managedZone: prod.name, * rrdatas: test.then(test => test.addresses.map(__item => __item.address)), * }); * ``` */ export declare function getAddresses(args?: GetAddressesArgs, opts?: pulumi.InvokeOptions): Promise<GetAddressesResult>; /** * A collection of arguments for invoking getAddresses. */ export interface GetAddressesArgs { /** * A filter expression that * filters resources listed in the response. The expression must specify * the field name, an operator, and the value that you want to use for * filtering. The value must be a string, a number, or a boolean. The * operator must be either "=", "!=", ">", "<", "<=", ">=" or ":". For * example, if you are filtering Compute Engine instances, you can * exclude instances named "example-instance" by specifying "name != * example-instance". The ":" operator can be used with string fields to * match substrings. For non-string fields it is equivalent to the "=" * operator. The ":*" comparison can be used to test whether a key has * been defined. For example, to find all objects with "owner" label * use: """ labels.owner:* """ You can also filter nested fields. For * example, you could specify "scheduling.automaticRestart = false" to * include instances only if they are not scheduled for automatic * restarts. You can use filtering on nested fields to filter based on * resource labels. To filter on multiple expressions, provide each * separate expression within parentheses. For example: """ * (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") * """ By default, each expression is an "AND" expression. However, you * can include "AND" and "OR" expressions explicitly. For example: """ * (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") * AND (scheduling.automaticRestart = true) */ filter?: string; /** * The google project in which addresses are listed. * Defaults to provider's configuration if missing. */ project?: string; /** * Region that should be considered to search addresses. * All regions are considered if missing. */ region?: string; } /** * A collection of values returned by getAddresses. */ export interface GetAddressesResult { /** * A list of addresses matching the filter. Structure is defined below. */ readonly addresses: outputs.compute.GetAddressesAddress[]; readonly filter?: string; /** * The provider-assigned unique ID for this managed resource. */ readonly id: string; readonly project: string; /** * The region in which the address resides. */ readonly region?: string; } /** * List IP addresses in a project. For more information see * the official API [list](https://cloud.google.com/compute/docs/reference/latest/addresses/list) and * [aggregated list](https://cloud.google.com/compute/docs/reference/rest/v1/addresses/aggregatedList) documentation. * * ## Example Usage * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as gcp from "@pulumi/gcp"; * * const test = gcp.compute.getAddresses({ * filter: "name:test-*", * }); * const prod = new gcp.dns.ManagedZone("prod", { * name: "prod-zone", * dnsName: "prod.mydomain.com.", * }); * const frontend = new gcp.dns.RecordSet("frontend", { * name: pulumi.interpolate`frontend.${prod.dnsName}`, * type: "A", * ttl: 300, * managedZone: prod.name, * rrdatas: test.then(test => test.addresses.map(__item => __item.address)), * }); * ``` */ export declare function getAddressesOutput(args?: GetAddressesOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output<GetAddressesResult>; /** * A collection of arguments for invoking getAddresses. */ export interface GetAddressesOutputArgs { /** * A filter expression that * filters resources listed in the response. The expression must specify * the field name, an operator, and the value that you want to use for * filtering. The value must be a string, a number, or a boolean. The * operator must be either "=", "!=", ">", "<", "<=", ">=" or ":". For * example, if you are filtering Compute Engine instances, you can * exclude instances named "example-instance" by specifying "name != * example-instance". The ":" operator can be used with string fields to * match substrings. For non-string fields it is equivalent to the "=" * operator. The ":*" comparison can be used to test whether a key has * been defined. For example, to find all objects with "owner" label * use: """ labels.owner:* """ You can also filter nested fields. For * example, you could specify "scheduling.automaticRestart = false" to * include instances only if they are not scheduled for automatic * restarts. You can use filtering on nested fields to filter based on * resource labels. To filter on multiple expressions, provide each * separate expression within parentheses. For example: """ * (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") * """ By default, each expression is an "AND" expression. However, you * can include "AND" and "OR" expressions explicitly. For example: """ * (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") * AND (scheduling.automaticRestart = true) */ filter?: pulumi.Input<string>; /** * The google project in which addresses are listed. * Defaults to provider's configuration if missing. */ project?: pulumi.Input<string>; /** * Region that should be considered to search addresses. * All regions are considered if missing. */ region?: pulumi.Input<string>; }