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

com.pulumi.kubernetes.resource.v1alpha1.inputs.ResourceClassParametersReferenceArgs Maven / Gradle / Ivy

There is a newer version: 4.19.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.kubernetes.resource.v1alpha1.inputs;

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


/**
 * ResourceClassParametersReference contains enough information to let you locate the parameters for a ResourceClass.
 * 
 */
public final class ResourceClassParametersReferenceArgs extends com.pulumi.resources.ResourceArgs {

    public static final ResourceClassParametersReferenceArgs Empty = new ResourceClassParametersReferenceArgs();

    /**
     * APIGroup is the group for the resource being referenced. It is empty for the core API. This matches the group in the APIVersion that is used when creating the resources.
     * 
     */
    @Import(name="apiGroup")
    private @Nullable Output apiGroup;

    /**
     * @return APIGroup is the group for the resource being referenced. It is empty for the core API. This matches the group in the APIVersion that is used when creating the resources.
     * 
     */
    public Optional> apiGroup() {
        return Optional.ofNullable(this.apiGroup);
    }

    /**
     * Kind is the type of resource being referenced. This is the same value as in the parameter object's metadata.
     * 
     */
    @Import(name="kind", required=true)
    private Output kind;

    /**
     * @return Kind is the type of resource being referenced. This is the same value as in the parameter object's metadata.
     * 
     */
    public Output kind() {
        return this.kind;
    }

    /**
     * Name is the name of resource being referenced.
     * 
     */
    @Import(name="name", required=true)
    private Output name;

    /**
     * @return Name is the name of resource being referenced.
     * 
     */
    public Output name() {
        return this.name;
    }

    /**
     * Namespace that contains the referenced resource. Must be empty for cluster-scoped resources and non-empty for namespaced resources.
     * 
     */
    @Import(name="namespace")
    private @Nullable Output namespace;

    /**
     * @return Namespace that contains the referenced resource. Must be empty for cluster-scoped resources and non-empty for namespaced resources.
     * 
     */
    public Optional> namespace() {
        return Optional.ofNullable(this.namespace);
    }

    private ResourceClassParametersReferenceArgs() {}

    private ResourceClassParametersReferenceArgs(ResourceClassParametersReferenceArgs $) {
        this.apiGroup = $.apiGroup;
        this.kind = $.kind;
        this.name = $.name;
        this.namespace = $.namespace;
    }

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

    public static final class Builder {
        private ResourceClassParametersReferenceArgs $;

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

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

        /**
         * @param apiGroup APIGroup is the group for the resource being referenced. It is empty for the core API. This matches the group in the APIVersion that is used when creating the resources.
         * 
         * @return builder
         * 
         */
        public Builder apiGroup(@Nullable Output apiGroup) {
            $.apiGroup = apiGroup;
            return this;
        }

        /**
         * @param apiGroup APIGroup is the group for the resource being referenced. It is empty for the core API. This matches the group in the APIVersion that is used when creating the resources.
         * 
         * @return builder
         * 
         */
        public Builder apiGroup(String apiGroup) {
            return apiGroup(Output.of(apiGroup));
        }

        /**
         * @param kind Kind is the type of resource being referenced. This is the same value as in the parameter object's metadata.
         * 
         * @return builder
         * 
         */
        public Builder kind(Output kind) {
            $.kind = kind;
            return this;
        }

        /**
         * @param kind Kind is the type of resource being referenced. This is the same value as in the parameter object's metadata.
         * 
         * @return builder
         * 
         */
        public Builder kind(String kind) {
            return kind(Output.of(kind));
        }

        /**
         * @param name Name is the name of resource being referenced.
         * 
         * @return builder
         * 
         */
        public Builder name(Output name) {
            $.name = name;
            return this;
        }

        /**
         * @param name Name is the name of resource being referenced.
         * 
         * @return builder
         * 
         */
        public Builder name(String name) {
            return name(Output.of(name));
        }

        /**
         * @param namespace Namespace that contains the referenced resource. Must be empty for cluster-scoped resources and non-empty for namespaced resources.
         * 
         * @return builder
         * 
         */
        public Builder namespace(@Nullable Output namespace) {
            $.namespace = namespace;
            return this;
        }

        /**
         * @param namespace Namespace that contains the referenced resource. Must be empty for cluster-scoped resources and non-empty for namespaced resources.
         * 
         * @return builder
         * 
         */
        public Builder namespace(String namespace) {
            return namespace(Output.of(namespace));
        }

        public ResourceClassParametersReferenceArgs build() {
            if ($.kind == null) {
                throw new MissingRequiredPropertyException("ResourceClassParametersReferenceArgs", "kind");
            }
            if ($.name == null) {
                throw new MissingRequiredPropertyException("ResourceClassParametersReferenceArgs", "name");
            }
            return $;
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy