PUT | Update LDAP group sync by [id]

Prev Next

Description

Replace every setting of an LDAP group synchronization in the Segura™ platform. The request carries the complete resource: any optional field you omit returns to its default value. To change a few fields and leave the rest untouched, access PATCH | Partially update LDAP group sync by [id].


Prerequisites


Request

PUT /api/v2/iam/ldap-group-syncs/[id]

Path parameters

Field Type Required Description
id int Yes Unique identification code of the synchronization.

Headers

Header Required Description
Content-Type Yes Must be application/json.
If-Match Yes The ETag of the synchronization as it was last read. The platform rejects the request when the stored version differs.

Request body

The body carries the same objects and fields as POST | Create LDAP group sync. Every required field must be present.

Sending a read-only field returns 422 patch.field.not.allowed. The read-only fields are id, active, last_sync_at, last_sync_succeeded, created_at, updated_at, and tenant_code. To change the active state, access POST | Activate LDAP group sync or POST | Deactivate LDAP group sync.

Example request PUT {{url}}/api/v2/iam/ldap-group-syncs/501

Body

{
    "group_sync": {
        "name": "Infrastructure operators",
        "server_id": 10,
        "user_group_id": 7,
        "synchronization_enabled": true,
        "overwrite_user_accesses": true,
        "force_roles": true,
        "automatic_sync": true,
        "dn": "OU=Operators,DC=example,DC=com",
        "ad_username_attribute": "sAMAccountName",
        "ad_name_attribute": "displayname",
        "ad_query": "(&(objectClass=group)(cn=ops-*))",
        "role_ids": [1, 3, 8]
    },
    "domum": {
        "enabled": true,
        "type": "full_users",
        "vendor_id": 22
    }
}

Response

HTTP/1.1 200 OK
ETag: "9f2c71ab04e85d16"

The ETag header holds the new version of the synchronization. Use this value in the next If-Match header.

Info

Changing role_ids also changes the ETag, even when no other field differs.

Example response body

The response carries the same canonical model as GET | List an LDAP group sync by [id].

{
    "data": {
        "id": "501",
        "group_sync": {
            "name": "Infrastructure operators",
            "active": true,
            "server": { "id": "10" },
            "user_group": { "id": "7" },
            "synchronization_enabled": true,
            "overwrite_user_accesses": true,
            "force_roles": true,
            "automatic_sync": true,
            "dn": "OU=Operators,DC=example,DC=com",
            "ad_username_attribute": "sAMAccountName",
            "ad_name_attribute": "displayname",
            "department": null,
            "ad_query": "(&(objectClass=group)(cn=ops-*))",
            "roles": [{ "id": 1 }, { "id": 3 }, { "id": 8 }]
        },
        "domum": {
            "enabled": true,
            "type": "full_users",
            "vendor": { "id": 22 }
        }
    },
    "meta": {
        "links": { "self": "/api/v2/iam/ldap-group-syncs/501" },
        "actions": {
            "sync": "/api/v2/iam/ldap-group-syncs/501/sync",
            "deactivate": "/api/v2/iam/ldap-group-syncs/501/deactivate"
        }
    }
}

Response body fields

The response fields match GET | List an LDAP group sync by [id].


Errors

HTTP code Message Possible cause Solution
400 api.request.malformed The body is not valid JSON. Check the JSON syntax and resend the request.
403 api.permission.denied The application lacks permission for this resource. Ask the administrator to check the application's Users authorization in A2A.
404 api.resource.not_found No synchronization exists with the identification code sent. Check the id and resend the request.
412 api.precondition.failed The If-Match value does not match the stored version. Another client changed the resource. Read the resource again, review the change, and resend the request with the new ETag.
428 api.precondition.required The If-Match header is missing. Read the resource, then resend the request with its ETag in If-Match.
422 api.validation.required_field A required field is missing or null. Send every required field. A PUT replaces the whole resource.
422 api.validation.invalid_reference server_id, user_group_id, department_id, an entry in role_ids, or domum.vendor_id does not exist. Confirm the referenced resources exist before you resend the request.
422 api.validation.overwrite.requires_sync_enabled overwrite_user_accesses is true while synchronization_enabled is false. Set synchronization_enabled to true, or set overwrite_user_accesses to false.
422 api.validation.unknown_field The body carries a key that is not part of the resource schema. Remove the key. Check that the body uses the group_sync and domum objects.
422 patch.field.not.allowed The body carries a read-only field. Remove id, active, last_sync_at, last_sync_succeeded, created_at, updated_at, and tenant_code.
422 api.feature.unavailable The domum block was sent without the cote license module. Remove the domum block, or ask the administrator to license the module.
429 rate_limit_exceeded The application exceeded its request quota. Wait for the period in the Retry-After header and resend the request.

Authentication errors

Message Possible cause Solution
Client authentication failed. Application authentication failure with the Segura server. Check the authentication parameters (Access Token URL, Client ID, and Client secret) and request a new access token.
Invalid signature Failure in recognizing the client application URL. Check the URL of the client application and resend the request.
No route matched with those values. Missing authorization header in the API request. Request a new access token.
Request timed out. The request exceeded the timeout limit. Check the connectivity between the source of the request and the Segura server.