org.openstack4j.model.manila.builder.ShareCreateBuilder Maven / Gradle / Ivy
package org.openstack4j.model.manila.builder;
import org.openstack4j.common.Buildable;
import org.openstack4j.model.manila.Share;
import org.openstack4j.model.manila.ShareCreate;
import java.util.Map;
/**
* Builds a {@link org.openstack4j.model.manila.ShareCreate}.
*
* @author Daniel Gonzalez Nothnagel
*/
public interface ShareCreateBuilder extends Buildable.Builder {
/**
* Set the Shared File Systems protocol.
*
* @param shareProto the Shared File Systems protocol
* @return ShareCreateBuilder
*/
ShareCreateBuilder shareProto(Share.Protocol shareProto);
/**
* Set the share size, in GBs.
*
* @param size the share size
* @return ShareCreateBuilder
*/
ShareCreateBuilder size(Integer size);
/**
* Set the share name.
*
* @param name the share name
* @return ShareCreateBuilder
*/
ShareCreateBuilder name(String name);
/**
* Set the share description.
*
* @param description the share description
* @return ShareCreateBuilder
*/
ShareCreateBuilder description(String description);
/**
* Set the share name.
*
* @param displayName the share name
* @return ShareCreateBuilder
*/
ShareCreateBuilder displayName(String displayName);
/**
* Set the share description.
*
* @param displayDescription the share description
* @return ShareCreateBuilder
*/
ShareCreateBuilder displayDescription(String displayDescription);
/**
* Set the UUID of the share type.
*
* @param shareType the share type
* @return ShareCreateBuilder
*/
ShareCreateBuilder shareType(String shareType);
/**
* Set the volume type.
*
* @param volumeType the volume type
* @return ShareCreateBuilder
*/
ShareCreateBuilder volumeType(String volumeType);
/**
* Set the UUID of the snapshot from which to create the share.
*
* @param snapshotId the snapshot ID
* @return ShareCreateBuilder
*/
ShareCreateBuilder snapshotId(String snapshotId);
/**
* Set the level of visibility for the share.
*
* @param isPublic the level of visibility for the share
* @return ShareCreateBuilder
*/
ShareCreateBuilder isPublic(Boolean isPublic);
/**
* Adds a new metadata item to the share.
*
* @param key the key of the metadata item
* @param value the value of the metadata item
* ShareCreateBuilder
* @return ShareCreateBuilder
*/
ShareCreateBuilder addMetadataItem(String key, String value);
/**
* One or more metadata key and value pairs as a dictionary of strings.
*
* @param metadata the share metadata
* @return ShareCreateBuilder
*/
ShareCreateBuilder metadata(Map metadata);
/**
* Set the UUID of the share network.
*
* @param shareNetworkId the share network ID
* @return ShareCreateBuilder
*/
ShareCreateBuilder shareNetworkId(String shareNetworkId);
/**
* Set the UUID of the consistency group where the share was created.
*
* @param consistencyGroupId the consistency group ID
* @return ShareCreateBuilder
*/
ShareCreateBuilder consistencyGroupId(String consistencyGroupId);
/**
* Set the availability zone.
*
* @param availabilityZone the availability zone
* @return ShareCreateBuilder
*/
ShareCreateBuilder availabilityZone(String availabilityZone);
}