Start execution of a policy
- Authenticate to the cloud platform via the Python shell. - The following variables should be available now: - >>> base_url # the base URL of the API 'https://eu2-cloud.acronis.com/api' >>> auth # the 'Authorization' header value with the access token {'Authorization': 'Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6ImMwMD...'} 
- Fetch the protection policies as described in Fetching a list of policies and protection plans, then define the - policy_idvariable and assign it with the ID of a protection policy. As an example, the ID of the first policy will be taken:- >>> policy_id = policies[0]['id'] >>> policy_id 33965f81-7293-45d4-9f13-dc4281d7bdfd - Note - Execution of the - policy.protection.totalpolicy will start execution of its enabled children policies.
- [Optional] Fetch the resources as described in Fetching a list of all resources, then define the - resource_idvariable and assign it with the ID of a resource. As an example, the ID of the first resource will be taken:- >>> resource_id = resources[0]['id'] >>> resource_id '5c350066-2ba6-4eeb-aa91-1213dd35f033' - Note - If resources are not specified in the request, the policy will be executed on all resources to which it is applied. 
- Define a variable named - policy_exec_data, and then assign an object containing the following JSON parameters to this variable:- >>> policy_exec_data = { ... 'state': 'running', ... 'policy_id': policy_id, ... 'context_ids': [resource_id] ... } - For the list of available JSON parameters, refer to the API reference. 
- Convert the - policy_exec_dataobject to a JSON text:- >>> policy_exec_data = json.dumps(policy_exec_data, indent=4) 
- Send a PUT request with the JSON text to the - /policy_management/v4/applications/runendpoint:- >>> response = requests.put( ... f'{base_url}/policy_management/v4/applications/run', ... headers={'Content-Type': 'application/json', **auth}, ... data=policy_exec_data, ... ) 
- Check the status code of the response: - >>> response.status_code 202 - Status code 202 means that the request was successful. If you received error code - 422and- RunNowRespBodycontains a message related to application status or licensing, make sure that the provided policy is enabled and the resource has correct service quota assigned.- A different status code means that an error has occurred. For the details, refer to “Status and error codes”.