import * as pulumi from "@pulumi/pulumi";
/**
 * Manages a Network Security Perimeter Association.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as azure from "@pulumi/azure";
 *
 * const example = new azure.core.ResourceGroup("example", {
 *     name: "example-resources",
 *     location: "West Europe",
 * });
 * const exampleAnalyticsWorkspace = new azure.operationalinsights.AnalyticsWorkspace("example", {
 *     name: "example",
 *     location: "West Europe",
 *     resourceGroupName: example.name,
 * });
 * const exampleNetworkSecurityPerimeter = new azure.network.NetworkSecurityPerimeter("example", {
 *     name: "example",
 *     resourceGroupName: example.name,
 *     location: "West Europe",
 * });
 * const exampleNetworkSecurityPerimeterProfile = new azure.network.NetworkSecurityPerimeterProfile("example", {
 *     name: "example",
 *     networkSecurityPerimeterId: exampleNetworkSecurityPerimeter.id,
 * });
 * const exampleNetworkSecurityPerimeterAssociation = new azure.network.NetworkSecurityPerimeterAssociation("example", {
 *     name: "example",
 *     accessMode: "Enforced",
 *     networkSecurityPerimeterProfileId: exampleNetworkSecurityPerimeterProfile.id,
 *     resourceId: exampleAnalyticsWorkspace.id,
 * });
 * ```
 *
 * ## API Providers
 *
 * <!-- This section is generated, changes will be overwritten -->
 * This resource uses the following Azure API Providers:
 *
 * * `Microsoft.Network` - 2025-01-01
 *
 * ## Import
 *
 * Network Security Perimeter Associations can be imported using the `resource id`, e.g.
 *
 * ```sh
 * $ pulumi import azure:network/networkSecurityPerimeterAssociation:NetworkSecurityPerimeterAssociation example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example-rg/providers/Microsoft.Network/networkSecurityPerimeters/example-nsp/resourceAssociations/example-assoc
 * ```
 */
export declare class NetworkSecurityPerimeterAssociation extends pulumi.CustomResource {
    /**
     * Get an existing NetworkSecurityPerimeterAssociation 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?: NetworkSecurityPerimeterAssociationState, opts?: pulumi.CustomResourceOptions): NetworkSecurityPerimeterAssociation;
    /**
     * Returns true if the given object is an instance of NetworkSecurityPerimeterAssociation.  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 NetworkSecurityPerimeterAssociation;
    /**
     * Access mode for the associated resource on the Network Security Perimeter. Possible values are `Audit`, `Enforced`, and `Learning`.
     */
    readonly accessMode: pulumi.Output<string>;
    /**
     * The name which should be used for this Network Security Perimeter Association. Changing this forces a new Network Security Perimeter Association to be created.
     */
    readonly name: pulumi.Output<string>;
    /**
     * The ID of the Network Security Perimeter Profile. Changing this forces a new Network Security Perimeter Association to be created.
     */
    readonly networkSecurityPerimeterProfileId: pulumi.Output<string>;
    /**
     * The ID of the associated resource. Changing this forces a new Network Security Perimeter Association to be created.
     *
     * > **Note:** A resource can only be associated with one Network Security Perimeter at a time.
     * If the target resource is already associated with another Network Security Perimeter, the creation of this association may appear to succeed in Terraform but will not be reflected in Azure. In such cases, the association will not actually exist and subsequent Terraform operations may show unexpected behavior.
     */
    readonly resourceId: pulumi.Output<string>;
    /**
     * Create a NetworkSecurityPerimeterAssociation 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: NetworkSecurityPerimeterAssociationArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering NetworkSecurityPerimeterAssociation resources.
 */
export interface NetworkSecurityPerimeterAssociationState {
    /**
     * Access mode for the associated resource on the Network Security Perimeter. Possible values are `Audit`, `Enforced`, and `Learning`.
     */
    accessMode?: pulumi.Input<string | undefined>;
    /**
     * The name which should be used for this Network Security Perimeter Association. Changing this forces a new Network Security Perimeter Association to be created.
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * The ID of the Network Security Perimeter Profile. Changing this forces a new Network Security Perimeter Association to be created.
     */
    networkSecurityPerimeterProfileId?: pulumi.Input<string | undefined>;
    /**
     * The ID of the associated resource. Changing this forces a new Network Security Perimeter Association to be created.
     *
     * > **Note:** A resource can only be associated with one Network Security Perimeter at a time.
     * If the target resource is already associated with another Network Security Perimeter, the creation of this association may appear to succeed in Terraform but will not be reflected in Azure. In such cases, the association will not actually exist and subsequent Terraform operations may show unexpected behavior.
     */
    resourceId?: pulumi.Input<string | undefined>;
}
/**
 * The set of arguments for constructing a NetworkSecurityPerimeterAssociation resource.
 */
export interface NetworkSecurityPerimeterAssociationArgs {
    /**
     * Access mode for the associated resource on the Network Security Perimeter. Possible values are `Audit`, `Enforced`, and `Learning`.
     */
    accessMode: pulumi.Input<string>;
    /**
     * The name which should be used for this Network Security Perimeter Association. Changing this forces a new Network Security Perimeter Association to be created.
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * The ID of the Network Security Perimeter Profile. Changing this forces a new Network Security Perimeter Association to be created.
     */
    networkSecurityPerimeterProfileId: pulumi.Input<string>;
    /**
     * The ID of the associated resource. Changing this forces a new Network Security Perimeter Association to be created.
     *
     * > **Note:** A resource can only be associated with one Network Security Perimeter at a time.
     * If the target resource is already associated with another Network Security Perimeter, the creation of this association may appear to succeed in Terraform but will not be reflected in Azure. In such cases, the association will not actually exist and subsequent Terraform operations may show unexpected behavior.
     */
    resourceId: pulumi.Input<string>;
}
//# sourceMappingURL=networkSecurityPerimeterAssociation.d.ts.map