{
  // Array of source repositories. You can have one or multiple repositories configured
  "repositories": [
    // Github repository example
    {
      // Required. Url to the repository
      "url": "https://github.com/user/repository.git",

      // Required. Alias for the repository. This is used as a prefix for file uri in Smartling
      // A unique alias value is recommended but not required
      "alias": "github_test",

      // Required. Repository type - possible values are GIT and SVN
      "type": "GIT",

      // Optional. Customization for SVN repository layout. You can define trunk folder
      // and folder that contains branches
      // Default layout is /trunk - trunk folder and /branches - branches parent folder
#      "layout": {
#        "trunkFolder": "trunk",
#        "branchesFolder": "branches"
#      },

      // Required. Smartling project API credentials, available from the Smartling Dashboard
      "smartlingProject": {
        "projectId": "projectId",
        "userIdentifier": "userIdentifier",
        "tokenSecret": "tokenSecret"
      },

      // Required. Namespace configuration for the repository. Possible values are true and false  
      // false - translations shared across all files, no unique translations for repeated strings
      // true - each file has unique translations
      // WARNING - this parameter should not be changed after files have been uploaded
      "namespace": "false",

      // Required. Relative path to the Smartling configuration file in your repository
      // By default the file name is expected to be smartling-config.json
      "resourcesConfig": "smartling-config.json",

      // Optional. You can put configuration file on the repo connector server
      // It can be absolute of relative from your configuration folder path
      // You don't need to define the "resourcesConfig" parameter in this case
      "serverResourcesConfig": "",

      // Optional. Regular expression that defines which branch names will be checked for
      // resources to upload to Smartling.
      // All branches are checked if value is empty or undefined
#      "branches": "master",

      // Optional. Polling schedule to determine how often the connector checks for changes in the repository
      // If this value isn't defined the repo connector won't check automatically
      // See http://docs.spring.io/spring/docs/3.2.x/javadoc-api/ for the format specification
      // Every 5 mins "0 */5 * * * ?"
      "pollingSchedule": "0 */5 * * * ?",

      // Optional. Advanced configurations to control how and when to download translations from Smartling
      "downloadTranslations": {
          // Determines when file downloads are triggered. Possible values are ONCHANGE and COMPLETED, default is COMPLETED. 
          // COMPLETED - files will be downloaded when the file progress has reached 100%
          // ONCHANGE - files will be downloaded if the last change timestamp has been updated
          "trigger": "COMPLETED",
          // Determines the status of translations included in file download. Default is PUBLISHED.
          // Possible values PUBLISHED, PENDING and PSEUDO. Default value PUBLISHED
          // More details http://docs.smartling.com/pages/API/FileAPI/Download-File/ 
          "retrievalType": "PUBLISHED",
          // Determines the value for non-translated strings. Possible values true or false, default is false.
          // false - if there is no translation, translation set to the original string
          // true  - for Android XML files, untranslated elements are completely removed from the file.
          //         For all other compatible file types, empty string is returned if there is no translation.
          "includeOriginalStrings": false
      },

      // Optional. The repo connector can access a public repository without authentication
      // but translations will not be pushed back to the repository
      // If you need repository authentication choose one of the following authentication types

      // github credentials
#      "userPassword": {
#        "user": "user",
#        "password": "password"
#      }

      // personal token
#      "personalToken": {
#        "personalToken": "d059759a2215621719eea7c897d41c4a7e3cc218"
#      }

      // ssh key authentication.
      // Add your public key to github and provide path for the private key and passphrase here
#      "sshKey": {
#        "privateKeyPath": "/home/user/.ssh/repo_key_rsa",
#        "passphrase": "password"
#      }

      // github OAuth authentication
      // The repo connector must be able to show a browser from its session for this authentication type
      // Register repo connector on Github and provide the ClientID and ClientSecret
#      "oauthToken": {
#        "ClientID": "81ae67dee9f74f12b83e",
#        "ClientSecret": "3eb4a2555de2f68a2f37a1a15b32b0d889b7bf64"
#      }
    },

    // Example for Beanstalkapp repository
    {
      // Required. Url to the repository
      "url": "https://user.git.beanstalkapp.com/repository.git",

      // Required. Alias for the repository. This is used as a prefix for file uri in Smartling
      // A unique alias value is recommended but not required
      "alias": "beanstalkapp_test",

      // Required. Repository type
      "type": "GIT",

      // Required. Smartling project API credentials, available from the Smartling Dashboard
      "smartlingProject": {
        "projectId": "projectId",
        "userIdentifier": "userIdentifier",
        "tokenSecret": "tokenSecret"
      },

      // Required. Namespace configuration for the repository. Possible values are true and false  
      // false - translations shared across all files, no unique translations for repeated strings
      // true - each file has unique translations
      // WARNING - this parameter should not be changed after files have been uploaded
      "namespace": "false",

      // Required. Relative path to the Smartling configuration file in your repository
      // By default the file name is expected to be smartling-config.json
      "resourcesConfig": "smartling-config.json",

      // Optional. You can put configuration file on the repo connector server
      // You don't need to define the "resourcesConfig" parameter in this case
      "serverResourcesConfig": "",

      // Optional. Array of branches names that will be checked for resources to upload
      // to Smartling. All branches are checked if array is empty or undefined
#      "branches": ["master", "unstable"],

      // Optional. Polling schedule to determine how often the connector checks for changes in the repository
      // If this value isn't defined the repo connector won't check automatically
      // See http://docs.spring.io/spring/docs/3.2.x/javadoc-api/ for the format specification
      // Every 5 mins "0 */5 * * * ?"
      "pollingSchedule": "0 */5 * * * ?",

      // Required. Purge branches schedule determines how often the connector should check for deleted branches
      // Define the purge directory period using cron expression
      // See http://docs.spring.io/spring/docs/3.2.x/javadoc-api/ for the format specification
      // You can generate or test cron expression there http://www.cronmaker.com/
      // Two times per day "0 0 */12 * * ?"
      "purgeBranchesSchedule": "0 0 */12 * * ?",

      // Optional. Determines what merging strategy should be applied if conflict happens during pulling changes from external repository.
      // Possible values is LOCAL, REMOTE. Default is LOCAL. Find related information for
      // git "ours" vs "theirs" there https://git-scm.com/docs/git-merge#_merge_strategies
      // LOCAL - Simple strategy that sets the output tree to the first input tree
      // REMOTE - Simple strategy that sets the output tree to the second input tree
#      "mergingStrategy":"LOCAL",

      // Optional. Advanced configurations to control how and when to download translations from Smartling
      "downloadTranslations": {
          // Determines when file downloads are triggered. Possible values are ONCHANGE and COMPLETED, default is COMPLETED. 
          // COMPLETED - files will be downloaded when the file progress has reached 100%
          // ONCHANGE - files will be downloaded if the last change timestamp has been updated
          "trigger": "COMPLETED",
          // Determines the status of translations included in file download. Default is PUBLISHED.
          // Possible values PUBLISHED, PENDING and PSEUDO. Default value PUBLISHED
          // More details http://docs.smartling.com/pages/API/FileAPI/Download-File/ 
          "retrievalType": "PUBLISHED",
          // Determines the value for non-translated strings. Possible values true or false, default is false.
          // false - if there is no translation, translation set to the original string
          // true  - for Android XML files, untranslated elements are completely removed from the file.
          //         For all other compatible file types, empty string is returned if there is no translation.
          "includeOriginalStrings": false
      },
      
      // Optional. The repo connector can access a public repository without authentication
      // but translations will not be pushed back to the repository
      // If you need repository authentication choose one of the following authentication types

      // beanstalkapp credentials
#      "userPassword": {
#        "user": "user",
#        "password": "password"
#      }

      // ssh key authentication.
      // Add your public key to beanstalkapp and provide path for the private key and passphrase here
#      "sshKey": {
#        "privateKeyPath": "/home/user/.ssh/repo_key_rsa",
#        "passphrase": "password"
#      }
    }
  ],

  // Settings for repo-connector http listener
  "http": {
      // Current host. Set this parameter to "0.0.0.0" value
      "host": "0.0.0.0",

      // Port for the listener. Choose any free port.
      // If you want to start several repo-connector instances each of them must have it own unique port
      "port": "5555",

      // Protocol. The parameter can have either "http" or "https" value.
      // You must provide additional ssl section for https protocol, see documentation for the details
      "protocol": "http",

      // Url for callbacks. This url must be available from internet
      "callbackUrl": ""
  },

  // Internal repo-connector settings
  "manager": {
      // port for status and stop commands transmission. Choose any free port differ from http one
      // If you want to start several repo-connector instances each of them must have it own unique port
      "managePort" : "7777"
  },

  // Polling schedule to determine how often the connector checks for updates to translation status in Smartling
  // Define the polling period using cron expression
  "scheduler": {
    "checkTranslation": {
      // cron expression in Spring framework format.
      // See http://docs.spring.io/spring/docs/3.2.x/javadoc-api/ for the format specification
      "cron": "0 0 */4 * * ?"
    }
  },

  // Path to logs folder. You can leave it empty, it is cfg/logs by default
  "logs_directory": "",

  // Path to metrics folder. You can leave it empty, it is cfg/metrics by default
  "metrics_directory": "",

  // Path to git clones. You can leave it empty, it is cfg/git-data by default
  "clone_directory": "",

  // Path to activemq persistent folder. You can leave it empty, it is cfg/activemq-data by default
  "queue_directory": "",

  // Path to repo-connector persistent data folder. You can leave it empty, it is cfg/db-data by default
  "db_directory": ""
}
