# encoding: utf-8
# Code generated by Microsoft (R) AutoRest Code Generator.
# Changes may cause incorrect behavior and will be lost if the code is
# regenerated.

module Azure::BatchAI::Mgmt::V2017_09_01_preview
  module Models
    #
    # Settings for the data disk which would be created for the File Server.
    #
    class DataDisks

      include MsRestAzure

      # @return [Integer] Initial disk size in GB for blank data disks, and the
      # new desired size for resizing existing data disks.
      attr_accessor :disk_size_in_gb

      # @return [CachingType] None, ReadOnly, ReadWrite. Default value is None.
      # This property is not patchable. Possible values include: 'none',
      # 'readonly', 'readwrite'. Default value: 'none' .
      attr_accessor :caching_type

      # @return [Integer] Number of data disks to be attached to the VM. RAID
      # level 0 will be applied in the case of multiple disks.
      attr_accessor :disk_count

      # @return [StorageAccountType] Specifies the type of storage account to
      # be used on the disk. Possible values are: Standard_LRS or Premium_LRS.
      # Possible values include: 'Standard_LRS', 'Premium_LRS'
      attr_accessor :storage_account_type


      #
      # Mapper for DataDisks class as Ruby Hash.
      # This will be used for serialization/deserialization.
      #
      def self.mapper()
        {
          client_side_validation: true,
          required: false,
          serialized_name: 'DataDisks',
          type: {
            name: 'Composite',
            class_name: 'DataDisks',
            model_properties: {
              disk_size_in_gb: {
                client_side_validation: true,
                required: true,
                serialized_name: 'diskSizeInGB',
                type: {
                  name: 'Number'
                }
              },
              caching_type: {
                client_side_validation: true,
                required: false,
                read_only: true,
                serialized_name: 'cachingType',
                default_value: 'none',
                type: {
                  name: 'Enum',
                  module: 'CachingType'
                }
              },
              disk_count: {
                client_side_validation: true,
                required: true,
                serialized_name: 'diskCount',
                type: {
                  name: 'Number'
                }
              },
              storage_account_type: {
                client_side_validation: true,
                required: true,
                serialized_name: 'storageAccountType',
                type: {
                  name: 'String'
                }
              }
            }
          }
        }
      end
    end
  end
end
