import * as pulumi from "@pulumi/pulumi";
/**
* Manages an API Management API Operation 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-apim",
* location: example.location,
* resourceGroupName: example.name,
* publisherName: "My Company",
* publisherEmail: "company@terraform.io",
* skuName: "Developer_1",
* });
* const exampleApi = new azure.apimanagement.Api("example", {
* name: "example-api",
* resourceGroupName: example.name,
* apiManagementName: exampleService.name,
* revision: "1",
* });
* const exampleApiOperation = new azure.apimanagement.ApiOperation("example", {
* operationId: "acctest-operation",
* apiName: exampleApi.name,
* apiManagementName: exampleService.name,
* resourceGroupName: example.name,
* displayName: "DELETE Resource",
* method: "DELETE",
* urlTemplate: "/resource",
* });
* const exampleApiOperationPolicy = new azure.apimanagement.ApiOperationPolicy("example", {
* apiName: exampleApiOperation.apiName,
* apiManagementName: exampleApiOperation.apiManagementName,
* resourceGroupName: exampleApiOperation.resourceGroupName,
* operationId: exampleApiOperation.operationId,
* xmlContent: `
*
*
*
*
* `,
* });
* ```
*
* ## API Providers
*
*
* This resource uses the following Azure API Providers:
*
* * `Microsoft.ApiManagement` - 2022-08-01
*
* ## Import
*
* API Management API Operation Policy can be imported using the `resource id`, e.g.
*
* ```sh
* $ pulumi import azure:apimanagement/apiOperationPolicy:ApiOperationPolicy example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.ApiManagement/service/instance1/apis/api1/operations/operation1
* ```
*/
export declare class ApiOperationPolicy extends pulumi.CustomResource {
/**
* Get an existing ApiOperationPolicy 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?: ApiOperationPolicyState, opts?: pulumi.CustomResourceOptions): ApiOperationPolicy;
/**
* Returns true if the given object is an instance of ApiOperationPolicy. 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 ApiOperationPolicy;
/**
* The name of the API Management Service. Changing this forces a new resource to be created.
*/
readonly apiManagementName: pulumi.Output;
/**
* The name of the API within the API Management Service where the Operation exists. Changing this forces a new resource to be created.
*/
readonly apiName: pulumi.Output;
/**
* The operation identifier within an API. Must be unique in the current API Management service instance. Changing this forces a new resource to be created.
*/
readonly operationId: 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.
*/
readonly xmlContent: pulumi.Output;
/**
* A link to a Policy XML Document, which must be publicly available.
*/
readonly xmlLink: pulumi.Output;
/**
* Create a ApiOperationPolicy 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: ApiOperationPolicyArgs, opts?: pulumi.CustomResourceOptions);
}
/**
* Input properties used for looking up and filtering ApiOperationPolicy resources.
*/
export interface ApiOperationPolicyState {
/**
* The name of the API Management Service. Changing this forces a new resource to be created.
*/
apiManagementName?: pulumi.Input;
/**
* The name of the API within the API Management Service where the Operation exists. Changing this forces a new resource to be created.
*/
apiName?: pulumi.Input;
/**
* The operation identifier within an API. Must be unique in the current API Management service instance. Changing this forces a new resource to be created.
*/
operationId?: 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.
*/
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 ApiOperationPolicy resource.
*/
export interface ApiOperationPolicyArgs {
/**
* The name of the API Management Service. Changing this forces a new resource to be created.
*/
apiManagementName: pulumi.Input;
/**
* The name of the API within the API Management Service where the Operation exists. Changing this forces a new resource to be created.
*/
apiName: pulumi.Input;
/**
* The operation identifier within an API. Must be unique in the current API Management service instance. Changing this forces a new resource to be created.
*/
operationId: 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.
*/
xmlContent?: pulumi.Input;
/**
* A link to a Policy XML Document, which must be publicly available.
*/
xmlLink?: pulumi.Input;
}