#!/usr/bin/env python3

import requests
import utils

body = {
    '_id': 'dc=com/dc=example/cn=Lockout%20with%20max%20age%20and%20grace%20logins',
    'objectClass': ['top', 'subentry', 'ds-pwp-password-policy'],
    'cn': ['Lockout with max age and grace logins'],
    'ds-pwp-default-password-storage-scheme': ['PBKDF2-HMAC-SHA256'],
    'ds-pwp-grace-login-count': 3,
    'ds-pwp-lockout-duration': '5 m',
    'ds-pwp-lockout-failure-count': 3,
    'ds-pwp-lockout-failure-expiration-interval': '10 m',
    'ds-pwp-max-password-age': '30 d',
    'ds-pwp-password-attribute': 'userPassword',
    'subtreeSpecification': { "base": "ou=people", "filter": "/uid eq \"bjensen\"" }
}
jwt = utils.authenticate('uid=admin', 'password')
headers = { 'Content-Type': 'application/json', 'Authorization': f'Bearer {jwt}' }
response = requests.post(
    f'https://{utils.host}:{utils.port}/hdap/dc=com/dc=example',
    headers=headers,
    json=body,
    verify=utils.ca_pem)
print('Status code: %d\nJSON: %s' % (response.status_code, response.json()))
