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

com.pulumi.azurenative.keyvault.inputs.KeyPropertiesArgs Maven / Gradle / Ivy

There is a newer version: 2.82.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.keyvault.inputs;

import com.pulumi.azurenative.keyvault.enums.JsonWebKeyCurveName;
import com.pulumi.azurenative.keyvault.enums.JsonWebKeyOperation;
import com.pulumi.azurenative.keyvault.enums.JsonWebKeyType;
import com.pulumi.azurenative.keyvault.inputs.KeyAttributesArgs;
import com.pulumi.azurenative.keyvault.inputs.KeyReleasePolicyArgs;
import com.pulumi.azurenative.keyvault.inputs.RotationPolicyArgs;
import com.pulumi.core.Either;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import java.lang.Integer;
import java.lang.String;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


/**
 * The properties of the key.
 * 
 */
public final class KeyPropertiesArgs extends com.pulumi.resources.ResourceArgs {

    public static final KeyPropertiesArgs Empty = new KeyPropertiesArgs();

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

    /**
     * @return The attributes of the key.
     * 
     */
    public Optional> attributes() {
        return Optional.ofNullable(this.attributes);
    }

    /**
     * The elliptic curve name. For valid values, see JsonWebKeyCurveName.
     * 
     */
    @Import(name="curveName")
    private @Nullable Output> curveName;

    /**
     * @return The elliptic curve name. For valid values, see JsonWebKeyCurveName.
     * 
     */
    public Optional>> curveName() {
        return Optional.ofNullable(this.curveName);
    }

    @Import(name="keyOps")
    private @Nullable Output>> keyOps;

    public Optional>>> keyOps() {
        return Optional.ofNullable(this.keyOps);
    }

    /**
     * The key size in bits. For example: 2048, 3072, or 4096 for RSA.
     * 
     */
    @Import(name="keySize")
    private @Nullable Output keySize;

    /**
     * @return The key size in bits. For example: 2048, 3072, or 4096 for RSA.
     * 
     */
    public Optional> keySize() {
        return Optional.ofNullable(this.keySize);
    }

    /**
     * The type of the key. For valid values, see JsonWebKeyType.
     * 
     */
    @Import(name="kty")
    private @Nullable Output> kty;

    /**
     * @return The type of the key. For valid values, see JsonWebKeyType.
     * 
     */
    public Optional>> kty() {
        return Optional.ofNullable(this.kty);
    }

    /**
     * Key release policy in response. It will be used for both output and input. Omitted if empty
     * 
     */
    @Import(name="releasePolicy")
    private @Nullable Output releasePolicy;

    /**
     * @return Key release policy in response. It will be used for both output and input. Omitted if empty
     * 
     */
    public Optional> releasePolicy() {
        return Optional.ofNullable(this.releasePolicy);
    }

    /**
     * Key rotation policy in response. It will be used for both output and input. Omitted if empty
     * 
     */
    @Import(name="rotationPolicy")
    private @Nullable Output rotationPolicy;

    /**
     * @return Key rotation policy in response. It will be used for both output and input. Omitted if empty
     * 
     */
    public Optional> rotationPolicy() {
        return Optional.ofNullable(this.rotationPolicy);
    }

    private KeyPropertiesArgs() {}

    private KeyPropertiesArgs(KeyPropertiesArgs $) {
        this.attributes = $.attributes;
        this.curveName = $.curveName;
        this.keyOps = $.keyOps;
        this.keySize = $.keySize;
        this.kty = $.kty;
        this.releasePolicy = $.releasePolicy;
        this.rotationPolicy = $.rotationPolicy;
    }

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

    public static final class Builder {
        private KeyPropertiesArgs $;

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

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

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

        /**
         * @param attributes The attributes of the key.
         * 
         * @return builder
         * 
         */
        public Builder attributes(KeyAttributesArgs attributes) {
            return attributes(Output.of(attributes));
        }

        /**
         * @param curveName The elliptic curve name. For valid values, see JsonWebKeyCurveName.
         * 
         * @return builder
         * 
         */
        public Builder curveName(@Nullable Output> curveName) {
            $.curveName = curveName;
            return this;
        }

        /**
         * @param curveName The elliptic curve name. For valid values, see JsonWebKeyCurveName.
         * 
         * @return builder
         * 
         */
        public Builder curveName(Either curveName) {
            return curveName(Output.of(curveName));
        }

        /**
         * @param curveName The elliptic curve name. For valid values, see JsonWebKeyCurveName.
         * 
         * @return builder
         * 
         */
        public Builder curveName(String curveName) {
            return curveName(Either.ofLeft(curveName));
        }

        /**
         * @param curveName The elliptic curve name. For valid values, see JsonWebKeyCurveName.
         * 
         * @return builder
         * 
         */
        public Builder curveName(JsonWebKeyCurveName curveName) {
            return curveName(Either.ofRight(curveName));
        }

        public Builder keyOps(@Nullable Output>> keyOps) {
            $.keyOps = keyOps;
            return this;
        }

        public Builder keyOps(List> keyOps) {
            return keyOps(Output.of(keyOps));
        }

        public Builder keyOps(Either... keyOps) {
            return keyOps(List.of(keyOps));
        }

        /**
         * @param keySize The key size in bits. For example: 2048, 3072, or 4096 for RSA.
         * 
         * @return builder
         * 
         */
        public Builder keySize(@Nullable Output keySize) {
            $.keySize = keySize;
            return this;
        }

        /**
         * @param keySize The key size in bits. For example: 2048, 3072, or 4096 for RSA.
         * 
         * @return builder
         * 
         */
        public Builder keySize(Integer keySize) {
            return keySize(Output.of(keySize));
        }

        /**
         * @param kty The type of the key. For valid values, see JsonWebKeyType.
         * 
         * @return builder
         * 
         */
        public Builder kty(@Nullable Output> kty) {
            $.kty = kty;
            return this;
        }

        /**
         * @param kty The type of the key. For valid values, see JsonWebKeyType.
         * 
         * @return builder
         * 
         */
        public Builder kty(Either kty) {
            return kty(Output.of(kty));
        }

        /**
         * @param kty The type of the key. For valid values, see JsonWebKeyType.
         * 
         * @return builder
         * 
         */
        public Builder kty(String kty) {
            return kty(Either.ofLeft(kty));
        }

        /**
         * @param kty The type of the key. For valid values, see JsonWebKeyType.
         * 
         * @return builder
         * 
         */
        public Builder kty(JsonWebKeyType kty) {
            return kty(Either.ofRight(kty));
        }

        /**
         * @param releasePolicy Key release policy in response. It will be used for both output and input. Omitted if empty
         * 
         * @return builder
         * 
         */
        public Builder releasePolicy(@Nullable Output releasePolicy) {
            $.releasePolicy = releasePolicy;
            return this;
        }

        /**
         * @param releasePolicy Key release policy in response. It will be used for both output and input. Omitted if empty
         * 
         * @return builder
         * 
         */
        public Builder releasePolicy(KeyReleasePolicyArgs releasePolicy) {
            return releasePolicy(Output.of(releasePolicy));
        }

        /**
         * @param rotationPolicy Key rotation policy in response. It will be used for both output and input. Omitted if empty
         * 
         * @return builder
         * 
         */
        public Builder rotationPolicy(@Nullable Output rotationPolicy) {
            $.rotationPolicy = rotationPolicy;
            return this;
        }

        /**
         * @param rotationPolicy Key rotation policy in response. It will be used for both output and input. Omitted if empty
         * 
         * @return builder
         * 
         */
        public Builder rotationPolicy(RotationPolicyArgs rotationPolicy) {
            return rotationPolicy(Output.of(rotationPolicy));
        }

        public KeyPropertiesArgs build() {
            return $;
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy