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

com.pulumi.azurenative.attestation.inputs.JSONWebKeyArgs Maven / Gradle / Ivy

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

import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.String;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


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

    public static final JSONWebKeyArgs Empty = new JSONWebKeyArgs();

    /**
     * The "alg" (algorithm) parameter identifies the algorithm intended for
     * use with the key.  The values used should either be registered in the
     * IANA "JSON Web Signature and Encryption Algorithms" registry
     * established by [JWA] or be a value that contains a Collision-
     * Resistant Name.
     * 
     */
    @Import(name="alg")
    private @Nullable Output alg;

    /**
     * @return The "alg" (algorithm) parameter identifies the algorithm intended for
     * use with the key.  The values used should either be registered in the
     * IANA "JSON Web Signature and Encryption Algorithms" registry
     * established by [JWA] or be a value that contains a Collision-
     * Resistant Name.
     * 
     */
    public Optional> alg() {
        return Optional.ofNullable(this.alg);
    }

    /**
     * The "crv" (curve) parameter identifies the curve type
     * 
     */
    @Import(name="crv")
    private @Nullable Output crv;

    /**
     * @return The "crv" (curve) parameter identifies the curve type
     * 
     */
    public Optional> crv() {
        return Optional.ofNullable(this.crv);
    }

    /**
     * RSA private exponent or ECC private key
     * 
     */
    @Import(name="d")
    private @Nullable Output d;

    /**
     * @return RSA private exponent or ECC private key
     * 
     */
    public Optional> d() {
        return Optional.ofNullable(this.d);
    }

    /**
     * RSA Private Key Parameter
     * 
     */
    @Import(name="dp")
    private @Nullable Output dp;

    /**
     * @return RSA Private Key Parameter
     * 
     */
    public Optional> dp() {
        return Optional.ofNullable(this.dp);
    }

    /**
     * RSA Private Key Parameter
     * 
     */
    @Import(name="dq")
    private @Nullable Output dq;

    /**
     * @return RSA Private Key Parameter
     * 
     */
    public Optional> dq() {
        return Optional.ofNullable(this.dq);
    }

    /**
     * RSA public exponent, in Base64
     * 
     */
    @Import(name="e")
    private @Nullable Output e;

    /**
     * @return RSA public exponent, in Base64
     * 
     */
    public Optional> e() {
        return Optional.ofNullable(this.e);
    }

    /**
     * Symmetric key
     * 
     */
    @Import(name="k")
    private @Nullable Output k;

    /**
     * @return Symmetric key
     * 
     */
    public Optional> k() {
        return Optional.ofNullable(this.k);
    }

    /**
     * The "kid" (key ID) parameter is used to match a specific key.  This
     * is used, for instance, to choose among a set of keys within a JWK Set
     * during key rollover.  The structure of the "kid" value is
     * unspecified.  When "kid" values are used within a JWK Set, different
     * keys within the JWK Set SHOULD use distinct "kid" values.  (One
     * example in which different keys might use the same "kid" value is if
     * they have different "kty" (key type) values but are considered to be
     * equivalent alternatives by the application using them.)  The "kid"
     * value is a case-sensitive string.
     * 
     */
    @Import(name="kid")
    private @Nullable Output kid;

    /**
     * @return The "kid" (key ID) parameter is used to match a specific key.  This
     * is used, for instance, to choose among a set of keys within a JWK Set
     * during key rollover.  The structure of the "kid" value is
     * unspecified.  When "kid" values are used within a JWK Set, different
     * keys within the JWK Set SHOULD use distinct "kid" values.  (One
     * example in which different keys might use the same "kid" value is if
     * they have different "kty" (key type) values but are considered to be
     * equivalent alternatives by the application using them.)  The "kid"
     * value is a case-sensitive string.
     * 
     */
    public Optional> kid() {
        return Optional.ofNullable(this.kid);
    }

    /**
     * The "kty" (key type) parameter identifies the cryptographic algorithm
     * family used with the key, such as "RSA" or "EC". "kty" values should
     * either be registered in the IANA "JSON Web Key Types" registry
     * established by [JWA] or be a value that contains a Collision-
     * Resistant Name.  The "kty" value is a case-sensitive string.
     * 
     */
    @Import(name="kty", required=true)
    private Output kty;

    /**
     * @return The "kty" (key type) parameter identifies the cryptographic algorithm
     * family used with the key, such as "RSA" or "EC". "kty" values should
     * either be registered in the IANA "JSON Web Key Types" registry
     * established by [JWA] or be a value that contains a Collision-
     * Resistant Name.  The "kty" value is a case-sensitive string.
     * 
     */
    public Output kty() {
        return this.kty;
    }

    /**
     * RSA modulus, in Base64
     * 
     */
    @Import(name="n")
    private @Nullable Output n;

    /**
     * @return RSA modulus, in Base64
     * 
     */
    public Optional> n() {
        return Optional.ofNullable(this.n);
    }

    /**
     * RSA secret prime
     * 
     */
    @Import(name="p")
    private @Nullable Output p;

    /**
     * @return RSA secret prime
     * 
     */
    public Optional> p() {
        return Optional.ofNullable(this.p);
    }

    /**
     * RSA secret prime, with p < q
     * 
     */
    @Import(name="q")
    private @Nullable Output q;

    /**
     * @return RSA secret prime, with p < q
     * 
     */
    public Optional> q() {
        return Optional.ofNullable(this.q);
    }

    /**
     * RSA Private Key Parameter
     * 
     */
    @Import(name="qi")
    private @Nullable Output qi;

    /**
     * @return RSA Private Key Parameter
     * 
     */
    public Optional> qi() {
        return Optional.ofNullable(this.qi);
    }

    /**
     * Use ("public key use") identifies the intended use of
     * the public key. The "use" parameter is employed to indicate whether
     * a public key is used for encrypting data or verifying the signature
     * on data. Values are commonly "sig" (signature) or "enc" (encryption).
     * 
     */
    @Import(name="use")
    private @Nullable Output use;

    /**
     * @return Use ("public key use") identifies the intended use of
     * the public key. The "use" parameter is employed to indicate whether
     * a public key is used for encrypting data or verifying the signature
     * on data. Values are commonly "sig" (signature) or "enc" (encryption).
     * 
     */
    public Optional> use() {
        return Optional.ofNullable(this.use);
    }

    /**
     * X coordinate for the Elliptic Curve point
     * 
     */
    @Import(name="x")
    private @Nullable Output x;

    /**
     * @return X coordinate for the Elliptic Curve point
     * 
     */
    public Optional> x() {
        return Optional.ofNullable(this.x);
    }

    /**
     * The "x5c" (X.509 certificate chain) parameter contains a chain of one
     * or more PKIX certificates [RFC5280].  The certificate chain is
     * represented as a JSON array of certificate value strings.  Each
     * string in the array is a base64-encoded (Section 4 of [RFC4648] --
     * not base64url-encoded) DER [ITU.X690.1994] PKIX certificate value.
     * The PKIX certificate containing the key value MUST be the first
     * certificate.
     * 
     */
    @Import(name="x5c")
    private @Nullable Output> x5c;

    /**
     * @return The "x5c" (X.509 certificate chain) parameter contains a chain of one
     * or more PKIX certificates [RFC5280].  The certificate chain is
     * represented as a JSON array of certificate value strings.  Each
     * string in the array is a base64-encoded (Section 4 of [RFC4648] --
     * not base64url-encoded) DER [ITU.X690.1994] PKIX certificate value.
     * The PKIX certificate containing the key value MUST be the first
     * certificate.
     * 
     */
    public Optional>> x5c() {
        return Optional.ofNullable(this.x5c);
    }

    /**
     * Y coordinate for the Elliptic Curve point
     * 
     */
    @Import(name="y")
    private @Nullable Output y;

    /**
     * @return Y coordinate for the Elliptic Curve point
     * 
     */
    public Optional> y() {
        return Optional.ofNullable(this.y);
    }

    private JSONWebKeyArgs() {}

    private JSONWebKeyArgs(JSONWebKeyArgs $) {
        this.alg = $.alg;
        this.crv = $.crv;
        this.d = $.d;
        this.dp = $.dp;
        this.dq = $.dq;
        this.e = $.e;
        this.k = $.k;
        this.kid = $.kid;
        this.kty = $.kty;
        this.n = $.n;
        this.p = $.p;
        this.q = $.q;
        this.qi = $.qi;
        this.use = $.use;
        this.x = $.x;
        this.x5c = $.x5c;
        this.y = $.y;
    }

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

    public static final class Builder {
        private JSONWebKeyArgs $;

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

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

        /**
         * @param alg The "alg" (algorithm) parameter identifies the algorithm intended for
         * use with the key.  The values used should either be registered in the
         * IANA "JSON Web Signature and Encryption Algorithms" registry
         * established by [JWA] or be a value that contains a Collision-
         * Resistant Name.
         * 
         * @return builder
         * 
         */
        public Builder alg(@Nullable Output alg) {
            $.alg = alg;
            return this;
        }

        /**
         * @param alg The "alg" (algorithm) parameter identifies the algorithm intended for
         * use with the key.  The values used should either be registered in the
         * IANA "JSON Web Signature and Encryption Algorithms" registry
         * established by [JWA] or be a value that contains a Collision-
         * Resistant Name.
         * 
         * @return builder
         * 
         */
        public Builder alg(String alg) {
            return alg(Output.of(alg));
        }

        /**
         * @param crv The "crv" (curve) parameter identifies the curve type
         * 
         * @return builder
         * 
         */
        public Builder crv(@Nullable Output crv) {
            $.crv = crv;
            return this;
        }

        /**
         * @param crv The "crv" (curve) parameter identifies the curve type
         * 
         * @return builder
         * 
         */
        public Builder crv(String crv) {
            return crv(Output.of(crv));
        }

        /**
         * @param d RSA private exponent or ECC private key
         * 
         * @return builder
         * 
         */
        public Builder d(@Nullable Output d) {
            $.d = d;
            return this;
        }

        /**
         * @param d RSA private exponent or ECC private key
         * 
         * @return builder
         * 
         */
        public Builder d(String d) {
            return d(Output.of(d));
        }

        /**
         * @param dp RSA Private Key Parameter
         * 
         * @return builder
         * 
         */
        public Builder dp(@Nullable Output dp) {
            $.dp = dp;
            return this;
        }

        /**
         * @param dp RSA Private Key Parameter
         * 
         * @return builder
         * 
         */
        public Builder dp(String dp) {
            return dp(Output.of(dp));
        }

        /**
         * @param dq RSA Private Key Parameter
         * 
         * @return builder
         * 
         */
        public Builder dq(@Nullable Output dq) {
            $.dq = dq;
            return this;
        }

        /**
         * @param dq RSA Private Key Parameter
         * 
         * @return builder
         * 
         */
        public Builder dq(String dq) {
            return dq(Output.of(dq));
        }

        /**
         * @param e RSA public exponent, in Base64
         * 
         * @return builder
         * 
         */
        public Builder e(@Nullable Output e) {
            $.e = e;
            return this;
        }

        /**
         * @param e RSA public exponent, in Base64
         * 
         * @return builder
         * 
         */
        public Builder e(String e) {
            return e(Output.of(e));
        }

        /**
         * @param k Symmetric key
         * 
         * @return builder
         * 
         */
        public Builder k(@Nullable Output k) {
            $.k = k;
            return this;
        }

        /**
         * @param k Symmetric key
         * 
         * @return builder
         * 
         */
        public Builder k(String k) {
            return k(Output.of(k));
        }

        /**
         * @param kid The "kid" (key ID) parameter is used to match a specific key.  This
         * is used, for instance, to choose among a set of keys within a JWK Set
         * during key rollover.  The structure of the "kid" value is
         * unspecified.  When "kid" values are used within a JWK Set, different
         * keys within the JWK Set SHOULD use distinct "kid" values.  (One
         * example in which different keys might use the same "kid" value is if
         * they have different "kty" (key type) values but are considered to be
         * equivalent alternatives by the application using them.)  The "kid"
         * value is a case-sensitive string.
         * 
         * @return builder
         * 
         */
        public Builder kid(@Nullable Output kid) {
            $.kid = kid;
            return this;
        }

        /**
         * @param kid The "kid" (key ID) parameter is used to match a specific key.  This
         * is used, for instance, to choose among a set of keys within a JWK Set
         * during key rollover.  The structure of the "kid" value is
         * unspecified.  When "kid" values are used within a JWK Set, different
         * keys within the JWK Set SHOULD use distinct "kid" values.  (One
         * example in which different keys might use the same "kid" value is if
         * they have different "kty" (key type) values but are considered to be
         * equivalent alternatives by the application using them.)  The "kid"
         * value is a case-sensitive string.
         * 
         * @return builder
         * 
         */
        public Builder kid(String kid) {
            return kid(Output.of(kid));
        }

        /**
         * @param kty The "kty" (key type) parameter identifies the cryptographic algorithm
         * family used with the key, such as "RSA" or "EC". "kty" values should
         * either be registered in the IANA "JSON Web Key Types" registry
         * established by [JWA] or be a value that contains a Collision-
         * Resistant Name.  The "kty" value is a case-sensitive string.
         * 
         * @return builder
         * 
         */
        public Builder kty(Output kty) {
            $.kty = kty;
            return this;
        }

        /**
         * @param kty The "kty" (key type) parameter identifies the cryptographic algorithm
         * family used with the key, such as "RSA" or "EC". "kty" values should
         * either be registered in the IANA "JSON Web Key Types" registry
         * established by [JWA] or be a value that contains a Collision-
         * Resistant Name.  The "kty" value is a case-sensitive string.
         * 
         * @return builder
         * 
         */
        public Builder kty(String kty) {
            return kty(Output.of(kty));
        }

        /**
         * @param n RSA modulus, in Base64
         * 
         * @return builder
         * 
         */
        public Builder n(@Nullable Output n) {
            $.n = n;
            return this;
        }

        /**
         * @param n RSA modulus, in Base64
         * 
         * @return builder
         * 
         */
        public Builder n(String n) {
            return n(Output.of(n));
        }

        /**
         * @param p RSA secret prime
         * 
         * @return builder
         * 
         */
        public Builder p(@Nullable Output p) {
            $.p = p;
            return this;
        }

        /**
         * @param p RSA secret prime
         * 
         * @return builder
         * 
         */
        public Builder p(String p) {
            return p(Output.of(p));
        }

        /**
         * @param q RSA secret prime, with p < q
         * 
         * @return builder
         * 
         */
        public Builder q(@Nullable Output q) {
            $.q = q;
            return this;
        }

        /**
         * @param q RSA secret prime, with p < q
         * 
         * @return builder
         * 
         */
        public Builder q(String q) {
            return q(Output.of(q));
        }

        /**
         * @param qi RSA Private Key Parameter
         * 
         * @return builder
         * 
         */
        public Builder qi(@Nullable Output qi) {
            $.qi = qi;
            return this;
        }

        /**
         * @param qi RSA Private Key Parameter
         * 
         * @return builder
         * 
         */
        public Builder qi(String qi) {
            return qi(Output.of(qi));
        }

        /**
         * @param use Use ("public key use") identifies the intended use of
         * the public key. The "use" parameter is employed to indicate whether
         * a public key is used for encrypting data or verifying the signature
         * on data. Values are commonly "sig" (signature) or "enc" (encryption).
         * 
         * @return builder
         * 
         */
        public Builder use(@Nullable Output use) {
            $.use = use;
            return this;
        }

        /**
         * @param use Use ("public key use") identifies the intended use of
         * the public key. The "use" parameter is employed to indicate whether
         * a public key is used for encrypting data or verifying the signature
         * on data. Values are commonly "sig" (signature) or "enc" (encryption).
         * 
         * @return builder
         * 
         */
        public Builder use(String use) {
            return use(Output.of(use));
        }

        /**
         * @param x X coordinate for the Elliptic Curve point
         * 
         * @return builder
         * 
         */
        public Builder x(@Nullable Output x) {
            $.x = x;
            return this;
        }

        /**
         * @param x X coordinate for the Elliptic Curve point
         * 
         * @return builder
         * 
         */
        public Builder x(String x) {
            return x(Output.of(x));
        }

        /**
         * @param x5c The "x5c" (X.509 certificate chain) parameter contains a chain of one
         * or more PKIX certificates [RFC5280].  The certificate chain is
         * represented as a JSON array of certificate value strings.  Each
         * string in the array is a base64-encoded (Section 4 of [RFC4648] --
         * not base64url-encoded) DER [ITU.X690.1994] PKIX certificate value.
         * The PKIX certificate containing the key value MUST be the first
         * certificate.
         * 
         * @return builder
         * 
         */
        public Builder x5c(@Nullable Output> x5c) {
            $.x5c = x5c;
            return this;
        }

        /**
         * @param x5c The "x5c" (X.509 certificate chain) parameter contains a chain of one
         * or more PKIX certificates [RFC5280].  The certificate chain is
         * represented as a JSON array of certificate value strings.  Each
         * string in the array is a base64-encoded (Section 4 of [RFC4648] --
         * not base64url-encoded) DER [ITU.X690.1994] PKIX certificate value.
         * The PKIX certificate containing the key value MUST be the first
         * certificate.
         * 
         * @return builder
         * 
         */
        public Builder x5c(List x5c) {
            return x5c(Output.of(x5c));
        }

        /**
         * @param x5c The "x5c" (X.509 certificate chain) parameter contains a chain of one
         * or more PKIX certificates [RFC5280].  The certificate chain is
         * represented as a JSON array of certificate value strings.  Each
         * string in the array is a base64-encoded (Section 4 of [RFC4648] --
         * not base64url-encoded) DER [ITU.X690.1994] PKIX certificate value.
         * The PKIX certificate containing the key value MUST be the first
         * certificate.
         * 
         * @return builder
         * 
         */
        public Builder x5c(String... x5c) {
            return x5c(List.of(x5c));
        }

        /**
         * @param y Y coordinate for the Elliptic Curve point
         * 
         * @return builder
         * 
         */
        public Builder y(@Nullable Output y) {
            $.y = y;
            return this;
        }

        /**
         * @param y Y coordinate for the Elliptic Curve point
         * 
         * @return builder
         * 
         */
        public Builder y(String y) {
            return y(Output.of(y));
        }

        public JSONWebKeyArgs build() {
            if ($.kty == null) {
                throw new MissingRequiredPropertyException("JSONWebKeyArgs", "kty");
            }
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy