import * as pulumi from "@pulumi/pulumi";
/**
* Manages an API Management Workspace Policy.
*
* ## 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 exampleService = new azure.apimanagement.Service("example", {
* name: "example-apimanagement",
* location: example.location,
* resourceGroupName: example.name,
* publisherName: "pub1",
* publisherEmail: "pub1@email.com",
* skuName: "Premium_1",
* });
* const exampleWorkspace = new azure.apimanagement.Workspace("example", {
* name: "example-workspace",
* apiManagementId: exampleService.id,
* displayName: "my workspace",
* });
* const exampleWorkspacePolicy = new azure.apimanagement.WorkspacePolicy("example", {
* apiManagementWorkspaceId: exampleWorkspace.id,
* xmlContent: `
*
*
*
*
* `,
* });
* ```
*
* ## API Providers
*
*
* This resource uses the following Azure API Providers:
*
* * `Microsoft.ApiManagement` - 2024-05-01
*
* ## Import
*
* API Management Workspace Policies can be imported using the `resource id`, e.g.
*
* ```sh
* $ pulumi import azure:apimanagement/workspacePolicy:WorkspacePolicy example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.ApiManagement/service/service1/workspaces/workspace1
* ```
*/
export declare class WorkspacePolicy extends pulumi.CustomResource {
/**
* Get an existing WorkspacePolicy 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?: WorkspacePolicyState, opts?: pulumi.CustomResourceOptions): WorkspacePolicy;
/**
* Returns true if the given object is an instance of WorkspacePolicy. 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 WorkspacePolicy;
/**
* Specifies the ID of the API Management Workspace. Changing this forces a new resource to be created.
*/
readonly apiManagementWorkspaceId: pulumi.Output;
/**
* Specifies the API Management Workspace Policy as an XML string.
*/
readonly xmlContent: pulumi.Output;
/**
* Specifies a publicly accessible URL to a policy XML document.
*
* > **Note:** Exactly one of `xmlContent` or `xmlLink` must be specified.
*/
readonly xmlLink: pulumi.Output;
/**
* Create a WorkspacePolicy 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: WorkspacePolicyArgs, opts?: pulumi.CustomResourceOptions);
}
/**
* Input properties used for looking up and filtering WorkspacePolicy resources.
*/
export interface WorkspacePolicyState {
/**
* Specifies the ID of the API Management Workspace. Changing this forces a new resource to be created.
*/
apiManagementWorkspaceId?: pulumi.Input;
/**
* Specifies the API Management Workspace Policy as an XML string.
*/
xmlContent?: pulumi.Input;
/**
* Specifies a publicly accessible URL to a policy XML document.
*
* > **Note:** Exactly one of `xmlContent` or `xmlLink` must be specified.
*/
xmlLink?: pulumi.Input;
}
/**
* The set of arguments for constructing a WorkspacePolicy resource.
*/
export interface WorkspacePolicyArgs {
/**
* Specifies the ID of the API Management Workspace. Changing this forces a new resource to be created.
*/
apiManagementWorkspaceId: pulumi.Input;
/**
* Specifies the API Management Workspace Policy as an XML string.
*/
xmlContent?: pulumi.Input;
/**
* Specifies a publicly accessible URL to a policy XML document.
*
* > **Note:** Exactly one of `xmlContent` or `xmlLink` must be specified.
*/
xmlLink?: pulumi.Input;
}