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

com.pulumi.aws.ecs.outputs.ServiceVolumeConfigurationManagedEbsVolume Maven / Gradle / Ivy

// *** 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.aws.ecs.outputs;

import com.pulumi.aws.ecs.outputs.ServiceVolumeConfigurationManagedEbsVolumeTagSpecification;
import com.pulumi.core.annotations.CustomType;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.Boolean;
import java.lang.Integer;
import java.lang.String;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;

@CustomType
public final class ServiceVolumeConfigurationManagedEbsVolume {
    /**
     * @return Whether the volume should be encrypted. Default value is `true`.
     * 
     */
    private @Nullable Boolean encrypted;
    /**
     * @return Linux filesystem type for the volume. For volumes created from a snapshot, same filesystem type must be specified that the volume was using when the snapshot was created. Valid values are `ext3`, `ext4`, `xfs`. Default value is `xfs`.
     * 
     */
    private @Nullable String fileSystemType;
    /**
     * @return Number of I/O operations per second (IOPS).
     * 
     */
    private @Nullable Integer iops;
    /**
     * @return Amazon Resource Name (ARN) identifier of the Amazon Web Services Key Management Service key to use for Amazon EBS encryption.
     * 
     */
    private @Nullable String kmsKeyId;
    /**
     * @return Amazon ECS infrastructure IAM role that is used to manage your Amazon Web Services infrastructure. Recommended using the Amazon ECS-managed `AmazonECSInfrastructureRolePolicyForVolumes` IAM policy with this role.
     * 
     */
    private String roleArn;
    /**
     * @return Size of the volume in GiB. You must specify either a `size_in_gb` or a `snapshot_id`. You can optionally specify a volume size greater than or equal to the snapshot size.
     * 
     */
    private @Nullable Integer sizeInGb;
    /**
     * @return Snapshot that Amazon ECS uses to create the volume. You must specify either a `size_in_gb` or a `snapshot_id`.
     * 
     */
    private @Nullable String snapshotId;
    /**
     * @return The tags to apply to the volume. See below.
     * 
     */
    private @Nullable List tagSpecifications;
    /**
     * @return Throughput to provision for a volume, in MiB/s, with a maximum of 1,000 MiB/s.
     * 
     */
    private @Nullable Integer throughput;
    /**
     * @return Volume type.
     * 
     */
    private @Nullable String volumeType;

    private ServiceVolumeConfigurationManagedEbsVolume() {}
    /**
     * @return Whether the volume should be encrypted. Default value is `true`.
     * 
     */
    public Optional encrypted() {
        return Optional.ofNullable(this.encrypted);
    }
    /**
     * @return Linux filesystem type for the volume. For volumes created from a snapshot, same filesystem type must be specified that the volume was using when the snapshot was created. Valid values are `ext3`, `ext4`, `xfs`. Default value is `xfs`.
     * 
     */
    public Optional fileSystemType() {
        return Optional.ofNullable(this.fileSystemType);
    }
    /**
     * @return Number of I/O operations per second (IOPS).
     * 
     */
    public Optional iops() {
        return Optional.ofNullable(this.iops);
    }
    /**
     * @return Amazon Resource Name (ARN) identifier of the Amazon Web Services Key Management Service key to use for Amazon EBS encryption.
     * 
     */
    public Optional kmsKeyId() {
        return Optional.ofNullable(this.kmsKeyId);
    }
    /**
     * @return Amazon ECS infrastructure IAM role that is used to manage your Amazon Web Services infrastructure. Recommended using the Amazon ECS-managed `AmazonECSInfrastructureRolePolicyForVolumes` IAM policy with this role.
     * 
     */
    public String roleArn() {
        return this.roleArn;
    }
    /**
     * @return Size of the volume in GiB. You must specify either a `size_in_gb` or a `snapshot_id`. You can optionally specify a volume size greater than or equal to the snapshot size.
     * 
     */
    public Optional sizeInGb() {
        return Optional.ofNullable(this.sizeInGb);
    }
    /**
     * @return Snapshot that Amazon ECS uses to create the volume. You must specify either a `size_in_gb` or a `snapshot_id`.
     * 
     */
    public Optional snapshotId() {
        return Optional.ofNullable(this.snapshotId);
    }
    /**
     * @return The tags to apply to the volume. See below.
     * 
     */
    public List tagSpecifications() {
        return this.tagSpecifications == null ? List.of() : this.tagSpecifications;
    }
    /**
     * @return Throughput to provision for a volume, in MiB/s, with a maximum of 1,000 MiB/s.
     * 
     */
    public Optional throughput() {
        return Optional.ofNullable(this.throughput);
    }
    /**
     * @return Volume type.
     * 
     */
    public Optional volumeType() {
        return Optional.ofNullable(this.volumeType);
    }

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

    public static Builder builder(ServiceVolumeConfigurationManagedEbsVolume defaults) {
        return new Builder(defaults);
    }
    @CustomType.Builder
    public static final class Builder {
        private @Nullable Boolean encrypted;
        private @Nullable String fileSystemType;
        private @Nullable Integer iops;
        private @Nullable String kmsKeyId;
        private String roleArn;
        private @Nullable Integer sizeInGb;
        private @Nullable String snapshotId;
        private @Nullable List tagSpecifications;
        private @Nullable Integer throughput;
        private @Nullable String volumeType;
        public Builder() {}
        public Builder(ServiceVolumeConfigurationManagedEbsVolume defaults) {
    	      Objects.requireNonNull(defaults);
    	      this.encrypted = defaults.encrypted;
    	      this.fileSystemType = defaults.fileSystemType;
    	      this.iops = defaults.iops;
    	      this.kmsKeyId = defaults.kmsKeyId;
    	      this.roleArn = defaults.roleArn;
    	      this.sizeInGb = defaults.sizeInGb;
    	      this.snapshotId = defaults.snapshotId;
    	      this.tagSpecifications = defaults.tagSpecifications;
    	      this.throughput = defaults.throughput;
    	      this.volumeType = defaults.volumeType;
        }

        @CustomType.Setter
        public Builder encrypted(@Nullable Boolean encrypted) {

            this.encrypted = encrypted;
            return this;
        }
        @CustomType.Setter
        public Builder fileSystemType(@Nullable String fileSystemType) {

            this.fileSystemType = fileSystemType;
            return this;
        }
        @CustomType.Setter
        public Builder iops(@Nullable Integer iops) {

            this.iops = iops;
            return this;
        }
        @CustomType.Setter
        public Builder kmsKeyId(@Nullable String kmsKeyId) {

            this.kmsKeyId = kmsKeyId;
            return this;
        }
        @CustomType.Setter
        public Builder roleArn(String roleArn) {
            if (roleArn == null) {
              throw new MissingRequiredPropertyException("ServiceVolumeConfigurationManagedEbsVolume", "roleArn");
            }
            this.roleArn = roleArn;
            return this;
        }
        @CustomType.Setter
        public Builder sizeInGb(@Nullable Integer sizeInGb) {

            this.sizeInGb = sizeInGb;
            return this;
        }
        @CustomType.Setter
        public Builder snapshotId(@Nullable String snapshotId) {

            this.snapshotId = snapshotId;
            return this;
        }
        @CustomType.Setter
        public Builder tagSpecifications(@Nullable List tagSpecifications) {

            this.tagSpecifications = tagSpecifications;
            return this;
        }
        public Builder tagSpecifications(ServiceVolumeConfigurationManagedEbsVolumeTagSpecification... tagSpecifications) {
            return tagSpecifications(List.of(tagSpecifications));
        }
        @CustomType.Setter
        public Builder throughput(@Nullable Integer throughput) {

            this.throughput = throughput;
            return this;
        }
        @CustomType.Setter
        public Builder volumeType(@Nullable String volumeType) {

            this.volumeType = volumeType;
            return this;
        }
        public ServiceVolumeConfigurationManagedEbsVolume build() {
            final var _resultValue = new ServiceVolumeConfigurationManagedEbsVolume();
            _resultValue.encrypted = encrypted;
            _resultValue.fileSystemType = fileSystemType;
            _resultValue.iops = iops;
            _resultValue.kmsKeyId = kmsKeyId;
            _resultValue.roleArn = roleArn;
            _resultValue.sizeInGb = sizeInGb;
            _resultValue.snapshotId = snapshotId;
            _resultValue.tagSpecifications = tagSpecifications;
            _resultValue.throughput = throughput;
            _resultValue.volumeType = volumeType;
            return _resultValue;
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy