text: /*
   * Copyright (c) Microsoft Corporation. All rights reserved.
   * Licensed under the MIT License. See License.txt in the project root for
   * license information.
   *
   * Code generated by Microsoft (R) AutoRest Code Generator.
   * Changes may cause incorrect behavior and will be lost if the code is
   * regenerated.
   */
  
  'use strict';
  
  /**
   * The branch build configuration
   *
   */
  class BranchConfiguration {
    /**
     * Create a BranchConfiguration.
     * @property {number} id
     * @property {string} [trigger] Possible values include: 'continous',
     * 'continuous', 'manual'
     * @property {boolean} [testsEnabled]
     * @property {boolean} [badgeIsEnabled]
     * @property {boolean} [signed]
     * @property {object} [toolsets]
     * @property {object} [toolsets.xcode]
     * @property {string} [toolsets.xcode.projectOrWorkspacePath] Xcode
     * project/workspace path
     * @property {string} [toolsets.xcode.podfilePath] Path to CococaPods file,
     * if present
     * @property {string} [toolsets.xcode.cartfilePath] Path to Carthage file, if
     * present
     * @property {string} [toolsets.xcode.provisioningProfileEncoded]
     * @property {string} [toolsets.xcode.certificateEncoded]
     * @property {string} [toolsets.xcode.provisioningProfileFileId]
     * @property {string} [toolsets.xcode.certificateFileId]
     * @property {string} [toolsets.xcode.provisioningProfileUploadId]
     * @property {array} [toolsets.xcode.appExtensionProvisioningProfileFiles]
     * @property {string} [toolsets.xcode.certificateUploadId]
     * @property {string} [toolsets.xcode.certificatePassword]
     * @property {string} [toolsets.xcode.scheme]
     * @property {string} [toolsets.xcode.xcodeVersion]
     * @property {string} [toolsets.xcode.provisioningProfileFilename]
     * @property {string} [toolsets.xcode.certificateFilename]
     * @property {string} [toolsets.xcode.teamId]
     * @property {boolean} [toolsets.xcode.automaticSigning]
     * @property {string} [toolsets.xcode.xcodeProjectSha] The selected
     * pbxproject hash to the repositroy
     * @property {string} [toolsets.xcode.archiveConfiguration] The build
     * configuration of the target to archive
     * @property {string} [toolsets.xcode.targetToArchive] The target id of the
     * selected scheme to archive
     * @property {object} [toolsets.javascript]
     * @property {string} [toolsets.javascript.packageJsonPath] Path to
     * package.json file for the main project, e.g. "package.json" or
     * "myapp/package.json"
     * @property {boolean} [toolsets.javascript.runTests] Whether to run Jest
     * unit tests, via npm test, during the build
     * @property {string} [toolsets.javascript.reactNativeVersion] Version of
     * React Native from package.json files
     * @property {object} [toolsets.xamarin]
     * @property {string} [toolsets.xamarin.slnPath]
     * @property {string} [toolsets.xamarin.isSimBuild]
     * @property {string} [toolsets.xamarin.args]
     * @property {string} [toolsets.xamarin.configuration]
     * @property {string} [toolsets.xamarin.p12File]
     * @property {string} [toolsets.xamarin.p12Pwd]
     * @property {string} [toolsets.xamarin.provProfile]
     * @property {string} [toolsets.xamarin.monoVersion]
     * @property {string} [toolsets.xamarin.sdkBundle]
     * @property {string} [toolsets.xamarin.symlink] Symlink of the SDK Bundle
     * and Mono installation.
     * The build will use the associated Mono bundled with related Xamarin SDK.
     * If both symlink and monoVersion or sdkBundle are passed, the symlink is
     * taking precedence. If non-existing symlink is passed, the current stable
     * Mono version will be configured for building.
     * @property {object} [toolsets.android]
     * @property {string} [toolsets.android.gradleWrapperPath] Path to the Gradle
     * wrapper script
     * @property {string} [toolsets.android.module] The Gradle module to build
     * @property {string} [toolsets.android.buildVariant] The Android build
     * variant to build
     * @property {boolean} [toolsets.android.runTests] Whether to run unit tests
     * during the build (default)
     * @property {boolean} [toolsets.android.runLint] Whether to run lint checks
     * during the build (default)
     * @property {boolean} [toolsets.android.isRoot] Whether it is the root
     * module or not
     * @property {boolean} [toolsets.android.automaticSigning] Whether to apply
     * automatic signing or not
     * @property {string} [toolsets.android.keystorePassword] The password of the
     * keystore
     * @property {string} [toolsets.android.keyAlias] The key alias
     * @property {string} [toolsets.android.keyPassword] The key password
     * @property {string} [toolsets.android.keystoreFilename] The name of the
     * keystore file
     * @property {string} [toolsets.android.keystoreEncoded] The keystore encoded
     * value
     * @property {object} [artifactVersioning]
     * @property {string} [artifactVersioning.buildNumberFormat] Possible values
     * include: 'buildId', 'timestamp'
     */
    constructor() {
    }
  
    /**
     * Defines the metadata of BranchConfiguration
     *
     * @returns {object} metadata of BranchConfiguration
     *
     */
    mapper() {
      return {
        required: false,
        serializedName: 'BranchConfiguration',
        type: {
          name: 'Composite',
          additionalProperties: {
            type: {
              name: 'Dictionary',
              value: {
                  required: false,
                  serializedName: 'BranchPropertiesElementType',
                  type: {
                    name: 'Composite',
                    className: 'BranchProperties'
                  }
              }
            }
          },
          className: 'BranchConfiguration',
          modelProperties: {
            id: {
              required: true,
              serializedName: 'id',
              type: {
                name: 'Number'
              }
            },
            trigger: {
              required: false,
              serializedName: 'trigger',
              type: {
                name: 'String'
              }
            },
            testsEnabled: {
              required: false,
              serializedName: 'testsEnabled',
              type: {
                name: 'Boolean'
              }
            },
            badgeIsEnabled: {
              required: false,
              serializedName: 'badgeIsEnabled',
              type: {
                name: 'Boolean'
              }
            },
            signed: {
              required: false,
              serializedName: 'signed',
              type: {
                name: 'Boolean'
              }
            },
            toolsets: {
              required: false,
              serializedName: 'toolsets',
              type: {
                name: 'Composite',
                className: 'BranchConfigurationToolsets'
              }
            },
            artifactVersioning: {
              required: false,
              serializedName: 'artifactVersioning',
              type: {
                name: 'Composite',
                className: 'BranchConfigurationArtifactVersioning'
              }
            }
          }
        }
      };
    }
  }
  
  module.exports = BranchConfiguration;
  