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

org.openstack4j.openstack.image.v2.domain.GlanceImage Maven / Gradle / Ivy

The newest version!
package org.openstack4j.openstack.image.v2.domain;

import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Set;

import org.openstack4j.model.common.builder.BasicResourceBuilder;
import org.openstack4j.model.image.v2.ContainerFormat;
import org.openstack4j.model.image.v2.DiskFormat;
import org.openstack4j.model.image.v2.Image;
import org.openstack4j.model.image.v2.builder.ImageBuilder;
import org.openstack4j.openstack.common.ListResult;
import org.openstack4j.openstack.common.Metadata;

import com.fasterxml.jackson.annotation.JsonAnyGetter;
import com.fasterxml.jackson.annotation.JsonAnySetter;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.google.common.base.MoreObjects;
import com.google.common.collect.Maps;
import com.google.common.collect.Sets;

/**
 * A glance v2.0-2.3 image model implementation
 *
 * @author emjburns
 */
@JsonInclude(JsonInclude.Include.NON_NULL)
public class GlanceImage implements Image {

    private static final Set RESERVED_KEYS = Sets.newHashSet(Arrays.asList(new String[] {
            "id",
            "name",
            "tags",
            "status",
            "container_format",
            "disk_format",
            "created_at",
            "updated_at",
            "min_disk",
            "min_ram",
            "protected",
            "checksum",
            "owner",
            "visibility",
            "size",
            "locations",
            "direct_url",
            "self",
            "file",
            "schema",
            "architecture",
            "instance_uuid",
            "kernel_id",
            "os_version",
            "os_distro",
            "ramdisk_id",
            "virtual_size" }));

    private static final long serialVersionUID = 1L;

    private String id;

    private String name;

    private List tags;

    private ImageStatus status;

    @JsonProperty("container_format")
    private ContainerFormat containerFormat;

    @JsonProperty("disk_format")
    private DiskFormat diskFormat;

    @JsonProperty("created_at")
    private Date createdAt;

    @JsonProperty("updated_at")
    private Date updatedAt;

    @JsonProperty("min_disk")
    private Long minDisk;

    @JsonProperty("min_ram")
    private Long minRam;

    @JsonProperty("protected")
    private Boolean isProtected;

    private String checksum;

    private String owner;

    private ImageVisibility visibility;

    private Long size;

    private List locations;

    @JsonProperty("direct_url")
    private String directUrl;

    private String self;

    private String file;

    private String schema;

    private String architecture;

    @JsonProperty("instance_uuid")
    private String instanceUuid;

    @JsonProperty("kernel_id")
    private String kernelId;

    @JsonProperty("os_version")
    private String osVersion;

    @JsonProperty("os_distro")
    private String osDistro;

    @JsonProperty("ramdisk_id")
    private String ramdiskId;

    @JsonProperty("virtual_size")
    private Long virtualSize;

    private Map additionalProperties = Maps.newHashMap();

    /**
     * {@inheritDoc}
     */
    @Override
    public void setName(String name) {
        this.name = name;
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public void setId(String id) {
        this.id = id;
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public ImageStatus getStatus() {
        return status;
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public String getName() {
        return name;
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public List getTags() {
        return tags;
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public ContainerFormat getContainerFormat() {
        return containerFormat;
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public Date getCreatedAt() {
        return createdAt;
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public DiskFormat getDiskFormat() {
        return diskFormat;
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public Date getUpdatedAt() {
        return updatedAt;
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public Long getMinDisk() {
        return minDisk;
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public Boolean getIsProtected() {
        return isProtected;
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public String getId() {
        return id;
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public Long getMinRam() {
        return minRam;
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public String getChecksum() {
        return checksum;
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public String getOwner() {
        return owner;
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public ImageVisibility getVisibility() {
        return visibility;
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public Long getSize() {
        return size;
    }

    @Override
    public List getLocations() {
        return locations;
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public String getDirectUrl() {
        return directUrl;
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public String getSelf() {
        return self;
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public String getFile() {
        return file;
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public String getSchema() {
        return schema;
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public String getRamdiskId() {
        return ramdiskId;
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public String getOsDistro() {
        return osDistro;
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public String getOsVersion() {
        return osVersion;
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public String getKernelId() {
        return kernelId;
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public String getInstanceUuid() {
        return instanceUuid;
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public String getArchitecture() {
        return architecture;
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public Long getVirtualSize() {
        return virtualSize;
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public String getAdditionalPropertyValue(String key) {
        return additionalProperties.get(key);
    }

    @JsonAnyGetter
    public Map getAdditionalProperties() {
        return additionalProperties;
    }

    @JsonAnySetter
    public void setAdditionalProperty(String key, String value) {
        if (key != null && !RESERVED_KEYS.contains(key)) {
            additionalProperties.put(key, value);
        }
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public ImageBuilder toBuilder() {
        return new ImageConcreteBuilder(this);
    }

    public static ImageBuilder builder() {
        return new ImageConcreteBuilder();
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public String toString() {
        return MoreObjects.toStringHelper(this)
                .add("id", id)
                .add("name", name)
                .add("tags", tags)
                .add("imageStatus", status)
                .add("containerFormat", containerFormat)
                .add("diskFormat", diskFormat)
                .add("createdAt", createdAt)
                .add("updatedAt", updatedAt)
                .add("minDisk", minDisk)
                .add("minRam", minRam)
                .add("isProtected", isProtected)
                .add("checksum", checksum)
                .add("owner", owner)
                .add("visibility", visibility)
                .add("size", size)
                .add("locations", locations)
                .add("directUrl", directUrl)
                .add("self", self)
                .add("file", file)
                .add("schema", schema)
                .add("architecture", architecture)
                .add("instanceUuid", instanceUuid)
                .add("kernelId", kernelId)
                .add("osVersion", osVersion)
                .add("osDistro", osDistro)
                .add("ramdiskId", ramdiskId)
                .add("virtualSize", virtualSize)
                .toString();
    }


    @JsonInclude(JsonInclude.Include.NON_NULL)
    public static class Images extends ListResult {
        private static final long serialVersionUID = 1L;
        @JsonProperty("images")
        private List images;

        @Override
        protected List value() {
            return images;
        }
    }

	@JsonInclude(JsonInclude.Include.NON_NULL)
	public static class Location {
		@JsonProperty("url")
		private String url;

		@JsonProperty("metadata")
		private Metadata metadat;
	}

    public static class ImageConcreteBuilder extends BasicResourceBuilder implements ImageBuilder {
        private GlanceImage m;

        ImageConcreteBuilder() {
            this(new GlanceImage());
        }

        ImageConcreteBuilder(GlanceImage m) {
            this.m = m;
        }

        /**
         * {@inheritDoc}
         */
        @Override
        public ImageBuilder visibility(ImageVisibility visibility) {
            m.visibility = visibility;
            return this;
        }

        /**
         * {@inheritDoc}
         */
        @Override
        public ImageBuilder tags(List tags) {
            m.tags = tags;
            return this;
        }

        /**
         * {@inheritDoc}
         */
        @Override
        public ImageBuilder containerFormat(ContainerFormat containerFormat) {
            m.containerFormat = containerFormat;
            return this;
        }

        /**
         * {@inheritDoc}
         */
        @Override
        public ImageBuilder diskFormat(DiskFormat diskFormat) {
            m.diskFormat = diskFormat;
            return this;
        }

        /**
         * {@inheritDoc}
         */
        @Override
        public ImageBuilder minDisk(Long minDisk) {
            m.minDisk = minDisk;
            return this;
        }

        /**
         * {@inheritDoc}
         */
        @Override
        public ImageBuilder minRam(Long minRam) {
            m.minRam = minRam;
            return this;
        }

        /**
         * {@inheritDoc}
         */
        @Override
        public ImageBuilder isProtected(Boolean isProtected) {
            m.isProtected = isProtected;
            return this;
        }

        /**
         * {@inheritDoc}
         */
        @Override
        public ImageBuilder architecture(String architecture) {
            m.architecture = architecture;
            return this;
        }

        /**
         * {@inheritDoc}
         */
        @Override
        public ImageBuilder instanceUuid(String instanceUuid) {
            m.instanceUuid = instanceUuid;
            return this;
        }

        /**
         * {@inheritDoc}
         */
        @Override
        public ImageBuilder kernelId(String kernelId) {
            m.kernelId = kernelId;
            return this;
        }

        /**
         * {@inheritDoc}
         */
        @Override
        public ImageBuilder osVersion(String osVersion) {
            m.osVersion = osVersion;
            return this;
        }

        /**
         * {@inheritDoc}
         */
        @Override
        public ImageBuilder osDistro(String osDistro) {
            m.osDistro = osDistro;
            return this;
        }

        /**
         * {@inheritDoc}
         */
        @Override
        public ImageBuilder ramdiskId(String ramdiskId) {
            m.ramdiskId = ramdiskId;
            return this;
        }

        /**
         * {@inheritDoc}
         */
        @Override
        public ImageBuilder additionalProperty(String key, String value) {
            if (key != null && !RESERVED_KEYS.contains(key)) {
                m.additionalProperties.put(key, value);
            }
            return this;
        }

        /**
         * {@inheritDoc}
         */
        @Override
        public Image build() {
            return m;
        }

        /**
         * {@inheritDoc}
         */
        @Override
        public ImageBuilder from(Image in) {
            m = (GlanceImage) in;
            return this;
        }

        /**
         * {@inheritDoc}
         */
        @Override
        protected Image reference() {
            return m;
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy