// *** 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.gcp.assuredworkloads.inputs;

import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import java.lang.String;
import java.util.Objects;


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

    public static final WorkloadKmsSettingsArgs Empty = new WorkloadKmsSettingsArgs();

    /**
     * Required. Input only. Immutable. The time at which the Key Management Service will automatically create a new version of the crypto key and mark it as the primary.
     * 
     */
    @Import(name="nextRotationTime", required=true)
    private Output<String> nextRotationTime;

    /**
     * @return Required. Input only. Immutable. The time at which the Key Management Service will automatically create a new version of the crypto key and mark it as the primary.
     * 
     */
    public Output<String> nextRotationTime() {
        return this.nextRotationTime;
    }

    /**
     * Required. Input only. Immutable. will be advanced by this period when the Key Management Service automatically rotates a key. Must be at least 24 hours and at most 876,000 hours.
     * 
     */
    @Import(name="rotationPeriod", required=true)
    private Output<String> rotationPeriod;

    /**
     * @return Required. Input only. Immutable. will be advanced by this period when the Key Management Service automatically rotates a key. Must be at least 24 hours and at most 876,000 hours.
     * 
     */
    public Output<String> rotationPeriod() {
        return this.rotationPeriod;
    }

    private WorkloadKmsSettingsArgs() {}

    private WorkloadKmsSettingsArgs(WorkloadKmsSettingsArgs $) {
        this.nextRotationTime = $.nextRotationTime;
        this.rotationPeriod = $.rotationPeriod;
    }

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

    public static final class Builder {
        private WorkloadKmsSettingsArgs $;

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

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

        /**
         * @param nextRotationTime Required. Input only. Immutable. The time at which the Key Management Service will automatically create a new version of the crypto key and mark it as the primary.
         * 
         * @return builder
         * 
         */
        public Builder nextRotationTime(Output<String> nextRotationTime) {
            $.nextRotationTime = nextRotationTime;
            return this;
        }

        /**
         * @param nextRotationTime Required. Input only. Immutable. The time at which the Key Management Service will automatically create a new version of the crypto key and mark it as the primary.
         * 
         * @return builder
         * 
         */
        public Builder nextRotationTime(String nextRotationTime) {
            return nextRotationTime(Output.of(nextRotationTime));
        }

        /**
         * @param rotationPeriod Required. Input only. Immutable. will be advanced by this period when the Key Management Service automatically rotates a key. Must be at least 24 hours and at most 876,000 hours.
         * 
         * @return builder
         * 
         */
        public Builder rotationPeriod(Output<String> rotationPeriod) {
            $.rotationPeriod = rotationPeriod;
            return this;
        }

        /**
         * @param rotationPeriod Required. Input only. Immutable. will be advanced by this period when the Key Management Service automatically rotates a key. Must be at least 24 hours and at most 876,000 hours.
         * 
         * @return builder
         * 
         */
        public Builder rotationPeriod(String rotationPeriod) {
            return rotationPeriod(Output.of(rotationPeriod));
        }

        public WorkloadKmsSettingsArgs build() {
            $.nextRotationTime = Objects.requireNonNull($.nextRotationTime, "expected parameter 'nextRotationTime' to be non-null");
            $.rotationPeriod = Objects.requireNonNull($.rotationPeriod, "expected parameter 'rotationPeriod' to be non-null");
            return $;
        }
    }

}
