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

com.pulumi.linode.inputs.GetImagesImage Maven / Gradle / Ivy

There is a newer version: 4.31.0-alpha.1732773076
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.linode.inputs;

import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import com.pulumi.linode.inputs.GetImagesImageReplication;
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;


public final class GetImagesImage extends com.pulumi.resources.InvokeArgs {

    public static final GetImagesImage Empty = new GetImagesImage();

    /**
     * The capabilities of this Image.
     * 
     */
    @Import(name="capabilities", required=true)
    private List capabilities;

    /**
     * @return The capabilities of this Image.
     * 
     */
    public List capabilities() {
        return this.capabilities;
    }

    /**
     * When this Image was created.
     * 
     */
    @Import(name="created", required=true)
    private String created;

    /**
     * @return When this Image was created.
     * 
     */
    public String created() {
        return this.created;
    }

    /**
     * The name of the User who created this Image, or "linode" for official Images.
     * 
     */
    @Import(name="createdBy", required=true)
    private String createdBy;

    /**
     * @return The name of the User who created this Image, or "linode" for official Images.
     * 
     */
    public String createdBy() {
        return this.createdBy;
    }

    /**
     * Whether or not this Image is deprecated. Will only be true for deprecated public Images.
     * 
     */
    @Import(name="deprecated", required=true)
    private Boolean deprecated;

    /**
     * @return Whether or not this Image is deprecated. Will only be true for deprecated public Images.
     * 
     */
    public Boolean deprecated() {
        return this.deprecated;
    }

    /**
     * A detailed description of this Image.
     * 
     */
    @Import(name="description", required=true)
    private String description;

    /**
     * @return A detailed description of this Image.
     * 
     */
    public String description() {
        return this.description;
    }

    /**
     * Only Images created automatically (from a deleted Linode; type=automatic) will expire.
     * 
     */
    @Import(name="expiry", required=true)
    private String expiry;

    /**
     * @return Only Images created automatically (from a deleted Linode; type=automatic) will expire.
     * 
     */
    public String expiry() {
        return this.expiry;
    }

    /**
     * The unique ID of this Image.  The ID of private images begin with `private/` followed by the numeric identifier of the private image, for example `private/12345`.
     * 
     */
    @Import(name="id", required=true)
    private String id;

    /**
     * @return The unique ID of this Image.  The ID of private images begin with `private/` followed by the numeric identifier of the private image, for example `private/12345`.
     * 
     */
    public String id() {
        return this.id;
    }

    /**
     * True if the Image is public.
     * 
     */
    @Import(name="isPublic", required=true)
    private Boolean isPublic;

    /**
     * @return True if the Image is public.
     * 
     */
    public Boolean isPublic() {
        return this.isPublic;
    }

    /**
     * A short description of the Image.
     * 
     */
    @Import(name="label", required=true)
    private String label;

    /**
     * @return A short description of the Image.
     * 
     */
    public String label() {
        return this.label;
    }

    /**
     * A list of image replication regions and corresponding status.
     * 
     */
    @Import(name="replications")
    private @Nullable List replications;

    /**
     * @return A list of image replication regions and corresponding status.
     * 
     */
    public Optional> replications() {
        return Optional.ofNullable(this.replications);
    }

    /**
     * The minimum size this Image needs to deploy. Size is in MB. example: 2500
     * 
     */
    @Import(name="size", required=true)
    private Integer size;

    /**
     * @return The minimum size this Image needs to deploy. Size is in MB. example: 2500
     * 
     */
    public Integer size() {
        return this.size;
    }

    /**
     * The status of an image replica.
     * 
     */
    @Import(name="status", required=true)
    private String status;

    /**
     * @return The status of an image replica.
     * 
     */
    public String status() {
        return this.status;
    }

    /**
     * A list of customized tags.
     * 
     */
    @Import(name="tags", required=true)
    private List tags;

    /**
     * @return A list of customized tags.
     * 
     */
    public List tags() {
        return this.tags;
    }

    /**
     * The total size of the image in all available regions.
     * 
     */
    @Import(name="totalSize", required=true)
    private Integer totalSize;

    /**
     * @return The total size of the image in all available regions.
     * 
     */
    public Integer totalSize() {
        return this.totalSize;
    }

    /**
     * How the Image was created. Manual Images can be created at any time. "Automatic" Images are created automatically from a deleted Linode. (`manual`, `automatic`)
     * 
     */
    @Import(name="type", required=true)
    private String type;

    /**
     * @return How the Image was created. Manual Images can be created at any time. "Automatic" Images are created automatically from a deleted Linode. (`manual`, `automatic`)
     * 
     */
    public String type() {
        return this.type;
    }

    /**
     * The upstream distribution vendor. `None` for private Images.
     * 
     */
    @Import(name="vendor", required=true)
    private String vendor;

    /**
     * @return The upstream distribution vendor. `None` for private Images.
     * 
     */
    public String vendor() {
        return this.vendor;
    }

    private GetImagesImage() {}

    private GetImagesImage(GetImagesImage $) {
        this.capabilities = $.capabilities;
        this.created = $.created;
        this.createdBy = $.createdBy;
        this.deprecated = $.deprecated;
        this.description = $.description;
        this.expiry = $.expiry;
        this.id = $.id;
        this.isPublic = $.isPublic;
        this.label = $.label;
        this.replications = $.replications;
        this.size = $.size;
        this.status = $.status;
        this.tags = $.tags;
        this.totalSize = $.totalSize;
        this.type = $.type;
        this.vendor = $.vendor;
    }

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

    public static final class Builder {
        private GetImagesImage $;

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

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

        /**
         * @param capabilities The capabilities of this Image.
         * 
         * @return builder
         * 
         */
        public Builder capabilities(List capabilities) {
            $.capabilities = capabilities;
            return this;
        }

        /**
         * @param capabilities The capabilities of this Image.
         * 
         * @return builder
         * 
         */
        public Builder capabilities(String... capabilities) {
            return capabilities(List.of(capabilities));
        }

        /**
         * @param created When this Image was created.
         * 
         * @return builder
         * 
         */
        public Builder created(String created) {
            $.created = created;
            return this;
        }

        /**
         * @param createdBy The name of the User who created this Image, or "linode" for official Images.
         * 
         * @return builder
         * 
         */
        public Builder createdBy(String createdBy) {
            $.createdBy = createdBy;
            return this;
        }

        /**
         * @param deprecated Whether or not this Image is deprecated. Will only be true for deprecated public Images.
         * 
         * @return builder
         * 
         */
        public Builder deprecated(Boolean deprecated) {
            $.deprecated = deprecated;
            return this;
        }

        /**
         * @param description A detailed description of this Image.
         * 
         * @return builder
         * 
         */
        public Builder description(String description) {
            $.description = description;
            return this;
        }

        /**
         * @param expiry Only Images created automatically (from a deleted Linode; type=automatic) will expire.
         * 
         * @return builder
         * 
         */
        public Builder expiry(String expiry) {
            $.expiry = expiry;
            return this;
        }

        /**
         * @param id The unique ID of this Image.  The ID of private images begin with `private/` followed by the numeric identifier of the private image, for example `private/12345`.
         * 
         * @return builder
         * 
         */
        public Builder id(String id) {
            $.id = id;
            return this;
        }

        /**
         * @param isPublic True if the Image is public.
         * 
         * @return builder
         * 
         */
        public Builder isPublic(Boolean isPublic) {
            $.isPublic = isPublic;
            return this;
        }

        /**
         * @param label A short description of the Image.
         * 
         * @return builder
         * 
         */
        public Builder label(String label) {
            $.label = label;
            return this;
        }

        /**
         * @param replications A list of image replication regions and corresponding status.
         * 
         * @return builder
         * 
         */
        public Builder replications(@Nullable List replications) {
            $.replications = replications;
            return this;
        }

        /**
         * @param replications A list of image replication regions and corresponding status.
         * 
         * @return builder
         * 
         */
        public Builder replications(GetImagesImageReplication... replications) {
            return replications(List.of(replications));
        }

        /**
         * @param size The minimum size this Image needs to deploy. Size is in MB. example: 2500
         * 
         * @return builder
         * 
         */
        public Builder size(Integer size) {
            $.size = size;
            return this;
        }

        /**
         * @param status The status of an image replica.
         * 
         * @return builder
         * 
         */
        public Builder status(String status) {
            $.status = status;
            return this;
        }

        /**
         * @param tags A list of customized tags.
         * 
         * @return builder
         * 
         */
        public Builder tags(List tags) {
            $.tags = tags;
            return this;
        }

        /**
         * @param tags A list of customized tags.
         * 
         * @return builder
         * 
         */
        public Builder tags(String... tags) {
            return tags(List.of(tags));
        }

        /**
         * @param totalSize The total size of the image in all available regions.
         * 
         * @return builder
         * 
         */
        public Builder totalSize(Integer totalSize) {
            $.totalSize = totalSize;
            return this;
        }

        /**
         * @param type How the Image was created. Manual Images can be created at any time. "Automatic" Images are created automatically from a deleted Linode. (`manual`, `automatic`)
         * 
         * @return builder
         * 
         */
        public Builder type(String type) {
            $.type = type;
            return this;
        }

        /**
         * @param vendor The upstream distribution vendor. `None` for private Images.
         * 
         * @return builder
         * 
         */
        public Builder vendor(String vendor) {
            $.vendor = vendor;
            return this;
        }

        public GetImagesImage build() {
            if ($.capabilities == null) {
                throw new MissingRequiredPropertyException("GetImagesImage", "capabilities");
            }
            if ($.created == null) {
                throw new MissingRequiredPropertyException("GetImagesImage", "created");
            }
            if ($.createdBy == null) {
                throw new MissingRequiredPropertyException("GetImagesImage", "createdBy");
            }
            if ($.deprecated == null) {
                throw new MissingRequiredPropertyException("GetImagesImage", "deprecated");
            }
            if ($.description == null) {
                throw new MissingRequiredPropertyException("GetImagesImage", "description");
            }
            if ($.expiry == null) {
                throw new MissingRequiredPropertyException("GetImagesImage", "expiry");
            }
            if ($.id == null) {
                throw new MissingRequiredPropertyException("GetImagesImage", "id");
            }
            if ($.isPublic == null) {
                throw new MissingRequiredPropertyException("GetImagesImage", "isPublic");
            }
            if ($.label == null) {
                throw new MissingRequiredPropertyException("GetImagesImage", "label");
            }
            if ($.size == null) {
                throw new MissingRequiredPropertyException("GetImagesImage", "size");
            }
            if ($.status == null) {
                throw new MissingRequiredPropertyException("GetImagesImage", "status");
            }
            if ($.tags == null) {
                throw new MissingRequiredPropertyException("GetImagesImage", "tags");
            }
            if ($.totalSize == null) {
                throw new MissingRequiredPropertyException("GetImagesImage", "totalSize");
            }
            if ($.type == null) {
                throw new MissingRequiredPropertyException("GetImagesImage", "type");
            }
            if ($.vendor == null) {
                throw new MissingRequiredPropertyException("GetImagesImage", "vendor");
            }
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy