com.pulumi.kubernetes.rbac.v1beta1.outputs.RoleBinding Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of kubernetes Show documentation
Show all versions of kubernetes Show documentation
A Pulumi package for creating and managing Kubernetes resources.
// *** 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.rbac.v1beta1.outputs;
import com.pulumi.core.annotations.CustomType;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import com.pulumi.kubernetes.meta.v1.outputs.ObjectMeta;
import com.pulumi.kubernetes.rbac.v1beta1.outputs.RoleRef;
import com.pulumi.kubernetes.rbac.v1beta1.outputs.Subject;
import java.lang.String;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;
@CustomType
public final class RoleBinding {
/**
* @return APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
*
*/
private @Nullable String apiVersion;
/**
* @return Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
*
*/
private @Nullable String kind;
/**
* @return Standard object's metadata.
*
*/
private @Nullable ObjectMeta metadata;
/**
* @return RoleRef can reference a Role in the current namespace or a ClusterRole in the global namespace. If the RoleRef cannot be resolved, the Authorizer must return an error.
*
*/
private RoleRef roleRef;
/**
* @return Subjects holds references to the objects the role applies to.
*
*/
private @Nullable List subjects;
private RoleBinding() {}
/**
* @return APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
*
*/
public Optional apiVersion() {
return Optional.ofNullable(this.apiVersion);
}
/**
* @return Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
*
*/
public Optional kind() {
return Optional.ofNullable(this.kind);
}
/**
* @return Standard object's metadata.
*
*/
public Optional metadata() {
return Optional.ofNullable(this.metadata);
}
/**
* @return RoleRef can reference a Role in the current namespace or a ClusterRole in the global namespace. If the RoleRef cannot be resolved, the Authorizer must return an error.
*
*/
public RoleRef roleRef() {
return this.roleRef;
}
/**
* @return Subjects holds references to the objects the role applies to.
*
*/
public List subjects() {
return this.subjects == null ? List.of() : this.subjects;
}
public static Builder builder() {
return new Builder();
}
public static Builder builder(RoleBinding defaults) {
return new Builder(defaults);
}
@CustomType.Builder
public static final class Builder {
private @Nullable String apiVersion;
private @Nullable String kind;
private @Nullable ObjectMeta metadata;
private RoleRef roleRef;
private @Nullable List subjects;
public Builder() {}
public Builder(RoleBinding defaults) {
Objects.requireNonNull(defaults);
this.apiVersion = defaults.apiVersion;
this.kind = defaults.kind;
this.metadata = defaults.metadata;
this.roleRef = defaults.roleRef;
this.subjects = defaults.subjects;
}
@CustomType.Setter
public Builder apiVersion(@Nullable String apiVersion) {
this.apiVersion = apiVersion;
return this;
}
@CustomType.Setter
public Builder kind(@Nullable String kind) {
this.kind = kind;
return this;
}
@CustomType.Setter
public Builder metadata(@Nullable ObjectMeta metadata) {
this.metadata = metadata;
return this;
}
@CustomType.Setter
public Builder roleRef(RoleRef roleRef) {
if (roleRef == null) {
throw new MissingRequiredPropertyException("RoleBinding", "roleRef");
}
this.roleRef = roleRef;
return this;
}
@CustomType.Setter
public Builder subjects(@Nullable List subjects) {
this.subjects = subjects;
return this;
}
public Builder subjects(Subject... subjects) {
return subjects(List.of(subjects));
}
public RoleBinding build() {
final var _resultValue = new RoleBinding();
_resultValue.apiVersion = apiVersion;
_resultValue.kind = kind;
_resultValue.metadata = metadata;
_resultValue.roleRef = roleRef;
_resultValue.subjects = subjects;
return _resultValue;
}
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy