import * as pulumi from "@pulumi/pulumi"; import * as inputs from "../types/input"; import * as outputs from "../types/output"; /** * An `Environment` in Apigee. * * To get more information about Environment, see: * * * [API documentation](https://cloud.google.com/apigee/docs/reference/apis/apigee/rest/v1/organizations.environments/create) * * How-to Guides * * [Creating an environment](https://cloud.google.com/apigee/docs/api-platform/get-started/create-environment) * * ## Example Usage * * ### Apigee Environment Basic * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as gcp from "@pulumi/gcp"; * * const current = gcp.organizations.getClientConfig({}); * const apigeeNetwork = new gcp.compute.Network("apigee_network", {name: "apigee-network"}); * const apigeeRange = new gcp.compute.GlobalAddress("apigee_range", { * name: "apigee-range", * purpose: "VPC_PEERING", * addressType: "INTERNAL", * prefixLength: 16, * network: apigeeNetwork.id, * }); * const apigeeVpcConnection = new gcp.servicenetworking.Connection("apigee_vpc_connection", { * network: apigeeNetwork.id, * service: "servicenetworking.googleapis.com", * reservedPeeringRanges: [apigeeRange.name], * }); * const apigeeOrg = new gcp.apigee.Organization("apigee_org", { * analyticsRegion: "us-central1", * projectId: current.then(current => current.project), * authorizedNetwork: apigeeNetwork.id, * }, { * dependsOn: [apigeeVpcConnection], * }); * const env = new gcp.apigee.Environment("env", { * name: "my-environment", * description: "Apigee Environment", * displayName: "environment-1", * orgId: apigeeOrg.id, * clientIpResolutionConfig: { * headerIndexAlgorithm: { * ipHeaderName: "X-Forwarded-For", * ipHeaderIndex: 1, * }, * }, * }); * ``` * * ## Import * * Environment can be imported using any of these accepted formats: * * * `{{org_id}}/environments/{{name}}` * * * `{{org_id}}/{{name}}` * * When using the `pulumi import` command, Environment can be imported using one of the formats above. For example: * * ```sh * $ pulumi import gcp:apigee/environment:Environment default {{org_id}}/environments/{{name}} * ``` * * ```sh * $ pulumi import gcp:apigee/environment:Environment default {{org_id}}/{{name}} * ``` */ export declare class Environment extends pulumi.CustomResource { /** * Get an existing Environment 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. */ static get(name: string, id: pulumi.Input, state?: EnvironmentState, opts?: pulumi.CustomResourceOptions): Environment; /** * Returns true if the given object is an instance of Environment. This is designed to work even * when multiple copies of the Pulumi SDK have been loaded into the same process. */ static isInstance(obj: any): obj is Environment; /** * Optional. API Proxy type supported by the environment. The type can be set when creating * the Environment and cannot be changed. * Possible values are: `API_PROXY_TYPE_UNSPECIFIED`, `PROGRAMMABLE`, `CONFIGURABLE`. */ readonly apiProxyType: pulumi.Output; /** * The algorithm to resolve IP. This will affect Analytics, API Security, and other features that use the client ip. To remove a client ip resolution config, update the field to an empty value. Example: '{ "clientIpResolutionConfig" = {} }' For more information, see: https://cloud.google.com/apigee/docs/api-platform/system-administration/client-ip-resolution * Structure is documented below. */ readonly clientIpResolutionConfig: pulumi.Output; /** * Optional. Deployment type supported by the environment. The deployment type can be * set when creating the environment and cannot be changed. When you enable archive * deployment, you will be prevented from performing a subset of actions within the * environment, including: * Managing the deployment of API proxy or shared flow revisions; * Creating, updating, or deleting resource files; * Creating, updating, or deleting target servers. * Possible values are: `DEPLOYMENT_TYPE_UNSPECIFIED`, `PROXY`, `ARCHIVE`. */ readonly deploymentType: pulumi.Output; /** * Description of the environment. */ readonly description: pulumi.Output; /** * Display name of the environment. */ readonly displayName: pulumi.Output; /** * Optional. URI of the forward proxy to be applied to the runtime instances in this environment. Must be in the format of {scheme}://{hostname}:{port}. Note that the scheme must be one of "http" or "https", and the port must be supplied. */ readonly forwardProxyUri: pulumi.Output; /** * The resource ID of the environment. */ readonly name: pulumi.Output; /** * NodeConfig for setting the min/max number of nodes associated with the environment. * Structure is documented below. */ readonly nodeConfig: pulumi.Output; /** * The Apigee Organization associated with the Apigee environment, * in the format `organizations/{{org_name}}`. */ readonly orgId: pulumi.Output; /** * Key-value pairs that may be used for customizing the environment. * Structure is documented below. */ readonly properties: pulumi.Output; /** * Types that can be selected for an Environment. Each of the types are * limited by capability and capacity. Refer to Apigee's public documentation * to understand about each of these types in details. * An Apigee org can support heterogeneous Environments. * Possible values are: `ENVIRONMENT_TYPE_UNSPECIFIED`, `BASE`, `INTERMEDIATE`, `COMPREHENSIVE`. */ readonly type: pulumi.Output; /** * Create a Environment 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: EnvironmentArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering Environment resources. */ export interface EnvironmentState { /** * Optional. API Proxy type supported by the environment. The type can be set when creating * the Environment and cannot be changed. * Possible values are: `API_PROXY_TYPE_UNSPECIFIED`, `PROGRAMMABLE`, `CONFIGURABLE`. */ apiProxyType?: pulumi.Input; /** * The algorithm to resolve IP. This will affect Analytics, API Security, and other features that use the client ip. To remove a client ip resolution config, update the field to an empty value. Example: '{ "clientIpResolutionConfig" = {} }' For more information, see: https://cloud.google.com/apigee/docs/api-platform/system-administration/client-ip-resolution * Structure is documented below. */ clientIpResolutionConfig?: pulumi.Input; /** * Optional. Deployment type supported by the environment. The deployment type can be * set when creating the environment and cannot be changed. When you enable archive * deployment, you will be prevented from performing a subset of actions within the * environment, including: * Managing the deployment of API proxy or shared flow revisions; * Creating, updating, or deleting resource files; * Creating, updating, or deleting target servers. * Possible values are: `DEPLOYMENT_TYPE_UNSPECIFIED`, `PROXY`, `ARCHIVE`. */ deploymentType?: pulumi.Input; /** * Description of the environment. */ description?: pulumi.Input; /** * Display name of the environment. */ displayName?: pulumi.Input; /** * Optional. URI of the forward proxy to be applied to the runtime instances in this environment. Must be in the format of {scheme}://{hostname}:{port}. Note that the scheme must be one of "http" or "https", and the port must be supplied. */ forwardProxyUri?: pulumi.Input; /** * The resource ID of the environment. */ name?: pulumi.Input; /** * NodeConfig for setting the min/max number of nodes associated with the environment. * Structure is documented below. */ nodeConfig?: pulumi.Input; /** * The Apigee Organization associated with the Apigee environment, * in the format `organizations/{{org_name}}`. */ orgId?: pulumi.Input; /** * Key-value pairs that may be used for customizing the environment. * Structure is documented below. */ properties?: pulumi.Input; /** * Types that can be selected for an Environment. Each of the types are * limited by capability and capacity. Refer to Apigee's public documentation * to understand about each of these types in details. * An Apigee org can support heterogeneous Environments. * Possible values are: `ENVIRONMENT_TYPE_UNSPECIFIED`, `BASE`, `INTERMEDIATE`, `COMPREHENSIVE`. */ type?: pulumi.Input; } /** * The set of arguments for constructing a Environment resource. */ export interface EnvironmentArgs { /** * Optional. API Proxy type supported by the environment. The type can be set when creating * the Environment and cannot be changed. * Possible values are: `API_PROXY_TYPE_UNSPECIFIED`, `PROGRAMMABLE`, `CONFIGURABLE`. */ apiProxyType?: pulumi.Input; /** * The algorithm to resolve IP. This will affect Analytics, API Security, and other features that use the client ip. To remove a client ip resolution config, update the field to an empty value. Example: '{ "clientIpResolutionConfig" = {} }' For more information, see: https://cloud.google.com/apigee/docs/api-platform/system-administration/client-ip-resolution * Structure is documented below. */ clientIpResolutionConfig?: pulumi.Input; /** * Optional. Deployment type supported by the environment. The deployment type can be * set when creating the environment and cannot be changed. When you enable archive * deployment, you will be prevented from performing a subset of actions within the * environment, including: * Managing the deployment of API proxy or shared flow revisions; * Creating, updating, or deleting resource files; * Creating, updating, or deleting target servers. * Possible values are: `DEPLOYMENT_TYPE_UNSPECIFIED`, `PROXY`, `ARCHIVE`. */ deploymentType?: pulumi.Input; /** * Description of the environment. */ description?: pulumi.Input; /** * Display name of the environment. */ displayName?: pulumi.Input; /** * Optional. URI of the forward proxy to be applied to the runtime instances in this environment. Must be in the format of {scheme}://{hostname}:{port}. Note that the scheme must be one of "http" or "https", and the port must be supplied. */ forwardProxyUri?: pulumi.Input; /** * The resource ID of the environment. */ name?: pulumi.Input; /** * NodeConfig for setting the min/max number of nodes associated with the environment. * Structure is documented below. */ nodeConfig?: pulumi.Input; /** * The Apigee Organization associated with the Apigee environment, * in the format `organizations/{{org_name}}`. */ orgId: pulumi.Input; /** * Key-value pairs that may be used for customizing the environment. * Structure is documented below. */ properties?: pulumi.Input; /** * Types that can be selected for an Environment. Each of the types are * limited by capability and capacity. Refer to Apigee's public documentation * to understand about each of these types in details. * An Apigee org can support heterogeneous Environments. * Possible values are: `ENVIRONMENT_TYPE_UNSPECIFIED`, `BASE`, `INTERMEDIATE`, `COMPREHENSIVE`. */ type?: pulumi.Input; }