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

com.ovhcloud.pulumi.ovh.CloudProject.KubeOidcArgs Maven / Gradle / Ivy

There is a newer version: 1.1.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.ovhcloud.pulumi.ovh.CloudProject;

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 KubeOidcArgs extends com.pulumi.resources.ResourceArgs {

    public static final KubeOidcArgs Empty = new KubeOidcArgs();

    /**
     * The OIDC client ID.
     * 
     */
    @Import(name="clientId", required=true)
    private Output clientId;

    /**
     * @return The OIDC client ID.
     * 
     */
    public Output clientId() {
        return this.clientId;
    }

    /**
     * The OIDC issuer url.
     * 
     */
    @Import(name="issuerUrl", required=true)
    private Output issuerUrl;

    /**
     * @return The OIDC issuer url.
     * 
     */
    public Output issuerUrl() {
        return this.issuerUrl;
    }

    /**
     * The ID of the managed kubernetes cluster. **Changing this value recreates the resource.**
     * 
     */
    @Import(name="kubeId", required=true)
    private Output kubeId;

    /**
     * @return The ID of the managed kubernetes cluster. **Changing this value recreates the resource.**
     * 
     */
    public Output kubeId() {
        return this.kubeId;
    }

    /**
     * Content of the certificate for the CA, in Base64 format, that signed your identity provider's web certificate. Defaults to the host's root CAs.
     * 
     */
    @Import(name="oidcCaContent")
    private @Nullable Output oidcCaContent;

    /**
     * @return Content of the certificate for the CA, in Base64 format, that signed your identity provider's web certificate. Defaults to the host's root CAs.
     * 
     */
    public Optional> oidcCaContent() {
        return Optional.ofNullable(this.oidcCaContent);
    }

    /**
     * Array of JWT claim to use as the user's group. If the claim is present it must be an array of strings.
     * 
     */
    @Import(name="oidcGroupsClaims")
    private @Nullable Output> oidcGroupsClaims;

    /**
     * @return Array of JWT claim to use as the user's group. If the claim is present it must be an array of strings.
     * 
     */
    public Optional>> oidcGroupsClaims() {
        return Optional.ofNullable(this.oidcGroupsClaims);
    }

    /**
     * Prefix prepended to group claims to prevent clashes with existing names (such as `system:groups`). For example, the value `oidc:` will create group names like `oidc:engineering` and `oidc:infra`.
     * 
     */
    @Import(name="oidcGroupsPrefix")
    private @Nullable Output oidcGroupsPrefix;

    /**
     * @return Prefix prepended to group claims to prevent clashes with existing names (such as `system:groups`). For example, the value `oidc:` will create group names like `oidc:engineering` and `oidc:infra`.
     * 
     */
    public Optional> oidcGroupsPrefix() {
        return Optional.ofNullable(this.oidcGroupsPrefix);
    }

    /**
     * Array of `key=value` pairs that describe required claims in the ID Token. If set, the claims are verified to be present in the ID Token with a matching value."
     * 
     */
    @Import(name="oidcRequiredClaims")
    private @Nullable Output> oidcRequiredClaims;

    /**
     * @return Array of `key=value` pairs that describe required claims in the ID Token. If set, the claims are verified to be present in the ID Token with a matching value."
     * 
     */
    public Optional>> oidcRequiredClaims() {
        return Optional.ofNullable(this.oidcRequiredClaims);
    }

    /**
     * Array of signing algorithms accepted. Default is `RS256`.
     * 
     */
    @Import(name="oidcSigningAlgs")
    private @Nullable Output> oidcSigningAlgs;

    /**
     * @return Array of signing algorithms accepted. Default is `RS256`.
     * 
     */
    public Optional>> oidcSigningAlgs() {
        return Optional.ofNullable(this.oidcSigningAlgs);
    }

    /**
     * JWT claim to use as the username. By default, sub, which is expected to be a unique identifier of the end user. Admins can choose other claims, such as email or name, depending on their provider. However, claims other than email will be prefixed with the issuer URL to prevent naming clashes with other plugins.
     * 
     */
    @Import(name="oidcUsernameClaim")
    private @Nullable Output oidcUsernameClaim;

    /**
     * @return JWT claim to use as the username. By default, sub, which is expected to be a unique identifier of the end user. Admins can choose other claims, such as email or name, depending on their provider. However, claims other than email will be prefixed with the issuer URL to prevent naming clashes with other plugins.
     * 
     */
    public Optional> oidcUsernameClaim() {
        return Optional.ofNullable(this.oidcUsernameClaim);
    }

    /**
     * Prefix prepended to username claims to prevent clashes with existing names (such as `system:users`). For example, the value `oidc:` will create usernames like `oidc:jane.doe`. If this field isn't set and `oidc_username_claim` is a value other than email the prefix defaults to `issuer_url` where `issuer_url` is the value of `issuer_url.` The value - can be used to disable all prefixing.
     * 
     */
    @Import(name="oidcUsernamePrefix")
    private @Nullable Output oidcUsernamePrefix;

    /**
     * @return Prefix prepended to username claims to prevent clashes with existing names (such as `system:users`). For example, the value `oidc:` will create usernames like `oidc:jane.doe`. If this field isn't set and `oidc_username_claim` is a value other than email the prefix defaults to `issuer_url` where `issuer_url` is the value of `issuer_url.` The value - can be used to disable all prefixing.
     * 
     */
    public Optional> oidcUsernamePrefix() {
        return Optional.ofNullable(this.oidcUsernamePrefix);
    }

    /**
     * The ID of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. **Changing this value recreates the resource.**
     * 
     */
    @Import(name="serviceName", required=true)
    private Output serviceName;

    /**
     * @return The ID of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. **Changing this value recreates the resource.**
     * 
     */
    public Output serviceName() {
        return this.serviceName;
    }

    private KubeOidcArgs() {}

    private KubeOidcArgs(KubeOidcArgs $) {
        this.clientId = $.clientId;
        this.issuerUrl = $.issuerUrl;
        this.kubeId = $.kubeId;
        this.oidcCaContent = $.oidcCaContent;
        this.oidcGroupsClaims = $.oidcGroupsClaims;
        this.oidcGroupsPrefix = $.oidcGroupsPrefix;
        this.oidcRequiredClaims = $.oidcRequiredClaims;
        this.oidcSigningAlgs = $.oidcSigningAlgs;
        this.oidcUsernameClaim = $.oidcUsernameClaim;
        this.oidcUsernamePrefix = $.oidcUsernamePrefix;
        this.serviceName = $.serviceName;
    }

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

    public static final class Builder {
        private KubeOidcArgs $;

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

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

        /**
         * @param clientId The OIDC client ID.
         * 
         * @return builder
         * 
         */
        public Builder clientId(Output clientId) {
            $.clientId = clientId;
            return this;
        }

        /**
         * @param clientId The OIDC client ID.
         * 
         * @return builder
         * 
         */
        public Builder clientId(String clientId) {
            return clientId(Output.of(clientId));
        }

        /**
         * @param issuerUrl The OIDC issuer url.
         * 
         * @return builder
         * 
         */
        public Builder issuerUrl(Output issuerUrl) {
            $.issuerUrl = issuerUrl;
            return this;
        }

        /**
         * @param issuerUrl The OIDC issuer url.
         * 
         * @return builder
         * 
         */
        public Builder issuerUrl(String issuerUrl) {
            return issuerUrl(Output.of(issuerUrl));
        }

        /**
         * @param kubeId The ID of the managed kubernetes cluster. **Changing this value recreates the resource.**
         * 
         * @return builder
         * 
         */
        public Builder kubeId(Output kubeId) {
            $.kubeId = kubeId;
            return this;
        }

        /**
         * @param kubeId The ID of the managed kubernetes cluster. **Changing this value recreates the resource.**
         * 
         * @return builder
         * 
         */
        public Builder kubeId(String kubeId) {
            return kubeId(Output.of(kubeId));
        }

        /**
         * @param oidcCaContent Content of the certificate for the CA, in Base64 format, that signed your identity provider's web certificate. Defaults to the host's root CAs.
         * 
         * @return builder
         * 
         */
        public Builder oidcCaContent(@Nullable Output oidcCaContent) {
            $.oidcCaContent = oidcCaContent;
            return this;
        }

        /**
         * @param oidcCaContent Content of the certificate for the CA, in Base64 format, that signed your identity provider's web certificate. Defaults to the host's root CAs.
         * 
         * @return builder
         * 
         */
        public Builder oidcCaContent(String oidcCaContent) {
            return oidcCaContent(Output.of(oidcCaContent));
        }

        /**
         * @param oidcGroupsClaims Array of JWT claim to use as the user's group. If the claim is present it must be an array of strings.
         * 
         * @return builder
         * 
         */
        public Builder oidcGroupsClaims(@Nullable Output> oidcGroupsClaims) {
            $.oidcGroupsClaims = oidcGroupsClaims;
            return this;
        }

        /**
         * @param oidcGroupsClaims Array of JWT claim to use as the user's group. If the claim is present it must be an array of strings.
         * 
         * @return builder
         * 
         */
        public Builder oidcGroupsClaims(List oidcGroupsClaims) {
            return oidcGroupsClaims(Output.of(oidcGroupsClaims));
        }

        /**
         * @param oidcGroupsClaims Array of JWT claim to use as the user's group. If the claim is present it must be an array of strings.
         * 
         * @return builder
         * 
         */
        public Builder oidcGroupsClaims(String... oidcGroupsClaims) {
            return oidcGroupsClaims(List.of(oidcGroupsClaims));
        }

        /**
         * @param oidcGroupsPrefix Prefix prepended to group claims to prevent clashes with existing names (such as `system:groups`). For example, the value `oidc:` will create group names like `oidc:engineering` and `oidc:infra`.
         * 
         * @return builder
         * 
         */
        public Builder oidcGroupsPrefix(@Nullable Output oidcGroupsPrefix) {
            $.oidcGroupsPrefix = oidcGroupsPrefix;
            return this;
        }

        /**
         * @param oidcGroupsPrefix Prefix prepended to group claims to prevent clashes with existing names (such as `system:groups`). For example, the value `oidc:` will create group names like `oidc:engineering` and `oidc:infra`.
         * 
         * @return builder
         * 
         */
        public Builder oidcGroupsPrefix(String oidcGroupsPrefix) {
            return oidcGroupsPrefix(Output.of(oidcGroupsPrefix));
        }

        /**
         * @param oidcRequiredClaims Array of `key=value` pairs that describe required claims in the ID Token. If set, the claims are verified to be present in the ID Token with a matching value."
         * 
         * @return builder
         * 
         */
        public Builder oidcRequiredClaims(@Nullable Output> oidcRequiredClaims) {
            $.oidcRequiredClaims = oidcRequiredClaims;
            return this;
        }

        /**
         * @param oidcRequiredClaims Array of `key=value` pairs that describe required claims in the ID Token. If set, the claims are verified to be present in the ID Token with a matching value."
         * 
         * @return builder
         * 
         */
        public Builder oidcRequiredClaims(List oidcRequiredClaims) {
            return oidcRequiredClaims(Output.of(oidcRequiredClaims));
        }

        /**
         * @param oidcRequiredClaims Array of `key=value` pairs that describe required claims in the ID Token. If set, the claims are verified to be present in the ID Token with a matching value."
         * 
         * @return builder
         * 
         */
        public Builder oidcRequiredClaims(String... oidcRequiredClaims) {
            return oidcRequiredClaims(List.of(oidcRequiredClaims));
        }

        /**
         * @param oidcSigningAlgs Array of signing algorithms accepted. Default is `RS256`.
         * 
         * @return builder
         * 
         */
        public Builder oidcSigningAlgs(@Nullable Output> oidcSigningAlgs) {
            $.oidcSigningAlgs = oidcSigningAlgs;
            return this;
        }

        /**
         * @param oidcSigningAlgs Array of signing algorithms accepted. Default is `RS256`.
         * 
         * @return builder
         * 
         */
        public Builder oidcSigningAlgs(List oidcSigningAlgs) {
            return oidcSigningAlgs(Output.of(oidcSigningAlgs));
        }

        /**
         * @param oidcSigningAlgs Array of signing algorithms accepted. Default is `RS256`.
         * 
         * @return builder
         * 
         */
        public Builder oidcSigningAlgs(String... oidcSigningAlgs) {
            return oidcSigningAlgs(List.of(oidcSigningAlgs));
        }

        /**
         * @param oidcUsernameClaim JWT claim to use as the username. By default, sub, which is expected to be a unique identifier of the end user. Admins can choose other claims, such as email or name, depending on their provider. However, claims other than email will be prefixed with the issuer URL to prevent naming clashes with other plugins.
         * 
         * @return builder
         * 
         */
        public Builder oidcUsernameClaim(@Nullable Output oidcUsernameClaim) {
            $.oidcUsernameClaim = oidcUsernameClaim;
            return this;
        }

        /**
         * @param oidcUsernameClaim JWT claim to use as the username. By default, sub, which is expected to be a unique identifier of the end user. Admins can choose other claims, such as email or name, depending on their provider. However, claims other than email will be prefixed with the issuer URL to prevent naming clashes with other plugins.
         * 
         * @return builder
         * 
         */
        public Builder oidcUsernameClaim(String oidcUsernameClaim) {
            return oidcUsernameClaim(Output.of(oidcUsernameClaim));
        }

        /**
         * @param oidcUsernamePrefix Prefix prepended to username claims to prevent clashes with existing names (such as `system:users`). For example, the value `oidc:` will create usernames like `oidc:jane.doe`. If this field isn't set and `oidc_username_claim` is a value other than email the prefix defaults to `issuer_url` where `issuer_url` is the value of `issuer_url.` The value - can be used to disable all prefixing.
         * 
         * @return builder
         * 
         */
        public Builder oidcUsernamePrefix(@Nullable Output oidcUsernamePrefix) {
            $.oidcUsernamePrefix = oidcUsernamePrefix;
            return this;
        }

        /**
         * @param oidcUsernamePrefix Prefix prepended to username claims to prevent clashes with existing names (such as `system:users`). For example, the value `oidc:` will create usernames like `oidc:jane.doe`. If this field isn't set and `oidc_username_claim` is a value other than email the prefix defaults to `issuer_url` where `issuer_url` is the value of `issuer_url.` The value - can be used to disable all prefixing.
         * 
         * @return builder
         * 
         */
        public Builder oidcUsernamePrefix(String oidcUsernamePrefix) {
            return oidcUsernamePrefix(Output.of(oidcUsernamePrefix));
        }

        /**
         * @param serviceName The ID of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. **Changing this value recreates the resource.**
         * 
         * @return builder
         * 
         */
        public Builder serviceName(Output serviceName) {
            $.serviceName = serviceName;
            return this;
        }

        /**
         * @param serviceName The ID of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. **Changing this value recreates the resource.**
         * 
         * @return builder
         * 
         */
        public Builder serviceName(String serviceName) {
            return serviceName(Output.of(serviceName));
        }

        public KubeOidcArgs build() {
            if ($.clientId == null) {
                throw new MissingRequiredPropertyException("KubeOidcArgs", "clientId");
            }
            if ($.issuerUrl == null) {
                throw new MissingRequiredPropertyException("KubeOidcArgs", "issuerUrl");
            }
            if ($.kubeId == null) {
                throw new MissingRequiredPropertyException("KubeOidcArgs", "kubeId");
            }
            if ($.serviceName == null) {
                throw new MissingRequiredPropertyException("KubeOidcArgs", "serviceName");
            }
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy