+ * An IllegalArgumentException will be thrown if a container instance attempts to define a volume mounting. + * @return the next stage of the definition + */ + WithFirstContainerInstance withoutVolume(); + + /** + * Specifies a new Azure file share name to be created. + * + * @param volumeName the name of the volume + * @param shareName the Azure file share name to be created + * @return the next stage of the definition + */ + WithFirstContainerInstance withNewAzureFileShareVolume(String volumeName, String shareName); + + /** + * Begins the definition of a volume that can be shared by the container instances in the container group. + * + *
+ * The definition must be completed with a call to {@link VolumeDefinitionStages.WithAttach#attach()}
+ * @param name the name of the volume
+ * @return the next stage of the definition
+ */
+ VolumeDefinitionStages.Blank
+ * The definition must be completed with a call to {@link VolumeDefinitionStages.WithAttach#attach()}
+ * @param name the name of the volume
+ * @return the next stage of the definition
+ */
+ VolumeDefinitionStages.Blank
+ * At this stage, any remaining optional settings can be specified, or the subnet definition
+ * can be attached to the parent virtual network definition.
+ * @param
+ * A public IP address will be create to allow external clients to reach the containers within the group.
+ * To enable external clients to reach a container within the group, you must expose the port on the
+ * IP address and from the container. Because containers within the group share a port namespace, port
+ * mapping is not supported.
+ *
+ * @param ports array of TCP ports to be exposed externally
+ * @return the next stage of the definition
+ */
+ WithPortsOrAttach
+ * A public IP address will be create to allow external clients to reach the containers within the group.
+ * To enable external clients to reach a container within the group, you must expose the port on the
+ * IP address and from the container. Because containers within the group share a port namespace, port
+ * mapping is not supported.
+ *
+ * @param port TCP port to be exposed externally
+ * @return the next stage of the definition
+ */
+ WithPortsOrAttach
+ * A public IP address will be create to allow external clients to reach the containers within the group.
+ * To enable external clients to reach a container within the group, you must expose the port on the
+ * IP address and from the container. Because containers within the group share a port namespace, port
+ * mapping is not supported.
+ *
+ * @param ports array of UDP ports to be exposed externally
+ * @return the next stage of the definition
+ */
+ WithPortsOrAttach
+ * A public IP address will be create to allow external clients to reach the containers within the group.
+ * To enable external clients to reach a container within the group, you must expose the port on the
+ * IP address and from the container. Because containers within the group share a port namespace, port
+ * mapping is not supported.
+ *
+ * @param port UDP port to be exposed externally
+ * @return the next stage of the definition
+ */
+ WithPortsOrAttach
+ * Containers within a group can reach each other via localhost on the ports that they have exposed,
+ * even if those ports are not exposed externally on the group's IP address.
+ *
+ * @param ports array of TCP ports to be exposed internally
+ * @return the next stage of the definition
+ */
+ WithPortsOrAttach
+ * Containers within a group can reach each other via localhost on the ports that they have exposed,
+ * even if those ports are not exposed externally on the group's IP address.
+ *
+ * @param port TCP port to be exposed internally
+ * @return the next stage of the definition
+ */
+ WithPortsOrAttach
+ * The CPU cores can be specified as a fraction, i.e. 1.5 represents one and a half atomic CPU cores
+ * will be assigned to this container instance.
+ *
+ * @param
+ * The memory size can be specified as a fraction, i.e. 1.5 represents one and a half GB of memory.
+ *
+ * @param
+ * Mounting an Azure file share as a volume in a container is a two-step process. First, you provide
+ * the details of the share as part of defining the container group, then you specify how you wan
+ * the volume mounted within one or more of the containers in the group.
+ *
+ * @param volumeName the volume name as defined in the volumes of the container group
+ * @param mountPath the local path the volume will be mounted at
+ * @return the next stage of the definition
+ * @throws IllegalArgumentException thrown if volumeName was not defined in the respective container group definition stage.
+ */
+ WithAttach
+ * Mounting an Azure file share as a volume in a container is a two-step process. First, you provide
+ * the details of the share as part of defining the container group, then you specify how you wan
+ * the volume mounted within one or more of the containers in the group.
+ *
+ * @param volumeMountSetting the name and value pair representing volume names as defined in the volumes of the container group and the local paths the volume will be mounted at
+ * @return the next stage of the definition
+ * @throws IllegalArgumentException thrown if volumeName was not defined in the respective container group definition stage.
+ */
+ WithAttach
+ * Mounting an Azure file share as a volume in a container is a two-step process. First, you provide
+ * the details of the share as part of defining the container group, then you specify how you wan
+ * the volume mounted within one or more of the containers in the group.
+ *
+ * @param volumeName the volume name as defined in the volumes of the container group
+ * @param mountPath the local path the volume will be mounted at
+ * @return the next stage of the definition
+ * @throws IllegalArgumentException thrown if volumeName was not defined in the respective container group definition stage.
+ */
+ WithAttach
+ * Mounting an Azure file share as a volume in a container is a two-step process. First, you provide
+ * the details of the share as part of defining the container group, then you specify how you wan
+ * the volume mounted within one or more of the containers in the group.
+ *
+ * @param volumeMountSetting the name and value pair representing volume names as defined in the volumes of the container group and the local paths the volume will be mounted at
+ * @return the next stage of the definition
+ * @throws IllegalArgumentException thrown if volumeName was not defined in the respective container group definition stage.
+ */
+ WithAttach
+ * At this stage, any remaining optional settings can be specified, or the subnet definition
+ * can be attached to the parent virtual network definition.
+ * @param >>() {
+ @Override
+ public List
>, Triple
>, Observable extends ContainerGroupInner>>() {
+ @Override
+ public Observable extends ContainerGroupInner> call(List
, String>() {
+ @Override
+ public String call(List
> listAsync(final ListOperationCallback
> listByResourceGroupAsync(final String resourceGroupName, final ListOperationCallback