import * as pulumi from "@pulumi/pulumi"; /** * Creates a Peering for Managed AD instance. * * > **Warning:** This resource is in beta, and should be used with the terraform-provider-google-beta provider. * See Provider Versions for more details on beta resources. * * To get more information about Peering, see: * * * [API documentation](https://cloud.google.com/managed-microsoft-ad/reference/rest/v1beta1/projects.locations.global.peerings) * * How-to Guides * * [Active Directory Domain Peering](https://cloud.google.com/managed-microsoft-ad/docs/domain-peering) * * ## Example Usage * * ### Active Directory Peering Basic * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as gcp from "@pulumi/gcp"; * * const source_network = new gcp.compute.Network("source-network", {name: "ad-network"}); * const ad_domain = new gcp.activedirectory.Domain("ad-domain", { * domainName: "ad.test.hashicorptest.com", * locations: ["us-central1"], * reservedIpRange: "192.168.255.0/24", * authorizedNetworks: [source_network.id], * deletionProtection: false, * }); * const peered_project = new gcp.organizations.Project("peered-project", { * name: "my-peered-project", * projectId: "my-peered-project", * orgId: "123456789", * billingAccount: "000000-0000000-0000000-000000", * deletionPolicy: "DELETE", * }); * const compute = new gcp.projects.Service("compute", { * project: peered_project.projectId, * service: "compute.googleapis.com", * }); * const peered_network = new gcp.compute.Network("peered-network", { * project: compute.project, * name: "ad-peered-network", * }); * const ad_domain_peering = new gcp.activedirectory.Peering("ad-domain-peering", { * domainResource: ad_domain.name, * peeringId: "ad-domain-peering", * authorizedNetwork: peered_network.id, * deletionProtection: false, * labels: { * foo: "bar", * }, * }); * ``` * * ## Import * * This resource does not support import. */ export declare class Peering extends pulumi.CustomResource { /** * Get an existing Peering 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?: PeeringState, opts?: pulumi.CustomResourceOptions): Peering; /** * Returns true if the given object is an instance of Peering. 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 Peering; /** * The full names of the Google Compute Engine networks to which the instance is connected. Caller needs to make sure that CIDR subnets do not overlap between networks, else peering creation will fail. */ readonly authorizedNetwork: pulumi.Output; /** * Full domain resource path for the Managed AD Domain involved in peering. The resource path should be in the form projects/{projectId}/locations/global/domains/{domainName} */ readonly domainResource: pulumi.Output; /** * All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. */ readonly effectiveLabels: pulumi.Output<{ [key: string]: string; }>; /** * Resource labels that can contain user-provided metadata * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. * Please refer to the field `effectiveLabels` for all of the labels present on the resource. */ readonly labels: pulumi.Output<{ [key: string]: string; } | undefined>; /** * Unique name of the peering in this scope including projects and location using the form: projects/{projectId}/locations/global/peerings/{peeringId}. */ readonly name: pulumi.Output; /** * (Required) */ readonly peeringId: pulumi.Output; /** * The ID of the project in which the resource belongs. * If it is not provided, the provider project is used. */ readonly project: pulumi.Output; /** * The combination of labels configured directly on the resource * and default labels configured on the provider. */ readonly pulumiLabels: pulumi.Output<{ [key: string]: string; }>; /** * The current state of this Peering. */ readonly status: pulumi.Output; /** * Additional information about the current status of this peering, if available. */ readonly statusMessage: pulumi.Output; /** * Create a Peering 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: PeeringArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering Peering resources. */ export interface PeeringState { /** * The full names of the Google Compute Engine networks to which the instance is connected. Caller needs to make sure that CIDR subnets do not overlap between networks, else peering creation will fail. */ authorizedNetwork?: pulumi.Input; /** * Full domain resource path for the Managed AD Domain involved in peering. The resource path should be in the form projects/{projectId}/locations/global/domains/{domainName} */ domainResource?: pulumi.Input; /** * All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. */ effectiveLabels?: pulumi.Input<{ [key: string]: pulumi.Input; }>; /** * Resource labels that can contain user-provided metadata * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. * Please refer to the field `effectiveLabels` for all of the labels present on the resource. */ labels?: pulumi.Input<{ [key: string]: pulumi.Input; }>; /** * Unique name of the peering in this scope including projects and location using the form: projects/{projectId}/locations/global/peerings/{peeringId}. */ name?: pulumi.Input; /** * (Required) */ peeringId?: pulumi.Input; /** * The ID of the project in which the resource belongs. * If it is not provided, the provider project is used. */ project?: pulumi.Input; /** * The combination of labels configured directly on the resource * and default labels configured on the provider. */ pulumiLabels?: pulumi.Input<{ [key: string]: pulumi.Input; }>; /** * The current state of this Peering. */ status?: pulumi.Input; /** * Additional information about the current status of this peering, if available. */ statusMessage?: pulumi.Input; } /** * The set of arguments for constructing a Peering resource. */ export interface PeeringArgs { /** * The full names of the Google Compute Engine networks to which the instance is connected. Caller needs to make sure that CIDR subnets do not overlap between networks, else peering creation will fail. */ authorizedNetwork: pulumi.Input; /** * Full domain resource path for the Managed AD Domain involved in peering. The resource path should be in the form projects/{projectId}/locations/global/domains/{domainName} */ domainResource: pulumi.Input; /** * Resource labels that can contain user-provided metadata * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. * Please refer to the field `effectiveLabels` for all of the labels present on the resource. */ labels?: pulumi.Input<{ [key: string]: pulumi.Input; }>; /** * (Required) */ peeringId: pulumi.Input; /** * The ID of the project in which the resource belongs. * If it is not provided, the provider project is used. */ project?: pulumi.Input; /** * The current state of this Peering. */ status?: pulumi.Input; /** * Additional information about the current status of this peering, if available. */ statusMessage?: pulumi.Input; }