When using a vaulted variable the API key is returned with the type: ansible.parsing.yaml.objects.AnsibleVaultEncryptedUnicode (ref), where as datadogpy expects the type: String (ref). The result is that the API fails to parse the Ansible type and the following (403) error is returned by API:
While the AnsibleVaultEncryptedUnicode can not be a considered a String most common python string actions will now work as expected (ref). Casting the API key to a String before it is used to initialise datadogpy seems to resolve the issue where the API returns 403.
When using a vaulted variable the API key is returned with the type: ansible.parsing.yaml.objects.AnsibleVaultEncryptedUnicode (ref), where as datadogpy expects the type: String (ref). The result is that the API fails to parse the Ansible type and the following (403) error is returned by API:
While the
AnsibleVaultEncryptedUnicode
can not be a considered a String most common python string actions will now work as expected (ref). Casting the API key to a String before it is used to initialise datadogpy seems to resolve the issue where the API returns 403.=> Relevant test on Ansible Repo: https://github.com/ansible/ansible/blob/4856ab0e681f799ed4f893a34deb6a50e6d2400e/test/units/config/test_manager.py#L147-L157