WANdisco Subversion MultiSite 4.1

only search WANdisco
Navigation: wandisco.com | Index | Deployment | User Guide | Technical | API | Glossary | Mobile | Release Notes
Deployment Guide

1. Introduction
  1.2 Feedback
  1.3 Key
  1.4 Release Notes

2. Deployment guide
  2.1 Skills requirement
  2.2 Deployment overview
  2.3 System requirement
  2.4 Deployment Checklist
3. Installation
  3.1 Installation overview
  3.2 Before you start
  3.3 Starting the installation
4. Complete setup through a browser
5. Login to the Admin Console for the first time
6. Copying the installation files manually
7. Post Installation Configuration
  7.1 Using pre-commit hooks?


User Guide

1. Replicator Management
  1.1 Adding a node
  1.2 Removing a node
  1.3 Creating a new replication group
  1.4 Deleting a replication group
  1.5 Adding a repository
  1.6 Removing a repository
  1.7 Moving a repository to another replication group
  1.8 Setting MultiSite to start up on system boot
  1.9 Changing the Subversion replicated client port
  1.10 Shutting down MultiSite

2. Setting up the replicator for production
  2.1 Setting up MultiSite as a Windows service
  2.2 Setting up MultiSite as a Linux/Unix service
  2.3 Toggling the quorum check
  2.4 About Watchdog mode
  2.5 Using SSL
  2.6 Setting the server key
  2.7 Using SSL for both LDAP and emails
3. Changing prefs.xml settings
  3.1.1 Changing prefs.xml settings
  3.1.2 Changing prefs.xml settings
  3.2 Performing a Synchronized Stop
  3.3 Resuming from a Synchronized Stop
  3.4 Verifying that the replicator is working
  3.5 Changing the Distinguished Node
  3.6 Using Subversion hooks for sending e-mails
  3.7 Changing the admin console username or password
  3.8 Setting Up Hooks
  3.8.1 Pre-Replication Hook
  3.8.2 Repository-Specific Hooks
  3.9 Selective Replication

4. Updating Apache or Subversion in WANdisco Deployment

5. Upgrading Subversion MultiSite
  5.1 Upgrade from backup
  5.2 Upgrade from script
  5.3 Using the upgrader script

6. Authz Notifier Utility
  6.1 Usage
  6.2 Disabling LDAP for Admin Authentication
  6.3 LDAP Admin Authentication URL syntax
  6.4 LDAP timeout

7. Access Control
  7.1 Access Control Model
  7.2 Creating User
  7.3 Importing Users
  7.4 Creating Team
  7.5 Creating Rules
  7.6 Creating Subteam
  7.7 Testing User Access
  7.8 Exporting/Importing settings
  7.9 Common Access Control Scenarios

8. Batch Access Control Updates
  8.1 Introduction
  8.2 Batch mode v.s. Enforced mode
  8.3 How to enable Batch Access Control Updates
  8.4 How to manage Batch Access Control Updates
  8.5 View Pending Changes
  8.6 View Enforced Changes


Troubleshooting

1. Finding the Last Committed Transaction
2. Repair Repository
2.1 Repository Repair Overview
2.2 Repository Repair Procedure
2.3 Manual overwrite of the corrupted repository
2.4 Manual rsync corrupted repository
2.5 Disabling Access to Subversions
  2.5.1 Disabling Subversion access (all nodes)
2.6 Emergency Reconfiguration of Quorum
2.7 Using rsync to repair a repository
2.8 Offline mode

3. Talkback script
4. Connection Request Timeout Messages
5. VPN, NAT, Firewall Timeouts
6. A node is in read-only mode
7. Updating Apache or Subversion
8. Missing License Key file
  8.1 Missing License Key file


Admin Console Guide

1. Admin console key
2. Login
3. Security
  3.1 Create Team
  3.2 List Teams
  3.3 Create Users
  3.4 Import Users
  3.5 Lookup/Search
  3.6 Create LDAP Authority
  3.7 LDAP Settings
  3.8 Pending Changes
4. System
  4.1 Log Viewer
  4.2 Disk Monitor
  4.3 License Info
  4.4 System Settings
  4.5 SSL Settings
  4.6 Garbage Collection
  4.7 Transaction Status
  4.8 Log Level
  4.9 Free Memory
  4.10 Dashboard
  4.11 Export Settings
  4.12 Import Settings
5. Proxy
  5.1 Proxy Status
  5.2 Repository Status
  5.3 Log Viewer
  5.4 SVN Settings
  5.5 Email Settings
  5.6 Change Distinguished Node
  5.7 Repair Repository
  5.8 Stop Proxy
  5.9 Shut down ode
  5.10 Nodes
  5.11 Replication Group
  5.12 Replication Group History


Technical Guide

1. Introduction
2. MultiSite Overview
3. WANdisco MultiSite Concepts
4. How Replication Works
5. Replication Example
6. WANdisco is Listening
7. Synchronized Stop of All Sites
8. Handling Node and Network Failure
  8.1 Node Failure
  8.2 Per-repository scheduling
  8.3 Network Failure
9. LDAP Authentication
  9.1 Requirements
  9.2 LDAP data flow


API Guide

10. RESTful API
10.1 Synchronisation and User Management
  10.1.1 Sync Stop
  10.1.2 Sync Resume
  10.1.3 Sync Status
  10.1.4 Toggle LDAP admin authentication
  10.1.5 Toggle LDAP admin auth
  10.1.6 Get User
  10.1.7 Get All Users
  10.1.8 Update Users
  10.1.9 Delete User
  10.1.10 Create User
  10.1.11 Update User Password
  10.1.12 Update User Password (Unencrypted)
  10.1.13 Toggle System Administrator Permission
  10.1.14 Enable User
  10.1.15 Disable User
  10.1.16 Generic File Replication
  10.1.17 Auto skip bypassable transactions

10.2 LDAP
  10.2.1 Get All LDAP Authorities
  10.2.2 Get LDAP Authority
  10.2.3 Update LDAP Authority
  10.2.4 Delete LDAP Authority
  10.2.5 Add LDAP Authority
  10.2.6 Trigger LDAP Poll
  10.2.7 Trigger LDAP Poll for a team

10.3 Repository
  10.3.1 Get Repository
  10.3.2 Add Repository
  10.3.3 Update Repository
  10.3.4 Delete Repository
  10.3.5 Update repository hook
  10.3.6 Get Overview of all Repositories

10.4 Team
  10.4.1 Get All Teams
  10.4.2 Update Team
  10.4.3 Delete Team
  10.4.4 Get Team
  10.4.5 Create Team
  10.4.6 Set LDAP Team
  10.4.7 Disable LDAP Team
  10.4.8 Add Resource to Team
  10.4.9 Remove Resource From Team
  10.4.10 Add User To Team
  10.4.11 Remove user From Team
  10.4.12 Promote User To Team Leader
  10.4.13 Demote Team Leader
  10.4.14 Grant Admin Permission
  10.4.15 Remove Admin Permission
  10.4.16 Get All Team Rules
  10.4.17 Get Team Rule
  10.4.18 Delete Team Rule
  10.4.19 Update Team Rule
  10.4.20 Create Team rules

10.5 Replication
  10.5.1 Get pending transactions
  10.5.2 Change the Distinguished Node




10. RESTful API


Access Control offers increased control and flexibility through the support of a RESTful API, delivered over HTTP(S) via the same port that is used for the admin console (6444 by default).

A RESTful API web service uses HTTP and the principles of REST to facilitate interaction between client and server, running with the following principles:

  • All calls use the base URI:
    http(s)://<server-host>:<server-port>/rest/v1.0/<resource> 
  • The Internet media type of the data supported by the web service.
  • The API must be hypertext driven, using the following HTTP methods:

  • Type Action
    POST to create a resource on the server
    GET to retrieve a resource from the server
    PUT to modify the state of a resource
    DELETE to remove a resource

    Structuring commands

    In general body requests are used for complex constructions and the inclusion of data (XML) whilst the query parameters that are applied directly to resources (in the URL) are for simple flags and IDs. Below are some examples of how you might structure various types of commands:

    Examples

    Change a User's password

    Change the password for user "bfoster" to "newpassword":

    curl -X POST -d "password=newpassword&authusername=admin&authpassword
    =admin"http://10.2.5.73:6444/rest/v1.0/users/bfoster?action=passwordUpdate

    Create a User

    Create user "aaxley" with password "changepassword", email "db@thefirm.com" and System Admin Status set to "false":

    curl -X POST -d
    "fullname=Abi%20Axley&password=changepassword&email=db@thefirm.com&isSysAdmin=false&authusername=admin&authpassword=admin"
    http://10.2.5.73:6444/rest/v1.0/users/aaxley
    

    Creating a team

    Create a team called 'TEAM_NAME'

    curl -X POST -d "authusername=admin&authpassword=r3pg3RW343&action=create" http://127.0.0.1:6444/rest/v1.0/teams/TEAM_NAME
    
    In order to set attributes ON the team you need to make a second call. It's not possible to set attributes during the team's creation. Here is how the call might be formed:
    curl -X POST -d "authusername=admin&authpassword=r3pg3RW343&ldapAuthOrder=100&ldapFilter=memberOf=CN=Some_Team,OU=Groups,
    OU=Computer,DC=net,DC=domain,DC=com&managingNodeName=svn-lab,DC=com&managingNodeName=[nodename]" http://127.0.0.1:6444/rest/v1.0/teams/TEST_NAME?action=setLdapTeam

    Apply an Access Control rule to a team

    Use an external file containing XML for the call to consume:
    curl -X POST -d @/tmp/test23-rule.txt http://127.0.0.1:6444/rest/v1.0/teams/TEST23/teamrules/test23-RW?authusername=admin&authpassword=r3pg3RW343
    
    The file "@/tmp/test23-rule.txt" contains the rule expressed in xml. Notice how the username and password parameters now move to being a URL query.

    Create a User

    curl -X POST -d "authusername=admin&authpassword=password&action=create&fullname=Test RestAPI1&password
    =letmeout&email=testrest1@wandisco.com&isSysAdmin=false&includePendingChanges=false"http://10.2.99.3:6544/rest/v1.0/users/TestRestUser1

    Add the user to a team

    curl -X POST -d "authusername=admin&authpassword=password&userToUpdate=TestRestUser1&includePendingChanges
    =false" http://10.2.99.3:6544/rest/v1.0/teams/Support?action=addUserToTeam
    You'll notice that here the action parameter moves to the URL.

    Delete a user

    Delete user 'TestRestUser2' using the credentials username 'admin' and password 'password'

    curl -X DELETE "http://10.2.99.3:6544/rest/v1.0/users/TestRestUser2?authusername=admin&authpassword=password"
    

    Batched Access Control Updates Mode

    If you enable the Batch Access Updates feature, then Access Control changes that would trigger the regeneration of either the SVN password file or the authz file are actioned in batches, once per hour (the frequency can ber changed via the admin console).

    In this situation you may need to modify API GET queries so that they ignore Access Control objects (users,team,rules) that are not yet enforced (because they're waiting to run in the next batch...)

    Use the parameter "includePendingChanges=true|false" e.g.

    /rest/v1.0/users/<username>?authusername=<adminuser>&authpassword=<adminpassword>&includePendingChanges=false    
    
    By default the API will treat this setting as "true" and will include objects that are not currently enforced.

    10.1 Synchronisation

    10.1.1 Sync Stop

    Description: Initiate a synchronized stop. This action applies only when Access Control is running as part of WANdisco's Subversion MultiSite. Read more about the Synchronized Stop.

    Path:
    http(s)://<server-host>:<server-port>/rest/v1.0/sync/stop
    Type:
    POST
    Parameters:
    authusername=<valid username> authpassword=<valid password>
    members=#List<node-name>

    tip"parameters support multiple names
    Lists of parameters can be specified in the request by using the parameter name multiple times e.g. members=node1&members=node2&members=node3.

    quorum=true|false
    Successful Response:
    200 - Success
    Error Response:
    400 - Bad Request - Some element of the request was invalid, see response message for detailed error message.
    401 - Unauthorized Access
    Example:
    curl -X POST -d "authusername=<username>&authpassword=<password>" http://<nodeIP>:6444/rest/v1.0/sync/stop
    

    10.1.2 Sync Resume

    Description: Restart replication after the completion of a synchronized stop. This action applies when Access Control is running as part of WANdisco's Subversion MultiSite. Read more about the Resuming from a Synchronized Stop.

    URL:
    http(s)://<server-host>:<server-port>/rest/v1.0/sync/resume
    Type:
    POST
    Parameters:
    authusername=<valid username> authpassword=<valid password>
    Successful Response:
    200 - Success
    Error Response:
    401 - Unauthorized Access
    Example:
    curl -X POST -d "authusername=<username>&authpassword=<password>" http://<nodeIP>:6444/rest/v1.0/sync/resume

    10.1.3 Sync Status

    Description: Get the current status of the syncronization between MultiSite nodes. This command is applicable when Access Control is running with WANdisco's Subversion MultiSite.

    URL:
    http(s)://<server-host>:<server-port>/rest/v1.0/sync/status
    Type:
    GET
    Parameters:
    authusername=<valid username> authpassword=<valid password>
    Successful Response:
    200 - Success
    Error Response:
    401 - Unauthorized Access
    Example:
    curl http://[IP ADDRESS]:6444/rest/v1.0/sync/status?token=$1 -s)

    10.1.4 Toggle LDAP login authentication

    Description: Switch the "Use LDAP for login authentication" setting to either on (true) or off (false).

    URL:
    http(s)://<server-host>:<server-port>/rest/v1.0/system/toggleprerepldap
    Type:
    POST
    Parameters:
    authusername=<valid username> authpassword=<valid password>
    value=<setting-value>
    Successful Response:
    200 - Success
    Error Response:
    400 - Bad Request - See message for detailed status.
    401 - Unauthorized Access
    Example:
    curl -X POST -d "authusername=<username>&authpassword=<password>&value=<true|false>" http://<nodeIP>:6444/rest/v1.0/system/toggleprerepldap 
     

    10.1.5 Toggle LDAP admin authentication

    Description: This command toggles the use of LDAP authorities to authenticate administrators Switch the LDAP admin authentication state - setting it either on (true) or off (false).

    Prequisite Must have a LDAP authority specified and must have at least one LDAP user with admin privileges.

    URL:
    http(s)://<server-host>:<server-port>/rest/v1.0/system/toggleldapadmin
    Type:
    POST
    Parameters:
    authusername=<valid username> authpassword=<valid password>
    value=true|false
    Successful Response: See message for detailed status
    200 - Success
    Error Response:
    400 - Bad Request - See message for detailed status.
    401 - Unauthorized Access
    Example
    curl -X POST -d "authusername=<LDAP username>&authpassword=<password>&value=<true|false>" http://<nodeIP>:6444/rest/v1.0/system/toggleldapadmin

    10.1.6 Get User

    Description: Get a selected Subversion user.

    URL:
    http(s)://<server-host>:<server-port>/rest/v1.0/users/{username}
    Type:
    GET
    Parameters:
    authusername=<valid username>
    authpassword=<valid password>
    includePendingChanges=true|false
    Successful Response:
    200 - Success - UserRSDTO (REST Data Transfer Object)
    Error Response:
    401 - Unauthorized Access
    404 - Not Found
    Example
       curl "http://<nodeIP>:6444/rest/v1.0/users/<user>?authusername=<username>&authpassword=<password>"

    10.1.7 Get All Users

    Description: Get all Subversion user, lists all known users on that node.

    URL:
    http(s)://<server-host>:<server-port>/rest/v1.0/users
    Type:
    GET
    Parameters:
    authusername=<valid username>
    authpassword=<valid password>
    includePendingChanges=true|false
    Successful Response:
    200 - Success - UserRSDTO (REST Data Transfer Object)
    Error Response:
    401 - Unauthorized Access
    404 - Not Found
    Example
        curl http://<nodeIP>:6444/rest/v1.0/users?authusername=<username>&authpassword=<password>

    10.1.8 Update User

    Description: Update a selected Subversion user.

    URL:
    http(s)://<server-host>:<server-port>/rest/v1.0/users/{username}
    Type:
    PUT
    Parameters:
    authusername=<valid username>
    password=<user password>
    fullname=<user's full name>
    email=<email>
    includePendingChanges=true|false
    Successful Response:
    200 - Success - See message for detailed status
    Error Response:
    400 - Bad Request - See message for detailed status
    401 - Unauthorized Access 404 - Not Found
    Example:
    curl -X PUT -d "authusername=<username>&authpassword=<password>&password=<passwordToUpdate>&fullname=<fullnameToUpdate>&email=<emailToUpdate>" http://<nodeIP>:6444/rest/v1.0/users/<user>

    10.1.9 Delete User

    Description: Delete a specified Subversion user.

    URL:
    http(s)://<server-host>:<server-port>/rest/v1.0/users/{username}
    Type:
    DELETE
    Parameters:
    authusername=<valid username>
    authpassword=<valid password>
    includePendingChanges=true|false
    Successful Response:
    200 - Success
    Error Response:
    401 - Unauthorized Access
    404 - Not Found
    Example:
    	curl -X DELETE "http://<nodeIP>:6444/rest/v1.0/users/<user>?authusername=<username>&authpassword=<password>"    
    

    10.1.10 Create User

    Description: Create a new Subversion user.

    URL:
    http(s)://<server-host>:<server-port>/rest/v1.0/users/{username}
    Type:
    POST
    Parameters:
    authusername=<valid username> authpassword=<valid password>
    fullname=<Users Full Name>
    password=<Users Password>
    email=<Users Email>
    isSysAdmin=true|false
    includePendingChanges=true|false
    Successful Response:
    200 - Success - See message for detailed status.
    Error Response:
    401 - Unauthorized Access
    400 - Bad Request - See message for detailed status.
    Example:
        curl -X POST -d "authusername=<username>&authpassword=<password>&password=<password>&fullname=<fullname>&email=<email>" http://<nodeIP>:6444/rest/v1.0/users/<user>

    10.1.11 Update User Password

    Description: Update a Subversion user's current password.

    URL:
    http(s)://<server-host>:<server-port>/rest/v1.0/users/{username}?action=passwordUpdate

    curl -X POST -d "token=$1&password=newPassword" http://[IP Address]:[Port]/rest/v1.0/users/$USER?action=passwordUpdate

    Type:
    POST
    Parameters:
    authusername=<valid username>
    authpassword=<valid password>
    action=passwordUpdate
    password=<Users Password>
    includePendingChanges=true|false
    Successful Response:
    200 - Success
    Error Response:
    401 - Unauthorized Access
    Example:
    curl -X POST -d "authusername=<username>&authpassword=<password>&password=<newPassword>" http://<nodeIP>:6444/rest/v1.0/users/<user>?action=passwordUpdate
    

    10.1.12 Update User Password (Unencrypted)

    Description: Update a user's password, in an unencrypted form.

    URL:
    http(s)://<server-host>:<server-port>/rest/v1.0/users/{username}?action=passwordUpdateUnencrypted

    curl -X POST -d "authusername=<username>&authpassword=<password>&password=<newPassword>" http://<nodeIP>:6444/rest/v1.0/users/<user>?action=passwordUpdateUnencrypted

    Type:
    POST
    Parameters:
    authusername=<valid username> authpassword=<valid password>
    action=passwordUpdateUnencrypted
    password=<Users Password>
    includePendingChanges=true|false
    Successful Response:
    200 - Success - See message for detailed status
    Error Response:
    400 - Bad Request - See message for detailed status.
    401 - Unauthorized Access
    404 - Not Found

    10.1.13 Toggle System Administrator Permission

    Description: Toggle administrator permission for the specified user.

    URL:
    http(s)://<server-host>:<server-port>/rest/v1.0/users/{username}?action=permissionUpdate"

    curl -X POST -d "authusername=<username>&authpassword=<password>&isSysAdmin=<true|false>" http://<nodeIP>:6444/rest/v1.0/users/<user>?action=permissionUpdate
    Type:
    POST
    Parameters:
    authusername=<valid username> authpassword=<valid password>
    action=permissionUpdate
    isSysAdmin=true|false
    includePendingChanges=true|false
    Successful Response:
    200 - Success - See message for detailed status
    Error Response:
    400 - Bad Request - See message for detailed status
    401 - Unauthorized Access
    404 - Not Found

    10.1.14 Enable User

    Description: Enable a Subversion user who is currently in a disabled state.

    URL:
    http(s)://<server-host>:<server-port>/rest/v1.0/users/{username}?action=enable

    curl -X POST -d "token=$1" http://$IP:6444/rest/v1.0/users/$USER?action=enable
    Type:
    POST
    Parameters:
    authusername=<valid username> authpassword=<valid password>
    action=enable
    includePendingChanges=true|false
    Successful Response:
    200 - Success - See message for detailed status
    Error Response:
    400 - Bad Request - See message for detailed status
    401 - Unauthorized Access
    404 - Not Found
    Example:
     curl -X POST -d "authusername=<username>&authpassword=<password>" http://<nodeIP>:6444/rest/v1.0/users/<user>?action=enable
        

    10.1.15 Disable User

    Description: Disable a Subversion user, stopping them from accessing repository data.

    URL:
    http(s)://<server-host>:<server-port>/rest/v1.0/users/{username}?action=disable

    curl -X POST -d "token=$1" http://$IP:6444/rest/v1.0/users/$USER?action=disable
    Type:
    POST
    Parameters:
    authusername=<valid username> authpassword=<valid password>
    action=disable
    includePendingChanges=true|false
    Successful Response:
    200 - Success - See message for detailed status
    Error Response:
    400 - Bad Request - See message for detailed status
    401 - Unauthorized Access
    404 - Not Found
    Example:
     curl -X POST -d "authusername=<username>&authpassword=<password>" http://<nodeIP>:6444/rest/v1.0/users/<user>?action=disable
    

    10.1.16 Generic File Replication

    Description: Replicate generic files (Authz files etc, not repository changes) to all nodes.

    Prerequisite: The setting "Use generic file replication" in the System Settings page must to be enabled.

    URL:
    http(s)://<server-host>:<server-port>/rest/v1.0/filenotifier
    Type:
    GET
    Parameters:
    authusername=<valid username> authpassword=<valid password>
    fileLocation=<source-file-location>
    fileDestination=<destination-file-location>
    Successful Response:
    200 - Success - See message for detailed status
    Error Response:
    400 - Bad Request - See message for detailed status
    401 - Unauthorized Access
    404 - Not Found
    Example:
    curl "http://<nodeIP>:6444/rest/v1.0/filenotifier?authusername=<username>&authpassword=<password>&fileLocation=%2Fopt%2Fsvnauthfiles%2Fauthz.authz&fileDestination=%2Fopt%2Fsvnauthfiles%2Fauthz.authz.bak"
    

    10.1.17 Auto skip bypassable transactions

    Description: Toggle the "Auto skip bypassable transactions" setting in the System Settings page.

    URL:
    http(s)://<server-host>:<server-port>/rest/v1.0/system/toggleautobypass
    Type:
    POST
    Parameters:
    authusername=<valid username> authpassword=<valid password>
    value=true|false
    Successful Response:
    200 - Success - See message for detailed status
    Error Response:
    400 - Bad Request - See message for detailed status
    401 - Unauthorized Access
    404 - Not Found
    Example:
    curl -X POST -d "authusername=<username>&authpassword=<password>&value=<true|false>" http://<nodeIP>:6444/rest/v1.0/system/toggleautobypass
     

    10.1.18 Change the Distinguished Node

    Description: A call that allows the distinguish node to be changed:

    URL:
    http(s)://<server-host>:<server-port>/rest/v1.0/replication/changeDistinguishedNode
    curl -X POST -d "authusername=<username>&authpassword=<password>&newdnip=<newNodeIP>" http://<nodeIP>:6444/rest/v1.0/replication/?action=changeDistinguishedNode
    Type:
    POST
    Parameters:
    authusername=<valid username>
    authpassword=<valid password>
    newdnip=<The new Distinguished Node's IP Address
    Successful Response:
    200 - Success - See message for detailed status
    Error Response:
    400 - Bad Request - See message for detailed status
    401 - Unauthorized Access
    404 - Not Found

    10.2 LDAP

    5.2.1 Get All LDAP Authorities

    Description: Get all LDAP Authorities.

    URL:
    http(s)://<server-host>:<server-port>/rest/v1.0/ldapauthorities
    Type:
    GET
    Parameters:
    authusername=<valid username> authpassword=<valid password>
    Successful Response:
    200 - Success
    Error Response:
    401 - Unauthorized Access
    404 - Not Found - No resources found
    Example:
     curl "http://<nodeIP>:6444/rest/v1.0/ldapauthorities?authusername=<username>&authpassword=<password>
    

    10.2.2 Get LDAP Authority

    Description: Get a an LDAP Authority.

    URL:
    http(s)://<server-host>:<server-port>/rest/v1.0/ldapauthorities/{order}
    Type:
    GET
    Parameters:
    authusername=<valid username> authpassword=<valid password>
    Successful Response:
    200 - Success - LDAPAuthorityRSDTO (REST Data Transfer Object)
    Error Response:
    400 - Bad Request - See message for detailed status
    401 - Unauthorized Access
    404 - No resources found
    Example
    curl "http://<nodeIP>:6444/rest/v1.0/ldapauthorities/<LdapOrder>?authusername=<username>&authpassword=<password>"
    

    10.2.3 Update LDAP Authority

    Description: Update a selected LDAP authority.

    URL:
    http(s)://<server-host>:<server-port>/rest/v1.0/ldapauthorities/{order}
    Type:
    PUT
    Parameters:
    authusername=<valid username> authpassword=<valid password>
    order=<order-number>
    url=<url>
    bindDn=<bindDn>
    bindPass=<bindPass>
    firstNameAttr=<First Name Attribute>
    lastNameAttr=<Last Name Attribute>
    emailAttr=<Email Attribute>
    Successful Response:
    200 - Success
    Error Response:
    400 - Bad Request - See message for detailed status
    401 - Unauthorized Access
    404 - Not Found
    Example:
       curl -X PUT -d "authusername=<username>&authpassword=<password>&order=<newLdapOrder>&url=<newUrl>&bindDn=<newBindDN>&bindPass=<newBindPassword>&firstNameAttr=<newFirstNameAttribute>&lastNameAttr=<newLastNameAttribute>&emailAttr=<newEmailAttribute>" http://<nodeIP>:6444/rest/v1.0/ldapauthorities/<LdapOrder>
      

    10.2.4 Delete LDAP Authority

    Description: Delete an LDAP authority.

    URL:
    http(s)://<server-host>:<server-port>/rest/v1.0/ldapauthorities/{order}
    Type:
    DELETE
    Parameters:
    authusername=<valid username> authpassword=<valid password>
    Successful Response:
    200 - Success
    Error Response:
    400 - Bad Request - See message for detailed status
    401 - Unauthorized Access
    404 - Not Found - No resources found
    Example:
    curl -X DELETE "http://<nodeIP>:6444/rest/v1.0/ldapauthorities/<LdapOrder>?authusername=<username>&authpassword=<password>
    

    10.2.5 Add LDAP Authority

    Description: Add an LDAP authority.

    URL:
    http(s)://<server-host>:<server-port>/rest/v1.0/ldapauthorities/{order}
    Type:
    POST
    Parameters:
    authusername=<valid username> authpassword=<valid password>
    order=<order-number>
    url=<url>
    bindDn=<bindDn>
    bindPass=<bindPass>
    firstNameAttr=<First Name Attribute>
    lastNameAttr=<Last Name Attribute>
    emailAttr=<Email Attribute>
    Successful Response:
    201 - Success
    Error Response:
    400 - Bad Request - See message for detailed status
    401 - Unauthorized Access
    Example:
        	curl -X POST -d "authusername=<username>&authpassword=<password>&order=<LdapOrder>&url=<newUrl>&bindDn=<newBindDN>&bindPass=<newBindPassword>&firstNameAttr=<newFirstNameAttribute>&lastNameAttr=<newLastNameAttribute>&emailAttr=<newEmailAttribute>" http://<nodeIP>:6444/rest/v1.0/ldapauthorities/<LdapOrder>
    

    10.2.6 Trigger LDAP Poll

    Description: API call to trigger a poll for changes on the LDAP service.

    URL:
    http(s)://<server-host>:<server-port>/rest/v1.0/ldapauthorities/pollLDAPAuthorities
    Type:
    POST
    Parameters:
    authusername=<valid username> authpassword=<valid password>
    order=<order-number>
    token=<SSL Token value>
    Successful Response:
    201 - Success
    Error Response:
    400 - Bad Request - See message for detailed status
    401 - Unauthorized Access
    Example:
    curl -X POST -d "authusername=<username>&authpassword=<password>" http://<nodeIP>:6444/rest/v1.0/ldapauthorities/pollLDAPAuthorities
    

    10.2.7 Trigger LDAP Poll for a team

    Description: API call to trigger a poll for changes on the LDAP service for a given team.

    URL:
    http(s)://<server-host>:6444/rest/v1.0/teams/<root-team>/subteam/<sub-team>/subteam/<target-team>?action=pollLdapTeam
    Type:
    POST
    Parameters:
    <target-team> - the team that you wish to resync with LDAP.
    Successful Response:
    200 - Success
    Error Response:
    400 - Bad Request - See message for detailed status
    401 - Unauthorized Access
    Example:
    curl -X POST -d "authusername=<username>&authpassword=<password>" http://<nodeIP>:6444/rest/v1.0/teams/<root-team>/subteam/<sub-team>/subteam/<target-team>?action=pollLdapTeam
    

    2.3 Repository

    10.3.1 Get Repository

    Description: Get a repository.

    URL:
    http(s)://<server-host>:<server-port>/rest/v1.0/repos/{repo}
    Type:
    GET
    Parameters:
    authusername=<valid username> authpassword=<valid password>
    Successful Response:
    200 - Success - repositoryRSDTO (REST Data Transfer Object)
    Error Response:
    400 - Bad Request - See message for detailed status
    404 - Not Found - No resources found
    401 - Unauthorized Access
    Example:
       curl "http://<nodeIP>:6444/rest/v1.0/repos/<DAVLocation>?authusername=<username>&authpassword=<password>"
    

    10.3.2 Add Repository

    Description: Add a repository.

    URL:
    http(s)://<server-host>:<server-port>/rest/v1.0/repos/{repo}
    Type:
    POST
    Parameters:
    authusername=<valid username> authpassword=<valid password>
    authusername=<valid username> authpassword=<valid password>
    davLocation=<Dav Location>
    directory=<Directory path on disk>
    managePasswordFile=
    passwordFilePath=
    parentPath=
    parentPathChild=true|false
    Successful Response:
    200 - Success
    Error Response:
    400 - Bad Request - See message for detailed status
    401 - Unauthorized Access

    Example: adding a repository using SVNPath

    curl -X POST -d "authusername=<username>&authpassword=<password>&davLocation=<DAVLocation>&directory=<pathOnFileSystem>&managePasswordFile=<true|false>&passwordFilePath=<passwordFilePath>" http://<nodeIP>:6444/rest/v1.0/repos/<DAVLocation>  
    

    Example: Adding an SVNParentPath directory

    curl -X POST -d "authusername=<username>&authpassword=<password>&davLocation=<DAVLocation>&directory=<pathOnFileSystem>&managePasswordFile=<true|false>&passwordFilePath=<passwordFilePath>&parentPath=true" http://<nodeIP>:6444/rest/v1.0/repos/<DAVLocation> 
    

    Example: adding a repository that is in an SVNParentPath directory

    curl -X POST -d "authusername=<username>&authpassword=<password>&parentPathChild=true" http://<nodeIP>:6444/rest/v1.0/repos/<ChildDAVLocation>   
    

    10.3.3 Update Repository

    Description: Update an existing repository.

    URL:
    http(s)://<server-host>:<server-port>/rest/v1.0/repos/{repo}
    Type:
    PUT
    Parameters:
    authusername=<valid username> authpassword=<valid password>
    davLocation=
    directory=
    managePasswordFile=
    passwordFilePath=
    preCommitHook=
    preLockHook=
    preUnlockHook=
    Successful Response:
    200 - Success
    Error Response:
    400 - Bad Request - See message for detailed status
    401 - Unauthorized Access
    404 - Not Found - No resources found
    Example:
    curl -X PUT -d "authusername=<username>&authpassword=<password>&davLocation=<newDAVLocation>&directory=<newDirectory>&managePasswordFile=<true|false>&passwordFilePath=<newPasswordFilePath>&preCommitHook=<newPreCommitHookLocation>&preLockHook=<newPreLockHookLocation>&preUnlockHook=<newPreUnlockHookLocation>" http://<nodeIP>:6444/rest/v1.0/repos/<DAVLocation>
    

    10.3.4 Delete Repository

    Description: Delete a repository.

    URL:
    http(s)://<server-host>:<server-port>/rest/v1.0/repos/{repo}
    Type:
    DELETE
    Parameters:
    authusername=<valid username> authpassword=<valid password>
    Successful Response:
    200 - Success
    Error Response:
    400 - Bad Request - See message for detailed status
    401 - Unauthorized Access
    404 - Not Found - No resources found
    Example
     curl -X DELETE "http://<nodeIP>:6444/rest/v1.0/repos/<DAVLocation>?authusername=<username>&authpassword=<password>"
            

    10.3.5 Update repository hook

    Description: Update a repository hook script.

    URL:
    http(s)://<server-host>:<server-port>/rest/v1.0/repos/{repo}/hook
    Type:
    POST
    Parameters:
    authusername=<valid username> authpassword=<valid password>
    hookname=
    action=0|1
    Successful Response:
    200 - Success
    Error Response:
    400 - Bad Request - See message for detailed status
    401 - Unauthorized Access
    404 - Not Found - No resources found
    Example:
    curl -X POST -d "authusername=<username>&authpassword=<password>&hookname=<pre-commit|pre-lock|pre-unlock>&action=<enable|disable>" http://<nodeIP>:6444/rest/v1.0/repos/<DAVLocation>/hook

    5.4.6 Get Overview of all Repositories

    Description: Use to get a list of all repositories and their current status.

    URL:
    http(s)://<server-host>:<server-port>/rest/v1.0/repos/
    Type:
    GET
    Parameters:
    authusername=<valid username> authpassword=<valid password>
    Successful Response:
    200 - Success
    Error Response:
    400 - Bad Request - See message for detailed status
    401 - Unauthorized Access
    Example:
    curl "http://<nodeIP>:6444/rest/v1.0/repos?authusername=<username>&authpassword=<password>"

    Example Return
       <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <repositoryRSDTOes>
    <repository>
    <childRepositories>repo1_pp</childRepositories>
    <childRepositories>repo2_pp</childRepositories>
    <childRepositories>repo3_pp</childRepositories>
    <davLocation>/svn</davLocation>
    <fileSystemLocation>/repos_pp</fileSystemLocation>
    <parentPath>true</parentPath>
    <status>Active</status>
    </repository>
    <repository>
    <davLocation>/svn/repo1_pp</davLocation>
    <fileSystemLocation>/repos_pp/repo1_pp</fileSystemLocation>
    <parentPath>false</parentPath>
    <status>Active</status>
    </repository>
    <repository>
    <davLocation>.........
        
        

    10.4 Teams

    10.4.1 Get All Teams

    Description: Get all Access Control teams.

    URL:
    http(s)://<server-host>:<server-port>/rest/v1.0/teams
    Type:
    GET
    Parameters:
    authusername=<valid username>
    authpassword=<valid password>
    includePendingChanges=true|false
    Successful Response:
    200 - Success - teamRSDTO (REST Data Transfer Object)
    Error Response:
    400 - Bad Request - See message for detailed status
    401 - Unauthorized Access
    Example:
      curl "http://<nodeIP>:6444/rest/v1.0/teams?authusername=<username>&authpassword=<password>"
    

    10.4.2 Update Team

    Description: Update an Access Control team.

    URL:
    http(s)://<server-host>:<server-port>/rest/v1.0/teams/{root-team}/subteam/{subteam1}/subteam/{target-team}
    Type:
    PUT
    Parameters:
    authusername=<valid username>
    authpassword=<valid password>
    newTeamName=
    newTeamDescription=
    includePendingChanges=true|false
    Successful Response:
    200 - Success
    Error Response:
    400 - Bad Request - See message for detailed status
    401 - Unauthorized Access
    404 - Not Found - No resources found
    Example
    curl -X PUT -d "authusername=<username>&authpassword=<password>&newTeamDescription=<newDescription>&newTeamName=<newTeamName>" http://<nodeIP>:6444/rest/v1.0/teams/<teamName> 
    

    10.4.3 Delete Team

    Description: Delete an Access Control team.

    URL:
    http(s)://<server-host>:<server-port>/rest/v1.0/teams/{root-team}/subteam/{subteam1}/subteam/{target-team}
    Type:
    DELETE
    Parameters:
    authusername=<valid username>
    authpassword=<valid password>
    includePendingChanges=true|false
    Successful Response:
    200 - Success
    Error Response:
    400 - Bad Request - See message for detailed status
    401 - Unauthorized Access
    404 - Not Found - No resources found
    Example:
    curl -X DELETE http://<nodeIP>:6444/rest/v1.0/teams/<teamName>?authusername=<username>&authpassword=<password>

    10.4.4 Get Team

    Description: Get an Access Control team.

    URL:
    http(s)://<server-host>:<server-port>/rest/v1.0/teams/{root-team}/subteam/{subteam1}/subteam/{target-team}
    Type:
    GET
    Parameters:
    authusername=<valid username>
    authpassword=<valid password>
    includePendingChanges=true|false
    Successful Response:
    200 - Success - teamRSDTO (REST Data Transfer Object)
    Error Response:
    400 - Bad Request - See message for detailed status
    401 - Unauthorized Access
    404 - Not Found - No resources found
    Example:
    curl "http://<nodeIP>:6444/rest/v1.0/teams/<teamName>?authusername=<username>&authpassword=<password>"   
     

    10.4.5 Create Team

    Description: Create an Access Control team.

    URL:
    http(s)://<server-host>:<server-port>/rest/v1.0/teams/{root-team}/subteam/{subteam1}/subteam/{target-team}
    Type:
    POST
    Parameters:
    authusername=<valid username>
    authpassword=<valid password>
    includePendingChanges=true|false
    action=create
    teamDescription=
    Successful Response:
    200 - Success
    Error Response:
    400 - Bad Request - See message for detailed status
    401 - Unauthorized Access
    Example:
    curl -X POST -d "authusername=<username>&authpassword=<password>" http://<nodeIP>:6444/rest/v1.0/teams/<teamName> 
     

    10.4.6 Set LDAP Team

    Description: Set a team through LDAP.

    URL:
    http(s)://<server-host>:<server-port>/rest/v1.0/teams/{root-team}/subteam/{subteam1}/subteam/{target-team}
    Type:
    POST
    Parameters:
    authusername=<valid username>
    authpassword=<valid password>
    includePendingChanges=true|false
    action=setLdapTeam
    ldapAuthOrder=
    ldapFilter=
    managingNodeName=
    Successful Response:
    200 - Success
    Error Response:
    400 - Bad Request - See message for detailed status
    401 - Unauthorized Access
    404 - Not Found - No resources found
    Example:
    curl -X POST -d "authusername=<username>&authpassword=<password>&ldapAuthOrder=<LdapOrder>&LdapFilter=<LdapFilter>" http://<nodeIP>:6444/rest/v1.0/teams/TeamLdapManaged?action=setLdapTeam

    10.4.7 Disable LDAP Team

    Description: Disable a team through LDAP.

    URL:
    http(s)://<server-host>:<server-port>/rest/v1.0/teams/{root-team}/subteam/{subteam1}/subteam/{target-team}
    Type:
    POST
    Parameters:
    authusername=<valid username>
    authpassword=<valid password>
    includePendingChanges=true|false
    action=disableLdapTeam
    Successful Response:
    200 - Success
    Error Response:
    400 - Bad Request - See message for detailed status
    401 - Unauthorized Access
    404 - Not Found - No resources found
    Example:
    curl -X POST -d "authusername=<username>&authpassword=<password>" http://<nodeIP>:6444/rest/v1.0/teams/TeamLdapManaged?action=disableLdapTeam
    

    10.4.8 Add Resource to Team

    Description: Add a repository resource to an Access Control team.

    URL:
    http(s)://<server-host>:<server-port>/rest/v1.0/teams/{root-team}/subteam/{subteam1}/subteam/{target-team}?action=addResourceToTeam
    Type:
    POST
    Parameters:
    authusername=<valid username>
    authpassword=<valid password>
    includePendingChanges=true|false
    action=addResourceToTeam
    resourceToUpdate=Repo DAV location
    Successful Response:
    200 - Success
    Error Response:
    400 - Bad Request - See message for detailed status
    401 - Unauthorized Access
    404 - Not Found - No resources found
    Example
    curl -X POST -d "authusername=<username>&authpassword=<password>&resourceToUpdate=<DAVLocation>" http://<nodeIP>:6444/rest/v1.0/teams/<teamName>?action=addResourceToTeam

    10.4.9 Remove Resource From Team

    Description: Remove a repository resource from an Access Control team.

    URL:
    http(s)://<server-host>:<server-port>/rest/v1.0/teams/{root-team}/subteam/{subteam1}/subteam/{target-team}?action=removeResourceToTeam
    Type:
    POST
    Parameters:
    authusername=<valid username>
    authpassword=<valid password>
    includePendingChanges=true|false action=removeResourceFromTeam
    includePendingChanges=true|false
    resourceToUpdate=Repo DAV location
    Successful Response:
    200 - Success
    Error Response:
    400 - Bad Request - See message for detailed status
    401 - Unauthorized Access
    404 - Not Found - No resources found
    Example:
     curl -X POST -d "authusername=<username>&authpassword=<password>&resourceToUpdate=<DAVLocation>" http://<nodeIP>:6444/rest/v1.0/teams/<teamName>?action=removeResourceFromTeam

    10.4.10 Add User To Team

    Description: Add a user to an Access Control teams.

    URL:
    http(s)://<server-host>:<server-port>/rest/v1.0/teams/{root-team}/subteam/{subteam1}/subteam/{target-team}?action=addUserToTeam
    Type:
    POST
    Parameters:
    authusername=<valid username> authpassword=<valid password>
    action=addUserToTeam
    userToUpdate=<existing user>
    userToUpdate=
    includePendingChanges=true|false
    Successful Response:
    200 - Success
    Error Response:
    400 - Bad Request - See message for detailed status
    401 - Unauthorized Access
    404 - Not Found - No resources found
    Example:
    curl -X POST -d "authusername=<username>&authpassword=<password>&userToUpdate=<user>" http://<nodeIP>:6444/rest/v1.0/teams/<teamName>?action=addUserToTeam

    10.4.11 Remove user From Team

    Description: Remove a user from an Access Control team.

    URL:
    http(s)://<server-host>:<server-port>/rest/v1.0/teams/{root-team}/subteam/{subteam1}/subteam/{target-team}?action=removeUserFromTeam
    Type:
    POST
    Parameters:
    action=removeUserFromTeam
    userToUpdate=<existing user>
    userToUpdate=
    includePendingChanges=true|false
    Successful Response:
    200 - Success
    Error Response:
    400 - Bad Request - See message for detailed status
    401 - Unauthorized Access
    404 - Not Found - No resources found
    Example:
    curl -X POST -d "authusername=<username>&authpassword=<password>&userToUpdate=<user>" http://<nodeIP>:6444/rest/v1.0/teams/<teamName>?action=removeUserFromTeam

    10.4.12 Promote User To Team Leader

    Description: Make an existing user into a team leader.

    URL:
    http(s)://<server-host>:<server-port>/rest/v1.0/teams/{root-team}/subteam/{subteam1}/subteam/{target-team}?action=promoteUserToTeamLeader
    Type:
    POST
    Parameters:
    authusername=<valid username> authpassword=<valid password>
    action=promoteUserToTeamLeader
    userToUpdate=
    includePendingChanges=true|false
    Successful Response:
    200 - Success
    Error Response:
    400 - Bad Request - See message for detailed status
    401 - Unauthorized Access
    404 - Not Found - No resources found
    Example:
    curl -X POST -d "authusername=<username>&authpassword=<password>&userToUpdate=<user>" http://<nodeIP>:6444/rest/v1.0/teams/<teamName>?action=promoteUserToTeamLeader

    10.4.13 Demote Team Leader

    Description: Remove team leader privileges from a user.

    URL:
    http(s)://<server-host>:<server-port>/rest/v1.0/teams/{root-team}/subteam/{subteam1}/subteam/{target-team}?action=demoteUserFromTeamLeader
    Type:
    POST
    Parameters:
    authusername=<valid username> authpassword=<valid password>
    action=demoteUserFromTeamLeader
    userToUpdate=
    includePendingChanges=true|false
    Successful Response:
    200 - Success
    Error Response:
    400 - Bad Request - See message for detailed status
    401 - Unauthorized Access
    404 - Not Found - No resources found
    Example:
    curl -X POST -d "authusername=<username>&authpassword=<password>&userToUpdate=<user>" http://<nodeIP>:6444/rest/v1.0/teams/<teamName>?action=demoteUserFromTeamLeader

    10.4.14 Grant Admin Permission

    Description: Assign Access Control system administrator permission to a user.

    URL:
    http(s)://<server-host>:<server-port>/rest/v1.0/teams/{root-team}/subteam/{subteam1}/subteam/{target-team}? action=grantAdminPermission
    Type:
    POST
    Parameters:
    authusername=<valid username> authpassword=<valid password>
    action=grantAdminPermission
    userToUpdate=
    permission=createSubteams|addResources|createUsers|disableUsers|modifyUsers|modifyRules
    includePendingChanges=true|false
    Successful Response:
    200 - Success
    Error Response:
    400 - Bad Request - See message for detailed status
    401 - Unauthorized Access
    404 - Not Found - No resources found
    Example:
    curl -X POST -d "authusername=<username>&authpassword=<password>&userToUpdate=<user>&permission=<createSubteams|addResources|createUsers|disableUsers|modifyUsers|modifyRules>" http://<nodeIP>:6444/rest/v1.0/teams/<teamName>?action=grantAdminPermission

    10.4.15 Remove Admin Permission

    Description: Remove Access Control system administrator permission.

    URL:
    http(s)://<server-host>:<server-port>/rest/v1.0/teams/{root-team}/subteam/{subteam1}/subteam/{target-team}
    Type:
    POST
    Parameters:
    authusername=<valid username> authpassword=<valid password>
    action=removeAdminPermission
    userToUpdate=
    permission=createSubteams|addResources|createUsers|disableUsers|modifyUsers|modifyRules
    includePendingChanges=true|false
    Successful Response:
    200 - Success
    Error Response:
    400 - Bad Request - See message for detailed status
    401 - Unauthorized Access
    404 - Not Found - No resources found
    Example:
    curl -X POST -d "authusername=<username>&authpassword=<password>&userToUpdate=<user>&permission=< createSubteams|addResources|createUsers|disableUsers|modifyUsers|modifyRules>" http://<nodeIP>:6444/rest/v1.0/teams/<teamName>?action=removeAdminPermission

    10.4.16 Get All Team Rules

    URL:
    http(s)://<server-host>:<server-port>/rest/v1.0/teams/{root-team}/subteam/{subteam1}/subteam/{target-team}/teamrules
    Type:
    GET
    Parameters:
    authusername=<valid username> authpassword=<valid password>
    includePendingChanges=true|false
    Successful Response:
    200 - Success - List<TeamRuleRSDTO> (REST Data Transfer Object)
    Error Response:
    400 - Bad Request - See message for detailed status
    401 - Unauthorized Access
    404 - Not Found - No resources found
    Example
    curl "http://<nodeIP>:6444/rest/v1.0/teams/<teamName>/teamrules?authusername=<username>&authpassword=<password>"

    10.4.17 Get Team Rule

    Description: Get an Access Control team rule.

    URL:
    http(s)://<server-host>:<server-port>/rest/v1.0/teams/{root-team}/subteam/{subteam1}/subteam/{target-team}/teamrules/{rule-name}
    Type:
    GET
    Parameters:
    authusername=<valid username> authpassword=<valid password>
    rulename=
    team=
    id=
    includePendingChanges=true|false
    Successful Response:
    200 - Success - TeamRuleRSDTO (REST Data Transfer Object)
    Error Response:
    400 - Bad Request - See message for detailed status
    401 - Unauthorized Access
    404 - Not Found - No resources found
    Example:
    curl "http://<nodeIP>:6444/rest/v1.0/teams/<teamName>/teamrules/<ruleName>?authusername=<username>&authpassword=<password>"

    10.4.18 Delete Team Rule

    Description: Delete an Access Control team rule.

    URL:
    http(s)://<server-host>:<server-port>/rest/v1.0/teams/{root-team}/subteam/{subteam1}/subteam/{target-team}/teamrules/{rule-name}
    Type:
    DELETE
    Parameters:
    authusername=<valid username>
    authpassword=<valid password>
    includePendingChanges=true|false
    Successful Response:
    200 - Success
    Error Response:
    400 - Bad Request - See message for detailed status
    401 - Unauthorized Access
    404 - Not Found - No resources found
    Example:
    curl -X DELETE "http://<nodeIP>:6444/rest/v1.0/teams/<teamName>/teamrules/<ruleName>?authusername=<username>&authpassword=<password>"

    10.4.19 Update Team Rule

    Description: Update an Access Control team rule.

    URL:
    http(s)://<server-host>:<server-port>/rest/v1.0/teams/{root-team}/subteam/{subteam1}/subteam/{target-team}/teamrules/{rule-name}
    Type:
    PUT
    Parameters:
    authusername=<valid username>
    authpassword=<valid password>
    includePendingChanges=true|false
    Consumes:
    <rule>
      <id>{ruleID}</id>
      <rule-name>{ruleName}</rule-name>
      <team-name>{slash-delimited-team-hierarchy}</team-name>
      <ip-pattern>{IPFiltering}</ip-pattern>
      <ip-pattern-option>NoRestrictions|IPList</ip-pattern-option>
      <disabled>true|false</disabled>
      <apply-to-all-users>true|false</apply-to-all-users>
      <users>
        <user>{username}</user>
      </users>
      <resource-permissions>
        <resourcePermissions>
          <pathName>{path}</pathName>
          <permission>D|RO|RW</permission>
        </resourcePermissions>
      </resource-permissions>
    </rule>
    
      
    Successful Response:
    200 - Success
    Error Response:
    400 - Bad Request - See message for detailed status
    401 - Unauthorized Access
    404 - Not Found - No resources found
    Example: update a rule for all users
    curl -H "Content-Type: application/xml" -X PUT -d "<rule><id>
    {RULEID}</id><rule-name>{RULENAME}</rule-name><team-name>{TEAMNAME}</team-name><ip-pattern></ip-pattern><ip-pattern-option>NoRestrictions</ip-pattern-option><disabled>false</disabled><apply-to-all-users>true</apply-to-all-users><resource-permissions><resourcePermissions><pathName>{DAVLOCATION}</pathName><permission>{RW|RO|D}</permission></resourcePermissions></resource-permissions></rule>" http://<nodeIP>:6444/rest/v1.0/teams/<teamName>/teamrules/<ruleName>?authusername=<username>&authpassword=<password>
    
    Example: update a rule for specific user(s)
    curl -H "Content-Type: application/xml" -X PUT -d "<rule><id>{RULEID}
    </id><rule-name>
    {RULENAME}</rule-name><team-name>{TEAMNAME}</team-name><ip-pattern></ip-pattern><ip-pattern-option>NoRestrictions</ip-pattern-option><disabled>false</disabled><apply-to-all-users>false</apply-to-all-users><users><user>{USERNAME}</user></users><resource-permissions><resourcePermissions><pathName>{DAVLOCATION}</pathName><permission>{RW|RO|D}</permission></resourcePermissions></resource-permissions></rule>" http://<nodeIP>:6444/rest/v1.0/teams/<teamName>/teamrules/<ruleName>?authusername=<username>&authpassword=<password>

    10.4.20 Create Team rules

    Description: Create an Access Control team rule.

    URL:
    http(s)://<server-host>:<server-port>/rest/v1.0/teams/{root-team}/subteam/{subteam1}/subteam/{target-team}/teamrules/{rule-name}
    Type:
    POST
    Parameters:
    authusername=<valid username> authpassword=<valid password>
    includePendingChanges=true|false
    Consumes:
    <rule>
      <rule-name>{ruleName}</rule-name>
      <team-name>{slash-delimited-team-hierarchy}</team-name>
      <ip-pattern>{IPFiltering}</ip-pattern>
      <ip-pattern-option>NoRestrictions|IPList</ip-pattern-option>
      <disabled>true|false</disabled>
      <apply-to-all-users>true|false</apply-to-all-users>
      <users>
        <user>{username}</user>
      </users>
      <resource-permissions>
        <resourcePermissions>
          <pathName>{path}</pathName>
          <permission>D|RO|RW</permission>
        </resourcePermissions>
      </resource-permissions>
    </rule>  
    Successful Response:
    200 - Success
    Error Response:
    400 - Bad Request - See message for detailed status
    401 - Unauthorized Access
    Example: create a team for all users
    curl -H "Content-Type: application/xml" -X POST -d "<rule><id>{RULEID}</id><rule-name>{RULENAME}
    </rule-name><team-name>
    {TEAMNAME}</team-name><ip-pattern></ip-pattern><ip-pattern-option>NoRestrictions</ip-pattern-option><disabled>false</disabled><apply-to-all-users>true</apply-to-all-users><resource-permissions><resourcePermissions><pathName>{DAVLOCATION}</pathName><permission>{RW|RO|D}</permission></resourcePermissions></resource-permissions></rule>" http://<nodeIP>:6444/rest/v1.0/teams/<teamName>/teamrules/<ruleName>?authusername=<username>&authpassword=<password>
    
    Example: create a team for specific user(s)
    curl -H "Content-Type: application/xml" -X POST -d "<rule><id>{RULEID}</id><rule-name>{RULENAME}</rule-name><team-name>{TEAMNAME}
    </team-name><ip-pattern></ip-pattern><ip-pattern-option>NoRestrictions</ip-pattern-option><disabled>false</disabled><apply-to-all-users>false</apply-to-all-users><users><user>
    {USERNAME}
    </user></users><resource-permissions><resourcePermissions><pathName>
    {DAVLOCATION}
    </pathName><permission>
    {RW|RO|D}
    </permission></resourcePermissions></resource-permissions></rule>" http://<nodeIP>:6444/rest/v1.0/teams/<teamName>/teamrules/<ruleName>?authusername=<username>&authpassword=<password>
    

    10.5 Replication

    10.5.1 Get pending transactions

    Description: Return the total number of pending transactions.

    URL:
    http(s)://<server-host>:<server-port>/rest/v1.0/replication/pendingtransactions
    Type:
    GET
    Parameters:
    authusername=<valid username>
    authpassword=<valid password>

    Successful Response:
    200 - Success
    Error Response:
    400 - Bad Request - See message for detailed status
    401 - Unauthorized Access
    Example:
      curl http://<nodeIP>:6444/rest/v1.0/replication/pendingtransactions?authusername=<username>&authpassword=<password>

    10.5.2 Change the Distinguished Node

    Description: A call that allows the distinguish node to be changed:

    URL:
    http(s)://<server-host>:<server-port>/rest/v1.0/replication/changeDistinguishedNode
    Type:
    POST
    Parameters:
    authusername=<valid username>
    authpassword=<valid password>
    newdnip=<The new Distinguished Node's IP Address
    Successful Response:
    200 - Success - See message for detailed status
    Error Response:
    400 - Bad Request - See message for detailed status
    401 - Unauthorized Access
    404 - Not Found
    Example
    curl -X POST -d "authusername=<username>&authpassword=<password>&newdnip=<newNodeIP>" http://<nodeIP>:6444/rest/v1.0/replication/?action=changeDistinguishedNode





    Copyright © 2010-2012 WANdisco
    All Rights Reserved

    This product is protected by copyright and distributed under licenses restricting copying, distribution and decompilation.