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

com.pulumi.azurenative.iotoperationsmq.inputs.VolumeClaimSpecArgs Maven / Gradle / Ivy

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

import com.pulumi.azurenative.iotoperationsmq.inputs.VolumeClaimDataSourceArgs;
import com.pulumi.azurenative.iotoperationsmq.inputs.VolumeClaimDataSourceRefArgs;
import com.pulumi.azurenative.iotoperationsmq.inputs.VolumeClaimResourceRequirementsArgs;
import com.pulumi.azurenative.iotoperationsmq.inputs.VolumeClaimSpecSelectorArgs;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import java.lang.String;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


/**
 * VolumeClaimSpec properties
 * 
 */
public final class VolumeClaimSpecArgs extends com.pulumi.resources.ResourceArgs {

    public static final VolumeClaimSpecArgs Empty = new VolumeClaimSpecArgs();

    /**
     * AccessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1
     * 
     */
    @Import(name="accessModes")
    private @Nullable Output> accessModes;

    /**
     * @return AccessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1
     * 
     */
    public Optional>> accessModes() {
        return Optional.ofNullable(this.accessModes);
    }

    /**
     * This field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. If the AnyVolumeDataSource feature gate is enabled, this field will always have the same contents as the DataSourceRef field.
     * 
     */
    @Import(name="dataSource")
    private @Nullable Output dataSource;

    /**
     * @return This field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. If the AnyVolumeDataSource feature gate is enabled, this field will always have the same contents as the DataSourceRef field.
     * 
     */
    public Optional> dataSource() {
        return Optional.ofNullable(this.dataSource);
    }

    /**
     * Specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any local object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the DataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, both fields (DataSource and DataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. There are two important differences between DataSource and DataSourceRef: * While DataSource only allows two specific types of objects, DataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While DataSource ignores disallowed values (dropping them), DataSourceRef preserves all values, and generates an error if a disallowed value is specified. (Alpha) Using this field requires the AnyVolumeDataSource feature gate to be enabled.
     * 
     */
    @Import(name="dataSourceRef")
    private @Nullable Output dataSourceRef;

    /**
     * @return Specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any local object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the DataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, both fields (DataSource and DataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. There are two important differences between DataSource and DataSourceRef: * While DataSource only allows two specific types of objects, DataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While DataSource ignores disallowed values (dropping them), DataSourceRef preserves all values, and generates an error if a disallowed value is specified. (Alpha) Using this field requires the AnyVolumeDataSource feature gate to be enabled.
     * 
     */
    public Optional> dataSourceRef() {
        return Optional.ofNullable(this.dataSourceRef);
    }

    /**
     * Resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources
     * 
     */
    @Import(name="resources")
    private @Nullable Output resources;

    /**
     * @return Resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources
     * 
     */
    public Optional> resources() {
        return Optional.ofNullable(this.resources);
    }

    /**
     * A label query over volumes to consider for binding.
     * 
     */
    @Import(name="selector")
    private @Nullable Output selector;

    /**
     * @return A label query over volumes to consider for binding.
     * 
     */
    public Optional> selector() {
        return Optional.ofNullable(this.selector);
    }

    /**
     * Name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1
     * 
     */
    @Import(name="storageClassName")
    private @Nullable Output storageClassName;

    /**
     * @return Name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1
     * 
     */
    public Optional> storageClassName() {
        return Optional.ofNullable(this.storageClassName);
    }

    /**
     * volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec. This is a beta feature.
     * 
     */
    @Import(name="volumeMode")
    private @Nullable Output volumeMode;

    /**
     * @return volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec. This is a beta feature.
     * 
     */
    public Optional> volumeMode() {
        return Optional.ofNullable(this.volumeMode);
    }

    /**
     * VolumeName is the binding reference to the PersistentVolume backing this claim.
     * 
     */
    @Import(name="volumeName")
    private @Nullable Output volumeName;

    /**
     * @return VolumeName is the binding reference to the PersistentVolume backing this claim.
     * 
     */
    public Optional> volumeName() {
        return Optional.ofNullable(this.volumeName);
    }

    private VolumeClaimSpecArgs() {}

    private VolumeClaimSpecArgs(VolumeClaimSpecArgs $) {
        this.accessModes = $.accessModes;
        this.dataSource = $.dataSource;
        this.dataSourceRef = $.dataSourceRef;
        this.resources = $.resources;
        this.selector = $.selector;
        this.storageClassName = $.storageClassName;
        this.volumeMode = $.volumeMode;
        this.volumeName = $.volumeName;
    }

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

    public static final class Builder {
        private VolumeClaimSpecArgs $;

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

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

        /**
         * @param accessModes AccessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1
         * 
         * @return builder
         * 
         */
        public Builder accessModes(@Nullable Output> accessModes) {
            $.accessModes = accessModes;
            return this;
        }

        /**
         * @param accessModes AccessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1
         * 
         * @return builder
         * 
         */
        public Builder accessModes(List accessModes) {
            return accessModes(Output.of(accessModes));
        }

        /**
         * @param accessModes AccessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1
         * 
         * @return builder
         * 
         */
        public Builder accessModes(String... accessModes) {
            return accessModes(List.of(accessModes));
        }

        /**
         * @param dataSource This field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. If the AnyVolumeDataSource feature gate is enabled, this field will always have the same contents as the DataSourceRef field.
         * 
         * @return builder
         * 
         */
        public Builder dataSource(@Nullable Output dataSource) {
            $.dataSource = dataSource;
            return this;
        }

        /**
         * @param dataSource This field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. If the AnyVolumeDataSource feature gate is enabled, this field will always have the same contents as the DataSourceRef field.
         * 
         * @return builder
         * 
         */
        public Builder dataSource(VolumeClaimDataSourceArgs dataSource) {
            return dataSource(Output.of(dataSource));
        }

        /**
         * @param dataSourceRef Specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any local object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the DataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, both fields (DataSource and DataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. There are two important differences between DataSource and DataSourceRef: * While DataSource only allows two specific types of objects, DataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While DataSource ignores disallowed values (dropping them), DataSourceRef preserves all values, and generates an error if a disallowed value is specified. (Alpha) Using this field requires the AnyVolumeDataSource feature gate to be enabled.
         * 
         * @return builder
         * 
         */
        public Builder dataSourceRef(@Nullable Output dataSourceRef) {
            $.dataSourceRef = dataSourceRef;
            return this;
        }

        /**
         * @param dataSourceRef Specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any local object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the DataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, both fields (DataSource and DataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. There are two important differences between DataSource and DataSourceRef: * While DataSource only allows two specific types of objects, DataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While DataSource ignores disallowed values (dropping them), DataSourceRef preserves all values, and generates an error if a disallowed value is specified. (Alpha) Using this field requires the AnyVolumeDataSource feature gate to be enabled.
         * 
         * @return builder
         * 
         */
        public Builder dataSourceRef(VolumeClaimDataSourceRefArgs dataSourceRef) {
            return dataSourceRef(Output.of(dataSourceRef));
        }

        /**
         * @param resources Resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources
         * 
         * @return builder
         * 
         */
        public Builder resources(@Nullable Output resources) {
            $.resources = resources;
            return this;
        }

        /**
         * @param resources Resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources
         * 
         * @return builder
         * 
         */
        public Builder resources(VolumeClaimResourceRequirementsArgs resources) {
            return resources(Output.of(resources));
        }

        /**
         * @param selector A label query over volumes to consider for binding.
         * 
         * @return builder
         * 
         */
        public Builder selector(@Nullable Output selector) {
            $.selector = selector;
            return this;
        }

        /**
         * @param selector A label query over volumes to consider for binding.
         * 
         * @return builder
         * 
         */
        public Builder selector(VolumeClaimSpecSelectorArgs selector) {
            return selector(Output.of(selector));
        }

        /**
         * @param storageClassName Name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1
         * 
         * @return builder
         * 
         */
        public Builder storageClassName(@Nullable Output storageClassName) {
            $.storageClassName = storageClassName;
            return this;
        }

        /**
         * @param storageClassName Name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1
         * 
         * @return builder
         * 
         */
        public Builder storageClassName(String storageClassName) {
            return storageClassName(Output.of(storageClassName));
        }

        /**
         * @param volumeMode volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec. This is a beta feature.
         * 
         * @return builder
         * 
         */
        public Builder volumeMode(@Nullable Output volumeMode) {
            $.volumeMode = volumeMode;
            return this;
        }

        /**
         * @param volumeMode volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec. This is a beta feature.
         * 
         * @return builder
         * 
         */
        public Builder volumeMode(String volumeMode) {
            return volumeMode(Output.of(volumeMode));
        }

        /**
         * @param volumeName VolumeName is the binding reference to the PersistentVolume backing this claim.
         * 
         * @return builder
         * 
         */
        public Builder volumeName(@Nullable Output volumeName) {
            $.volumeName = volumeName;
            return this;
        }

        /**
         * @param volumeName VolumeName is the binding reference to the PersistentVolume backing this claim.
         * 
         * @return builder
         * 
         */
        public Builder volumeName(String volumeName) {
            return volumeName(Output.of(volumeName));
        }

        public VolumeClaimSpecArgs build() {
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy