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

com.pulumi.azurenative.policyinsights.AttestationAtResourceGroupArgs Maven / Gradle / Ivy

There is a newer version: 2.72.0
Show newest version
// *** WARNING: this file was generated by pulumi-java-gen. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***

package com.pulumi.azurenative.policyinsights;

import com.pulumi.azurenative.policyinsights.enums.ComplianceState;
import com.pulumi.azurenative.policyinsights.inputs.AttestationEvidenceArgs;
import com.pulumi.core.Either;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.Object;
import java.lang.String;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


public final class AttestationAtResourceGroupArgs extends com.pulumi.resources.ResourceArgs {

    public static final AttestationAtResourceGroupArgs Empty = new AttestationAtResourceGroupArgs();

    /**
     * The time the evidence was assessed
     * 
     */
    @Import(name="assessmentDate")
    private @Nullable Output assessmentDate;

    /**
     * @return The time the evidence was assessed
     * 
     */
    public Optional> assessmentDate() {
        return Optional.ofNullable(this.assessmentDate);
    }

    /**
     * The name of the attestation.
     * 
     */
    @Import(name="attestationName")
    private @Nullable Output attestationName;

    /**
     * @return The name of the attestation.
     * 
     */
    public Optional> attestationName() {
        return Optional.ofNullable(this.attestationName);
    }

    /**
     * Comments describing why this attestation was created.
     * 
     */
    @Import(name="comments")
    private @Nullable Output comments;

    /**
     * @return Comments describing why this attestation was created.
     * 
     */
    public Optional> comments() {
        return Optional.ofNullable(this.comments);
    }

    /**
     * The compliance state that should be set on the resource.
     * 
     */
    @Import(name="complianceState")
    private @Nullable Output> complianceState;

    /**
     * @return The compliance state that should be set on the resource.
     * 
     */
    public Optional>> complianceState() {
        return Optional.ofNullable(this.complianceState);
    }

    /**
     * The evidence supporting the compliance state set in this attestation.
     * 
     */
    @Import(name="evidence")
    private @Nullable Output> evidence;

    /**
     * @return The evidence supporting the compliance state set in this attestation.
     * 
     */
    public Optional>> evidence() {
        return Optional.ofNullable(this.evidence);
    }

    /**
     * The time the compliance state should expire.
     * 
     */
    @Import(name="expiresOn")
    private @Nullable Output expiresOn;

    /**
     * @return The time the compliance state should expire.
     * 
     */
    public Optional> expiresOn() {
        return Optional.ofNullable(this.expiresOn);
    }

    /**
     * Additional metadata for this attestation
     * 
     */
    @Import(name="metadata")
    private @Nullable Output metadata;

    /**
     * @return Additional metadata for this attestation
     * 
     */
    public Optional> metadata() {
        return Optional.ofNullable(this.metadata);
    }

    /**
     * The person responsible for setting the state of the resource. This value is typically an Azure Active Directory object ID.
     * 
     */
    @Import(name="owner")
    private @Nullable Output owner;

    /**
     * @return The person responsible for setting the state of the resource. This value is typically an Azure Active Directory object ID.
     * 
     */
    public Optional> owner() {
        return Optional.ofNullable(this.owner);
    }

    /**
     * The resource ID of the policy assignment that the attestation is setting the state for.
     * 
     */
    @Import(name="policyAssignmentId", required=true)
    private Output policyAssignmentId;

    /**
     * @return The resource ID of the policy assignment that the attestation is setting the state for.
     * 
     */
    public Output policyAssignmentId() {
        return this.policyAssignmentId;
    }

    /**
     * The policy definition reference ID from a policy set definition that the attestation is setting the state for. If the policy assignment assigns a policy set definition the attestation can choose a definition within the set definition with this property or omit this and set the state for the entire set definition.
     * 
     */
    @Import(name="policyDefinitionReferenceId")
    private @Nullable Output policyDefinitionReferenceId;

    /**
     * @return The policy definition reference ID from a policy set definition that the attestation is setting the state for. If the policy assignment assigns a policy set definition the attestation can choose a definition within the set definition with this property or omit this and set the state for the entire set definition.
     * 
     */
    public Optional> policyDefinitionReferenceId() {
        return Optional.ofNullable(this.policyDefinitionReferenceId);
    }

    /**
     * The name of the resource group. The name is case insensitive.
     * 
     */
    @Import(name="resourceGroupName", required=true)
    private Output resourceGroupName;

    /**
     * @return The name of the resource group. The name is case insensitive.
     * 
     */
    public Output resourceGroupName() {
        return this.resourceGroupName;
    }

    private AttestationAtResourceGroupArgs() {}

    private AttestationAtResourceGroupArgs(AttestationAtResourceGroupArgs $) {
        this.assessmentDate = $.assessmentDate;
        this.attestationName = $.attestationName;
        this.comments = $.comments;
        this.complianceState = $.complianceState;
        this.evidence = $.evidence;
        this.expiresOn = $.expiresOn;
        this.metadata = $.metadata;
        this.owner = $.owner;
        this.policyAssignmentId = $.policyAssignmentId;
        this.policyDefinitionReferenceId = $.policyDefinitionReferenceId;
        this.resourceGroupName = $.resourceGroupName;
    }

    public static Builder builder() {
        return new Builder();
    }
    public static Builder builder(AttestationAtResourceGroupArgs defaults) {
        return new Builder(defaults);
    }

    public static final class Builder {
        private AttestationAtResourceGroupArgs $;

        public Builder() {
            $ = new AttestationAtResourceGroupArgs();
        }

        public Builder(AttestationAtResourceGroupArgs defaults) {
            $ = new AttestationAtResourceGroupArgs(Objects.requireNonNull(defaults));
        }

        /**
         * @param assessmentDate The time the evidence was assessed
         * 
         * @return builder
         * 
         */
        public Builder assessmentDate(@Nullable Output assessmentDate) {
            $.assessmentDate = assessmentDate;
            return this;
        }

        /**
         * @param assessmentDate The time the evidence was assessed
         * 
         * @return builder
         * 
         */
        public Builder assessmentDate(String assessmentDate) {
            return assessmentDate(Output.of(assessmentDate));
        }

        /**
         * @param attestationName The name of the attestation.
         * 
         * @return builder
         * 
         */
        public Builder attestationName(@Nullable Output attestationName) {
            $.attestationName = attestationName;
            return this;
        }

        /**
         * @param attestationName The name of the attestation.
         * 
         * @return builder
         * 
         */
        public Builder attestationName(String attestationName) {
            return attestationName(Output.of(attestationName));
        }

        /**
         * @param comments Comments describing why this attestation was created.
         * 
         * @return builder
         * 
         */
        public Builder comments(@Nullable Output comments) {
            $.comments = comments;
            return this;
        }

        /**
         * @param comments Comments describing why this attestation was created.
         * 
         * @return builder
         * 
         */
        public Builder comments(String comments) {
            return comments(Output.of(comments));
        }

        /**
         * @param complianceState The compliance state that should be set on the resource.
         * 
         * @return builder
         * 
         */
        public Builder complianceState(@Nullable Output> complianceState) {
            $.complianceState = complianceState;
            return this;
        }

        /**
         * @param complianceState The compliance state that should be set on the resource.
         * 
         * @return builder
         * 
         */
        public Builder complianceState(Either complianceState) {
            return complianceState(Output.of(complianceState));
        }

        /**
         * @param complianceState The compliance state that should be set on the resource.
         * 
         * @return builder
         * 
         */
        public Builder complianceState(String complianceState) {
            return complianceState(Either.ofLeft(complianceState));
        }

        /**
         * @param complianceState The compliance state that should be set on the resource.
         * 
         * @return builder
         * 
         */
        public Builder complianceState(ComplianceState complianceState) {
            return complianceState(Either.ofRight(complianceState));
        }

        /**
         * @param evidence The evidence supporting the compliance state set in this attestation.
         * 
         * @return builder
         * 
         */
        public Builder evidence(@Nullable Output> evidence) {
            $.evidence = evidence;
            return this;
        }

        /**
         * @param evidence The evidence supporting the compliance state set in this attestation.
         * 
         * @return builder
         * 
         */
        public Builder evidence(List evidence) {
            return evidence(Output.of(evidence));
        }

        /**
         * @param evidence The evidence supporting the compliance state set in this attestation.
         * 
         * @return builder
         * 
         */
        public Builder evidence(AttestationEvidenceArgs... evidence) {
            return evidence(List.of(evidence));
        }

        /**
         * @param expiresOn The time the compliance state should expire.
         * 
         * @return builder
         * 
         */
        public Builder expiresOn(@Nullable Output expiresOn) {
            $.expiresOn = expiresOn;
            return this;
        }

        /**
         * @param expiresOn The time the compliance state should expire.
         * 
         * @return builder
         * 
         */
        public Builder expiresOn(String expiresOn) {
            return expiresOn(Output.of(expiresOn));
        }

        /**
         * @param metadata Additional metadata for this attestation
         * 
         * @return builder
         * 
         */
        public Builder metadata(@Nullable Output metadata) {
            $.metadata = metadata;
            return this;
        }

        /**
         * @param metadata Additional metadata for this attestation
         * 
         * @return builder
         * 
         */
        public Builder metadata(Object metadata) {
            return metadata(Output.of(metadata));
        }

        /**
         * @param owner The person responsible for setting the state of the resource. This value is typically an Azure Active Directory object ID.
         * 
         * @return builder
         * 
         */
        public Builder owner(@Nullable Output owner) {
            $.owner = owner;
            return this;
        }

        /**
         * @param owner The person responsible for setting the state of the resource. This value is typically an Azure Active Directory object ID.
         * 
         * @return builder
         * 
         */
        public Builder owner(String owner) {
            return owner(Output.of(owner));
        }

        /**
         * @param policyAssignmentId The resource ID of the policy assignment that the attestation is setting the state for.
         * 
         * @return builder
         * 
         */
        public Builder policyAssignmentId(Output policyAssignmentId) {
            $.policyAssignmentId = policyAssignmentId;
            return this;
        }

        /**
         * @param policyAssignmentId The resource ID of the policy assignment that the attestation is setting the state for.
         * 
         * @return builder
         * 
         */
        public Builder policyAssignmentId(String policyAssignmentId) {
            return policyAssignmentId(Output.of(policyAssignmentId));
        }

        /**
         * @param policyDefinitionReferenceId The policy definition reference ID from a policy set definition that the attestation is setting the state for. If the policy assignment assigns a policy set definition the attestation can choose a definition within the set definition with this property or omit this and set the state for the entire set definition.
         * 
         * @return builder
         * 
         */
        public Builder policyDefinitionReferenceId(@Nullable Output policyDefinitionReferenceId) {
            $.policyDefinitionReferenceId = policyDefinitionReferenceId;
            return this;
        }

        /**
         * @param policyDefinitionReferenceId The policy definition reference ID from a policy set definition that the attestation is setting the state for. If the policy assignment assigns a policy set definition the attestation can choose a definition within the set definition with this property or omit this and set the state for the entire set definition.
         * 
         * @return builder
         * 
         */
        public Builder policyDefinitionReferenceId(String policyDefinitionReferenceId) {
            return policyDefinitionReferenceId(Output.of(policyDefinitionReferenceId));
        }

        /**
         * @param resourceGroupName The name of the resource group. The name is case insensitive.
         * 
         * @return builder
         * 
         */
        public Builder resourceGroupName(Output resourceGroupName) {
            $.resourceGroupName = resourceGroupName;
            return this;
        }

        /**
         * @param resourceGroupName The name of the resource group. The name is case insensitive.
         * 
         * @return builder
         * 
         */
        public Builder resourceGroupName(String resourceGroupName) {
            return resourceGroupName(Output.of(resourceGroupName));
        }

        public AttestationAtResourceGroupArgs build() {
            if ($.policyAssignmentId == null) {
                throw new MissingRequiredPropertyException("AttestationAtResourceGroupArgs", "policyAssignmentId");
            }
            if ($.resourceGroupName == null) {
                throw new MissingRequiredPropertyException("AttestationAtResourceGroupArgs", "resourceGroupName");
            }
            return $;
        }
    }

}