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

package com.azure.resourcemanager.security.models;

import com.azure.core.annotation.Fluent;
import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.List;

/** Remediation details. */
@Fluent
public final class Remediation {
    /*
     * Remediation description.
     */
    @JsonProperty(value = "description")
    private String description;

    /*
     * Remediation script.
     */
    @JsonProperty(value = "scripts")
    private List<String> scripts;

    /*
     * Is remediation automated.
     */
    @JsonProperty(value = "automated")
    private Boolean automated;

    /*
     * Optional link to remediate in Azure Portal.
     */
    @JsonProperty(value = "portalLink")
    private String portalLink;

    /** Creates an instance of Remediation class. */
    public Remediation() {
    }

    /**
     * Get the description property: Remediation description.
     *
     * @return the description value.
     */
    public String description() {
        return this.description;
    }

    /**
     * Set the description property: Remediation description.
     *
     * @param description the description value to set.
     * @return the Remediation object itself.
     */
    public Remediation withDescription(String description) {
        this.description = description;
        return this;
    }

    /**
     * Get the scripts property: Remediation script.
     *
     * @return the scripts value.
     */
    public List<String> scripts() {
        return this.scripts;
    }

    /**
     * Set the scripts property: Remediation script.
     *
     * @param scripts the scripts value to set.
     * @return the Remediation object itself.
     */
    public Remediation withScripts(List<String> scripts) {
        this.scripts = scripts;
        return this;
    }

    /**
     * Get the automated property: Is remediation automated.
     *
     * @return the automated value.
     */
    public Boolean automated() {
        return this.automated;
    }

    /**
     * Set the automated property: Is remediation automated.
     *
     * @param automated the automated value to set.
     * @return the Remediation object itself.
     */
    public Remediation withAutomated(Boolean automated) {
        this.automated = automated;
        return this;
    }

    /**
     * Get the portalLink property: Optional link to remediate in Azure Portal.
     *
     * @return the portalLink value.
     */
    public String portalLink() {
        return this.portalLink;
    }

    /**
     * Set the portalLink property: Optional link to remediate in Azure Portal.
     *
     * @param portalLink the portalLink value to set.
     * @return the Remediation object itself.
     */
    public Remediation withPortalLink(String portalLink) {
        this.portalLink = portalLink;
        return this;
    }

    /**
     * Validates the instance.
     *
     * @throws IllegalArgumentException thrown if the instance is not valid.
     */
    public void validate() {
    }
}
