import * as pulumi from "@pulumi/pulumi"; import * as inputs from "../types/input"; import * as outputs from "../types/output"; /** * A `Developer` is an API consumer that can have apps registered in Apigee. * * To get more information about Developer, see: * * * [API documentation](https://cloud.google.com/apigee/docs/reference/apis/apigee/rest/v1/organizations.developers) * * How-to Guides * * [Creating a developer](https://cloud.google.com/apigee/docs/api-platform/publish/adding-developers-your-api-product) * * ## Example Usage * * ### Apigee Developer 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 apigeeInstance = new gcp.apigee.Instance("apigee_instance", { * name: "my-instance", * location: "us-central1", * orgId: apigeeOrg.id, * peeringCidrRange: "SLASH_22", * }); * const apigeeDeveloper = new gcp.apigee.Developer("apigee_developer", { * email: "john.doe@acme.com", * firstName: "John", * lastName: "Doe", * userName: "john.doe", * orgId: apigeeOrg.id, * }, { * dependsOn: [apigeeInstance], * }); * ``` * ### Apigee Developer With Attributes * * ```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 apigeeInstance = new gcp.apigee.Instance("apigee_instance", { * name: "my-instance", * location: "us-central1", * orgId: apigeeOrg.id, * peeringCidrRange: "SLASH_22", * }); * const apigeeDeveloper = new gcp.apigee.Developer("apigee_developer", { * email: "john.doe@acme.com", * firstName: "John", * lastName: "Doe", * userName: "john.doe", * attributes: [ * { * name: "business_unit", * value: "HR", * }, * { * name: "department", * value: "payroll", * }, * ], * orgId: apigeeOrg.id, * }, { * dependsOn: [apigeeInstance], * }); * ``` * * ## Import * * Developer can be imported using any of these accepted formats: * * * `{{org_id}}/developers/{{email}}` * * * `{{org_id}}/{{email}}` * * When using the `pulumi import` command, Developer can be imported using one of the formats above. For example: * * ```sh * $ pulumi import gcp:apigee/developer:Developer default {{org_id}}/developers/{{email}} * ``` * * ```sh * $ pulumi import gcp:apigee/developer:Developer default {{org_id}}/{{email}} * ``` */ export declare class Developer extends pulumi.CustomResource { /** * Get an existing Developer 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?: DeveloperState, opts?: pulumi.CustomResourceOptions): Developer; /** * Returns true if the given object is an instance of Developer. 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 Developer; /** * Developer attributes (name/value pairs). The custom attribute limit is 18. * Structure is documented below. */ readonly attributes: pulumi.Output; /** * Time at which the developer was created in milliseconds since epoch. */ readonly createdAt: pulumi.Output; /** * Email address of the developer. This value is used to uniquely identify the developer in Apigee hybrid. Note that the email address has to be in lowercase only.. */ readonly email: pulumi.Output; /** * First name of the developer. */ readonly firstName: pulumi.Output; /** * Time at which the developer was last modified in milliseconds since epoch. */ readonly lastModifiedAt: pulumi.Output; /** * Last name of the developer. */ readonly lastName: pulumi.Output; /** * The Apigee Organization associated with the Apigee instance, * in the format `organizations/{{org_name}}`. */ readonly orgId: pulumi.Output; /** * Name of the Apigee organization in which the developer resides. */ readonly organizatioName: pulumi.Output; /** * Status of the developer. Valid values are active and inactive. */ readonly status: pulumi.Output; /** * User name of the developer. Not used by Apigee hybrid. */ readonly userName: pulumi.Output; /** * Create a Developer 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: DeveloperArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering Developer resources. */ export interface DeveloperState { /** * Developer attributes (name/value pairs). The custom attribute limit is 18. * Structure is documented below. */ attributes?: pulumi.Input[]>; /** * Time at which the developer was created in milliseconds since epoch. */ createdAt?: pulumi.Input; /** * Email address of the developer. This value is used to uniquely identify the developer in Apigee hybrid. Note that the email address has to be in lowercase only.. */ email?: pulumi.Input; /** * First name of the developer. */ firstName?: pulumi.Input; /** * Time at which the developer was last modified in milliseconds since epoch. */ lastModifiedAt?: pulumi.Input; /** * Last name of the developer. */ lastName?: pulumi.Input; /** * The Apigee Organization associated with the Apigee instance, * in the format `organizations/{{org_name}}`. */ orgId?: pulumi.Input; /** * Name of the Apigee organization in which the developer resides. */ organizatioName?: pulumi.Input; /** * Status of the developer. Valid values are active and inactive. */ status?: pulumi.Input; /** * User name of the developer. Not used by Apigee hybrid. */ userName?: pulumi.Input; } /** * The set of arguments for constructing a Developer resource. */ export interface DeveloperArgs { /** * Developer attributes (name/value pairs). The custom attribute limit is 18. * Structure is documented below. */ attributes?: pulumi.Input[]>; /** * Email address of the developer. This value is used to uniquely identify the developer in Apigee hybrid. Note that the email address has to be in lowercase only.. */ email: pulumi.Input; /** * First name of the developer. */ firstName: pulumi.Input; /** * Last name of the developer. */ lastName: pulumi.Input; /** * The Apigee Organization associated with the Apigee instance, * in the format `organizations/{{org_name}}`. */ orgId: pulumi.Input; /** * User name of the developer. Not used by Apigee hybrid. */ userName: pulumi.Input; }