# 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::Sqlvirtualmachine::Mgmt::V2017_03_01_preview
  module Models
    #
    # Active Directory account details to operate Windows Server Failover
    # Cluster.
    #
    class WsfcDomainProfile

      include MsRestAzure

      # @return [String] Fully qualified name of the domain.
      attr_accessor :domain_fqdn

      # @return [String] Organizational Unit path in which the nodes and
      # cluster will be present.
      attr_accessor :ou_path

      # @return [String] Account name used for creating cluster (at minimum
      # needs permissions to 'Create Computer Objects' in domain).
      attr_accessor :cluster_bootstrap_account

      # @return [String] Account name used for operating cluster i.e. will be
      # part of administrators group on all the participating virtual machines
      # in the cluster.
      attr_accessor :cluster_operator_account

      # @return [String] Account name under which SQL service will run on all
      # participating SQL virtual machines in the cluster.
      attr_accessor :sql_service_account

      # @return [String] Optional path for fileshare witness.
      attr_accessor :file_share_witness_path

      # @return [String] Fully qualified ARM resource id of the witness storage
      # account.
      attr_accessor :storage_account_url

      # @return [String] Primary key of the witness storage account.
      attr_accessor :storage_account_primary_key


      #
      # Mapper for WsfcDomainProfile class as Ruby Hash.
      # This will be used for serialization/deserialization.
      #
      def self.mapper()
        {
          client_side_validation: true,
          required: false,
          serialized_name: 'WsfcDomainProfile',
          type: {
            name: 'Composite',
            class_name: 'WsfcDomainProfile',
            model_properties: {
              domain_fqdn: {
                client_side_validation: true,
                required: false,
                serialized_name: 'domainFqdn',
                type: {
                  name: 'String'
                }
              },
              ou_path: {
                client_side_validation: true,
                required: false,
                serialized_name: 'ouPath',
                type: {
                  name: 'String'
                }
              },
              cluster_bootstrap_account: {
                client_side_validation: true,
                required: false,
                serialized_name: 'clusterBootstrapAccount',
                type: {
                  name: 'String'
                }
              },
              cluster_operator_account: {
                client_side_validation: true,
                required: false,
                serialized_name: 'clusterOperatorAccount',
                type: {
                  name: 'String'
                }
              },
              sql_service_account: {
                client_side_validation: true,
                required: false,
                serialized_name: 'sqlServiceAccount',
                type: {
                  name: 'String'
                }
              },
              file_share_witness_path: {
                client_side_validation: true,
                required: false,
                serialized_name: 'fileShareWitnessPath',
                type: {
                  name: 'String'
                }
              },
              storage_account_url: {
                client_side_validation: true,
                required: false,
                serialized_name: 'storageAccountUrl',
                type: {
                  name: 'String'
                }
              },
              storage_account_primary_key: {
                client_side_validation: true,
                required: false,
                serialized_name: 'storageAccountPrimaryKey',
                type: {
                  name: 'String'
                }
              }
            }
          }
        }
      end
    end
  end
end
