import * as pulumi from "@pulumi/pulumi";
/**
* Manages an API Management API Policy
*
* ## Example Usage
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as azure from "@pulumi/azure";
*
* const example = azure.apimanagement.getApi({
* name: "my-api",
* apiManagementName: "example-apim",
* resourceGroupName: "search-service",
* revision: "2",
* });
* const exampleApiPolicy = new azure.apimanagement.ApiPolicy("example", {
* apiName: example.then(example => example.name),
* apiManagementName: example.then(example => example.apiManagementName),
* resourceGroupName: example.then(example => example.resourceGroupName),
* xmlContent: `
*
*
*
*
* `,
* });
* ```
*
* ## API Providers
*
*
* This resource uses the following Azure API Providers:
*
* * `Microsoft.ApiManagement` - 2022-08-01
*
* ## Import
*
* API Management API Policy can be imported using the `resource id`, e.g.
*
* ```sh
* $ pulumi import azure:apimanagement/apiPolicy:ApiPolicy example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.ApiManagement/service/service1/apis/exampleId
* ```
*/
export declare class ApiPolicy extends pulumi.CustomResource {
/**
* Get an existing ApiPolicy 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?: ApiPolicyState, opts?: pulumi.CustomResourceOptions): ApiPolicy;
/**
* Returns true if the given object is an instance of ApiPolicy. 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 ApiPolicy;
/**
* The name of the API Management Service. Changing this forces a new resource to be created.
*/
readonly apiManagementName: pulumi.Output;
/**
* The ID of the API Management API within the API Management Service. Changing this forces a new resource to be created.
*/
readonly apiName: pulumi.Output;
/**
* The name of the Resource Group in which the API Management Service exists. Changing this forces a new resource to be created.
*/
readonly resourceGroupName: pulumi.Output;
/**
* The XML Content for this Policy as a string.
*/
readonly xmlContent: pulumi.Output;
/**
* A link to a Policy XML Document, which must be publicly available.
*/
readonly xmlLink: pulumi.Output;
/**
* Create a ApiPolicy 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: ApiPolicyArgs, opts?: pulumi.CustomResourceOptions);
}
/**
* Input properties used for looking up and filtering ApiPolicy resources.
*/
export interface ApiPolicyState {
/**
* The name of the API Management Service. Changing this forces a new resource to be created.
*/
apiManagementName?: pulumi.Input;
/**
* The ID of the API Management API within the API Management Service. Changing this forces a new resource to be created.
*/
apiName?: pulumi.Input;
/**
* The name of the Resource Group in which the API Management Service exists. Changing this forces a new resource to be created.
*/
resourceGroupName?: pulumi.Input;
/**
* The XML Content for this Policy as a string.
*/
xmlContent?: pulumi.Input;
/**
* A link to a Policy XML Document, which must be publicly available.
*/
xmlLink?: pulumi.Input;
}
/**
* The set of arguments for constructing a ApiPolicy resource.
*/
export interface ApiPolicyArgs {
/**
* The name of the API Management Service. Changing this forces a new resource to be created.
*/
apiManagementName: pulumi.Input;
/**
* The ID of the API Management API within the API Management Service. Changing this forces a new resource to be created.
*/
apiName: pulumi.Input;
/**
* The name of the Resource Group in which the API Management Service exists. Changing this forces a new resource to be created.
*/
resourceGroupName: pulumi.Input;
/**
* The XML Content for this Policy as a string.
*/
xmlContent?: pulumi.Input;
/**
* A link to a Policy XML Document, which must be publicly available.
*/
xmlLink?: pulumi.Input;
}