Switching the tier level of a partner tenant

  1. Authenticate to the cloud platform via the Python shell.

    The following variables should be available now:

    >>> base_url  # the base URL of the API
    >>> auth  # the 'Authorization' header value with the access token
    {'Authorization': 'Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6ImMwMD...'}
    >>> tenant_id  # the UUID of the tenant to which the token provides access
  2. Assign either of the following values to the tenant_id variable – the UUID of a partner tenant created via the API or a partner tenant found by its name:

    >>> tenant_id = created_tenant_id
    >>> tenant_id
  3. Obtain the list of services enabled for the tenant, which UUID is specified in the tenant_id variable, as described in steps 3-6 of “Fetching information about services enabled for a tenant”. As the result, you should have a tenant_applications variable with the list of service objects.

  4. In this list, find the platform service (the value of a service object’s type key) and store its UUID (the value of a service object’s id key) in a variable named application_id:

    >>> application_id = None
    >>> for application in tenant_applications:
    ...     if application['type'] == 'platform':
    ...         application_id = application['id']
    ...         break
    >>> application_id
  5. Define a variable named setting_name, and then assign a name of the setting to this variable:

    >>> setting_name = 'tier_level_value'
  6. Define a variable named setting_value, and then assign an object with the value key containing the tier level to this variable:

    >>> setting_value = {
    ...     'value': 7
    ... }
  7. Convert the setting_value object to a JSON text:

    >>> setting_value = json.dumps(setting_value, indent=4)
    >>> print(setting_value)
        "value": 7
  8. Send a PUT request with the JSON text to the /applications/{application_id}/settings/tenants/{tenant_id}/{setting_name} endpoint:

    >>> response = requests.put(
    ...     f'{base_url}/applications/{application_id}/settings/tenants/{tenant_id}/{setting_name}',
    ...     headers={'Content-Type': 'application/json', **auth},
    ...     data=setting_value,
    ... )
  9. Check the status code of the response:

    >>> response.status_code

    Status code 200 means that the platform has assigned tenant with the new tenant tier level.

    A different status code means that an error has occurred. For the details, refer to “Status and error codes”.

    Also, the response body contains the tier level setting object formatted as a JSON text. When converted to an object, it will look as follows:

    >>> pprint.pprint(response.json())
    {'effective': None,
    'name': 'tier_level_value',
    'own': {'exclusive': False, 'lock': False, 'value': 7}}