com.microsoft.azure.management.resources.PolicyDefinition Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of azure-mgmt-resources Show documentation
Show all versions of azure-mgmt-resources Show documentation
This package contains Microsoft Azure Resource Management SDK.
/**
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for
* license information.
*/
package com.microsoft.azure.management.resources;
import com.microsoft.azure.management.apigeneration.Fluent;
import com.microsoft.azure.management.resources.fluentcore.arm.models.HasId;
import com.microsoft.azure.management.resources.fluentcore.arm.models.HasName;
import com.microsoft.azure.management.resources.fluentcore.model.Appliable;
import com.microsoft.azure.management.resources.fluentcore.model.Creatable;
import com.microsoft.azure.management.resources.fluentcore.model.Indexable;
import com.microsoft.azure.management.resources.fluentcore.model.Refreshable;
import com.microsoft.azure.management.resources.fluentcore.model.Updatable;
import com.microsoft.azure.management.resources.fluentcore.model.HasInner;
import com.microsoft.azure.management.resources.implementation.PolicyDefinitionInner;
/**
* An immutable client-side representation of an Azure policy.
*/
@Fluent
public interface PolicyDefinition extends
HasName,
HasId,
Indexable,
Refreshable,
Updatable,
HasInner {
/**
* @return the type of the policy definition
*/
PolicyType policyType();
/**
* @return the policy definition display name
*/
String displayName();
/**
* @return the policy definition description
*/
String description();
/**
* @return the policy rule
*/
Object policyRule();
/**
* Container interface for all the definitions that need to be implemented.
*/
interface Definition extends
DefinitionStages.Blank,
DefinitionStages.WithCreate {
}
/**
* Grouping of all the policy definition stages.
*/
interface DefinitionStages {
/**
* The first stage of the policy definition.
*/
interface Blank extends WithPolicyRule {
}
/**
* A policy definition allowing the policy rule to be set.
*/
interface WithPolicyRule {
/**
* Specifies the rule of the policy.
*
* @param policyRule the rule object
* @return the next stage of policy definition
*/
WithCreate withPolicyRule(Object policyRule);
/**
* Specifies the rule of the policy in JSON format.
*
* @param policyRuleJson the rule object
* @return the next stage of policy definition
*/
WithCreate withPolicyRuleJson(String policyRuleJson);
}
/**
* A policy definition specifying the policy type to be blob.
*/
interface WithPolicyType {
/**
* Specifies the type of the policy. The default value is 'NotSpecified'.
*
* @param policyType the policy type enum
* @return the next stage of policy definition
*/
WithCreate withPolicyType(PolicyType policyType);
}
/**
* A policy definition allowing the display name to be set.
*/
interface WithDisplayName {
/**
* Specifies the display name of the policy.
*
* @param displayName the display name of the policy
* @return the next stage of policy definition
*/
WithCreate withDisplayName(String displayName);
}
/**
* A policy definition allowing policy description to be set.
*/
interface WithDescription {
/**
* Specifies the description of the policy.
*
* @param description the description of the policy
* @return the next stage of policy definition
*/
WithCreate withDescription(String description);
}
/**
* A policy definition with sufficient inputs to create a new
* policy in the cloud, but exposing additional optional inputs to
* specify.
*/
interface WithCreate extends
Creatable,
DefinitionStages.WithDescription,
DefinitionStages.WithDisplayName,
DefinitionStages.WithPolicyType {
}
}
/**
* Grouping of all the policy update stages.
*/
interface UpdateStages {
/**
* A policy definition allowing the policy rule to be set.
*/
interface WithPolicyRule {
/**
* Specifies the rule of the policy.
*
* @param policyRule the rule object
* @return the next stage of policy update
*/
Update withPolicyRule(Object policyRule);
}
/**
* A policy definition allowing the policy type to be set.
*/
interface WithPolicyType {
/**
* Specifies the type of the policy. The default value is 'NotSpecified'.
*
* @param policyType the policy type enum
* @return the next stage of policy update
*/
Update withPolicyType(PolicyType policyType);
}
/**
* A policy definition allowing the display name to be set.
*/
interface WithDisplayName {
/**
* Specifies the display name of the policy.
*
* @param displayName the display name of the policy
* @return the next stage of policy update
*/
Update withDisplayName(String displayName);
}
/**
* A policy definition allowing the policy description to be set.
*/
interface WithDescription {
/**
* Specifies the description of the policy.
*
* @param description the description of the policy
* @return the next stage of policy update
*/
Update withDescription(String description);
}
}
/**
* The template for a policy update operation, containing all the settings that can be modified.
*/
interface Update extends
Appliable,
UpdateStages.WithDescription,
UpdateStages.WithDisplayName,
UpdateStages.WithPolicyRule,
UpdateStages.WithPolicyType {
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy