All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.azure.resourcemanager.policyinsights.models.Remediation Maven / Gradle / Ivy

// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
// Code generated by Microsoft (R) AutoRest Code Generator.

package com.azure.resourcemanager.policyinsights.models;

import com.azure.core.http.rest.PagedIterable;
import com.azure.core.http.rest.Response;
import com.azure.core.management.SystemData;
import com.azure.core.util.Context;
import com.azure.resourcemanager.policyinsights.fluent.models.RemediationInner;
import java.time.OffsetDateTime;

/**
 * An immutable client-side representation of Remediation.
 */
public interface Remediation {
    /**
     * Gets the id property: Fully qualified resource Id for the resource.
     * 
     * @return the id value.
     */
    String id();

    /**
     * Gets the name property: The name of the resource.
     * 
     * @return the name value.
     */
    String name();

    /**
     * Gets the type property: The type of the resource.
     * 
     * @return the type value.
     */
    String type();

    /**
     * Gets the systemData property: Azure Resource Manager metadata containing createdBy and modifiedBy information.
     * 
     * @return the systemData value.
     */
    SystemData systemData();

    /**
     * Gets the policyAssignmentId property: The resource ID of the policy assignment that should be remediated.
     * 
     * @return the policyAssignmentId value.
     */
    String policyAssignmentId();

    /**
     * Gets the policyDefinitionReferenceId property: The policy definition reference ID of the individual definition
     * that should be remediated. Required when the policy assignment being remediated assigns a policy set definition.
     * 
     * @return the policyDefinitionReferenceId value.
     */
    String policyDefinitionReferenceId();

    /**
     * Gets the resourceDiscoveryMode property: The way resources to remediate are discovered. Defaults to
     * ExistingNonCompliant if not specified.
     * 
     * @return the resourceDiscoveryMode value.
     */
    ResourceDiscoveryMode resourceDiscoveryMode();

    /**
     * Gets the provisioningState property: The status of the remediation. This refers to the entire remediation task,
     * not individual deployments. Allowed values are Evaluating, Canceled, Cancelling, Failed, Complete, or Succeeded.
     * 
     * @return the provisioningState value.
     */
    String provisioningState();

    /**
     * Gets the createdOn property: The time at which the remediation was created.
     * 
     * @return the createdOn value.
     */
    OffsetDateTime createdOn();

    /**
     * Gets the lastUpdatedOn property: The time at which the remediation was last updated.
     * 
     * @return the lastUpdatedOn value.
     */
    OffsetDateTime lastUpdatedOn();

    /**
     * Gets the filters property: The filters that will be applied to determine which resources to remediate.
     * 
     * @return the filters value.
     */
    RemediationFilters filters();

    /**
     * Gets the deploymentStatus property: The deployment status summary for all deployments created by the remediation.
     * 
     * @return the deploymentStatus value.
     */
    RemediationDeploymentSummary deploymentStatus();

    /**
     * Gets the statusMessage property: The remediation status message. Provides additional details regarding the state
     * of the remediation.
     * 
     * @return the statusMessage value.
     */
    String statusMessage();

    /**
     * Gets the correlationId property: The remediation correlation Id. Can be used to find events related to the
     * remediation in the activity log.
     * 
     * @return the correlationId value.
     */
    String correlationId();

    /**
     * Gets the resourceCount property: Determines the max number of resources that can be remediated by the remediation
     * job. If not provided, the default resource count is used.
     * 
     * @return the resourceCount value.
     */
    Integer resourceCount();

    /**
     * Gets the parallelDeployments property: Determines how many resources to remediate at any given time. Can be used
     * to increase or reduce the pace of the remediation. If not provided, the default parallel deployments value is
     * used.
     * 
     * @return the parallelDeployments value.
     */
    Integer parallelDeployments();

    /**
     * Gets the failureThreshold property: The remediation failure threshold settings.
     * 
     * @return the failureThreshold value.
     */
    RemediationPropertiesFailureThreshold failureThreshold();

    /**
     * Gets the name of the resource group.
     * 
     * @return the name of the resource group.
     */
    String resourceGroupName();

    /**
     * Gets the inner com.azure.resourcemanager.policyinsights.fluent.models.RemediationInner object.
     * 
     * @return the inner object.
     */
    RemediationInner innerModel();

    /**
     * The entirety of the Remediation definition.
     */
    interface Definition
        extends DefinitionStages.Blank, DefinitionStages.WithResourceGroup, DefinitionStages.WithCreate {
    }

    /**
     * The Remediation definition stages.
     */
    interface DefinitionStages {
        /**
         * The first stage of the Remediation definition.
         */
        interface Blank extends WithResourceGroup {
        }

        /**
         * The stage of the Remediation definition allowing to specify parent resource.
         */
        interface WithResourceGroup {
            /**
             * Specifies resourceGroupName.
             * 
             * @param resourceGroupName Resource group name.
             * @return the next definition stage.
             */
            WithCreate withExistingResourceGroup(String resourceGroupName);
        }

        /**
         * The stage of the Remediation definition which contains all the minimum required properties for the resource
         * to be created, but also allows for any other optional properties to be specified.
         */
        interface WithCreate extends DefinitionStages.WithPolicyAssignmentId,
            DefinitionStages.WithPolicyDefinitionReferenceId, DefinitionStages.WithResourceDiscoveryMode,
            DefinitionStages.WithFilters, DefinitionStages.WithResourceCount, DefinitionStages.WithParallelDeployments,
            DefinitionStages.WithFailureThreshold {
            /**
             * Executes the create request.
             * 
             * @return the created resource.
             */
            Remediation create();

            /**
             * Executes the create request.
             * 
             * @param context The context to associate with this operation.
             * @return the created resource.
             */
            Remediation create(Context context);
        }

        /**
         * The stage of the Remediation definition allowing to specify policyAssignmentId.
         */
        interface WithPolicyAssignmentId {
            /**
             * Specifies the policyAssignmentId property: The resource ID of the policy assignment that should be
             * remediated..
             * 
             * @param policyAssignmentId The resource ID of the policy assignment that should be remediated.
             * @return the next definition stage.
             */
            WithCreate withPolicyAssignmentId(String policyAssignmentId);
        }

        /**
         * The stage of the Remediation definition allowing to specify policyDefinitionReferenceId.
         */
        interface WithPolicyDefinitionReferenceId {
            /**
             * Specifies the policyDefinitionReferenceId property: The policy definition reference ID of the individual
             * definition that should be remediated. Required when the policy assignment being remediated assigns a
             * policy set definition..
             * 
             * @param policyDefinitionReferenceId The policy definition reference ID of the individual definition that
             * should be remediated. Required when the policy assignment being remediated assigns a policy set
             * definition.
             * @return the next definition stage.
             */
            WithCreate withPolicyDefinitionReferenceId(String policyDefinitionReferenceId);
        }

        /**
         * The stage of the Remediation definition allowing to specify resourceDiscoveryMode.
         */
        interface WithResourceDiscoveryMode {
            /**
             * Specifies the resourceDiscoveryMode property: The way resources to remediate are discovered. Defaults to
             * ExistingNonCompliant if not specified..
             * 
             * @param resourceDiscoveryMode The way resources to remediate are discovered. Defaults to
             * ExistingNonCompliant if not specified.
             * @return the next definition stage.
             */
            WithCreate withResourceDiscoveryMode(ResourceDiscoveryMode resourceDiscoveryMode);
        }

        /**
         * The stage of the Remediation definition allowing to specify filters.
         */
        interface WithFilters {
            /**
             * Specifies the filters property: The filters that will be applied to determine which resources to
             * remediate..
             * 
             * @param filters The filters that will be applied to determine which resources to remediate.
             * @return the next definition stage.
             */
            WithCreate withFilters(RemediationFilters filters);
        }

        /**
         * The stage of the Remediation definition allowing to specify resourceCount.
         */
        interface WithResourceCount {
            /**
             * Specifies the resourceCount property: Determines the max number of resources that can be remediated by
             * the remediation job. If not provided, the default resource count is used..
             * 
             * @param resourceCount Determines the max number of resources that can be remediated by the remediation
             * job. If not provided, the default resource count is used.
             * @return the next definition stage.
             */
            WithCreate withResourceCount(Integer resourceCount);
        }

        /**
         * The stage of the Remediation definition allowing to specify parallelDeployments.
         */
        interface WithParallelDeployments {
            /**
             * Specifies the parallelDeployments property: Determines how many resources to remediate at any given time.
             * Can be used to increase or reduce the pace of the remediation. If not provided, the default parallel
             * deployments value is used..
             * 
             * @param parallelDeployments Determines how many resources to remediate at any given time. Can be used to
             * increase or reduce the pace of the remediation. If not provided, the default parallel deployments value
             * is used.
             * @return the next definition stage.
             */
            WithCreate withParallelDeployments(Integer parallelDeployments);
        }

        /**
         * The stage of the Remediation definition allowing to specify failureThreshold.
         */
        interface WithFailureThreshold {
            /**
             * Specifies the failureThreshold property: The remediation failure threshold settings.
             * 
             * @param failureThreshold The remediation failure threshold settings.
             * @return the next definition stage.
             */
            WithCreate withFailureThreshold(RemediationPropertiesFailureThreshold failureThreshold);
        }
    }

    /**
     * Begins update for the Remediation resource.
     * 
     * @return the stage of resource update.
     */
    Remediation.Update update();

    /**
     * The template for Remediation update.
     */
    interface Update extends UpdateStages.WithPolicyAssignmentId, UpdateStages.WithPolicyDefinitionReferenceId,
        UpdateStages.WithResourceDiscoveryMode, UpdateStages.WithFilters, UpdateStages.WithResourceCount,
        UpdateStages.WithParallelDeployments, UpdateStages.WithFailureThreshold {
        /**
         * Executes the update request.
         * 
         * @return the updated resource.
         */
        Remediation apply();

        /**
         * Executes the update request.
         * 
         * @param context The context to associate with this operation.
         * @return the updated resource.
         */
        Remediation apply(Context context);
    }

    /**
     * The Remediation update stages.
     */
    interface UpdateStages {
        /**
         * The stage of the Remediation update allowing to specify policyAssignmentId.
         */
        interface WithPolicyAssignmentId {
            /**
             * Specifies the policyAssignmentId property: The resource ID of the policy assignment that should be
             * remediated..
             * 
             * @param policyAssignmentId The resource ID of the policy assignment that should be remediated.
             * @return the next definition stage.
             */
            Update withPolicyAssignmentId(String policyAssignmentId);
        }

        /**
         * The stage of the Remediation update allowing to specify policyDefinitionReferenceId.
         */
        interface WithPolicyDefinitionReferenceId {
            /**
             * Specifies the policyDefinitionReferenceId property: The policy definition reference ID of the individual
             * definition that should be remediated. Required when the policy assignment being remediated assigns a
             * policy set definition..
             * 
             * @param policyDefinitionReferenceId The policy definition reference ID of the individual definition that
             * should be remediated. Required when the policy assignment being remediated assigns a policy set
             * definition.
             * @return the next definition stage.
             */
            Update withPolicyDefinitionReferenceId(String policyDefinitionReferenceId);
        }

        /**
         * The stage of the Remediation update allowing to specify resourceDiscoveryMode.
         */
        interface WithResourceDiscoveryMode {
            /**
             * Specifies the resourceDiscoveryMode property: The way resources to remediate are discovered. Defaults to
             * ExistingNonCompliant if not specified..
             * 
             * @param resourceDiscoveryMode The way resources to remediate are discovered. Defaults to
             * ExistingNonCompliant if not specified.
             * @return the next definition stage.
             */
            Update withResourceDiscoveryMode(ResourceDiscoveryMode resourceDiscoveryMode);
        }

        /**
         * The stage of the Remediation update allowing to specify filters.
         */
        interface WithFilters {
            /**
             * Specifies the filters property: The filters that will be applied to determine which resources to
             * remediate..
             * 
             * @param filters The filters that will be applied to determine which resources to remediate.
             * @return the next definition stage.
             */
            Update withFilters(RemediationFilters filters);
        }

        /**
         * The stage of the Remediation update allowing to specify resourceCount.
         */
        interface WithResourceCount {
            /**
             * Specifies the resourceCount property: Determines the max number of resources that can be remediated by
             * the remediation job. If not provided, the default resource count is used..
             * 
             * @param resourceCount Determines the max number of resources that can be remediated by the remediation
             * job. If not provided, the default resource count is used.
             * @return the next definition stage.
             */
            Update withResourceCount(Integer resourceCount);
        }

        /**
         * The stage of the Remediation update allowing to specify parallelDeployments.
         */
        interface WithParallelDeployments {
            /**
             * Specifies the parallelDeployments property: Determines how many resources to remediate at any given time.
             * Can be used to increase or reduce the pace of the remediation. If not provided, the default parallel
             * deployments value is used..
             * 
             * @param parallelDeployments Determines how many resources to remediate at any given time. Can be used to
             * increase or reduce the pace of the remediation. If not provided, the default parallel deployments value
             * is used.
             * @return the next definition stage.
             */
            Update withParallelDeployments(Integer parallelDeployments);
        }

        /**
         * The stage of the Remediation update allowing to specify failureThreshold.
         */
        interface WithFailureThreshold {
            /**
             * Specifies the failureThreshold property: The remediation failure threshold settings.
             * 
             * @param failureThreshold The remediation failure threshold settings.
             * @return the next definition stage.
             */
            Update withFailureThreshold(RemediationPropertiesFailureThreshold failureThreshold);
        }
    }

    /**
     * Refreshes the resource to sync with Azure.
     * 
     * @return the refreshed resource.
     */
    Remediation refresh();

    /**
     * Refreshes the resource to sync with Azure.
     * 
     * @param context The context to associate with this operation.
     * @return the refreshed resource.
     */
    Remediation refresh(Context context);

    /**
     * Gets all deployments for a remediation at resource group scope.
     * 
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return all deployments for a remediation at resource group scope as paginated response with
     * {@link PagedIterable}.
     */
    PagedIterable listDeploymentsAtResourceGroup();

    /**
     * Gets all deployments for a remediation at resource group scope.
     * 
     * @param top Maximum number of records to return.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return all deployments for a remediation at resource group scope as paginated response with
     * {@link PagedIterable}.
     */
    PagedIterable listDeploymentsAtResourceGroup(Integer top, Context context);

    /**
     * Cancels a remediation at resource group scope.
     * 
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the remediation definition along with {@link Response}.
     */
    Response cancelAtResourceGroupWithResponse(Context context);

    /**
     * Cancels a remediation at resource group scope.
     * 
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the remediation definition.
     */
    Remediation cancelAtResourceGroup();
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy