import * as pulumi from "@pulumi/pulumi";
/**
 * Adds a trust between Active Directory domains
 *
 * To get more information about DomainTrust, see:
 *
 * * [API documentation](https://cloud.google.com/managed-microsoft-ad/reference/rest/v1/projects.locations.global.domains/attachTrust)
 * * How-to Guides
 *     * [Active Directory Trust](https://cloud.google.com/managed-microsoft-ad/docs/create-one-way-trust)
 *
 * ## Example Usage
 *
 * ### Active Directory Domain Trust Basic
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as gcp from "@pulumi/gcp";
 *
 * const ad_domain_trust = new gcp.activedirectory.DomainTrust("ad-domain-trust", {
 *     domain: "test-managed-ad.com",
 *     targetDomainName: "example-gcp.com",
 *     targetDnsIpAddresses: ["10.1.0.100"],
 *     trustDirection: "OUTBOUND",
 *     trustType: "FOREST",
 *     trustHandshakeSecret: "Testing1!",
 *     deletionProtection: false,
 * });
 * ```
 *
 * ## Import
 *
 * DomainTrust can be imported using any of these accepted formats:
 *
 * * `projects/{{project}}/locations/global/domains/{{domain}}/{{target_domain_name}}`
 *
 * * `{{project}}/{{domain}}/{{target_domain_name}}`
 *
 * * `{{domain}}/{{target_domain_name}}`
 *
 * When using the `pulumi import` command, DomainTrust can be imported using one of the formats above. For example:
 *
 * ```sh
 * $ pulumi import gcp:activedirectory/domainTrust:DomainTrust default projects/{{project}}/locations/global/domains/{{domain}}/{{target_domain_name}}
 * ```
 *
 * ```sh
 * $ pulumi import gcp:activedirectory/domainTrust:DomainTrust default {{project}}/{{domain}}/{{target_domain_name}}
 * ```
 *
 * ```sh
 * $ pulumi import gcp:activedirectory/domainTrust:DomainTrust default {{domain}}/{{target_domain_name}}
 * ```
 */
export declare class DomainTrust extends pulumi.CustomResource {
    /**
     * Get an existing DomainTrust 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<pulumi.ID>, state?: DomainTrustState, opts?: pulumi.CustomResourceOptions): DomainTrust;
    /**
     * Returns true if the given object is an instance of DomainTrust.  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 DomainTrust;
    /**
     * The fully qualified domain name. e.g. mydomain.myorganization.com, with the restrictions
     * of https://cloud.google.com/managed-microsoft-ad/reference/rest/v1/projects.locations.global.domains.
     */
    readonly domain: pulumi.Output<string>;
    /**
     * The ID of the project in which the resource belongs.
     * If it is not provided, the provider project is used.
     */
    readonly project: pulumi.Output<string>;
    /**
     * Whether the trusted side has forest/domain wide access or selective access to an approved set of resources.
     */
    readonly selectiveAuthentication: pulumi.Output<boolean | undefined>;
    /**
     * The target DNS server IP addresses which can resolve the remote domain involved in the trust.
     */
    readonly targetDnsIpAddresses: pulumi.Output<string[]>;
    /**
     * The fully qualified target domain name which will be in trust with the current domain.
     */
    readonly targetDomainName: pulumi.Output<string>;
    /**
     * The trust direction, which decides if the current domain is trusted, trusting, or both.
     * Possible values are: `INBOUND`, `OUTBOUND`, `BIDIRECTIONAL`.
     */
    readonly trustDirection: pulumi.Output<string>;
    /**
     * The trust secret used for the handshake with the target domain. This will not be stored.
     * **Note**: This property is sensitive and will not be displayed in the plan.
     */
    readonly trustHandshakeSecret: pulumi.Output<string>;
    /**
     * The type of trust represented by the trust resource.
     * Possible values are: `FOREST`, `EXTERNAL`.
     */
    readonly trustType: pulumi.Output<string>;
    /**
     * Create a DomainTrust 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: DomainTrustArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering DomainTrust resources.
 */
export interface DomainTrustState {
    /**
     * The fully qualified domain name. e.g. mydomain.myorganization.com, with the restrictions
     * of https://cloud.google.com/managed-microsoft-ad/reference/rest/v1/projects.locations.global.domains.
     */
    domain?: pulumi.Input<string>;
    /**
     * The ID of the project in which the resource belongs.
     * If it is not provided, the provider project is used.
     */
    project?: pulumi.Input<string>;
    /**
     * Whether the trusted side has forest/domain wide access or selective access to an approved set of resources.
     */
    selectiveAuthentication?: pulumi.Input<boolean>;
    /**
     * The target DNS server IP addresses which can resolve the remote domain involved in the trust.
     */
    targetDnsIpAddresses?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * The fully qualified target domain name which will be in trust with the current domain.
     */
    targetDomainName?: pulumi.Input<string>;
    /**
     * The trust direction, which decides if the current domain is trusted, trusting, or both.
     * Possible values are: `INBOUND`, `OUTBOUND`, `BIDIRECTIONAL`.
     */
    trustDirection?: pulumi.Input<string>;
    /**
     * The trust secret used for the handshake with the target domain. This will not be stored.
     * **Note**: This property is sensitive and will not be displayed in the plan.
     */
    trustHandshakeSecret?: pulumi.Input<string>;
    /**
     * The type of trust represented by the trust resource.
     * Possible values are: `FOREST`, `EXTERNAL`.
     */
    trustType?: pulumi.Input<string>;
}
/**
 * The set of arguments for constructing a DomainTrust resource.
 */
export interface DomainTrustArgs {
    /**
     * The fully qualified domain name. e.g. mydomain.myorganization.com, with the restrictions
     * of https://cloud.google.com/managed-microsoft-ad/reference/rest/v1/projects.locations.global.domains.
     */
    domain: pulumi.Input<string>;
    /**
     * The ID of the project in which the resource belongs.
     * If it is not provided, the provider project is used.
     */
    project?: pulumi.Input<string>;
    /**
     * Whether the trusted side has forest/domain wide access or selective access to an approved set of resources.
     */
    selectiveAuthentication?: pulumi.Input<boolean>;
    /**
     * The target DNS server IP addresses which can resolve the remote domain involved in the trust.
     */
    targetDnsIpAddresses: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * The fully qualified target domain name which will be in trust with the current domain.
     */
    targetDomainName: pulumi.Input<string>;
    /**
     * The trust direction, which decides if the current domain is trusted, trusting, or both.
     * Possible values are: `INBOUND`, `OUTBOUND`, `BIDIRECTIONAL`.
     */
    trustDirection: pulumi.Input<string>;
    /**
     * The trust secret used for the handshake with the target domain. This will not be stored.
     * **Note**: This property is sensitive and will not be displayed in the plan.
     */
    trustHandshakeSecret: pulumi.Input<string>;
    /**
     * The type of trust represented by the trust resource.
     * Possible values are: `FOREST`, `EXTERNAL`.
     */
    trustType: pulumi.Input<string>;
}
