> For the complete documentation index, see [llms.txt](https://developer.harness.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developer.harness.io/api-reference/iacm/ansible.md).

# Ansible

Ansible Service handles the API for ansible entities.

## List Ansible playbooks on account level

> List all playbooks at account scope. Org and project scoped playbooks are not included.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"ansible","description":"Ansible Service handles the API for ansible entities."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/ansible/playbook":{"get":{"tags":["ansible"],"summary":"List Ansible playbooks on account level","description":"List all playbooks at account scope. Org and project scoped playbooks are not included.","operationId":"ansible#list-playbooks-account-level","parameters":[{"name":"limit","in":"query","description":"Limit is the number of records to return for a page.","allowEmptyValue":true,"schema":{"type":"integer","description":"Limit is the number of records to return for a page.","default":30,"format":"int64","minimum":1,"maximum":1000}},{"name":"page","in":"query","description":"Page is the page number to return relative to the page 'limit'.","allowEmptyValue":true,"schema":{"type":"integer","description":"Page is the page number to return relative to the page 'limit'.","default":1,"format":"int64","minimum":1}},{"name":"searchTerm","in":"query","description":"Filter results by partial name match","allowEmptyValue":true,"schema":{"type":"string","description":"Filter results by partial name match","default":""}},{"name":"sort","in":"query","description":"Sort order for results","allowEmptyValue":true,"schema":{"type":"string","description":"Sort order for results","default":"name,ASC","enum":["name,ASC","name,DESC","updated,ASC","updated,DESC"]}},{"name":"tags","in":"query","description":"Filter results by tags (OR logic, exact match)","allowEmptyValue":true,"schema":{"type":"array","items":{"type":"string"},"description":"Filter results by tags (OR logic, exact match)"}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"responses":{"200":{"description":"OK response.","headers":{},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaybookResourceCollection"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}}}}}},"components":{"schemas":{"PlaybookResourceCollection":{"type":"array","items":{"$ref":"#/components/schemas/HarnessIacmPlaybook"}},"HarnessIacmPlaybook":{"type":"object","properties":{"account":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128},"ansible_galaxy":{"type":"boolean","description":"Install Ansible Galaxy dependencies","default":false},"ansible_galaxy_requirements_file":{"type":"string","description":"Path to Ansible Galaxy requirements file"},"created":{"type":"integer","description":"Timestamp when the resource was created.","format":"int64"},"description":{"type":"string","description":"Description documents the playbook purpose and usage","maxLength":1024},"env_vars":{"type":"string","description":"The environment vars in the playbook"},"identifier":{"type":"string","description":"The unique identifier for this playbook"},"name":{"type":"string","description":"Name is the human readable name","minLength":1,"maxLength":1024},"org":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128},"project":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128},"repository":{"type":"string","description":"Repository is the name of the repository to use."},"repository_branch":{"type":"string","description":"Repository Branch in which the playbook should be accessed."},"repository_commit":{"type":"string","description":"Repository Commit/Tag in which the playbook should be accessed."},"repository_connector":{"type":"string","description":"Repository Connector is the reference to the connector to use for this playbook."},"repository_path":{"type":"string","description":"Repository Path is the path in which the playbook resides.","default":""},"tags":{"type":"array","items":{"type":"string"},"description":"Tags associated with the playbook"},"updated":{"type":"integer","description":"Timestamp when the resource was last updated.","format":"int64"},"vars":{"type":"string","description":"The vars in the playbook"}},"required":["created","updated","account","org","project","identifier","name","repository_path"]},"AnsibleError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Create Ansible playbook on account level

> Create a new playbook at account scope.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"ansible","description":"Ansible Service handles the API for ansible entities."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/ansible/playbook":{"post":{"tags":["ansible"],"summary":"Create Ansible playbook on account level","description":"Create a new playbook at account scope.","operationId":"ansible#create-playbook-account-level","parameters":[{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePlaybookAccountLevelRequest"}}}},"responses":{"201":{"description":"Created response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePlaybookAccountLevelResponse"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsiblePolicyViolationError"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}}}}}},"components":{"schemas":{"CreatePlaybookAccountLevelRequest":{"type":"object","properties":{"ansible_galaxy":{"type":"boolean","description":"Install Ansible Galaxy dependencies","default":false},"ansible_galaxy_requirements_file":{"type":"string","description":"Path to Ansible Galaxy requirements file"},"description":{"type":"string","description":"Description documents the playbook purpose and usage","maxLength":1024},"env_vars":{"type":"object","description":"The environment vars in the playbook","additionalProperties":{"$ref":"#/components/schemas/AnsibleVariable"}},"identifier":{"type":"string","description":"The unique identifier for this playbook"},"name":{"type":"string","description":"Name is the human readable name","minLength":1,"maxLength":1024},"repository":{"type":"string","description":"Repository is the name of the repository to use."},"repository_branch":{"type":"string","description":"Repository Branch in which the playbook should be accessed."},"repository_commit":{"type":"string","description":"Repository Commit/Tag in which the playbook should be accessed."},"repository_connector":{"type":"string","description":"Repository Connector is the reference to the connector to use for this playbook."},"repository_path":{"type":"string","description":"Repository Path is the path in which the playbook resides.","default":""},"tags":{"type":"array","items":{"type":"string"},"description":"Tags associated with the playbook"},"vars":{"type":"object","description":"The vars in the playbook","additionalProperties":{"$ref":"#/components/schemas/AnsibleVariable"}}},"required":["identifier","name","repository_path"]},"AnsibleVariable":{"type":"object","properties":{"file_name":{"type":"string","description":"Filename is where to store the value of the secret."},"key":{"type":"string","description":"Key is the identifier for the secret.","pattern":"^[a-zA-Z0-9_]+$","minLength":1,"maxLength":128},"uuid":{"type":"string","description":"UUID is the unique identifier for the secret."},"value":{"type":"string","description":"Value is the value of the secret."},"value_type":{"type":"string","description":"Type indecates the value type of the secret. In the case of secret this is a\nreference to an item in the secret store"}},"description":"AnsibleVariable is the representation for a single variable associated with ansible.","required":["key","value","value_type"]},"CreatePlaybookAccountLevelResponse":{"type":"object","properties":{"account":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128},"ansible_galaxy":{"type":"boolean","description":"Install Ansible Galaxy dependencies","default":false},"ansible_galaxy_requirements_file":{"type":"string","description":"Path to Ansible Galaxy requirements file"},"created":{"type":"integer","description":"Timestamp when the resource was created.","format":"int64"},"description":{"type":"string","description":"Description documents the playbook purpose and usage","maxLength":1024},"env_vars":{"type":"string","description":"The environment vars in the playbook"},"identifier":{"type":"string","description":"The unique identifier for this playbook"},"name":{"type":"string","description":"Name is the human readable name","minLength":1,"maxLength":1024},"org":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128},"policy_evaluation":{"$ref":"#/components/schemas/AnsibleEvaluation"},"project":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128},"repository":{"type":"string","description":"Repository is the name of the repository to use."},"repository_branch":{"type":"string","description":"Repository Branch in which the playbook should be accessed."},"repository_commit":{"type":"string","description":"Repository Commit/Tag in which the playbook should be accessed."},"repository_connector":{"type":"string","description":"Repository Connector is the reference to the connector to use for this playbook."},"repository_path":{"type":"string","description":"Repository Path is the path in which the playbook resides.","default":""},"tags":{"type":"array","items":{"type":"string"},"description":"Tags associated with the playbook"},"updated":{"type":"integer","description":"Timestamp when the resource was last updated.","format":"int64"},"vars":{"type":"string","description":"The vars in the playbook"}},"required":["created","updated","account","org","project","identifier","name","repository_path"]},"AnsibleEvaluation":{"type":"object","properties":{"account_id":{"type":"string","description":"The Harness account in which the evaluation was performed"},"action":{"type":"string","description":"The action that triggered evaluation"},"created":{"type":"integer","description":"The time at which the evaluation was performed in Unix time milliseconds","format":"int64"},"details":{"type":"array","items":{"$ref":"#/components/schemas/AnsibleEvaluationDetail"},"description":"The detailed results of te evaluation"},"entity":{"type":"string","description":"An arbitrary user-supplied string that globally identifies the entity under evaluation"},"entity_metadata":{"type":"string","description":"Additional arbitrary user-supplied metadata about the entity under evaluation"},"id":{"type":"integer","description":"The ID of this evaluation","format":"int64"},"input":{"description":"The input provided at evaluation time"},"org_id":{"type":"string","description":"The Harness organisation in which the evaluation was performed"},"project_id":{"type":"string","description":"The Harness project in which the evaluation was performed"},"status":{"type":"string","description":"The overall status of the evaluation indicating whether it passed","enum":["error","warning","pass"]},"type":{"type":"string","description":"The types of the entity under evaluation"}},"description":"The result of a single evaluation","required":["id","status","entity","entity_metadata","type","action","account_id","org_id","project_id","created","input","details"]},"AnsibleEvaluationDetail":{"type":"object","properties":{"account_id":{"type":"string","description":"Harness account ID associated with this policy set","default":""},"action":{"type":"string","description":"Action that triggers the policy set","minLength":1},"created":{"type":"integer","description":"Time the policy set was created","format":"int64"},"description":{"type":"string","description":"Description of the policy set"},"details":{"type":"array","items":{"$ref":"#/components/schemas/AnsibleEvaluatedPolicy"}},"enabled":{"type":"boolean","description":"Only enabled policy sets are evaluated when evaluating by type/action"},"identifier":{"type":"string","description":"Identifier of the policy set","minLength":1},"name":{"type":"string","description":"Name of the policy set","minLength":1},"org_id":{"type":"string","description":"Harness organization ID associated with this policy set","default":""},"project_id":{"type":"string","description":"Harness project ID associated with this policy set","default":""},"status":{"type":"string","description":"The overall status for this policy set indicating whether it passed","enum":["error","warning","pass"]},"type":{"type":"string","description":"Type of input suitable for the policy set","minLength":1},"updated":{"type":"integer","description":"Time the policy set was last updated","format":"int64"}},"required":["status","details","identifier","name","action","type","enabled","created","updated","account_id","org_id","project_id","entity_selector"]},"AnsibleEvaluatedPolicy":{"type":"object","properties":{"deny_messages":{"type":"array","items":{"type":"string"},"description":"The values of any `deny` rego rules as returned by the rego engine"},"output":{"description":"The output returned by the rego engine when this policy was evaluated"},"policy":{"$ref":"#/components/schemas/Policy"},"rego_error":{"type":"string","description":"Any errors returned by the rego engine when this policy was evaluated"},"status":{"type":"string","description":"The overall status for this individual policy indicating whether it passed","enum":["error","warning","pass"]}},"required":["status","policy","output","deny_messages","rego_error"]},"Policy":{"type":"object","properties":{"account_id":{"type":"string","description":"Harness account ID associated with this policy","default":""},"created":{"type":"integer","description":"Time the policy was created","format":"int64"},"identifier":{"type":"string","description":"identifier of the policy","minLength":1},"name":{"type":"string","description":"Name of the policy","minLength":1},"org_id":{"type":"string","description":"Harness organization ID associated with this policy","default":""},"project_id":{"type":"string","description":"Harness project ID associated with this policy","default":""},"rego":{"type":"string","description":"Rego that defines the policy","minLength":1},"updated":{"type":"integer","description":"Time the policy was last updated","format":"int64"}},"required":["identifier","name","rego","created","updated","account_id","org_id","project_id"]},"AnsiblePolicyViolationError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"policy_evaluation":{"$ref":"#/components/schemas/AnsibleEvaluation"},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]},"AnsibleError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Show Ansible playbook on account level

> Show an individual account scoped playbook.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"ansible","description":"Ansible Service handles the API for ansible entities."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/ansible/playbook/{identifier}":{"get":{"tags":["ansible"],"summary":"Show Ansible playbook on account level","description":"Show an individual account scoped playbook.","operationId":"ansible#show-playbook-account-level","parameters":[{"name":"identifier","in":"path","description":"The unique identifier for this playbook","required":true,"schema":{"type":"string","description":"The unique identifier for this playbook"}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShowPlaybookAccountLevelResponse"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}}}}}},"components":{"schemas":{"ShowPlaybookAccountLevelResponse":{"type":"object","properties":{"account":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128},"ansible_galaxy":{"type":"boolean","description":"Install Ansible Galaxy dependencies","default":false},"ansible_galaxy_requirements_file":{"type":"string","description":"Path to Ansible Galaxy requirements file"},"created":{"type":"integer","description":"Timestamp when the resource was created.","format":"int64"},"description":{"type":"string","description":"Description documents the playbook purpose and usage","maxLength":1024},"env_vars":{"type":"string","description":"The environment vars in the playbook"},"identifier":{"type":"string","description":"The unique identifier for this playbook"},"name":{"type":"string","description":"Name is the human readable name","minLength":1,"maxLength":1024},"org":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128},"project":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128},"repository":{"type":"string","description":"Repository is the name of the repository to use."},"repository_branch":{"type":"string","description":"Repository Branch in which the playbook should be accessed."},"repository_commit":{"type":"string","description":"Repository Commit/Tag in which the playbook should be accessed."},"repository_connector":{"type":"string","description":"Repository Connector is the reference to the connector to use for this playbook."},"repository_path":{"type":"string","description":"Repository Path is the path in which the playbook resides.","default":""},"tags":{"type":"array","items":{"type":"string"},"description":"Tags associated with the playbook"},"updated":{"type":"integer","description":"Timestamp when the resource was last updated.","format":"int64"},"vars":{"type":"string","description":"The vars in the playbook"}},"required":["created","updated","account","org","project","identifier","name","repository_path"]},"AnsibleError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Update Ansible playbook on account level

> Update an existing account scoped playbook.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"ansible","description":"Ansible Service handles the API for ansible entities."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/ansible/playbook/{identifier}":{"put":{"tags":["ansible"],"summary":"Update Ansible playbook on account level","description":"Update an existing account scoped playbook.","operationId":"ansible#update-playbook-account-level","parameters":[{"name":"identifier","in":"path","description":"The unique identifier for this playbook","required":true,"schema":{"type":"string","description":"The unique identifier for this playbook"}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdatePlaybookAccountLevelRequest"}}}},"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdatePlaybookAccountLevelResponse"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsiblePolicyViolationError"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}}}}}},"components":{"schemas":{"UpdatePlaybookAccountLevelRequest":{"type":"object","properties":{"ansible_galaxy":{"type":"boolean","description":"Install Ansible Galaxy dependencies","default":false},"ansible_galaxy_requirements_file":{"type":"string","description":"Path to Ansible Galaxy requirements file"},"description":{"type":"string","description":"Description documents the playbook purpose and usage","maxLength":1024},"env_vars":{"type":"object","description":"The environment vars in the playbook","additionalProperties":{"$ref":"#/components/schemas/AnsibleVariable"}},"name":{"type":"string","description":"Name is the human readable name","minLength":1,"maxLength":1024},"repository":{"type":"string","description":"Repository is the name of the repository to use."},"repository_branch":{"type":"string","description":"Repository Branch in which the playbook should be accessed."},"repository_commit":{"type":"string","description":"Repository Commit/Tag in which the playbook should be accessed."},"repository_connector":{"type":"string","description":"Repository Connector is the reference to the connector to use for this playbook."},"repository_path":{"type":"string","description":"Repository Path is the path in which the playbook resides.","default":""},"tags":{"type":"array","items":{"type":"string"},"description":"Tags associated with the playbook"},"vars":{"type":"object","description":"The vars in the playbook","additionalProperties":{"$ref":"#/components/schemas/AnsibleVariable"}}},"required":["org","project","name","repository_path"]},"AnsibleVariable":{"type":"object","properties":{"file_name":{"type":"string","description":"Filename is where to store the value of the secret."},"key":{"type":"string","description":"Key is the identifier for the secret.","pattern":"^[a-zA-Z0-9_]+$","minLength":1,"maxLength":128},"uuid":{"type":"string","description":"UUID is the unique identifier for the secret."},"value":{"type":"string","description":"Value is the value of the secret."},"value_type":{"type":"string","description":"Type indecates the value type of the secret. In the case of secret this is a\nreference to an item in the secret store"}},"description":"AnsibleVariable is the representation for a single variable associated with ansible.","required":["key","value","value_type"]},"UpdatePlaybookAccountLevelResponse":{"type":"object","properties":{"policy_evaluation":{"$ref":"#/components/schemas/AnsibleEvaluation"}}},"AnsibleEvaluation":{"type":"object","properties":{"account_id":{"type":"string","description":"The Harness account in which the evaluation was performed"},"action":{"type":"string","description":"The action that triggered evaluation"},"created":{"type":"integer","description":"The time at which the evaluation was performed in Unix time milliseconds","format":"int64"},"details":{"type":"array","items":{"$ref":"#/components/schemas/AnsibleEvaluationDetail"},"description":"The detailed results of te evaluation"},"entity":{"type":"string","description":"An arbitrary user-supplied string that globally identifies the entity under evaluation"},"entity_metadata":{"type":"string","description":"Additional arbitrary user-supplied metadata about the entity under evaluation"},"id":{"type":"integer","description":"The ID of this evaluation","format":"int64"},"input":{"description":"The input provided at evaluation time"},"org_id":{"type":"string","description":"The Harness organisation in which the evaluation was performed"},"project_id":{"type":"string","description":"The Harness project in which the evaluation was performed"},"status":{"type":"string","description":"The overall status of the evaluation indicating whether it passed","enum":["error","warning","pass"]},"type":{"type":"string","description":"The types of the entity under evaluation"}},"description":"The result of a single evaluation","required":["id","status","entity","entity_metadata","type","action","account_id","org_id","project_id","created","input","details"]},"AnsibleEvaluationDetail":{"type":"object","properties":{"account_id":{"type":"string","description":"Harness account ID associated with this policy set","default":""},"action":{"type":"string","description":"Action that triggers the policy set","minLength":1},"created":{"type":"integer","description":"Time the policy set was created","format":"int64"},"description":{"type":"string","description":"Description of the policy set"},"details":{"type":"array","items":{"$ref":"#/components/schemas/AnsibleEvaluatedPolicy"}},"enabled":{"type":"boolean","description":"Only enabled policy sets are evaluated when evaluating by type/action"},"identifier":{"type":"string","description":"Identifier of the policy set","minLength":1},"name":{"type":"string","description":"Name of the policy set","minLength":1},"org_id":{"type":"string","description":"Harness organization ID associated with this policy set","default":""},"project_id":{"type":"string","description":"Harness project ID associated with this policy set","default":""},"status":{"type":"string","description":"The overall status for this policy set indicating whether it passed","enum":["error","warning","pass"]},"type":{"type":"string","description":"Type of input suitable for the policy set","minLength":1},"updated":{"type":"integer","description":"Time the policy set was last updated","format":"int64"}},"required":["status","details","identifier","name","action","type","enabled","created","updated","account_id","org_id","project_id","entity_selector"]},"AnsibleEvaluatedPolicy":{"type":"object","properties":{"deny_messages":{"type":"array","items":{"type":"string"},"description":"The values of any `deny` rego rules as returned by the rego engine"},"output":{"description":"The output returned by the rego engine when this policy was evaluated"},"policy":{"$ref":"#/components/schemas/Policy"},"rego_error":{"type":"string","description":"Any errors returned by the rego engine when this policy was evaluated"},"status":{"type":"string","description":"The overall status for this individual policy indicating whether it passed","enum":["error","warning","pass"]}},"required":["status","policy","output","deny_messages","rego_error"]},"Policy":{"type":"object","properties":{"account_id":{"type":"string","description":"Harness account ID associated with this policy","default":""},"created":{"type":"integer","description":"Time the policy was created","format":"int64"},"identifier":{"type":"string","description":"identifier of the policy","minLength":1},"name":{"type":"string","description":"Name of the policy","minLength":1},"org_id":{"type":"string","description":"Harness organization ID associated with this policy","default":""},"project_id":{"type":"string","description":"Harness project ID associated with this policy","default":""},"rego":{"type":"string","description":"Rego that defines the policy","minLength":1},"updated":{"type":"integer","description":"Time the policy was last updated","format":"int64"}},"required":["identifier","name","rego","created","updated","account_id","org_id","project_id"]},"AnsiblePolicyViolationError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"policy_evaluation":{"$ref":"#/components/schemas/AnsibleEvaluation"},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]},"AnsibleError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Delete Ansible playbook on account level

> Delete an existing account scoped playbook.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"ansible","description":"Ansible Service handles the API for ansible entities."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/ansible/playbook/{identifier}":{"delete":{"tags":["ansible"],"summary":"Delete Ansible playbook on account level","description":"Delete an existing account scoped playbook.","operationId":"ansible#delete-playbook-account-level","parameters":[{"name":"identifier","in":"path","description":"The unique identifier for this playbook","required":true,"schema":{"type":"string","description":"The unique identifier for this playbook"}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"responses":{"200":{"description":"OK response."},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}}}}}},"components":{"schemas":{"AnsibleError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Show Ansible playbook vars on account level

> Show an individual account scoped playbook vars.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"ansible","description":"Ansible Service handles the API for ansible entities."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/ansible/playbook/{identifier}/vars":{"get":{"tags":["ansible"],"summary":"Show Ansible playbook vars on account level","description":"Show an individual account scoped playbook vars.","operationId":"ansible#show-playbook-vars-account-level","parameters":[{"name":"limit","in":"query","description":"Limit is the number of records to return for a page.","allowEmptyValue":true,"schema":{"type":"integer","description":"Limit is the number of records to return for a page.","default":30,"format":"int64","minimum":1,"maximum":1000}},{"name":"page","in":"query","description":"Page is the page number to return relative to the page 'limit'.","allowEmptyValue":true,"schema":{"type":"integer","description":"Page is the page number to return relative to the page 'limit'.","default":1,"format":"int64","minimum":1}},{"name":"identifier","in":"path","description":"Playbook identifier","required":true,"schema":{"type":"string","description":"Playbook identifier"}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"responses":{"200":{"description":"OK response.","headers":{},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShowPlaybookVarsAccountLevelResponse"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}}}}}},"components":{"schemas":{"ShowPlaybookVarsAccountLevelResponse":{"type":"object","properties":{"env_vars":{"$ref":"#/components/schemas/InventoryVarResourceCollection"},"vars":{"$ref":"#/components/schemas/InventoryVarResourceCollection"}}},"InventoryVarResourceCollection":{"type":"array","items":{"$ref":"#/components/schemas/HarnessIacmInventoryVar"}},"HarnessIacmInventoryVar":{"type":"object","properties":{"created":{"type":"string","description":"Created is the timestamp of the creation."},"file_name":{"type":"string","description":"Filename is where to store the value of the secret."},"key":{"type":"string","description":"Key is the identifier for the secret.","pattern":"^[a-zA-Z0-9_]+$","minLength":1,"maxLength":128},"updated":{"type":"string","description":"Updated is the timestamp of the last update."},"uuid":{"type":"string","description":"UUID is the unique identifier for the secret."},"value":{"type":"string","description":"Value is the value of the secret."},"value_type":{"type":"string","description":"Type indecates the value type of the secret. In the case of secret this is a\nreference to an item in the secret store"},"var_type":{"type":"string","description":"The type of variable"}},"required":["key","value","value_type"]},"AnsibleError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Create dynamic Ansible playbook variable on account level

> Create a new dynamic variable on an account scoped playbook.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"ansible","description":"Ansible Service handles the API for ansible entities."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/ansible/playbook/{identifier}/vars":{"post":{"tags":["ansible"],"summary":"Create dynamic Ansible playbook variable on account level","description":"Create a new dynamic variable on an account scoped playbook.","operationId":"ansible#create-playbook-vars-account-level","parameters":[{"name":"identifier","in":"path","description":"The unique identifier for this playbook","required":true,"schema":{"type":"string","description":"The unique identifier for this playbook"}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePlaybookVarAccountLevelRequest"}}}},"responses":{"201":{"description":"Created response."},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}}}}}},"components":{"schemas":{"CreatePlaybookVarAccountLevelRequest":{"type":"object","properties":{"env_vars":{"type":"array","items":{"$ref":"#/components/schemas/HarnessIacmInventoryVarCreate"}},"vars":{"type":"array","items":{"$ref":"#/components/schemas/HarnessIacmInventoryVarCreate"}}},"required":["vars"]},"HarnessIacmInventoryVarCreate":{"type":"object","properties":{"file_name":{"type":"string","description":"Filename is where to store the value of the secret."},"key":{"type":"string","description":"Key is the identifier for the secret.","pattern":"^[a-zA-Z0-9_]+$","minLength":1,"maxLength":128},"uuid":{"type":"string","description":"UUID is the unique identifier for the secret."},"value":{"type":"string","description":"Value is the value of the secret."},"value_type":{"type":"string","description":"Type indecates the value type of the secret. In the case of secret this is a\nreference to an item in the secret store"},"var_type":{"type":"string","description":"The type of variable. eg: var, env_var"}},"required":["key","value","value_type"]},"AnsibleError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Update dynamic Ansible playbook variable on account level

> Update an existing dynamic variable on an account scoped playbook.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"ansible","description":"Ansible Service handles the API for ansible entities."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/ansible/playbook/{identifier}/vars":{"put":{"tags":["ansible"],"summary":"Update dynamic Ansible playbook variable on account level","description":"Update an existing dynamic variable on an account scoped playbook.","operationId":"ansible#update-playbook-vars-account-level","parameters":[{"name":"identifier","in":"path","description":"The unique identifier for this playbook","required":true,"schema":{"type":"string","description":"The unique identifier for this playbook"}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdatePlaybookVarsAccountLevelRequest"}}}},"responses":{"200":{"description":"OK response."},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}}}}}},"components":{"schemas":{"UpdatePlaybookVarsAccountLevelRequest":{"type":"object","properties":{"env_vars":{"type":"array","items":{"$ref":"#/components/schemas/HarnessIacmInventoryVarCreate"}},"vars":{"type":"array","items":{"$ref":"#/components/schemas/HarnessIacmInventoryVarCreate"}}},"required":["vars"]},"HarnessIacmInventoryVarCreate":{"type":"object","properties":{"file_name":{"type":"string","description":"Filename is where to store the value of the secret."},"key":{"type":"string","description":"Key is the identifier for the secret.","pattern":"^[a-zA-Z0-9_]+$","minLength":1,"maxLength":128},"uuid":{"type":"string","description":"UUID is the unique identifier for the secret."},"value":{"type":"string","description":"Value is the value of the secret."},"value_type":{"type":"string","description":"Type indecates the value type of the secret. In the case of secret this is a\nreference to an item in the secret store"},"var_type":{"type":"string","description":"The type of variable. eg: var, env_var"}},"required":["key","value","value_type"]},"AnsibleError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Delete dynamic Ansible playbook variable on account level

> Delete a dynamic variable from an account scoped playbook.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"ansible","description":"Ansible Service handles the API for ansible entities."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/ansible/playbook/{identifier}/vars":{"delete":{"tags":["ansible"],"summary":"Delete dynamic Ansible playbook variable on account level","description":"Delete a dynamic variable from an account scoped playbook.","operationId":"ansible#delete-playbook-vars-account-level","parameters":[{"name":"identifier","in":"path","description":"The unique identifier for this playbook","required":true,"schema":{"type":"string","description":"The unique identifier for this playbook"}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeletePlaybookVarsAccountLevelRequest"}}}},"responses":{"200":{"description":"OK response."},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}}}}}},"components":{"schemas":{"DeletePlaybookVarsAccountLevelRequest":{"type":"object","properties":{"vars":{"type":"array","items":{"type":"string"}}},"required":["vars"]},"AnsibleError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## List Ansible playbooks on org level

> List all playbooks at org scope. Account and project scoped playbooks are not included.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"ansible","description":"Ansible Service handles the API for ansible entities."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/ansible/playbook":{"get":{"tags":["ansible"],"summary":"List Ansible playbooks on org level","description":"List all playbooks at org scope. Account and project scoped playbooks are not included.","operationId":"ansible#list-playbooks-org-level","parameters":[{"name":"limit","in":"query","description":"Limit is the number of records to return for a page.","allowEmptyValue":true,"schema":{"type":"integer","description":"Limit is the number of records to return for a page.","default":30,"format":"int64","minimum":1,"maximum":1000}},{"name":"page","in":"query","description":"Page is the page number to return relative to the page 'limit'.","allowEmptyValue":true,"schema":{"type":"integer","description":"Page is the page number to return relative to the page 'limit'.","default":1,"format":"int64","minimum":1}},{"name":"searchTerm","in":"query","description":"Filter results by partial name match","allowEmptyValue":true,"schema":{"type":"string","description":"Filter results by partial name match","default":""}},{"name":"sort","in":"query","description":"Sort order for results","allowEmptyValue":true,"schema":{"type":"string","description":"Sort order for results","default":"name,ASC","enum":["name,ASC","name,DESC","updated,ASC","updated,DESC"]}},{"name":"tags","in":"query","description":"Filter results by tags (OR logic, exact match)","allowEmptyValue":true,"schema":{"type":"array","items":{"type":"string"},"description":"Filter results by tags (OR logic, exact match)"}},{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"responses":{"200":{"description":"OK response.","headers":{},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaybookResourceCollection"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}}}}}},"components":{"schemas":{"PlaybookResourceCollection":{"type":"array","items":{"$ref":"#/components/schemas/HarnessIacmPlaybook"}},"HarnessIacmPlaybook":{"type":"object","properties":{"account":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128},"ansible_galaxy":{"type":"boolean","description":"Install Ansible Galaxy dependencies","default":false},"ansible_galaxy_requirements_file":{"type":"string","description":"Path to Ansible Galaxy requirements file"},"created":{"type":"integer","description":"Timestamp when the resource was created.","format":"int64"},"description":{"type":"string","description":"Description documents the playbook purpose and usage","maxLength":1024},"env_vars":{"type":"string","description":"The environment vars in the playbook"},"identifier":{"type":"string","description":"The unique identifier for this playbook"},"name":{"type":"string","description":"Name is the human readable name","minLength":1,"maxLength":1024},"org":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128},"project":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128},"repository":{"type":"string","description":"Repository is the name of the repository to use."},"repository_branch":{"type":"string","description":"Repository Branch in which the playbook should be accessed."},"repository_commit":{"type":"string","description":"Repository Commit/Tag in which the playbook should be accessed."},"repository_connector":{"type":"string","description":"Repository Connector is the reference to the connector to use for this playbook."},"repository_path":{"type":"string","description":"Repository Path is the path in which the playbook resides.","default":""},"tags":{"type":"array","items":{"type":"string"},"description":"Tags associated with the playbook"},"updated":{"type":"integer","description":"Timestamp when the resource was last updated.","format":"int64"},"vars":{"type":"string","description":"The vars in the playbook"}},"required":["created","updated","account","org","project","identifier","name","repository_path"]},"AnsibleError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Create Ansible playbook on org level

> Create a new playbook at org scope.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"ansible","description":"Ansible Service handles the API for ansible entities."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/ansible/playbook":{"post":{"tags":["ansible"],"summary":"Create Ansible playbook on org level","description":"Create a new playbook at org scope.","operationId":"ansible#create-playbook-org-level","parameters":[{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePlaybookOrgLevelRequest"}}}},"responses":{"201":{"description":"Created response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePlaybookOrgLevelResponse"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsiblePolicyViolationError"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}}}}}},"components":{"schemas":{"CreatePlaybookOrgLevelRequest":{"type":"object","properties":{"ansible_galaxy":{"type":"boolean","description":"Install Ansible Galaxy dependencies","default":false},"ansible_galaxy_requirements_file":{"type":"string","description":"Path to Ansible Galaxy requirements file"},"description":{"type":"string","description":"Description documents the playbook purpose and usage","maxLength":1024},"env_vars":{"type":"object","description":"The environment vars in the playbook","additionalProperties":{"$ref":"#/components/schemas/AnsibleVariable"}},"identifier":{"type":"string","description":"The unique identifier for this playbook"},"name":{"type":"string","description":"Name is the human readable name","minLength":1,"maxLength":1024},"repository":{"type":"string","description":"Repository is the name of the repository to use."},"repository_branch":{"type":"string","description":"Repository Branch in which the playbook should be accessed."},"repository_commit":{"type":"string","description":"Repository Commit/Tag in which the playbook should be accessed."},"repository_connector":{"type":"string","description":"Repository Connector is the reference to the connector to use for this playbook."},"repository_path":{"type":"string","description":"Repository Path is the path in which the playbook resides.","default":""},"tags":{"type":"array","items":{"type":"string"},"description":"Tags associated with the playbook"},"vars":{"type":"object","description":"The vars in the playbook","additionalProperties":{"$ref":"#/components/schemas/AnsibleVariable"}}},"required":["identifier","name","repository_path"]},"AnsibleVariable":{"type":"object","properties":{"file_name":{"type":"string","description":"Filename is where to store the value of the secret."},"key":{"type":"string","description":"Key is the identifier for the secret.","pattern":"^[a-zA-Z0-9_]+$","minLength":1,"maxLength":128},"uuid":{"type":"string","description":"UUID is the unique identifier for the secret."},"value":{"type":"string","description":"Value is the value of the secret."},"value_type":{"type":"string","description":"Type indecates the value type of the secret. In the case of secret this is a\nreference to an item in the secret store"}},"description":"AnsibleVariable is the representation for a single variable associated with ansible.","required":["key","value","value_type"]},"CreatePlaybookOrgLevelResponse":{"type":"object","properties":{"account":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128},"ansible_galaxy":{"type":"boolean","description":"Install Ansible Galaxy dependencies","default":false},"ansible_galaxy_requirements_file":{"type":"string","description":"Path to Ansible Galaxy requirements file"},"created":{"type":"integer","description":"Timestamp when the resource was created.","format":"int64"},"description":{"type":"string","description":"Description documents the playbook purpose and usage","maxLength":1024},"env_vars":{"type":"string","description":"The environment vars in the playbook"},"identifier":{"type":"string","description":"The unique identifier for this playbook"},"name":{"type":"string","description":"Name is the human readable name","minLength":1,"maxLength":1024},"org":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128},"policy_evaluation":{"$ref":"#/components/schemas/AnsibleEvaluation"},"project":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128},"repository":{"type":"string","description":"Repository is the name of the repository to use."},"repository_branch":{"type":"string","description":"Repository Branch in which the playbook should be accessed."},"repository_commit":{"type":"string","description":"Repository Commit/Tag in which the playbook should be accessed."},"repository_connector":{"type":"string","description":"Repository Connector is the reference to the connector to use for this playbook."},"repository_path":{"type":"string","description":"Repository Path is the path in which the playbook resides.","default":""},"tags":{"type":"array","items":{"type":"string"},"description":"Tags associated with the playbook"},"updated":{"type":"integer","description":"Timestamp when the resource was last updated.","format":"int64"},"vars":{"type":"string","description":"The vars in the playbook"}},"required":["created","updated","account","org","project","identifier","name","repository_path"]},"AnsibleEvaluation":{"type":"object","properties":{"account_id":{"type":"string","description":"The Harness account in which the evaluation was performed"},"action":{"type":"string","description":"The action that triggered evaluation"},"created":{"type":"integer","description":"The time at which the evaluation was performed in Unix time milliseconds","format":"int64"},"details":{"type":"array","items":{"$ref":"#/components/schemas/AnsibleEvaluationDetail"},"description":"The detailed results of te evaluation"},"entity":{"type":"string","description":"An arbitrary user-supplied string that globally identifies the entity under evaluation"},"entity_metadata":{"type":"string","description":"Additional arbitrary user-supplied metadata about the entity under evaluation"},"id":{"type":"integer","description":"The ID of this evaluation","format":"int64"},"input":{"description":"The input provided at evaluation time"},"org_id":{"type":"string","description":"The Harness organisation in which the evaluation was performed"},"project_id":{"type":"string","description":"The Harness project in which the evaluation was performed"},"status":{"type":"string","description":"The overall status of the evaluation indicating whether it passed","enum":["error","warning","pass"]},"type":{"type":"string","description":"The types of the entity under evaluation"}},"description":"The result of a single evaluation","required":["id","status","entity","entity_metadata","type","action","account_id","org_id","project_id","created","input","details"]},"AnsibleEvaluationDetail":{"type":"object","properties":{"account_id":{"type":"string","description":"Harness account ID associated with this policy set","default":""},"action":{"type":"string","description":"Action that triggers the policy set","minLength":1},"created":{"type":"integer","description":"Time the policy set was created","format":"int64"},"description":{"type":"string","description":"Description of the policy set"},"details":{"type":"array","items":{"$ref":"#/components/schemas/AnsibleEvaluatedPolicy"}},"enabled":{"type":"boolean","description":"Only enabled policy sets are evaluated when evaluating by type/action"},"identifier":{"type":"string","description":"Identifier of the policy set","minLength":1},"name":{"type":"string","description":"Name of the policy set","minLength":1},"org_id":{"type":"string","description":"Harness organization ID associated with this policy set","default":""},"project_id":{"type":"string","description":"Harness project ID associated with this policy set","default":""},"status":{"type":"string","description":"The overall status for this policy set indicating whether it passed","enum":["error","warning","pass"]},"type":{"type":"string","description":"Type of input suitable for the policy set","minLength":1},"updated":{"type":"integer","description":"Time the policy set was last updated","format":"int64"}},"required":["status","details","identifier","name","action","type","enabled","created","updated","account_id","org_id","project_id","entity_selector"]},"AnsibleEvaluatedPolicy":{"type":"object","properties":{"deny_messages":{"type":"array","items":{"type":"string"},"description":"The values of any `deny` rego rules as returned by the rego engine"},"output":{"description":"The output returned by the rego engine when this policy was evaluated"},"policy":{"$ref":"#/components/schemas/Policy"},"rego_error":{"type":"string","description":"Any errors returned by the rego engine when this policy was evaluated"},"status":{"type":"string","description":"The overall status for this individual policy indicating whether it passed","enum":["error","warning","pass"]}},"required":["status","policy","output","deny_messages","rego_error"]},"Policy":{"type":"object","properties":{"account_id":{"type":"string","description":"Harness account ID associated with this policy","default":""},"created":{"type":"integer","description":"Time the policy was created","format":"int64"},"identifier":{"type":"string","description":"identifier of the policy","minLength":1},"name":{"type":"string","description":"Name of the policy","minLength":1},"org_id":{"type":"string","description":"Harness organization ID associated with this policy","default":""},"project_id":{"type":"string","description":"Harness project ID associated with this policy","default":""},"rego":{"type":"string","description":"Rego that defines the policy","minLength":1},"updated":{"type":"integer","description":"Time the policy was last updated","format":"int64"}},"required":["identifier","name","rego","created","updated","account_id","org_id","project_id"]},"AnsiblePolicyViolationError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"policy_evaluation":{"$ref":"#/components/schemas/AnsibleEvaluation"},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]},"AnsibleError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Show Ansible playbook on org level

> Show an individual org scoped playbook.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"ansible","description":"Ansible Service handles the API for ansible entities."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/ansible/playbook/{identifier}":{"get":{"tags":["ansible"],"summary":"Show Ansible playbook on org level","description":"Show an individual org scoped playbook.","operationId":"ansible#show-playbook-org-level","parameters":[{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"identifier","in":"path","description":"The unique identifier for this playbook","required":true,"schema":{"type":"string","description":"The unique identifier for this playbook"}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShowPlaybookOrgLevelResponse"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}}}}}},"components":{"schemas":{"ShowPlaybookOrgLevelResponse":{"type":"object","properties":{"account":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128},"ansible_galaxy":{"type":"boolean","description":"Install Ansible Galaxy dependencies","default":false},"ansible_galaxy_requirements_file":{"type":"string","description":"Path to Ansible Galaxy requirements file"},"created":{"type":"integer","description":"Timestamp when the resource was created.","format":"int64"},"description":{"type":"string","description":"Description documents the playbook purpose and usage","maxLength":1024},"env_vars":{"type":"string","description":"The environment vars in the playbook"},"identifier":{"type":"string","description":"The unique identifier for this playbook"},"name":{"type":"string","description":"Name is the human readable name","minLength":1,"maxLength":1024},"org":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128},"project":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128},"repository":{"type":"string","description":"Repository is the name of the repository to use."},"repository_branch":{"type":"string","description":"Repository Branch in which the playbook should be accessed."},"repository_commit":{"type":"string","description":"Repository Commit/Tag in which the playbook should be accessed."},"repository_connector":{"type":"string","description":"Repository Connector is the reference to the connector to use for this playbook."},"repository_path":{"type":"string","description":"Repository Path is the path in which the playbook resides.","default":""},"tags":{"type":"array","items":{"type":"string"},"description":"Tags associated with the playbook"},"updated":{"type":"integer","description":"Timestamp when the resource was last updated.","format":"int64"},"vars":{"type":"string","description":"The vars in the playbook"}},"required":["created","updated","account","org","project","identifier","name","repository_path"]},"AnsibleError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Update Ansible playbook on org level

> Update an existing org scoped playbook.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"ansible","description":"Ansible Service handles the API for ansible entities."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/ansible/playbook/{identifier}":{"put":{"tags":["ansible"],"summary":"Update Ansible playbook on org level","description":"Update an existing org scoped playbook.","operationId":"ansible#update-playbook-org-level","parameters":[{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"identifier","in":"path","description":"The unique identifier for this playbook","required":true,"schema":{"type":"string","description":"The unique identifier for this playbook"}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdatePlaybookOrgLevelRequest"}}}},"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdatePlaybookOrgLevelResponse"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsiblePolicyViolationError"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}}}}}},"components":{"schemas":{"UpdatePlaybookOrgLevelRequest":{"type":"object","properties":{"ansible_galaxy":{"type":"boolean","description":"Install Ansible Galaxy dependencies","default":false},"ansible_galaxy_requirements_file":{"type":"string","description":"Path to Ansible Galaxy requirements file"},"description":{"type":"string","description":"Description documents the playbook purpose and usage","maxLength":1024},"env_vars":{"type":"object","description":"The environment vars in the playbook","additionalProperties":{"$ref":"#/components/schemas/AnsibleVariable"}},"name":{"type":"string","description":"Name is the human readable name","minLength":1,"maxLength":1024},"repository":{"type":"string","description":"Repository is the name of the repository to use."},"repository_branch":{"type":"string","description":"Repository Branch in which the playbook should be accessed."},"repository_commit":{"type":"string","description":"Repository Commit/Tag in which the playbook should be accessed."},"repository_connector":{"type":"string","description":"Repository Connector is the reference to the connector to use for this playbook."},"repository_path":{"type":"string","description":"Repository Path is the path in which the playbook resides.","default":""},"tags":{"type":"array","items":{"type":"string"},"description":"Tags associated with the playbook"},"vars":{"type":"object","description":"The vars in the playbook","additionalProperties":{"$ref":"#/components/schemas/AnsibleVariable"}}},"required":["project","name","repository_path"]},"AnsibleVariable":{"type":"object","properties":{"file_name":{"type":"string","description":"Filename is where to store the value of the secret."},"key":{"type":"string","description":"Key is the identifier for the secret.","pattern":"^[a-zA-Z0-9_]+$","minLength":1,"maxLength":128},"uuid":{"type":"string","description":"UUID is the unique identifier for the secret."},"value":{"type":"string","description":"Value is the value of the secret."},"value_type":{"type":"string","description":"Type indecates the value type of the secret. In the case of secret this is a\nreference to an item in the secret store"}},"description":"AnsibleVariable is the representation for a single variable associated with ansible.","required":["key","value","value_type"]},"UpdatePlaybookOrgLevelResponse":{"type":"object","properties":{"policy_evaluation":{"$ref":"#/components/schemas/AnsibleEvaluation"}}},"AnsibleEvaluation":{"type":"object","properties":{"account_id":{"type":"string","description":"The Harness account in which the evaluation was performed"},"action":{"type":"string","description":"The action that triggered evaluation"},"created":{"type":"integer","description":"The time at which the evaluation was performed in Unix time milliseconds","format":"int64"},"details":{"type":"array","items":{"$ref":"#/components/schemas/AnsibleEvaluationDetail"},"description":"The detailed results of te evaluation"},"entity":{"type":"string","description":"An arbitrary user-supplied string that globally identifies the entity under evaluation"},"entity_metadata":{"type":"string","description":"Additional arbitrary user-supplied metadata about the entity under evaluation"},"id":{"type":"integer","description":"The ID of this evaluation","format":"int64"},"input":{"description":"The input provided at evaluation time"},"org_id":{"type":"string","description":"The Harness organisation in which the evaluation was performed"},"project_id":{"type":"string","description":"The Harness project in which the evaluation was performed"},"status":{"type":"string","description":"The overall status of the evaluation indicating whether it passed","enum":["error","warning","pass"]},"type":{"type":"string","description":"The types of the entity under evaluation"}},"description":"The result of a single evaluation","required":["id","status","entity","entity_metadata","type","action","account_id","org_id","project_id","created","input","details"]},"AnsibleEvaluationDetail":{"type":"object","properties":{"account_id":{"type":"string","description":"Harness account ID associated with this policy set","default":""},"action":{"type":"string","description":"Action that triggers the policy set","minLength":1},"created":{"type":"integer","description":"Time the policy set was created","format":"int64"},"description":{"type":"string","description":"Description of the policy set"},"details":{"type":"array","items":{"$ref":"#/components/schemas/AnsibleEvaluatedPolicy"}},"enabled":{"type":"boolean","description":"Only enabled policy sets are evaluated when evaluating by type/action"},"identifier":{"type":"string","description":"Identifier of the policy set","minLength":1},"name":{"type":"string","description":"Name of the policy set","minLength":1},"org_id":{"type":"string","description":"Harness organization ID associated with this policy set","default":""},"project_id":{"type":"string","description":"Harness project ID associated with this policy set","default":""},"status":{"type":"string","description":"The overall status for this policy set indicating whether it passed","enum":["error","warning","pass"]},"type":{"type":"string","description":"Type of input suitable for the policy set","minLength":1},"updated":{"type":"integer","description":"Time the policy set was last updated","format":"int64"}},"required":["status","details","identifier","name","action","type","enabled","created","updated","account_id","org_id","project_id","entity_selector"]},"AnsibleEvaluatedPolicy":{"type":"object","properties":{"deny_messages":{"type":"array","items":{"type":"string"},"description":"The values of any `deny` rego rules as returned by the rego engine"},"output":{"description":"The output returned by the rego engine when this policy was evaluated"},"policy":{"$ref":"#/components/schemas/Policy"},"rego_error":{"type":"string","description":"Any errors returned by the rego engine when this policy was evaluated"},"status":{"type":"string","description":"The overall status for this individual policy indicating whether it passed","enum":["error","warning","pass"]}},"required":["status","policy","output","deny_messages","rego_error"]},"Policy":{"type":"object","properties":{"account_id":{"type":"string","description":"Harness account ID associated with this policy","default":""},"created":{"type":"integer","description":"Time the policy was created","format":"int64"},"identifier":{"type":"string","description":"identifier of the policy","minLength":1},"name":{"type":"string","description":"Name of the policy","minLength":1},"org_id":{"type":"string","description":"Harness organization ID associated with this policy","default":""},"project_id":{"type":"string","description":"Harness project ID associated with this policy","default":""},"rego":{"type":"string","description":"Rego that defines the policy","minLength":1},"updated":{"type":"integer","description":"Time the policy was last updated","format":"int64"}},"required":["identifier","name","rego","created","updated","account_id","org_id","project_id"]},"AnsiblePolicyViolationError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"policy_evaluation":{"$ref":"#/components/schemas/AnsibleEvaluation"},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]},"AnsibleError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Delete Ansible playbook on org level

> Delete an existing org scoped playbook.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"ansible","description":"Ansible Service handles the API for ansible entities."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/ansible/playbook/{identifier}":{"delete":{"tags":["ansible"],"summary":"Delete Ansible playbook on org level","description":"Delete an existing org scoped playbook.","operationId":"ansible#delete-playbook-org-level","parameters":[{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"identifier","in":"path","description":"The unique identifier for this playbook","required":true,"schema":{"type":"string","description":"The unique identifier for this playbook"}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"responses":{"200":{"description":"OK response."},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}}}}}},"components":{"schemas":{"AnsibleError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Show Ansible playbook vars on org level

> Show an individual org scoped playbook vars.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"ansible","description":"Ansible Service handles the API for ansible entities."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/ansible/playbook/{identifier}/vars":{"get":{"tags":["ansible"],"summary":"Show Ansible playbook vars on org level","description":"Show an individual org scoped playbook vars.","operationId":"ansible#show-playbook-vars-org-level","parameters":[{"name":"limit","in":"query","description":"Limit is the number of records to return for a page.","allowEmptyValue":true,"schema":{"type":"integer","description":"Limit is the number of records to return for a page.","default":30,"format":"int64","minimum":1,"maximum":1000}},{"name":"page","in":"query","description":"Page is the page number to return relative to the page 'limit'.","allowEmptyValue":true,"schema":{"type":"integer","description":"Page is the page number to return relative to the page 'limit'.","default":1,"format":"int64","minimum":1}},{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"identifier","in":"path","description":"Playbook identifier","required":true,"schema":{"type":"string","description":"Playbook identifier"}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"responses":{"200":{"description":"OK response.","headers":{},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShowPlaybookVarsOrgLevelResponse"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}}}}}},"components":{"schemas":{"ShowPlaybookVarsOrgLevelResponse":{"type":"object","properties":{"env_vars":{"$ref":"#/components/schemas/InventoryVarResourceCollection"},"vars":{"$ref":"#/components/schemas/InventoryVarResourceCollection"}}},"InventoryVarResourceCollection":{"type":"array","items":{"$ref":"#/components/schemas/HarnessIacmInventoryVar"}},"HarnessIacmInventoryVar":{"type":"object","properties":{"created":{"type":"string","description":"Created is the timestamp of the creation."},"file_name":{"type":"string","description":"Filename is where to store the value of the secret."},"key":{"type":"string","description":"Key is the identifier for the secret.","pattern":"^[a-zA-Z0-9_]+$","minLength":1,"maxLength":128},"updated":{"type":"string","description":"Updated is the timestamp of the last update."},"uuid":{"type":"string","description":"UUID is the unique identifier for the secret."},"value":{"type":"string","description":"Value is the value of the secret."},"value_type":{"type":"string","description":"Type indecates the value type of the secret. In the case of secret this is a\nreference to an item in the secret store"},"var_type":{"type":"string","description":"The type of variable"}},"required":["key","value","value_type"]},"AnsibleError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Create dynamic Ansible playbook variable on org level

> Create a new dynamic variable on an org scoped playbook.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"ansible","description":"Ansible Service handles the API for ansible entities."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/ansible/playbook/{identifier}/vars":{"post":{"tags":["ansible"],"summary":"Create dynamic Ansible playbook variable on org level","description":"Create a new dynamic variable on an org scoped playbook.","operationId":"ansible#create-playbook-vars-org-level","parameters":[{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"identifier","in":"path","description":"The unique identifier for this playbook","required":true,"schema":{"type":"string","description":"The unique identifier for this playbook"}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePlaybookVarOrgLevelRequest"}}}},"responses":{"201":{"description":"Created response."},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}}}}}},"components":{"schemas":{"CreatePlaybookVarOrgLevelRequest":{"type":"object","properties":{"env_vars":{"type":"array","items":{"$ref":"#/components/schemas/HarnessIacmInventoryVarCreate"}},"vars":{"type":"array","items":{"$ref":"#/components/schemas/HarnessIacmInventoryVarCreate"}}},"required":["vars"]},"HarnessIacmInventoryVarCreate":{"type":"object","properties":{"file_name":{"type":"string","description":"Filename is where to store the value of the secret."},"key":{"type":"string","description":"Key is the identifier for the secret.","pattern":"^[a-zA-Z0-9_]+$","minLength":1,"maxLength":128},"uuid":{"type":"string","description":"UUID is the unique identifier for the secret."},"value":{"type":"string","description":"Value is the value of the secret."},"value_type":{"type":"string","description":"Type indecates the value type of the secret. In the case of secret this is a\nreference to an item in the secret store"},"var_type":{"type":"string","description":"The type of variable. eg: var, env_var"}},"required":["key","value","value_type"]},"AnsibleError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Update dynamic Ansible playbook variable on org level

> Update an existing dynamic variable on an org scoped playbook.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"ansible","description":"Ansible Service handles the API for ansible entities."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/ansible/playbook/{identifier}/vars":{"put":{"tags":["ansible"],"summary":"Update dynamic Ansible playbook variable on org level","description":"Update an existing dynamic variable on an org scoped playbook.","operationId":"ansible#update-playbook-vars-org-level","parameters":[{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"identifier","in":"path","description":"The unique identifier for this playbook","required":true,"schema":{"type":"string","description":"The unique identifier for this playbook"}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdatePlaybookVarsOrgLevelRequest"}}}},"responses":{"200":{"description":"OK response."},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}}}}}},"components":{"schemas":{"UpdatePlaybookVarsOrgLevelRequest":{"type":"object","properties":{"env_vars":{"type":"array","items":{"$ref":"#/components/schemas/HarnessIacmInventoryVarCreate"}},"vars":{"type":"array","items":{"$ref":"#/components/schemas/HarnessIacmInventoryVarCreate"}}},"required":["vars"]},"HarnessIacmInventoryVarCreate":{"type":"object","properties":{"file_name":{"type":"string","description":"Filename is where to store the value of the secret."},"key":{"type":"string","description":"Key is the identifier for the secret.","pattern":"^[a-zA-Z0-9_]+$","minLength":1,"maxLength":128},"uuid":{"type":"string","description":"UUID is the unique identifier for the secret."},"value":{"type":"string","description":"Value is the value of the secret."},"value_type":{"type":"string","description":"Type indecates the value type of the secret. In the case of secret this is a\nreference to an item in the secret store"},"var_type":{"type":"string","description":"The type of variable. eg: var, env_var"}},"required":["key","value","value_type"]},"AnsibleError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Delete dynamic Ansible playbook variable on org level

> Delete a dynamic variable from an org scoped playbook.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"ansible","description":"Ansible Service handles the API for ansible entities."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/ansible/playbook/{identifier}/vars":{"delete":{"tags":["ansible"],"summary":"Delete dynamic Ansible playbook variable on org level","description":"Delete a dynamic variable from an org scoped playbook.","operationId":"ansible#delete-playbook-vars-org-level","parameters":[{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"identifier","in":"path","description":"The unique identifier for this playbook","required":true,"schema":{"type":"string","description":"The unique identifier for this playbook"}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeletePlaybookVarsOrgLevelRequest"}}}},"responses":{"200":{"description":"OK response."},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}}}}}},"components":{"schemas":{"DeletePlaybookVarsOrgLevelRequest":{"type":"object","properties":{"vars":{"type":"array","items":{"type":"string"}}},"required":["vars"]},"AnsibleError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## List Ansible Activities

> List all activities.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"ansible","description":"Ansible Service handles the API for ansible entities."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/ansible/activities":{"get":{"tags":["ansible"],"summary":"List Ansible Activities","description":"List all activities.","operationId":"ansible#list-ansible-activities","parameters":[{"name":"limit","in":"query","description":"Limit is the number of records to return for a page.","allowEmptyValue":true,"schema":{"type":"integer","description":"Limit is the number of records to return for a page.","default":30,"format":"int64","minimum":1,"maximum":1000}},{"name":"page","in":"query","description":"Page is the page number to return relative to the page 'limit'.","allowEmptyValue":true,"schema":{"type":"integer","description":"Page is the page number to return relative to the page 'limit'.","default":1,"format":"int64","minimum":1}},{"name":"sort","in":"query","description":"Sort order for results","allowEmptyValue":true,"schema":{"type":"string","description":"Sort order for results","default":"created,DESC","enum":["created,ASC","created,DESC"]}},{"name":"InventorySearchTerm","in":"query","description":"Search term to filter by inventory identifier","allowEmptyValue":true,"schema":{"type":"string","description":"Search term to filter by inventory identifier"}},{"name":"PlaybookSearchTerm","in":"query","description":"Search term to filter by playbook identifier","allowEmptyValue":true,"schema":{"type":"string","description":"Search term to filter by playbook identifier"}},{"name":"activity_type","in":"query","description":"Activity type filter","allowEmptyValue":true,"schema":{"type":"string","description":"Activity type filter"}},{"name":"status","in":"query","description":"Activity status filter","allowEmptyValue":true,"schema":{"type":"string","description":"Activity status filter"}},{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"responses":{"200":{"description":"OK response.","headers":{},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnsibleActivityResourceCollection"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}}}}}},"components":{"schemas":{"AnsibleActivityResourceCollection":{"type":"array","items":{"$ref":"#/components/schemas/HarnessIacmAnsibleactivity"}},"HarnessIacmAnsibleactivity":{"type":"object","properties":{"account":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128},"created":{"type":"integer","description":"Timestamp when the resource was created.","format":"int64"},"event_type":{"type":"string","description":"The type of event that occurred","enum":["activity-execution","activity-dry-run-execution"]},"id":{"type":"string","description":"The unique identifier for this activity"},"inventories":{"type":"string","description":"Inventories associated with this event"},"metadata":{"$ref":"#/components/schemas/AnsibleActivityMetadata"},"org":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128},"playbooks":{"type":"string","description":"Playbooks associated with this event"},"project":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},"required":["account","org","project","inventories","playbooks","id","metadata","created","event_type"]},"AnsibleActivityMetadata":{"type":"object","properties":{"activity_status":{"type":"string","description":"The status of this activity"},"filters":{"type":"string","description":"Tags/skip-tags/limit applied to the run"},"git_branch":{"type":"string","description":"Git branch associated with this execution"},"git_commit_message":{"type":"string","description":"Git commit message associated with this execution"},"git_commit_sha":{"type":"string","description":"Git commit SHA associated with this execution"},"git_repo":{"type":"string","description":"Git repo associated with this execution"},"metrics":{"$ref":"#/components/schemas/AnsibleMetrics"},"pipeline":{"type":"string","description":"The unique identifier of any associated pipeline"},"pipeline_execution_id":{"type":"string","description":"The unique identifier for any associated pipeline execution"},"pipeline_execution_number":{"type":"string","description":"The unique number for any associated pipeline execution"},"pipeline_name":{"type":"string","description":"The name of any associated pipeline"},"pipeline_stage_id":{"type":"string","description":"The unique identifier for the associated pipeline stage"},"plugin_version":{"type":"string","description":"The version of the Ansible plugin that produced this activity"},"results_uuid":{"type":"string","description":"The ID of any associated results"},"trigger":{"type":"object","description":"Trigger info for any associated pipeline execution","additionalProperties":true}}},"AnsibleMetrics":{"type":"object","properties":{"circuit_breaker_triggered":{"type":"boolean","description":"Whether circuit breaker was triggered"},"duration_ms":{"type":"integer","description":"Duration of ansible run in milliseconds","format":"int64"},"host_changed":{"type":"integer","description":"Number of hosts with changed status","format":"int64"},"host_failed":{"type":"integer","description":"Number of hosts with failed status","format":"int64"},"host_ok":{"type":"integer","description":"Number of hosts with ok status","format":"int64"},"host_skipped":{"type":"integer","description":"Number of hosts with skipped status","format":"int64"},"host_unreachable":{"type":"integer","description":"Number of hosts with unreachable status","format":"int64"},"output_size_bytes":{"type":"integer","description":"Size of structured ansible output in bytes","format":"int64"},"payload_size_bytes":{"type":"integer","description":"Size of payload sent to server in bytes","format":"int64"},"total_hosts":{"type":"integer","description":"Total number of hosts in the ansible run","format":"int64"},"total_tasks":{"type":"integer","description":"Total number of tasks across all hosts","format":"int64"}},"description":"Observability metrics for ansible playbook runs"},"AnsibleError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Show ansible activity

> Show an individual ansible activity.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"ansible","description":"Ansible Service handles the API for ansible entities."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/ansible/activities/{id}":{"get":{"tags":["ansible"],"summary":"Show ansible activity","description":"Show an individual ansible activity.","operationId":"ansible#show-ansible-activity","parameters":[{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"id","in":"path","description":"The unique ID for this activity","required":true,"schema":{"type":"string","description":"The unique ID for this activity"}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShowAnsibleActivityResponse"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}}}}}},"components":{"schemas":{"ShowAnsibleActivityResponse":{"type":"object","properties":{"account":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128},"created":{"type":"integer","description":"Timestamp when the resource was created.","format":"int64"},"event_type":{"type":"string","description":"The type of event that occurred","enum":["activity-execution","activity-dry-run-execution"]},"id":{"type":"string","description":"The unique identifier for this activity"},"inventories":{"type":"string","description":"Inventories associated with this event"},"metadata":{"$ref":"#/components/schemas/AnsibleActivityMetadata"},"org":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128},"playbooks":{"type":"string","description":"Playbooks associated with this event"},"project":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},"required":["account","org","project","inventories","playbooks","id","metadata","created","event_type"]},"AnsibleActivityMetadata":{"type":"object","properties":{"activity_status":{"type":"string","description":"The status of this activity"},"filters":{"type":"string","description":"Tags/skip-tags/limit applied to the run"},"git_branch":{"type":"string","description":"Git branch associated with this execution"},"git_commit_message":{"type":"string","description":"Git commit message associated with this execution"},"git_commit_sha":{"type":"string","description":"Git commit SHA associated with this execution"},"git_repo":{"type":"string","description":"Git repo associated with this execution"},"metrics":{"$ref":"#/components/schemas/AnsibleMetrics"},"pipeline":{"type":"string","description":"The unique identifier of any associated pipeline"},"pipeline_execution_id":{"type":"string","description":"The unique identifier for any associated pipeline execution"},"pipeline_execution_number":{"type":"string","description":"The unique number for any associated pipeline execution"},"pipeline_name":{"type":"string","description":"The name of any associated pipeline"},"pipeline_stage_id":{"type":"string","description":"The unique identifier for the associated pipeline stage"},"plugin_version":{"type":"string","description":"The version of the Ansible plugin that produced this activity"},"results_uuid":{"type":"string","description":"The ID of any associated results"},"trigger":{"type":"object","description":"Trigger info for any associated pipeline execution","additionalProperties":true}}},"AnsibleMetrics":{"type":"object","properties":{"circuit_breaker_triggered":{"type":"boolean","description":"Whether circuit breaker was triggered"},"duration_ms":{"type":"integer","description":"Duration of ansible run in milliseconds","format":"int64"},"host_changed":{"type":"integer","description":"Number of hosts with changed status","format":"int64"},"host_failed":{"type":"integer","description":"Number of hosts with failed status","format":"int64"},"host_ok":{"type":"integer","description":"Number of hosts with ok status","format":"int64"},"host_skipped":{"type":"integer","description":"Number of hosts with skipped status","format":"int64"},"host_unreachable":{"type":"integer","description":"Number of hosts with unreachable status","format":"int64"},"output_size_bytes":{"type":"integer","description":"Size of structured ansible output in bytes","format":"int64"},"payload_size_bytes":{"type":"integer","description":"Size of payload sent to server in bytes","format":"int64"},"total_hosts":{"type":"integer","description":"Total number of hosts in the ansible run","format":"int64"},"total_tasks":{"type":"integer","description":"Total number of tasks across all hosts","format":"int64"}},"description":"Observability metrics for ansible playbook runs"},"AnsibleError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## List data

> List all stored data for a inventory or playbook.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"ansible","description":"Ansible Service handles the API for ansible entities."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/ansible/data":{"get":{"tags":["ansible"],"summary":"List data","description":"List all stored data for a inventory or playbook.","operationId":"ansible#list-data","parameters":[{"name":"inventory_search_term","in":"query","description":"Inventory search term","allowEmptyValue":true,"schema":{"type":"string","description":"Inventory search term"}},{"name":"playbook_search_term","in":"query","description":"Playbook search term","allowEmptyValue":true,"schema":{"type":"string","description":"Playbook search term"}},{"name":"pipeline_execution_id","in":"query","description":"Filter by pipeline execution ID","allowEmptyValue":true,"schema":{"type":"string","description":"Filter by pipeline execution ID"}},{"name":"pipeline_stage_id","in":"query","description":"Filter by pipeline execution stage ID","allowEmptyValue":true,"schema":{"type":"string","description":"Filter by pipeline execution stage ID"}},{"name":"data_type","in":"query","description":"Filter by data type","allowEmptyValue":true,"schema":{"type":"string","description":"Filter by data type"}},{"name":"limit","in":"query","description":"Limit is the number of records to return for a page.","allowEmptyValue":true,"schema":{"type":"integer","description":"Limit is the number of records to return for a page.","default":30,"format":"int64","minimum":1,"maximum":1000}},{"name":"page","in":"query","description":"Page is the page number to return relative to the page 'limit'.","allowEmptyValue":true,"schema":{"type":"integer","description":"Page is the page number to return relative to the page 'limit'.","default":1,"format":"int64","minimum":1}},{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"responses":{"200":{"description":"OK response.","headers":{},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnsibleDataResourceCollection"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}}}}}},"components":{"schemas":{"AnsibleDataResourceCollection":{"type":"array","items":{"$ref":"#/components/schemas/HarnessIacmAnsibledata"}},"HarnessIacmAnsibledata":{"type":"object","properties":{"account":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128},"created":{"type":"integer","description":"Created is the unix timestamp at which the resource was originally created in milliseconds.","format":"int64"},"data_type":{"type":"string","description":"Type of data stored","enum":["task_results"]},"id":{"type":"string","description":"The unique identifier for the data"},"inventories":{"type":"string","description":"Inventories associated with this event"},"org":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128},"pipeline_execution_id":{"type":"string","description":"The unique identifier for the associated pipeline execution"},"pipeline_id":{"type":"string","description":"The unique identifier for the associated pipeline"},"pipeline_stage_id":{"type":"string","description":"The unique identifier for the associated pipeline execution stage"},"playbooks":{"type":"string","description":"Playbooks associated with this event"},"project":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128},"stage_id":{"type":"string","description":"The unique identifier for a stage"}},"description":"AnsibleDataResource is the representation for a single item of data associated with an ansible run.","required":["account","org","project","created","id","data_type","inventories","playbooks"]},"AnsibleError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Create data

> Store binary data generated by ansible.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"ansible","description":"Ansible Service handles the API for ansible entities."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/ansible/data":{"post":{"tags":["ansible"],"summary":"Create data","description":"Store binary data generated by ansible.","operationId":"ansible#create-data","parameters":[{"name":"pipeline_id","in":"query","description":"The unique identifier for the associated pipeline","allowEmptyValue":true,"schema":{"type":"string","description":"The unique identifier for the associated pipeline"}},{"name":"stage_id","in":"query","description":"The unique identifier for a stage","allowEmptyValue":true,"schema":{"type":"string","description":"The unique identifier for a stage"}},{"name":"pipeline_execution_id","in":"query","description":"The unique identifier for the associated pipeline execution","allowEmptyValue":true,"schema":{"type":"string","description":"The unique identifier for the associated pipeline execution"}},{"name":"pipeline_stage_id","in":"query","description":"The unique identifier for the associated pipeline execution stage","allowEmptyValue":true,"schema":{"type":"string","description":"The unique identifier for the associated pipeline execution stage"}},{"name":"data_type","in":"query","description":"Type of data stored","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Type of data stored","enum":["task_results"]}},{"name":"inventories","in":"query","description":"Inventories associated with this event","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Inventories associated with this event"}},{"name":"playbooks","in":"query","description":"Playbooks associated with this event","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Playbooks associated with this event"}},{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}},{"name":"Content-Length","in":"header","description":"Size in bytes of the data.","allowEmptyValue":true,"schema":{"type":"integer","description":"Size in bytes of the data.","format":"int64"}}],"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAnsibleDataResponse"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}}}}}},"components":{"schemas":{"CreateAnsibleDataResponse":{"type":"object","properties":{"id":{"type":"string","description":"The unique identifier for the data"}},"required":["id"]},"AnsibleError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Show data

> Get binary data generated by the provisioner, such as plans and state files.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"ansible","description":"Ansible Service handles the API for ansible entities."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/ansible/data/{id}":{"get":{"tags":["ansible"],"summary":"Show data","description":"Get binary data generated by the provisioner, such as plans and state files.","operationId":"ansible#show-data","parameters":[{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"id","in":"path","description":"The unique identifier for the data","required":true,"schema":{"type":"string","description":"The unique identifier for the data"}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}}}}}},"components":{"schemas":{"AnsibleError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## POST /api/orgs/{org}/projects/{project}/ansible/events

> Send event

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"ansible","description":"Ansible Service handles the API for ansible entities."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/ansible/events":{"post":{"tags":["ansible"],"summary":"Send event","operationId":"ansible#send-ansible-event","parameters":[{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendAnsibleEventRequest"}}}},"responses":{"200":{"description":"OK response."},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}}}}}},"components":{"schemas":{"SendAnsibleEventRequest":{"type":"object","properties":{"event_type":{"type":"string","description":"The type of event that occurred","enum":["activity-execution","activity-dry-run-execution"]},"inventories":{"type":"string","description":"Inventories associated with this event"},"metadata":{"$ref":"#/components/schemas/AnsibleActivityMetadata"},"playbooks":{"type":"string","description":"Playbooks associated with this event"}},"required":["inventories","playbooks","event_type"]},"AnsibleActivityMetadata":{"type":"object","properties":{"activity_status":{"type":"string","description":"The status of this activity"},"filters":{"type":"string","description":"Tags/skip-tags/limit applied to the run"},"git_branch":{"type":"string","description":"Git branch associated with this execution"},"git_commit_message":{"type":"string","description":"Git commit message associated with this execution"},"git_commit_sha":{"type":"string","description":"Git commit SHA associated with this execution"},"git_repo":{"type":"string","description":"Git repo associated with this execution"},"metrics":{"$ref":"#/components/schemas/AnsibleMetrics"},"pipeline":{"type":"string","description":"The unique identifier of any associated pipeline"},"pipeline_execution_id":{"type":"string","description":"The unique identifier for any associated pipeline execution"},"pipeline_execution_number":{"type":"string","description":"The unique number for any associated pipeline execution"},"pipeline_name":{"type":"string","description":"The name of any associated pipeline"},"pipeline_stage_id":{"type":"string","description":"The unique identifier for the associated pipeline stage"},"plugin_version":{"type":"string","description":"The version of the Ansible plugin that produced this activity"},"results_uuid":{"type":"string","description":"The ID of any associated results"},"trigger":{"type":"object","description":"Trigger info for any associated pipeline execution","additionalProperties":true}}},"AnsibleMetrics":{"type":"object","properties":{"circuit_breaker_triggered":{"type":"boolean","description":"Whether circuit breaker was triggered"},"duration_ms":{"type":"integer","description":"Duration of ansible run in milliseconds","format":"int64"},"host_changed":{"type":"integer","description":"Number of hosts with changed status","format":"int64"},"host_failed":{"type":"integer","description":"Number of hosts with failed status","format":"int64"},"host_ok":{"type":"integer","description":"Number of hosts with ok status","format":"int64"},"host_skipped":{"type":"integer","description":"Number of hosts with skipped status","format":"int64"},"host_unreachable":{"type":"integer","description":"Number of hosts with unreachable status","format":"int64"},"output_size_bytes":{"type":"integer","description":"Size of structured ansible output in bytes","format":"int64"},"payload_size_bytes":{"type":"integer","description":"Size of payload sent to server in bytes","format":"int64"},"total_hosts":{"type":"integer","description":"Total number of hosts in the ansible run","format":"int64"},"total_tasks":{"type":"integer","description":"Total number of tasks across all hosts","format":"int64"}},"description":"Observability metrics for ansible playbook runs"},"AnsibleError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Get Ansible file

> Retrieve a playbook or plugin inventory YAML file from its configured git repository.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"ansible","description":"Ansible Service handles the API for ansible entities."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/ansible/file":{"get":{"tags":["ansible"],"summary":"Get Ansible file","description":"Retrieve a playbook or plugin inventory YAML file from its configured git repository.","operationId":"ansible#get-file","parameters":[{"name":"resource_type","in":"query","description":"Type of ansible resource (playbook or inventory).","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Type of ansible resource (playbook or inventory).","enum":["playbook","inventory"]}},{"name":"identifier","in":"query","description":"Identifier of the playbook or inventory.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Identifier of the playbook or inventory."}},{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}}}}}},"components":{"schemas":{"AnsibleError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## List Ansible Hosts

> List all hosts across all inventories.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"ansible","description":"Ansible Service handles the API for ansible entities."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/ansible/hosts":{"get":{"tags":["ansible"],"summary":"List Ansible Hosts","description":"List all hosts across all inventories.","operationId":"ansible#list-hosts","parameters":[{"name":"limit","in":"query","description":"Limit is the number of records to return for a page.","allowEmptyValue":true,"schema":{"type":"integer","description":"Limit is the number of records to return for a page.","default":30,"format":"int64","minimum":1,"maximum":1000}},{"name":"page","in":"query","description":"Page is the page number to return relative to the page 'limit'.","allowEmptyValue":true,"schema":{"type":"integer","description":"Page is the page number to return relative to the page 'limit'.","default":1,"format":"int64","minimum":1}},{"name":"sort","in":"query","description":"Sort order for results","allowEmptyValue":true,"schema":{"type":"string","description":"Sort order for results","default":"host_address,ASC","enum":["host_address,ASC","host_address,DESC","updated,ASC","updated,DESC"]}},{"name":"searchTerm","in":"query","description":"Filter results by partial host address match","allowEmptyValue":true,"schema":{"type":"string","description":"Filter results by partial host address match","default":""}},{"name":"inventory","in":"query","description":"Filter results by inventory membership","allowEmptyValue":true,"schema":{"type":"string","description":"Filter results by inventory membership","default":""}},{"name":"status","in":"query","description":"Filter results by last activity status","allowEmptyValue":true,"schema":{"type":"string","description":"Filter results by last activity status","default":""}},{"name":"startTime","in":"query","description":"Filter results by last activity created time (Unix timestamp in milliseconds) - inclusive start of time range","allowEmptyValue":true,"schema":{"type":"integer","description":"Filter results by last activity created time (Unix timestamp in milliseconds) - inclusive start of time range","format":"int64"}},{"name":"endTime","in":"query","description":"Filter results by last activity created time (Unix timestamp in milliseconds) - inclusive end of time range","allowEmptyValue":true,"schema":{"type":"integer","description":"Filter results by last activity created time (Unix timestamp in milliseconds) - inclusive end of time range","format":"int64"}},{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"responses":{"200":{"description":"OK response.","headers":{},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HostResourceCollection"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}}}}}},"components":{"schemas":{"HostResourceCollection":{"type":"array","items":{"$ref":"#/components/schemas/HarnessIacmHost"}},"HarnessIacmHost":{"type":"object","properties":{"created":{"type":"integer","description":"Timestamp when the resource was created","format":"int64"},"host_address":{"type":"string","description":"The address of the host (hostname or IP)"},"id":{"type":"string","description":"The unique identifier for this host"},"inventories":{"type":"array","items":{"type":"string"},"description":"List of inventory identifiers this host belongs to"},"last_activity":{"$ref":"#/components/schemas/HostLastActivity"},"updated":{"type":"integer","description":"Timestamp when the resource was last updated","format":"int64"}},"required":["id","host_address","created","updated"]},"HostLastActivity":{"type":"object","properties":{"created":{"type":"integer","description":"Timestamp when the activity was created","format":"int64"},"playbooks":{"type":"array","items":{"type":"string"},"description":"Playbooks that were run in the last activity"},"status":{"type":"string","description":"Status of the last activity run on this host"}},"description":"HostLastActivity contains information about the most recent activity run on a host","required":["status","playbooks","created"]},"AnsibleError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Show Ansible Host

> Get details for a single host.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"ansible","description":"Ansible Service handles the API for ansible entities."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/ansible/hosts/{id}":{"get":{"tags":["ansible"],"summary":"Show Ansible Host","description":"Get details for a single host.","operationId":"ansible#show-host","parameters":[{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"id","in":"path","description":"The unique identifier for this host","required":true,"schema":{"type":"string","description":"The unique identifier for this host"}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShowHostResponse"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}}}}}},"components":{"schemas":{"ShowHostResponse":{"type":"object","properties":{"created":{"type":"integer","description":"Timestamp when the resource was created","format":"int64"},"host_address":{"type":"string","description":"The address of the host (hostname or IP)"},"id":{"type":"string","description":"The unique identifier for this host"},"inventories":{"type":"array","items":{"type":"string"},"description":"List of inventory identifiers this host belongs to"},"last_activity":{"$ref":"#/components/schemas/HostLastActivity"},"updated":{"type":"integer","description":"Timestamp when the resource was last updated","format":"int64"}},"required":["id","host_address","created","updated"]},"HostLastActivity":{"type":"object","properties":{"created":{"type":"integer","description":"Timestamp when the activity was created","format":"int64"},"playbooks":{"type":"array","items":{"type":"string"},"description":"Playbooks that were run in the last activity"},"status":{"type":"string","description":"Status of the last activity run on this host"}},"description":"HostLastActivity contains information about the most recent activity run on a host","required":["status","playbooks","created"]},"AnsibleError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## List Ansible Host Activities

> List all activities for a specific host.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"ansible","description":"Ansible Service handles the API for ansible entities."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/ansible/hosts/{id}/activities":{"get":{"tags":["ansible"],"summary":"List Ansible Host Activities","description":"List all activities for a specific host.","operationId":"ansible#list-host-activities","parameters":[{"name":"limit","in":"query","description":"Limit is the number of records to return for a page.","allowEmptyValue":true,"schema":{"type":"integer","description":"Limit is the number of records to return for a page.","default":30,"format":"int64","minimum":1,"maximum":1000}},{"name":"page","in":"query","description":"Page is the page number to return relative to the page 'limit'.","allowEmptyValue":true,"schema":{"type":"integer","description":"Page is the page number to return relative to the page 'limit'.","default":1,"format":"int64","minimum":1}},{"name":"sort","in":"query","description":"Sort order for results","allowEmptyValue":true,"schema":{"type":"string","description":"Sort order for results","default":"created,DESC","enum":["created,ASC","created,DESC"]}},{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"id","in":"path","description":"The unique identifier for this host","required":true,"schema":{"type":"string","description":"The unique identifier for this host"}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"responses":{"200":{"description":"OK response.","headers":{},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HostActivityResourceCollection"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}}}}}},"components":{"schemas":{"HostActivityResourceCollection":{"type":"array","items":{"$ref":"#/components/schemas/HarnessIacmHostactivity"}},"HarnessIacmHostactivity":{"type":"object","properties":{"account":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128},"created":{"type":"integer","description":"Timestamp when the resource was created","format":"int64"},"data":{"type":"string","description":"Host-specific execution data (stats and task results)"},"event_type":{"type":"string","description":"The type of event that occurred","enum":["activity-execution","activity-dry-run-execution"]},"id":{"type":"string","description":"The unique identifier for this activity"},"inventories":{"type":"string","description":"Inventories associated with this event"},"metadata":{"$ref":"#/components/schemas/AnsibleActivityMetadata"},"org":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128},"playbooks":{"type":"string","description":"Playbooks associated with this event"},"project":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128},"status":{"type":"string","description":"Host-specific status for this activity"}},"required":["account","org","project","inventories","playbooks","id","metadata","created","event_type"]},"AnsibleActivityMetadata":{"type":"object","properties":{"activity_status":{"type":"string","description":"The status of this activity"},"filters":{"type":"string","description":"Tags/skip-tags/limit applied to the run"},"git_branch":{"type":"string","description":"Git branch associated with this execution"},"git_commit_message":{"type":"string","description":"Git commit message associated with this execution"},"git_commit_sha":{"type":"string","description":"Git commit SHA associated with this execution"},"git_repo":{"type":"string","description":"Git repo associated with this execution"},"metrics":{"$ref":"#/components/schemas/AnsibleMetrics"},"pipeline":{"type":"string","description":"The unique identifier of any associated pipeline"},"pipeline_execution_id":{"type":"string","description":"The unique identifier for any associated pipeline execution"},"pipeline_execution_number":{"type":"string","description":"The unique number for any associated pipeline execution"},"pipeline_name":{"type":"string","description":"The name of any associated pipeline"},"pipeline_stage_id":{"type":"string","description":"The unique identifier for the associated pipeline stage"},"plugin_version":{"type":"string","description":"The version of the Ansible plugin that produced this activity"},"results_uuid":{"type":"string","description":"The ID of any associated results"},"trigger":{"type":"object","description":"Trigger info for any associated pipeline execution","additionalProperties":true}}},"AnsibleMetrics":{"type":"object","properties":{"circuit_breaker_triggered":{"type":"boolean","description":"Whether circuit breaker was triggered"},"duration_ms":{"type":"integer","description":"Duration of ansible run in milliseconds","format":"int64"},"host_changed":{"type":"integer","description":"Number of hosts with changed status","format":"int64"},"host_failed":{"type":"integer","description":"Number of hosts with failed status","format":"int64"},"host_ok":{"type":"integer","description":"Number of hosts with ok status","format":"int64"},"host_skipped":{"type":"integer","description":"Number of hosts with skipped status","format":"int64"},"host_unreachable":{"type":"integer","description":"Number of hosts with unreachable status","format":"int64"},"output_size_bytes":{"type":"integer","description":"Size of structured ansible output in bytes","format":"int64"},"payload_size_bytes":{"type":"integer","description":"Size of payload sent to server in bytes","format":"int64"},"total_hosts":{"type":"integer","description":"Total number of hosts in the ansible run","format":"int64"},"total_tasks":{"type":"integer","description":"Total number of tasks across all hosts","format":"int64"}},"description":"Observability metrics for ansible playbook runs"},"AnsibleError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## List Inventories For Host

> List all inventories that a specific host belongs to.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"ansible","description":"Ansible Service handles the API for ansible entities."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/ansible/hosts/{id}/inventories":{"get":{"tags":["ansible"],"summary":"List Inventories For Host","description":"List all inventories that a specific host belongs to.","operationId":"ansible#list-host-inventories","parameters":[{"name":"limit","in":"query","description":"Limit is the number of records to return for a page.","allowEmptyValue":true,"schema":{"type":"integer","description":"Limit is the number of records to return for a page.","default":30,"format":"int64","minimum":1,"maximum":1000}},{"name":"page","in":"query","description":"Page is the page number to return relative to the page 'limit'.","allowEmptyValue":true,"schema":{"type":"integer","description":"Page is the page number to return relative to the page 'limit'.","default":1,"format":"int64","minimum":1}},{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"id","in":"path","description":"The unique identifier for this host","required":true,"schema":{"type":"string","description":"The unique identifier for this host"}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"responses":{"200":{"description":"OK response.","headers":{},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InventoryResourceCollection"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}}}}}},"components":{"schemas":{"InventoryResourceCollection":{"type":"array","items":{"$ref":"#/components/schemas/HarnessIacmInventory"}},"HarnessIacmInventory":{"type":"object","properties":{"account":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128},"created":{"type":"integer","description":"Timestamp when the resource was created.","format":"int64"},"description":{"type":"string","description":"Description documents the inventory purpose and usage","maxLength":1024},"identifier":{"type":"string","description":"The unique identifier for this inventory"},"name":{"type":"string","description":"Name is the human readable name","minLength":1,"maxLength":1024},"org":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128},"project":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128},"tags":{"type":"array","items":{"type":"string"},"description":"Tags associated with the inventory"},"type":{"type":"string","description":"Type indicates what kind of inventory this is","enum":["manual","dynamic","plugin","remote"]},"updated":{"type":"integer","description":"Timestamp when the resource was last updated.","format":"int64"}},"required":["created","updated","account","org","project","identifier","name","type","data"]},"AnsibleError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Get Ansible Host Stats

> Get aggregated statistics for a specific host.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"ansible","description":"Ansible Service handles the API for ansible entities."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/ansible/hosts/{id}/stats":{"get":{"tags":["ansible"],"summary":"Get Ansible Host Stats","description":"Get aggregated statistics for a specific host.","operationId":"ansible#get-host-stats","parameters":[{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"id","in":"path","description":"The unique identifier for this host","required":true,"schema":{"type":"string","description":"The unique identifier for this host"}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetHostStatsResponse"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}}}}}},"components":{"schemas":{"GetHostStatsResponse":{"type":"object","properties":{"avg_tasks_last_5_runs":{"type":"number","description":"Average number of tasks executed across the last 5 runs","format":"double"},"failures_7d":{"type":"integer","description":"Number of failed runs (status failures or unreachable) in the last 7 days","format":"int64"},"last_playbook":{"type":"array","items":{"type":"string"},"description":"Playbooks from the most recent execution against this host"},"last_playbook_at":{"type":"integer","description":"Timestamp (ms) of the most recent execution against this host","format":"int64"},"success_rate_30d":{"type":"number","description":"Percentage of successful runs in the last 30 days (0-100)","format":"double"},"total_runs_30d":{"type":"integer","description":"Total number of runs in the last 30 days","format":"int64"}},"required":["success_rate_30d","total_runs_30d","failures_7d","avg_tasks_last_5_runs"]},"AnsibleError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Export Ansible Hosts to CSV

> Export all filtered hosts to CSV format. Includes all matching hosts (not paginated).

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"ansible","description":"Ansible Service handles the API for ansible entities."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/ansible/hosts/export":{"get":{"tags":["ansible"],"summary":"Export Ansible Hosts to CSV","description":"Export all filtered hosts to CSV format. Includes all matching hosts (not paginated).","operationId":"ansible#export-hosts-csv","parameters":[{"name":"searchTerm","in":"query","description":"Search term to filter hosts by name","allowEmptyValue":true,"schema":{"type":"string","description":"Search term to filter hosts by name"}},{"name":"inventory","in":"query","description":"Filter results by inventory identifier","allowEmptyValue":true,"schema":{"type":"string","description":"Filter results by inventory identifier"}},{"name":"status","in":"query","description":"Filter results by host status (based on most recent activity)","allowEmptyValue":true,"schema":{"type":"string","description":"Filter results by host status (based on most recent activity)","enum":["ok","changed","failures","unreachable","skipped","ignored","rescued"]}},{"name":"startTime","in":"query","description":"Filter results by last activity created time (Unix timestamp in milliseconds) - inclusive start of time range","allowEmptyValue":true,"schema":{"type":"integer","description":"Filter results by last activity created time (Unix timestamp in milliseconds) - inclusive start of time range","format":"int64"}},{"name":"endTime","in":"query","description":"Filter results by last activity created time (Unix timestamp in milliseconds) - inclusive end of time range","allowEmptyValue":true,"schema":{"type":"integer","description":"Filter results by last activity created time (Unix timestamp in milliseconds) - inclusive end of time range","format":"int64"}},{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"responses":{"200":{"description":"OK response.","content":{"text/csv":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}}}}}},"components":{"schemas":{"AnsibleError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Get Ansible Hosts Summary

> Get aggregated host counts grouped by the latest activity status, scoped to an account/org/project.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"ansible","description":"Ansible Service handles the API for ansible entities."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/ansible/hosts/summary":{"get":{"tags":["ansible"],"summary":"Get Ansible Hosts Summary","description":"Get aggregated host counts grouped by the latest activity status, scoped to an account/org/project.","operationId":"ansible#get-hosts-summary","parameters":[{"name":"searchTerm","in":"query","description":"Filter results by partial host address match","allowEmptyValue":true,"schema":{"type":"string","description":"Filter results by partial host address match","default":""}},{"name":"inventory","in":"query","description":"Filter results by inventory membership","allowEmptyValue":true,"schema":{"type":"string","description":"Filter results by inventory membership","default":""}},{"name":"startTime","in":"query","description":"Filter results by latest activity created time (Unix timestamp in milliseconds) - inclusive start of time range","allowEmptyValue":true,"schema":{"type":"integer","description":"Filter results by latest activity created time (Unix timestamp in milliseconds) - inclusive start of time range","format":"int64"}},{"name":"endTime","in":"query","description":"Filter results by latest activity created time (Unix timestamp in milliseconds) - inclusive end of time range","allowEmptyValue":true,"schema":{"type":"integer","description":"Filter results by latest activity created time (Unix timestamp in milliseconds) - inclusive end of time range","format":"int64"}},{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetHostsSummaryResponse"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}}}}}},"components":{"schemas":{"GetHostsSummaryResponse":{"type":"object","properties":{"changed":{"type":"integer","description":"Number of hosts whose latest activity status is 'changed'","format":"int64"},"failures":{"type":"integer","description":"Number of hosts whose latest activity status is 'failures'","format":"int64"},"ignored":{"type":"integer","description":"Number of hosts whose latest activity status is 'ignored'","format":"int64"},"ok":{"type":"integer","description":"Number of hosts whose latest activity status is 'ok'","format":"int64"},"rescued":{"type":"integer","description":"Number of hosts whose latest activity status is 'rescued'","format":"int64"},"skipped":{"type":"integer","description":"Number of hosts whose latest activity status is 'skipped'","format":"int64"},"total":{"type":"integer","description":"Total number of hosts matching the filters","format":"int64"},"unknown":{"type":"integer","description":"Number of hosts with no activity rows (no derivable latest status)","format":"int64"},"unreachable":{"type":"integer","description":"Number of hosts whose latest activity status is 'unreachable'","format":"int64"}},"required":["total","ok","changed","failures","unreachable","skipped","ignored","rescued","unknown"]},"AnsibleError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## List Ansible inventory

> List all inventories.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"ansible","description":"Ansible Service handles the API for ansible entities."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/ansible/inventory":{"get":{"tags":["ansible"],"summary":"List Ansible inventory","description":"List all inventories.","operationId":"ansible#list-inventory","parameters":[{"name":"limit","in":"query","description":"Limit is the number of records to return for a page.","allowEmptyValue":true,"schema":{"type":"integer","description":"Limit is the number of records to return for a page.","default":30,"format":"int64","minimum":1,"maximum":1000}},{"name":"page","in":"query","description":"Page is the page number to return relative to the page 'limit'.","allowEmptyValue":true,"schema":{"type":"integer","description":"Page is the page number to return relative to the page 'limit'.","default":1,"format":"int64","minimum":1}},{"name":"searchTerm","in":"query","description":"Filter results by partial name match","allowEmptyValue":true,"schema":{"type":"string","description":"Filter results by partial name match","default":""}},{"name":"sort","in":"query","description":"Sort order for results","allowEmptyValue":true,"schema":{"type":"string","description":"Sort order for results","default":"name,ASC","enum":["name,ASC","name,DESC","updated,ASC","updated,DESC"]}},{"name":"includeDetails","in":"query","description":"Include inventory details","allowEmptyValue":true,"schema":{"type":"boolean","description":"Include inventory details","default":false}},{"name":"tags","in":"query","description":"Filter results by tags (OR logic, exact match)","allowEmptyValue":true,"schema":{"type":"array","items":{"type":"string"},"description":"Filter results by tags (OR logic, exact match)"}},{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"responses":{"200":{"description":"OK response.","headers":{},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InventoryDetailResourceCollection"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}}}}}},"components":{"schemas":{"InventoryDetailResourceCollection":{"type":"array","items":{"$ref":"#/components/schemas/HarnessIacmInventoryDetail"}},"HarnessIacmInventoryDetail":{"type":"object","properties":{"account":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128},"created":{"type":"integer","description":"Timestamp when the resource was created.","format":"int64"},"data":{"type":"string","description":"The data representing the inventory"},"description":{"type":"string","description":"Description documents the inventory purpose and usage","maxLength":1024},"identifier":{"type":"string","description":"The unique identifier for this inventory"},"name":{"type":"string","description":"Name is the human readable name","minLength":1,"maxLength":1024},"org":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128},"project":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128},"tags":{"type":"array","items":{"type":"string"},"description":"Tags associated with the inventory"},"type":{"type":"string","description":"Type indicates what kind of inventory this is","enum":["manual","dynamic","plugin","remote"]},"updated":{"type":"integer","description":"Timestamp when the resource was last updated.","format":"int64"}},"required":["created","updated","account","org","project","identifier","name","type","data"]},"AnsibleError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Create Ansible inventory

> Create a new inventory.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"ansible","description":"Ansible Service handles the API for ansible entities."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/ansible/inventory":{"post":{"tags":["ansible"],"summary":"Create Ansible inventory","description":"Create a new inventory.","operationId":"ansible#create-inventory","parameters":[{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateInventoryRequest"}}}},"responses":{"201":{"description":"Created response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateInventoryResponse"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsiblePolicyViolationError"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}}}}}},"components":{"schemas":{"CreateInventoryRequest":{"type":"object","properties":{"description":{"type":"string","description":"Description documents the inventory purpose and usage","maxLength":1024},"dynamic_groups":{"type":"array","items":{"$ref":"#/components/schemas/CreateDynamicGroup"},"description":"Groups is the list of dynamic groups to use."},"groups":{"type":"array","items":{"$ref":"#/components/schemas/CreateManualGroup"},"description":"Groups is the list of manual groups to use."},"identifier":{"type":"string","description":"The unique identifier for this inventory"},"name":{"type":"string","description":"Name is the human readable name","minLength":1,"maxLength":1024},"plugin_options":{"$ref":"#/components/schemas/PluginOptions"},"remote_source":{"$ref":"#/components/schemas/RemoteSource"},"tags":{"type":"array","items":{"type":"string"},"description":"Tags associated with the inventory"},"type":{"type":"string","description":"Type indicates what kind of inventory this is","enum":["manual","dynamic","plugin","remote"]},"vars":{"type":"array","items":{"$ref":"#/components/schemas/AnsibleVariable"},"description":"Vars is the list of manual variables to use."}},"required":["type","name","identifier","data"]},"CreateDynamicGroup":{"type":"object","properties":{"configuration":{"$ref":"#/components/schemas/DynamicConfig"},"connector_identifier":{"type":"string","description":"Connector Identifier is the identifier of the connector to use."},"connector_type":{"type":"string","description":"Connector Type is the type of connector to use.","enum":["workspace","aws","gcp","azure","vault"]},"dynamic_vars":{"type":"array","items":{"$ref":"#/components/schemas/AnsibleVariable"},"description":"Dynamic Vars is the variables associated with the host."},"identifier":{"type":"string","description":"The identifier of the group"},"name":{"type":"string","description":"Name is the friendly name of the group."},"vars":{"type":"array","items":{"$ref":"#/components/schemas/AnsibleVariable"},"description":"Vars is the variables associated with the host."}},"required":["identifier","name","connector_identifier","connector_type"]},"DynamicConfig":{"type":"object","properties":{"host_address_attribute":{"type":"string","description":"Host address is the address of the host."},"resource_type":{"type":"string","description":"Type is the type of resource to select."},"selectors":{"type":"array","items":{"$ref":"#/components/schemas/ResourcesSelectorConditions"}}}},"ResourcesSelectorConditions":{"type":"object","properties":{"attribute":{"type":"string","description":"Attribute is the attribute to select on."},"operator":{"type":"string","description":"Operator is the operator to use for the selector.","enum":["equals","not_equals","contains","not_contains","starts_with","ends_with"]},"value":{"type":"string","description":"Value is the value to check."}},"required":["attribute","operator","value"]},"AnsibleVariable":{"type":"object","properties":{"file_name":{"type":"string","description":"Filename is where to store the value of the secret."},"key":{"type":"string","description":"Key is the identifier for the secret.","pattern":"^[a-zA-Z0-9_]+$","minLength":1,"maxLength":128},"uuid":{"type":"string","description":"UUID is the unique identifier for the secret."},"value":{"type":"string","description":"Value is the value of the secret."},"value_type":{"type":"string","description":"Type indecates the value type of the secret. In the case of secret this is a\nreference to an item in the secret store"}},"description":"AnsibleVariable is the representation for a single variable associated with ansible.","required":["key","value","value_type"]},"CreateManualGroup":{"type":"object","properties":{"hosts":{"type":"array","items":{"type":"string"},"description":"Groups is the list of hosts in the group."},"identifier":{"type":"string","description":"The identifier of the group"},"name":{"type":"string","description":"Name is the name of the group."},"vars":{"type":"array","items":{"$ref":"#/components/schemas/AnsibleVariable"},"description":"Vars is the variables associated with the host."}},"required":["identifier","name"]},"PluginOptions":{"type":"object","properties":{"inline_yaml":{"type":"string","description":"Inline plugin inventory YAML content."},"provider_connector_identifier":{"type":"string","description":"Provider connector identifier to use for plugin inventory execution."},"provider_connector_type":{"type":"string","description":"Provider connector type to use.","enum":["workspace","aws","gcp","azure","vault"]},"repository":{"type":"string","description":"Git repository name/identifier (required when source_type=git)."},"repository_branch":{"type":"string","description":"Git branch (optional; used when source_type=git)."},"repository_commit":{"type":"string","description":"Git commit/tag (optional; used when source_type=git)."},"repository_connector":{"type":"string","description":"Harness connector reference used to fetch repository content (required when source_type=git)."},"repository_path":{"type":"string","description":"Path within the repo to the plugin inventory YAML (required when source_type=git)."},"source_type":{"type":"string","description":"Source type for plugin inventory (git or inline).","enum":["git","inline"]}},"description":"plugin_options defines how plugin inventory content is sourced (inline or git) plus provider connector info."},"RemoteSource":{"type":"object","properties":{"repository":{"type":"string","description":"Git repository name/identifier."},"repository_branch":{"type":"string","description":"Git branch (optional; mutually exclusive with repository_commit)."},"repository_commit":{"type":"string","description":"Git commit or tag (optional; mutually exclusive with repository_branch)."},"repository_connector":{"type":"string","description":"Harness connector reference used to fetch repository content. Omit for Harness Code repositories."},"repository_path":{"type":"string","description":"Path within the repo to the inventory file or directory."}},"description":"remote_source is the git location a remote inventory's hosts, groups and group_vars are read from.","required":["repository","repository_path"]},"CreateInventoryResponse":{"type":"object","properties":{"account":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128},"created":{"type":"integer","description":"Timestamp when the resource was created.","format":"int64"},"description":{"type":"string","description":"Description documents the inventory purpose and usage","maxLength":1024},"identifier":{"type":"string","description":"The unique identifier for this inventory"},"name":{"type":"string","description":"Name is the human readable name","minLength":1,"maxLength":1024},"org":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128},"policy_evaluation":{"$ref":"#/components/schemas/AnsibleEvaluation"},"project":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128},"tags":{"type":"array","items":{"type":"string"},"description":"Tags associated with the inventory"},"type":{"type":"string","description":"Type indicates what kind of inventory this is","enum":["manual","dynamic","plugin","remote"]},"updated":{"type":"integer","description":"Timestamp when the resource was last updated.","format":"int64"}},"required":["created","updated","account","org","project","identifier","name","type","data"]},"AnsibleEvaluation":{"type":"object","properties":{"account_id":{"type":"string","description":"The Harness account in which the evaluation was performed"},"action":{"type":"string","description":"The action that triggered evaluation"},"created":{"type":"integer","description":"The time at which the evaluation was performed in Unix time milliseconds","format":"int64"},"details":{"type":"array","items":{"$ref":"#/components/schemas/AnsibleEvaluationDetail"},"description":"The detailed results of te evaluation"},"entity":{"type":"string","description":"An arbitrary user-supplied string that globally identifies the entity under evaluation"},"entity_metadata":{"type":"string","description":"Additional arbitrary user-supplied metadata about the entity under evaluation"},"id":{"type":"integer","description":"The ID of this evaluation","format":"int64"},"input":{"description":"The input provided at evaluation time"},"org_id":{"type":"string","description":"The Harness organisation in which the evaluation was performed"},"project_id":{"type":"string","description":"The Harness project in which the evaluation was performed"},"status":{"type":"string","description":"The overall status of the evaluation indicating whether it passed","enum":["error","warning","pass"]},"type":{"type":"string","description":"The types of the entity under evaluation"}},"description":"The result of a single evaluation","required":["id","status","entity","entity_metadata","type","action","account_id","org_id","project_id","created","input","details"]},"AnsibleEvaluationDetail":{"type":"object","properties":{"account_id":{"type":"string","description":"Harness account ID associated with this policy set","default":""},"action":{"type":"string","description":"Action that triggers the policy set","minLength":1},"created":{"type":"integer","description":"Time the policy set was created","format":"int64"},"description":{"type":"string","description":"Description of the policy set"},"details":{"type":"array","items":{"$ref":"#/components/schemas/AnsibleEvaluatedPolicy"}},"enabled":{"type":"boolean","description":"Only enabled policy sets are evaluated when evaluating by type/action"},"identifier":{"type":"string","description":"Identifier of the policy set","minLength":1},"name":{"type":"string","description":"Name of the policy set","minLength":1},"org_id":{"type":"string","description":"Harness organization ID associated with this policy set","default":""},"project_id":{"type":"string","description":"Harness project ID associated with this policy set","default":""},"status":{"type":"string","description":"The overall status for this policy set indicating whether it passed","enum":["error","warning","pass"]},"type":{"type":"string","description":"Type of input suitable for the policy set","minLength":1},"updated":{"type":"integer","description":"Time the policy set was last updated","format":"int64"}},"required":["status","details","identifier","name","action","type","enabled","created","updated","account_id","org_id","project_id","entity_selector"]},"AnsibleEvaluatedPolicy":{"type":"object","properties":{"deny_messages":{"type":"array","items":{"type":"string"},"description":"The values of any `deny` rego rules as returned by the rego engine"},"output":{"description":"The output returned by the rego engine when this policy was evaluated"},"policy":{"$ref":"#/components/schemas/Policy"},"rego_error":{"type":"string","description":"Any errors returned by the rego engine when this policy was evaluated"},"status":{"type":"string","description":"The overall status for this individual policy indicating whether it passed","enum":["error","warning","pass"]}},"required":["status","policy","output","deny_messages","rego_error"]},"Policy":{"type":"object","properties":{"account_id":{"type":"string","description":"Harness account ID associated with this policy","default":""},"created":{"type":"integer","description":"Time the policy was created","format":"int64"},"identifier":{"type":"string","description":"identifier of the policy","minLength":1},"name":{"type":"string","description":"Name of the policy","minLength":1},"org_id":{"type":"string","description":"Harness organization ID associated with this policy","default":""},"project_id":{"type":"string","description":"Harness project ID associated with this policy","default":""},"rego":{"type":"string","description":"Rego that defines the policy","minLength":1},"updated":{"type":"integer","description":"Time the policy was last updated","format":"int64"}},"required":["identifier","name","rego","created","updated","account_id","org_id","project_id"]},"AnsiblePolicyViolationError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"policy_evaluation":{"$ref":"#/components/schemas/AnsibleEvaluation"},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]},"AnsibleError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Show Ansible inventory

> Show an individual inventory.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"ansible","description":"Ansible Service handles the API for ansible entities."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/ansible/inventory/{identifier}":{"get":{"tags":["ansible"],"summary":"Show Ansible inventory","description":"Show an individual inventory.","operationId":"ansible#show-inventory","parameters":[{"name":"useArrays","in":"query","description":"Use arrays when displaying inventory data","allowEmptyValue":true,"schema":{"type":"boolean","description":"Use arrays when displaying inventory data","default":false}},{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"identifier","in":"path","description":"Inventory identifier","required":true,"schema":{"type":"string","description":"Inventory identifier"}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShowInventoryResponse"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}}}}}},"components":{"schemas":{"ShowInventoryResponse":{"type":"object","properties":{"account":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128},"created":{"type":"integer","description":"Timestamp when the resource was created.","format":"int64"},"data":{"type":"string","description":"The data representing the inventory"},"description":{"type":"string","description":"Description documents the inventory purpose and usage","maxLength":1024},"identifier":{"type":"string","description":"The unique identifier for this inventory"},"name":{"type":"string","description":"Name is the human readable name","minLength":1,"maxLength":1024},"org":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128},"project":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128},"tags":{"type":"array","items":{"type":"string"},"description":"Tags associated with the inventory"},"type":{"type":"string","description":"Type indicates what kind of inventory this is","enum":["manual","dynamic","plugin","remote"]},"updated":{"type":"integer","description":"Timestamp when the resource was last updated.","format":"int64"}},"required":["created","updated","account","org","project","identifier","name","type","data"]},"AnsibleError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Update Ansible inventory

> Update an existing inventory.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"ansible","description":"Ansible Service handles the API for ansible entities."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/ansible/inventory/{identifier}":{"put":{"tags":["ansible"],"summary":"Update Ansible inventory","description":"Update an existing inventory.","operationId":"ansible#update-inventory","parameters":[{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"identifier","in":"path","description":"The unique identifier for this inventory","required":true,"schema":{"type":"string","description":"The unique identifier for this inventory"}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateInventoryRequest"}}}},"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateInventoryResponse"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsiblePolicyViolationError"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}}}}}},"components":{"schemas":{"UpdateInventoryRequest":{"type":"object","properties":{"data":{"type":"string","description":"The data representing the inventory"},"description":{"type":"string","description":"Description documents the inventory purpose and usage","maxLength":1024},"name":{"type":"string","description":"Name is the human readable name","minLength":1,"maxLength":1024},"tags":{"type":"array","items":{"type":"string"},"description":"Tags associated with the inventory"}},"required":["name","type","data"]},"UpdateInventoryResponse":{"type":"object","properties":{"policy_evaluation":{"$ref":"#/components/schemas/AnsibleEvaluation"}}},"AnsibleEvaluation":{"type":"object","properties":{"account_id":{"type":"string","description":"The Harness account in which the evaluation was performed"},"action":{"type":"string","description":"The action that triggered evaluation"},"created":{"type":"integer","description":"The time at which the evaluation was performed in Unix time milliseconds","format":"int64"},"details":{"type":"array","items":{"$ref":"#/components/schemas/AnsibleEvaluationDetail"},"description":"The detailed results of te evaluation"},"entity":{"type":"string","description":"An arbitrary user-supplied string that globally identifies the entity under evaluation"},"entity_metadata":{"type":"string","description":"Additional arbitrary user-supplied metadata about the entity under evaluation"},"id":{"type":"integer","description":"The ID of this evaluation","format":"int64"},"input":{"description":"The input provided at evaluation time"},"org_id":{"type":"string","description":"The Harness organisation in which the evaluation was performed"},"project_id":{"type":"string","description":"The Harness project in which the evaluation was performed"},"status":{"type":"string","description":"The overall status of the evaluation indicating whether it passed","enum":["error","warning","pass"]},"type":{"type":"string","description":"The types of the entity under evaluation"}},"description":"The result of a single evaluation","required":["id","status","entity","entity_metadata","type","action","account_id","org_id","project_id","created","input","details"]},"AnsibleEvaluationDetail":{"type":"object","properties":{"account_id":{"type":"string","description":"Harness account ID associated with this policy set","default":""},"action":{"type":"string","description":"Action that triggers the policy set","minLength":1},"created":{"type":"integer","description":"Time the policy set was created","format":"int64"},"description":{"type":"string","description":"Description of the policy set"},"details":{"type":"array","items":{"$ref":"#/components/schemas/AnsibleEvaluatedPolicy"}},"enabled":{"type":"boolean","description":"Only enabled policy sets are evaluated when evaluating by type/action"},"identifier":{"type":"string","description":"Identifier of the policy set","minLength":1},"name":{"type":"string","description":"Name of the policy set","minLength":1},"org_id":{"type":"string","description":"Harness organization ID associated with this policy set","default":""},"project_id":{"type":"string","description":"Harness project ID associated with this policy set","default":""},"status":{"type":"string","description":"The overall status for this policy set indicating whether it passed","enum":["error","warning","pass"]},"type":{"type":"string","description":"Type of input suitable for the policy set","minLength":1},"updated":{"type":"integer","description":"Time the policy set was last updated","format":"int64"}},"required":["status","details","identifier","name","action","type","enabled","created","updated","account_id","org_id","project_id","entity_selector"]},"AnsibleEvaluatedPolicy":{"type":"object","properties":{"deny_messages":{"type":"array","items":{"type":"string"},"description":"The values of any `deny` rego rules as returned by the rego engine"},"output":{"description":"The output returned by the rego engine when this policy was evaluated"},"policy":{"$ref":"#/components/schemas/Policy"},"rego_error":{"type":"string","description":"Any errors returned by the rego engine when this policy was evaluated"},"status":{"type":"string","description":"The overall status for this individual policy indicating whether it passed","enum":["error","warning","pass"]}},"required":["status","policy","output","deny_messages","rego_error"]},"Policy":{"type":"object","properties":{"account_id":{"type":"string","description":"Harness account ID associated with this policy","default":""},"created":{"type":"integer","description":"Time the policy was created","format":"int64"},"identifier":{"type":"string","description":"identifier of the policy","minLength":1},"name":{"type":"string","description":"Name of the policy","minLength":1},"org_id":{"type":"string","description":"Harness organization ID associated with this policy","default":""},"project_id":{"type":"string","description":"Harness project ID associated with this policy","default":""},"rego":{"type":"string","description":"Rego that defines the policy","minLength":1},"updated":{"type":"integer","description":"Time the policy was last updated","format":"int64"}},"required":["identifier","name","rego","created","updated","account_id","org_id","project_id"]},"AnsiblePolicyViolationError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"policy_evaluation":{"$ref":"#/components/schemas/AnsibleEvaluation"},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]},"AnsibleError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Delete Ansible inventory

> Delete an existing inventory.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"ansible","description":"Ansible Service handles the API for ansible entities."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/ansible/inventory/{identifier}":{"delete":{"tags":["ansible"],"summary":"Delete Ansible inventory","description":"Delete an existing inventory.","operationId":"ansible#delete-inventory","parameters":[{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"identifier","in":"path","description":"The unique identifier for this inventory","required":true,"schema":{"type":"string","description":"The unique identifier for this inventory"}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"responses":{"200":{"description":"OK response."},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}}}}}},"components":{"schemas":{"AnsibleError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Show Ansible inventory as ansible compatible YAML

> Show an individual inventory as YAML.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"ansible","description":"Ansible Service handles the API for ansible entities."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/ansible/inventory/{identifier}/ansible":{"get":{"tags":["ansible"],"summary":"Show Ansible inventory as ansible compatible YAML","description":"Show an individual inventory as YAML.","operationId":"ansible#show-inventory-as-ansible","parameters":[{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"identifier","in":"path","description":"The unique identifier for this inventory","required":true,"schema":{"type":"string","description":"The unique identifier for this inventory"}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"responses":{"200":{"description":"OK response.","content":{"application/yaml":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}}}}}},"components":{"schemas":{"AnsibleError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Show Ansible inventory groups

> Show an individual inventory's groups.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"ansible","description":"Ansible Service handles the API for ansible entities."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/ansible/inventory/{identifier}/groups":{"get":{"tags":["ansible"],"summary":"Show Ansible inventory groups","description":"Show an individual inventory's groups.","operationId":"ansible#show-inventory-groups","parameters":[{"name":"limit","in":"query","description":"Limit is the number of records to return for a page.","allowEmptyValue":true,"schema":{"type":"integer","description":"Limit is the number of records to return for a page.","default":30,"format":"int64","minimum":1,"maximum":1000}},{"name":"page","in":"query","description":"Page is the page number to return relative to the page 'limit'.","allowEmptyValue":true,"schema":{"type":"integer","description":"Page is the page number to return relative to the page 'limit'.","default":1,"format":"int64","minimum":1}},{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"identifier","in":"path","description":"Inventory identifier","required":true,"schema":{"type":"string","description":"Inventory identifier"}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"responses":{"200":{"description":"OK response.","headers":{},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShowInventoryGroupsResponse"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}}}}}},"components":{"schemas":{"ShowInventoryGroupsResponse":{"type":"object","properties":{"groups":{"type":"array","items":{"type":"string"}}}},"AnsibleError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Show Ansible inventory hosts

> Show an individual inventory hosts.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"ansible","description":"Ansible Service handles the API for ansible entities."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/ansible/inventory/{identifier}/hosts":{"get":{"tags":["ansible"],"summary":"Show Ansible inventory hosts","description":"Show an individual inventory hosts.","operationId":"ansible#show-inventory-hosts","parameters":[{"name":"limit","in":"query","description":"Limit is the number of records to return for a page.","allowEmptyValue":true,"schema":{"type":"integer","description":"Limit is the number of records to return for a page.","default":30,"format":"int64","minimum":1,"maximum":1000}},{"name":"page","in":"query","description":"Page is the page number to return relative to the page 'limit'.","allowEmptyValue":true,"schema":{"type":"integer","description":"Page is the page number to return relative to the page 'limit'.","default":1,"format":"int64","minimum":1}},{"name":"group","in":"query","description":"Filter results by group","allowEmptyValue":true,"schema":{"type":"string","description":"Filter results by group","default":""}},{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"identifier","in":"path","description":"Inventory identifier","required":true,"schema":{"type":"string","description":"Inventory identifier"}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"responses":{"200":{"description":"OK response.","headers":{},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShowInventoryHostsResponse"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}}}}}},"components":{"schemas":{"ShowInventoryHostsResponse":{"type":"object","properties":{"hosts":{"$ref":"#/components/schemas/InventoryHostResourceCollection"}}},"InventoryHostResourceCollection":{"type":"array","items":{"$ref":"#/components/schemas/HarnessIacmInventoryHost"}},"HarnessIacmInventoryHost":{"type":"object","properties":{"created":{"type":"integer","format":"int64"},"groups":{"type":"array","items":{"type":"string"},"description":"Groups is the list of groups the host belongs to."},"host_address":{"type":"string","description":"Host address is the address of the host."},"updated":{"type":"integer","format":"int64"},"vars":{"type":"array","items":{"$ref":"#/components/schemas/AnsibleVariable"},"description":"Vars is the variables associated with the host."}},"required":["host_address"]},"AnsibleVariable":{"type":"object","properties":{"file_name":{"type":"string","description":"Filename is where to store the value of the secret."},"key":{"type":"string","description":"Key is the identifier for the secret.","pattern":"^[a-zA-Z0-9_]+$","minLength":1,"maxLength":128},"uuid":{"type":"string","description":"UUID is the unique identifier for the secret."},"value":{"type":"string","description":"Value is the value of the secret."},"value_type":{"type":"string","description":"Type indecates the value type of the secret. In the case of secret this is a\nreference to an item in the secret store"}},"description":"AnsibleVariable is the representation for a single variable associated with ansible.","required":["key","value","value_type"]},"AnsibleError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Create Ansible inventory host

> Create a new inventory host.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"ansible","description":"Ansible Service handles the API for ansible entities."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/ansible/inventory/{identifier}/hosts":{"post":{"tags":["ansible"],"summary":"Create Ansible inventory host","description":"Create a new inventory host.","operationId":"ansible#create-inventory-host","parameters":[{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"identifier","in":"path","description":"The unique identifier for this inventory","required":true,"schema":{"type":"string","description":"The unique identifier for this inventory"}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateInventoryHostRequest"}}}},"responses":{"201":{"description":"Created response."},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}}}}}},"components":{"schemas":{"CreateInventoryHostRequest":{"type":"object","properties":{"groups":{"type":"array","items":{"type":"string"},"description":"Groups is the list of groups the host belongs to."},"host_address":{"type":"string","description":"Host address is the address of the host."},"vars":{"type":"array","items":{"$ref":"#/components/schemas/AnsibleVariable"},"description":"Vars is the variables associated with the host."}},"required":["host_address"]},"AnsibleVariable":{"type":"object","properties":{"file_name":{"type":"string","description":"Filename is where to store the value of the secret."},"key":{"type":"string","description":"Key is the identifier for the secret.","pattern":"^[a-zA-Z0-9_]+$","minLength":1,"maxLength":128},"uuid":{"type":"string","description":"UUID is the unique identifier for the secret."},"value":{"type":"string","description":"Value is the value of the secret."},"value_type":{"type":"string","description":"Type indecates the value type of the secret. In the case of secret this is a\nreference to an item in the secret store"}},"description":"AnsibleVariable is the representation for a single variable associated with ansible.","required":["key","value","value_type"]},"AnsibleError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Replace Ansible static inventory data from YAML/INI

> Replace the data of an existing static (manual) Ansible inventory by parsing YAML or INI content. Preserves secret UUIDs for keys carried over.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"ansible","description":"Ansible Service handles the API for ansible entities."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/ansible/inventory/{identifier}/import":{"put":{"tags":["ansible"],"summary":"Replace Ansible static inventory data from YAML/INI","description":"Replace the data of an existing static (manual) Ansible inventory by parsing YAML or INI content. Preserves secret UUIDs for keys carried over.","operationId":"ansible#replace-inventory-from-import","parameters":[{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"identifier","in":"path","description":"The identifier of the inventory to replace.","required":true,"schema":{"type":"string","description":"The identifier of the inventory to replace.","minLength":1,"maxLength":128}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReplaceInventoryFromImportRequest2"}}}},"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReplaceInventoryFromImportResponse"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}}}}}},"components":{"schemas":{"ReplaceInventoryFromImportRequest2":{"type":"object","properties":{"content":{"type":"string","description":"Raw inventory content.","minLength":1,"maxLength":1048576},"format":{"type":"string","description":"Source format of the content.","enum":["yaml","ini"]}},"required":["format","content"]},"ReplaceInventoryFromImportResponse":{"type":"object","properties":{"warnings":{"type":"array","items":{"type":"string"},"description":"Warnings surfaced during replace."}},"required":["warnings"]},"AnsibleError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Update Ansible plugin inventory

> Update an existing plugin inventory configuration.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"ansible","description":"Ansible Service handles the API for ansible entities."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/ansible/inventory/{identifier}/plugin":{"put":{"tags":["ansible"],"summary":"Update Ansible plugin inventory","description":"Update an existing plugin inventory configuration.","operationId":"ansible#update-inventory-plugin","parameters":[{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"identifier","in":"path","description":"Inventory identifier","required":true,"schema":{"type":"string","description":"Inventory identifier"}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateInventoryPluginRequest"}}}},"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateInventoryPluginResponse"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsiblePolicyViolationError"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}}}}}},"components":{"schemas":{"UpdateInventoryPluginRequest":{"type":"object","properties":{"plugin_options":{"$ref":"#/components/schemas/PluginOptions"}},"required":["plugin_options"]},"PluginOptions":{"type":"object","properties":{"inline_yaml":{"type":"string","description":"Inline plugin inventory YAML content."},"provider_connector_identifier":{"type":"string","description":"Provider connector identifier to use for plugin inventory execution."},"provider_connector_type":{"type":"string","description":"Provider connector type to use.","enum":["workspace","aws","gcp","azure","vault"]},"repository":{"type":"string","description":"Git repository name/identifier (required when source_type=git)."},"repository_branch":{"type":"string","description":"Git branch (optional; used when source_type=git)."},"repository_commit":{"type":"string","description":"Git commit/tag (optional; used when source_type=git)."},"repository_connector":{"type":"string","description":"Harness connector reference used to fetch repository content (required when source_type=git)."},"repository_path":{"type":"string","description":"Path within the repo to the plugin inventory YAML (required when source_type=git)."},"source_type":{"type":"string","description":"Source type for plugin inventory (git or inline).","enum":["git","inline"]}},"description":"plugin_options defines how plugin inventory content is sourced (inline or git) plus provider connector info."},"UpdateInventoryPluginResponse":{"type":"object","properties":{"policy_evaluation":{"$ref":"#/components/schemas/AnsibleEvaluation"}}},"AnsibleEvaluation":{"type":"object","properties":{"account_id":{"type":"string","description":"The Harness account in which the evaluation was performed"},"action":{"type":"string","description":"The action that triggered evaluation"},"created":{"type":"integer","description":"The time at which the evaluation was performed in Unix time milliseconds","format":"int64"},"details":{"type":"array","items":{"$ref":"#/components/schemas/AnsibleEvaluationDetail"},"description":"The detailed results of te evaluation"},"entity":{"type":"string","description":"An arbitrary user-supplied string that globally identifies the entity under evaluation"},"entity_metadata":{"type":"string","description":"Additional arbitrary user-supplied metadata about the entity under evaluation"},"id":{"type":"integer","description":"The ID of this evaluation","format":"int64"},"input":{"description":"The input provided at evaluation time"},"org_id":{"type":"string","description":"The Harness organisation in which the evaluation was performed"},"project_id":{"type":"string","description":"The Harness project in which the evaluation was performed"},"status":{"type":"string","description":"The overall status of the evaluation indicating whether it passed","enum":["error","warning","pass"]},"type":{"type":"string","description":"The types of the entity under evaluation"}},"description":"The result of a single evaluation","required":["id","status","entity","entity_metadata","type","action","account_id","org_id","project_id","created","input","details"]},"AnsibleEvaluationDetail":{"type":"object","properties":{"account_id":{"type":"string","description":"Harness account ID associated with this policy set","default":""},"action":{"type":"string","description":"Action that triggers the policy set","minLength":1},"created":{"type":"integer","description":"Time the policy set was created","format":"int64"},"description":{"type":"string","description":"Description of the policy set"},"details":{"type":"array","items":{"$ref":"#/components/schemas/AnsibleEvaluatedPolicy"}},"enabled":{"type":"boolean","description":"Only enabled policy sets are evaluated when evaluating by type/action"},"identifier":{"type":"string","description":"Identifier of the policy set","minLength":1},"name":{"type":"string","description":"Name of the policy set","minLength":1},"org_id":{"type":"string","description":"Harness organization ID associated with this policy set","default":""},"project_id":{"type":"string","description":"Harness project ID associated with this policy set","default":""},"status":{"type":"string","description":"The overall status for this policy set indicating whether it passed","enum":["error","warning","pass"]},"type":{"type":"string","description":"Type of input suitable for the policy set","minLength":1},"updated":{"type":"integer","description":"Time the policy set was last updated","format":"int64"}},"required":["status","details","identifier","name","action","type","enabled","created","updated","account_id","org_id","project_id","entity_selector"]},"AnsibleEvaluatedPolicy":{"type":"object","properties":{"deny_messages":{"type":"array","items":{"type":"string"},"description":"The values of any `deny` rego rules as returned by the rego engine"},"output":{"description":"The output returned by the rego engine when this policy was evaluated"},"policy":{"$ref":"#/components/schemas/Policy"},"rego_error":{"type":"string","description":"Any errors returned by the rego engine when this policy was evaluated"},"status":{"type":"string","description":"The overall status for this individual policy indicating whether it passed","enum":["error","warning","pass"]}},"required":["status","policy","output","deny_messages","rego_error"]},"Policy":{"type":"object","properties":{"account_id":{"type":"string","description":"Harness account ID associated with this policy","default":""},"created":{"type":"integer","description":"Time the policy was created","format":"int64"},"identifier":{"type":"string","description":"identifier of the policy","minLength":1},"name":{"type":"string","description":"Name of the policy","minLength":1},"org_id":{"type":"string","description":"Harness organization ID associated with this policy","default":""},"project_id":{"type":"string","description":"Harness project ID associated with this policy","default":""},"rego":{"type":"string","description":"Rego that defines the policy","minLength":1},"updated":{"type":"integer","description":"Time the policy was last updated","format":"int64"}},"required":["identifier","name","rego","created","updated","account_id","org_id","project_id"]},"AnsiblePolicyViolationError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"policy_evaluation":{"$ref":"#/components/schemas/AnsibleEvaluation"},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]},"AnsibleError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Update Ansible remote inventory git source

> Update the git source of an existing remote inventory.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"ansible","description":"Ansible Service handles the API for ansible entities."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/ansible/inventory/{identifier}/remote":{"put":{"tags":["ansible"],"summary":"Update Ansible remote inventory git source","description":"Update the git source of an existing remote inventory.","operationId":"ansible#update-inventory-remote","parameters":[{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"identifier","in":"path","description":"Inventory identifier","required":true,"schema":{"type":"string","description":"Inventory identifier"}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateInventoryRemoteRequest"}}}},"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateInventoryRemoteResponse"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsiblePolicyViolationError"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}}}}}},"components":{"schemas":{"UpdateInventoryRemoteRequest":{"type":"object","properties":{"remote_source":{"$ref":"#/components/schemas/RemoteSource"}},"required":["remote_source"]},"RemoteSource":{"type":"object","properties":{"repository":{"type":"string","description":"Git repository name/identifier."},"repository_branch":{"type":"string","description":"Git branch (optional; mutually exclusive with repository_commit)."},"repository_commit":{"type":"string","description":"Git commit or tag (optional; mutually exclusive with repository_branch)."},"repository_connector":{"type":"string","description":"Harness connector reference used to fetch repository content. Omit for Harness Code repositories."},"repository_path":{"type":"string","description":"Path within the repo to the inventory file or directory."}},"description":"remote_source is the git location a remote inventory's hosts, groups and group_vars are read from.","required":["repository","repository_path"]},"UpdateInventoryRemoteResponse":{"type":"object","properties":{"policy_evaluation":{"$ref":"#/components/schemas/AnsibleEvaluation"}}},"AnsibleEvaluation":{"type":"object","properties":{"account_id":{"type":"string","description":"The Harness account in which the evaluation was performed"},"action":{"type":"string","description":"The action that triggered evaluation"},"created":{"type":"integer","description":"The time at which the evaluation was performed in Unix time milliseconds","format":"int64"},"details":{"type":"array","items":{"$ref":"#/components/schemas/AnsibleEvaluationDetail"},"description":"The detailed results of te evaluation"},"entity":{"type":"string","description":"An arbitrary user-supplied string that globally identifies the entity under evaluation"},"entity_metadata":{"type":"string","description":"Additional arbitrary user-supplied metadata about the entity under evaluation"},"id":{"type":"integer","description":"The ID of this evaluation","format":"int64"},"input":{"description":"The input provided at evaluation time"},"org_id":{"type":"string","description":"The Harness organisation in which the evaluation was performed"},"project_id":{"type":"string","description":"The Harness project in which the evaluation was performed"},"status":{"type":"string","description":"The overall status of the evaluation indicating whether it passed","enum":["error","warning","pass"]},"type":{"type":"string","description":"The types of the entity under evaluation"}},"description":"The result of a single evaluation","required":["id","status","entity","entity_metadata","type","action","account_id","org_id","project_id","created","input","details"]},"AnsibleEvaluationDetail":{"type":"object","properties":{"account_id":{"type":"string","description":"Harness account ID associated with this policy set","default":""},"action":{"type":"string","description":"Action that triggers the policy set","minLength":1},"created":{"type":"integer","description":"Time the policy set was created","format":"int64"},"description":{"type":"string","description":"Description of the policy set"},"details":{"type":"array","items":{"$ref":"#/components/schemas/AnsibleEvaluatedPolicy"}},"enabled":{"type":"boolean","description":"Only enabled policy sets are evaluated when evaluating by type/action"},"identifier":{"type":"string","description":"Identifier of the policy set","minLength":1},"name":{"type":"string","description":"Name of the policy set","minLength":1},"org_id":{"type":"string","description":"Harness organization ID associated with this policy set","default":""},"project_id":{"type":"string","description":"Harness project ID associated with this policy set","default":""},"status":{"type":"string","description":"The overall status for this policy set indicating whether it passed","enum":["error","warning","pass"]},"type":{"type":"string","description":"Type of input suitable for the policy set","minLength":1},"updated":{"type":"integer","description":"Time the policy set was last updated","format":"int64"}},"required":["status","details","identifier","name","action","type","enabled","created","updated","account_id","org_id","project_id","entity_selector"]},"AnsibleEvaluatedPolicy":{"type":"object","properties":{"deny_messages":{"type":"array","items":{"type":"string"},"description":"The values of any `deny` rego rules as returned by the rego engine"},"output":{"description":"The output returned by the rego engine when this policy was evaluated"},"policy":{"$ref":"#/components/schemas/Policy"},"rego_error":{"type":"string","description":"Any errors returned by the rego engine when this policy was evaluated"},"status":{"type":"string","description":"The overall status for this individual policy indicating whether it passed","enum":["error","warning","pass"]}},"required":["status","policy","output","deny_messages","rego_error"]},"Policy":{"type":"object","properties":{"account_id":{"type":"string","description":"Harness account ID associated with this policy","default":""},"created":{"type":"integer","description":"Time the policy was created","format":"int64"},"identifier":{"type":"string","description":"identifier of the policy","minLength":1},"name":{"type":"string","description":"Name of the policy","minLength":1},"org_id":{"type":"string","description":"Harness organization ID associated with this policy","default":""},"project_id":{"type":"string","description":"Harness project ID associated with this policy","default":""},"rego":{"type":"string","description":"Rego that defines the policy","minLength":1},"updated":{"type":"integer","description":"Time the policy was last updated","format":"int64"}},"required":["identifier","name","rego","created","updated","account_id","org_id","project_id"]},"AnsiblePolicyViolationError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"policy_evaluation":{"$ref":"#/components/schemas/AnsibleEvaluation"},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]},"AnsibleError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Show Ansible inventory vars

> Show an individual inventory vars.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"ansible","description":"Ansible Service handles the API for ansible entities."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/ansible/inventory/{identifier}/vars":{"get":{"tags":["ansible"],"summary":"Show Ansible inventory vars","description":"Show an individual inventory vars.","operationId":"ansible#show-inventory-vars","parameters":[{"name":"limit","in":"query","description":"Limit is the number of records to return for a page.","allowEmptyValue":true,"schema":{"type":"integer","description":"Limit is the number of records to return for a page.","default":30,"format":"int64","minimum":1,"maximum":1000}},{"name":"page","in":"query","description":"Page is the page number to return relative to the page 'limit'.","allowEmptyValue":true,"schema":{"type":"integer","description":"Page is the page number to return relative to the page 'limit'.","default":1,"format":"int64","minimum":1}},{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"identifier","in":"path","description":"Inventory identifier","required":true,"schema":{"type":"string","description":"Inventory identifier"}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"responses":{"200":{"description":"OK response.","headers":{},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShowInventoryVarsResponse"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}}}}}},"components":{"schemas":{"ShowInventoryVarsResponse":{"type":"object","properties":{"env_vars":{"$ref":"#/components/schemas/InventoryVarResourceCollection"},"vars":{"$ref":"#/components/schemas/InventoryVarResourceCollection"}}},"InventoryVarResourceCollection":{"type":"array","items":{"$ref":"#/components/schemas/HarnessIacmInventoryVar"}},"HarnessIacmInventoryVar":{"type":"object","properties":{"created":{"type":"string","description":"Created is the timestamp of the creation."},"file_name":{"type":"string","description":"Filename is where to store the value of the secret."},"key":{"type":"string","description":"Key is the identifier for the secret.","pattern":"^[a-zA-Z0-9_]+$","minLength":1,"maxLength":128},"updated":{"type":"string","description":"Updated is the timestamp of the last update."},"uuid":{"type":"string","description":"UUID is the unique identifier for the secret."},"value":{"type":"string","description":"Value is the value of the secret."},"value_type":{"type":"string","description":"Type indecates the value type of the secret. In the case of secret this is a\nreference to an item in the secret store"},"var_type":{"type":"string","description":"The type of variable"}},"required":["key","value","value_type"]},"AnsibleError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Create Ansible inventory variables

> Create new inventory variables.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"ansible","description":"Ansible Service handles the API for ansible entities."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/ansible/inventory/{identifier}/vars":{"post":{"tags":["ansible"],"summary":"Create Ansible inventory variables","description":"Create new inventory variables.","operationId":"ansible#create-inventory-vars","parameters":[{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"identifier","in":"path","description":"The unique identifier for this inventory","required":true,"schema":{"type":"string","description":"The unique identifier for this inventory"}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateInventoryVarsRequest"}}}},"responses":{"201":{"description":"Created response."},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}}}}}},"components":{"schemas":{"CreateInventoryVarsRequest":{"type":"object","properties":{"env_vars":{"type":"array","items":{"$ref":"#/components/schemas/HarnessIacmInventoryVarCreate"}},"vars":{"type":"array","items":{"$ref":"#/components/schemas/HarnessIacmInventoryVarCreate"}}},"required":["vars"]},"HarnessIacmInventoryVarCreate":{"type":"object","properties":{"file_name":{"type":"string","description":"Filename is where to store the value of the secret."},"key":{"type":"string","description":"Key is the identifier for the secret.","pattern":"^[a-zA-Z0-9_]+$","minLength":1,"maxLength":128},"uuid":{"type":"string","description":"UUID is the unique identifier for the secret."},"value":{"type":"string","description":"Value is the value of the secret."},"value_type":{"type":"string","description":"Type indecates the value type of the secret. In the case of secret this is a\nreference to an item in the secret store"},"var_type":{"type":"string","description":"The type of variable. eg: var, env_var"}},"required":["key","value","value_type"]},"AnsibleError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Update Ansible inventory variables

> Update existing inventory variables.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"ansible","description":"Ansible Service handles the API for ansible entities."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/ansible/inventory/{identifier}/vars":{"put":{"tags":["ansible"],"summary":"Update Ansible inventory variables","description":"Update existing inventory variables.","operationId":"ansible#update-inventory-vars","parameters":[{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"identifier","in":"path","description":"The unique identifier for this inventory","required":true,"schema":{"type":"string","description":"The unique identifier for this inventory"}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateInventoryVarsRequest"}}}},"responses":{"200":{"description":"OK response."},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}}}}}},"components":{"schemas":{"UpdateInventoryVarsRequest":{"type":"object","properties":{"env_vars":{"type":"array","items":{"$ref":"#/components/schemas/HarnessIacmInventoryVarCreate"}},"vars":{"type":"array","items":{"$ref":"#/components/schemas/HarnessIacmInventoryVarCreate"}}},"required":["vars"]},"HarnessIacmInventoryVarCreate":{"type":"object","properties":{"file_name":{"type":"string","description":"Filename is where to store the value of the secret."},"key":{"type":"string","description":"Key is the identifier for the secret.","pattern":"^[a-zA-Z0-9_]+$","minLength":1,"maxLength":128},"uuid":{"type":"string","description":"UUID is the unique identifier for the secret."},"value":{"type":"string","description":"Value is the value of the secret."},"value_type":{"type":"string","description":"Type indecates the value type of the secret. In the case of secret this is a\nreference to an item in the secret store"},"var_type":{"type":"string","description":"The type of variable. eg: var, env_var"}},"required":["key","value","value_type"]},"AnsibleError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Create Ansible inventory group

> Create a new inventory group.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"ansible","description":"Ansible Service handles the API for ansible entities."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/ansible/inventory/{inventory_identifier}/groups":{"post":{"tags":["ansible"],"summary":"Create Ansible inventory group","description":"Create a new inventory group.","operationId":"ansible#create-inventory-group","parameters":[{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"inventory_identifier","in":"path","description":"The unique identifier for this inventory","required":true,"schema":{"type":"string","description":"The unique identifier for this inventory"}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateInventoryGroupRequest"}}}},"responses":{"201":{"description":"Created response."},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}}}}}},"components":{"schemas":{"CreateInventoryGroupRequest":{"type":"object","properties":{"configuration":{"$ref":"#/components/schemas/DynamicConfig"},"connector_identifier":{"type":"string","description":"Connector identifier is the connector identifier to use."},"connector_type":{"type":"string","description":"Connector Type is the type of connector to use.","enum":["workspace","aws","gcp","azure","vault"]},"dynamic_vars":{"type":"array","items":{"$ref":"#/components/schemas/AnsibleVariable"},"description":"List of dynamic variables that belong to the group"},"hosts":{"type":"array","items":{"type":"string"},"description":"List of host addresses that belong to the group"},"identifier":{"type":"string","description":"The identifier of the group"},"name":{"type":"string","description":"Name is the friendly name of the group."},"vars":{"type":"array","items":{"$ref":"#/components/schemas/AnsibleVariable"},"description":"List of variables that belong to the group"}},"required":["identifier","name"]},"DynamicConfig":{"type":"object","properties":{"host_address_attribute":{"type":"string","description":"Host address is the address of the host."},"resource_type":{"type":"string","description":"Type is the type of resource to select."},"selectors":{"type":"array","items":{"$ref":"#/components/schemas/ResourcesSelectorConditions"}}}},"ResourcesSelectorConditions":{"type":"object","properties":{"attribute":{"type":"string","description":"Attribute is the attribute to select on."},"operator":{"type":"string","description":"Operator is the operator to use for the selector.","enum":["equals","not_equals","contains","not_contains","starts_with","ends_with"]},"value":{"type":"string","description":"Value is the value to check."}},"required":["attribute","operator","value"]},"AnsibleVariable":{"type":"object","properties":{"file_name":{"type":"string","description":"Filename is where to store the value of the secret."},"key":{"type":"string","description":"Key is the identifier for the secret.","pattern":"^[a-zA-Z0-9_]+$","minLength":1,"maxLength":128},"uuid":{"type":"string","description":"UUID is the unique identifier for the secret."},"value":{"type":"string","description":"Value is the value of the secret."},"value_type":{"type":"string","description":"Type indecates the value type of the secret. In the case of secret this is a\nreference to an item in the secret store"}},"description":"AnsibleVariable is the representation for a single variable associated with ansible.","required":["key","value","value_type"]},"AnsibleError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Update Ansible inventory group

> Update an existing inventory group.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"ansible","description":"Ansible Service handles the API for ansible entities."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/ansible/inventory/{inventory_identifier}/groups/{identifier}":{"put":{"tags":["ansible"],"summary":"Update Ansible inventory group","description":"Update an existing inventory group.","operationId":"ansible#update-inventory-group","parameters":[{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"inventory_identifier","in":"path","description":"The unique identifier for this inventory","required":true,"schema":{"type":"string","description":"The unique identifier for this inventory"}},{"name":"identifier","in":"path","description":"The identifier of the group","required":true,"schema":{"type":"string","description":"The identifier of the group"}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateInventoryGroupRequest"}}}},"responses":{"200":{"description":"OK response."},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}}}}}},"components":{"schemas":{"UpdateInventoryGroupRequest":{"type":"object","properties":{"configuration":{"$ref":"#/components/schemas/DynamicConfig"},"connector_identifier":{"type":"string","description":"Connector identifier is the connector identifier to use."},"connector_type":{"type":"string","description":"Connector Type is the type of connector to use.","enum":["workspace","aws","gcp","azure","vault"]},"dynamic_vars":{"type":"array","items":{"$ref":"#/components/schemas/AnsibleVariable"},"description":"List of dynamic variables that belong to the group"},"hosts":{"type":"array","items":{"type":"string"},"description":"List of host addresses that belong to the group"},"name":{"type":"string","description":"Name is the friendly name of the group."},"vars":{"type":"array","items":{"$ref":"#/components/schemas/AnsibleVariable"},"description":"List of variables that belong to the group"}},"required":["name"]},"DynamicConfig":{"type":"object","properties":{"host_address_attribute":{"type":"string","description":"Host address is the address of the host."},"resource_type":{"type":"string","description":"Type is the type of resource to select."},"selectors":{"type":"array","items":{"$ref":"#/components/schemas/ResourcesSelectorConditions"}}}},"ResourcesSelectorConditions":{"type":"object","properties":{"attribute":{"type":"string","description":"Attribute is the attribute to select on."},"operator":{"type":"string","description":"Operator is the operator to use for the selector.","enum":["equals","not_equals","contains","not_contains","starts_with","ends_with"]},"value":{"type":"string","description":"Value is the value to check."}},"required":["attribute","operator","value"]},"AnsibleVariable":{"type":"object","properties":{"file_name":{"type":"string","description":"Filename is where to store the value of the secret."},"key":{"type":"string","description":"Key is the identifier for the secret.","pattern":"^[a-zA-Z0-9_]+$","minLength":1,"maxLength":128},"uuid":{"type":"string","description":"UUID is the unique identifier for the secret."},"value":{"type":"string","description":"Value is the value of the secret."},"value_type":{"type":"string","description":"Type indecates the value type of the secret. In the case of secret this is a\nreference to an item in the secret store"}},"description":"AnsibleVariable is the representation for a single variable associated with ansible.","required":["key","value","value_type"]},"AnsibleError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Delete Ansible inventory group

> Delete an existing inventory group.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"ansible","description":"Ansible Service handles the API for ansible entities."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/ansible/inventory/{inventory_identifier}/groups/{identifier}":{"delete":{"tags":["ansible"],"summary":"Delete Ansible inventory group","description":"Delete an existing inventory group.","operationId":"ansible#delete-inventory-group","parameters":[{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"inventory_identifier","in":"path","description":"The unique identifier for this inventory","required":true,"schema":{"type":"string","description":"The unique identifier for this inventory"}},{"name":"identifier","in":"path","description":"The identifier of the group","required":true,"schema":{"type":"string","description":"The identifier of the group"}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"responses":{"200":{"description":"OK response."},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}}}}}},"components":{"schemas":{"AnsibleError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Update Ansible inventory host

> Update an existing inventory host.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"ansible","description":"Ansible Service handles the API for ansible entities."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/ansible/inventory/{inventory_identifier}/hosts/{host_address}":{"put":{"tags":["ansible"],"summary":"Update Ansible inventory host","description":"Update an existing inventory host.","operationId":"ansible#update-inventory-host","parameters":[{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"inventory_identifier","in":"path","description":"The unique identifier for this inventory","required":true,"schema":{"type":"string","description":"The unique identifier for this inventory"}},{"name":"host_address","in":"path","description":"Host address is the address of the host.","required":true,"schema":{"type":"string","description":"Host address is the address of the host."}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateInventoryHostRequest"}}}},"responses":{"200":{"description":"OK response."},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}}}}}},"components":{"schemas":{"UpdateInventoryHostRequest":{"type":"object","properties":{"groups":{"type":"array","items":{"type":"string"},"description":"Groups is the list of groups the host belongs to."},"vars":{"type":"array","items":{"$ref":"#/components/schemas/AnsibleVariable"},"description":"Vars is the variables associated with the host."}}},"AnsibleVariable":{"type":"object","properties":{"file_name":{"type":"string","description":"Filename is where to store the value of the secret."},"key":{"type":"string","description":"Key is the identifier for the secret.","pattern":"^[a-zA-Z0-9_]+$","minLength":1,"maxLength":128},"uuid":{"type":"string","description":"UUID is the unique identifier for the secret."},"value":{"type":"string","description":"Value is the value of the secret."},"value_type":{"type":"string","description":"Type indecates the value type of the secret. In the case of secret this is a\nreference to an item in the secret store"}},"description":"AnsibleVariable is the representation for a single variable associated with ansible.","required":["key","value","value_type"]},"AnsibleError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Delete Ansible inventory host

> Delete a inventory host.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"ansible","description":"Ansible Service handles the API for ansible entities."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/ansible/inventory/{inventory_identifier}/hosts/{host_address}":{"delete":{"tags":["ansible"],"summary":"Delete Ansible inventory host","description":"Delete a inventory host.","operationId":"ansible#delete-inventory-host","parameters":[{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"inventory_identifier","in":"path","description":"The unique identifier for this inventory","required":true,"schema":{"type":"string","description":"The unique identifier for this inventory"}},{"name":"host_address","in":"path","description":"Host address is the address of the host.","required":true,"schema":{"type":"string","description":"Host address is the address of the host."}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"responses":{"200":{"description":"OK response."},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}}}}}},"components":{"schemas":{"AnsibleError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Import Ansible static inventory from YAML/INI

> Create a new static (manual) Ansible inventory by parsing YAML or INI content.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"ansible","description":"Ansible Service handles the API for ansible entities."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/ansible/inventory/import":{"post":{"tags":["ansible"],"summary":"Import Ansible static inventory from YAML/INI","description":"Create a new static (manual) Ansible inventory by parsing YAML or INI content.","operationId":"ansible#import-inventory","parameters":[{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImportInventoryRequest2"}}}},"responses":{"201":{"description":"Created response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImportInventoryResponse"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}}}}}},"components":{"schemas":{"ImportInventoryRequest2":{"type":"object","properties":{"content":{"type":"string","description":"Raw inventory content as a string (paste or client-read file).","minLength":1,"maxLength":1048576},"format":{"type":"string","description":"Source format of the content.","enum":["yaml","ini"]},"identifier":{"type":"string","description":"The identifier of the new inventory.","minLength":1,"maxLength":128},"name":{"type":"string","description":"Display name of the new inventory.","minLength":1,"maxLength":128},"tags":{"type":"array","items":{"type":"string"},"description":"Optional tags to apply to the new inventory."}},"required":["identifier","name","format","content"]},"ImportInventoryResponse":{"type":"object","properties":{"inventory":{"$ref":"#/components/schemas/HarnessIacmInventory"},"warnings":{"type":"array","items":{"type":"string"},"description":"Warnings surfaced during import (lossy conversions, flattened groups, etc.)."}},"required":["inventory","warnings"]},"HarnessIacmInventory":{"type":"object","properties":{"account":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128},"created":{"type":"integer","description":"Timestamp when the resource was created.","format":"int64"},"description":{"type":"string","description":"Description documents the inventory purpose and usage","maxLength":1024},"identifier":{"type":"string","description":"The unique identifier for this inventory"},"name":{"type":"string","description":"Name is the human readable name","minLength":1,"maxLength":1024},"org":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128},"project":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128},"tags":{"type":"array","items":{"type":"string"},"description":"Tags associated with the inventory"},"type":{"type":"string","description":"Type indicates what kind of inventory this is","enum":["manual","dynamic","plugin","remote"]},"updated":{"type":"integer","description":"Timestamp when the resource was last updated.","format":"int64"}},"required":["created","updated","account","org","project","identifier","name","type","data"]},"AnsibleError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## List Ansible playbooks

> List all playbooks.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"ansible","description":"Ansible Service handles the API for ansible entities."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/ansible/playbook":{"get":{"tags":["ansible"],"summary":"List Ansible playbooks","description":"List all playbooks.","operationId":"ansible#list-playbooks","parameters":[{"name":"limit","in":"query","description":"Limit is the number of records to return for a page.","allowEmptyValue":true,"schema":{"type":"integer","description":"Limit is the number of records to return for a page.","default":30,"format":"int64","minimum":1,"maximum":1000}},{"name":"page","in":"query","description":"Page is the page number to return relative to the page 'limit'.","allowEmptyValue":true,"schema":{"type":"integer","description":"Page is the page number to return relative to the page 'limit'.","default":1,"format":"int64","minimum":1}},{"name":"searchTerm","in":"query","description":"Filter results by partial name match","allowEmptyValue":true,"schema":{"type":"string","description":"Filter results by partial name match","default":""}},{"name":"sort","in":"query","description":"Sort order for results","allowEmptyValue":true,"schema":{"type":"string","description":"Sort order for results","default":"name,ASC","enum":["name,ASC","name,DESC","updated,ASC","updated,DESC"]}},{"name":"tags","in":"query","description":"Filter results by tags (OR logic, exact match)","allowEmptyValue":true,"schema":{"type":"array","items":{"type":"string"},"description":"Filter results by tags (OR logic, exact match)"}},{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"responses":{"200":{"description":"OK response.","headers":{},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaybookResourceCollection"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}}}}}},"components":{"schemas":{"PlaybookResourceCollection":{"type":"array","items":{"$ref":"#/components/schemas/HarnessIacmPlaybook"}},"HarnessIacmPlaybook":{"type":"object","properties":{"account":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128},"ansible_galaxy":{"type":"boolean","description":"Install Ansible Galaxy dependencies","default":false},"ansible_galaxy_requirements_file":{"type":"string","description":"Path to Ansible Galaxy requirements file"},"created":{"type":"integer","description":"Timestamp when the resource was created.","format":"int64"},"description":{"type":"string","description":"Description documents the playbook purpose and usage","maxLength":1024},"env_vars":{"type":"string","description":"The environment vars in the playbook"},"identifier":{"type":"string","description":"The unique identifier for this playbook"},"name":{"type":"string","description":"Name is the human readable name","minLength":1,"maxLength":1024},"org":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128},"project":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128},"repository":{"type":"string","description":"Repository is the name of the repository to use."},"repository_branch":{"type":"string","description":"Repository Branch in which the playbook should be accessed."},"repository_commit":{"type":"string","description":"Repository Commit/Tag in which the playbook should be accessed."},"repository_connector":{"type":"string","description":"Repository Connector is the reference to the connector to use for this playbook."},"repository_path":{"type":"string","description":"Repository Path is the path in which the playbook resides.","default":""},"tags":{"type":"array","items":{"type":"string"},"description":"Tags associated with the playbook"},"updated":{"type":"integer","description":"Timestamp when the resource was last updated.","format":"int64"},"vars":{"type":"string","description":"The vars in the playbook"}},"required":["created","updated","account","org","project","identifier","name","repository_path"]},"AnsibleError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Create Ansible playbook

> Create a new playbook.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"ansible","description":"Ansible Service handles the API for ansible entities."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/ansible/playbook":{"post":{"tags":["ansible"],"summary":"Create Ansible playbook","description":"Create a new playbook.","operationId":"ansible#create-playbook","parameters":[{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePlaybookRequest"}}}},"responses":{"201":{"description":"Created response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePlaybookResponse"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsiblePolicyViolationError"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}}}}}},"components":{"schemas":{"CreatePlaybookRequest":{"type":"object","properties":{"ansible_galaxy":{"type":"boolean","description":"Install Ansible Galaxy dependencies","default":false},"ansible_galaxy_requirements_file":{"type":"string","description":"Path to Ansible Galaxy requirements file"},"description":{"type":"string","description":"Description documents the playbook purpose and usage","maxLength":1024},"env_vars":{"type":"object","description":"The environment vars in the playbook","additionalProperties":{"$ref":"#/components/schemas/AnsibleVariable"}},"identifier":{"type":"string","description":"The unique identifier for this playbook"},"name":{"type":"string","description":"Name is the human readable name","minLength":1,"maxLength":1024},"repository":{"type":"string","description":"Repository is the name of the repository to use."},"repository_branch":{"type":"string","description":"Repository Branch in which the playbook should be accessed."},"repository_commit":{"type":"string","description":"Repository Commit/Tag in which the playbook should be accessed."},"repository_connector":{"type":"string","description":"Repository Connector is the reference to the connector to use for this playbook."},"repository_path":{"type":"string","description":"Repository Path is the path in which the playbook resides.","default":""},"tags":{"type":"array","items":{"type":"string"},"description":"Tags associated with the playbook"},"vars":{"type":"object","description":"The vars in the playbook","additionalProperties":{"$ref":"#/components/schemas/AnsibleVariable"}}},"required":["identifier","name","repository_path"]},"AnsibleVariable":{"type":"object","properties":{"file_name":{"type":"string","description":"Filename is where to store the value of the secret."},"key":{"type":"string","description":"Key is the identifier for the secret.","pattern":"^[a-zA-Z0-9_]+$","minLength":1,"maxLength":128},"uuid":{"type":"string","description":"UUID is the unique identifier for the secret."},"value":{"type":"string","description":"Value is the value of the secret."},"value_type":{"type":"string","description":"Type indecates the value type of the secret. In the case of secret this is a\nreference to an item in the secret store"}},"description":"AnsibleVariable is the representation for a single variable associated with ansible.","required":["key","value","value_type"]},"CreatePlaybookResponse":{"type":"object","properties":{"account":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128},"ansible_galaxy":{"type":"boolean","description":"Install Ansible Galaxy dependencies","default":false},"ansible_galaxy_requirements_file":{"type":"string","description":"Path to Ansible Galaxy requirements file"},"created":{"type":"integer","description":"Timestamp when the resource was created.","format":"int64"},"description":{"type":"string","description":"Description documents the playbook purpose and usage","maxLength":1024},"env_vars":{"type":"string","description":"The environment vars in the playbook"},"identifier":{"type":"string","description":"The unique identifier for this playbook"},"name":{"type":"string","description":"Name is the human readable name","minLength":1,"maxLength":1024},"org":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128},"policy_evaluation":{"$ref":"#/components/schemas/AnsibleEvaluation"},"project":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128},"repository":{"type":"string","description":"Repository is the name of the repository to use."},"repository_branch":{"type":"string","description":"Repository Branch in which the playbook should be accessed."},"repository_commit":{"type":"string","description":"Repository Commit/Tag in which the playbook should be accessed."},"repository_connector":{"type":"string","description":"Repository Connector is the reference to the connector to use for this playbook."},"repository_path":{"type":"string","description":"Repository Path is the path in which the playbook resides.","default":""},"tags":{"type":"array","items":{"type":"string"},"description":"Tags associated with the playbook"},"updated":{"type":"integer","description":"Timestamp when the resource was last updated.","format":"int64"},"vars":{"type":"string","description":"The vars in the playbook"}},"required":["created","updated","account","org","project","identifier","name","repository_path"]},"AnsibleEvaluation":{"type":"object","properties":{"account_id":{"type":"string","description":"The Harness account in which the evaluation was performed"},"action":{"type":"string","description":"The action that triggered evaluation"},"created":{"type":"integer","description":"The time at which the evaluation was performed in Unix time milliseconds","format":"int64"},"details":{"type":"array","items":{"$ref":"#/components/schemas/AnsibleEvaluationDetail"},"description":"The detailed results of te evaluation"},"entity":{"type":"string","description":"An arbitrary user-supplied string that globally identifies the entity under evaluation"},"entity_metadata":{"type":"string","description":"Additional arbitrary user-supplied metadata about the entity under evaluation"},"id":{"type":"integer","description":"The ID of this evaluation","format":"int64"},"input":{"description":"The input provided at evaluation time"},"org_id":{"type":"string","description":"The Harness organisation in which the evaluation was performed"},"project_id":{"type":"string","description":"The Harness project in which the evaluation was performed"},"status":{"type":"string","description":"The overall status of the evaluation indicating whether it passed","enum":["error","warning","pass"]},"type":{"type":"string","description":"The types of the entity under evaluation"}},"description":"The result of a single evaluation","required":["id","status","entity","entity_metadata","type","action","account_id","org_id","project_id","created","input","details"]},"AnsibleEvaluationDetail":{"type":"object","properties":{"account_id":{"type":"string","description":"Harness account ID associated with this policy set","default":""},"action":{"type":"string","description":"Action that triggers the policy set","minLength":1},"created":{"type":"integer","description":"Time the policy set was created","format":"int64"},"description":{"type":"string","description":"Description of the policy set"},"details":{"type":"array","items":{"$ref":"#/components/schemas/AnsibleEvaluatedPolicy"}},"enabled":{"type":"boolean","description":"Only enabled policy sets are evaluated when evaluating by type/action"},"identifier":{"type":"string","description":"Identifier of the policy set","minLength":1},"name":{"type":"string","description":"Name of the policy set","minLength":1},"org_id":{"type":"string","description":"Harness organization ID associated with this policy set","default":""},"project_id":{"type":"string","description":"Harness project ID associated with this policy set","default":""},"status":{"type":"string","description":"The overall status for this policy set indicating whether it passed","enum":["error","warning","pass"]},"type":{"type":"string","description":"Type of input suitable for the policy set","minLength":1},"updated":{"type":"integer","description":"Time the policy set was last updated","format":"int64"}},"required":["status","details","identifier","name","action","type","enabled","created","updated","account_id","org_id","project_id","entity_selector"]},"AnsibleEvaluatedPolicy":{"type":"object","properties":{"deny_messages":{"type":"array","items":{"type":"string"},"description":"The values of any `deny` rego rules as returned by the rego engine"},"output":{"description":"The output returned by the rego engine when this policy was evaluated"},"policy":{"$ref":"#/components/schemas/Policy"},"rego_error":{"type":"string","description":"Any errors returned by the rego engine when this policy was evaluated"},"status":{"type":"string","description":"The overall status for this individual policy indicating whether it passed","enum":["error","warning","pass"]}},"required":["status","policy","output","deny_messages","rego_error"]},"Policy":{"type":"object","properties":{"account_id":{"type":"string","description":"Harness account ID associated with this policy","default":""},"created":{"type":"integer","description":"Time the policy was created","format":"int64"},"identifier":{"type":"string","description":"identifier of the policy","minLength":1},"name":{"type":"string","description":"Name of the policy","minLength":1},"org_id":{"type":"string","description":"Harness organization ID associated with this policy","default":""},"project_id":{"type":"string","description":"Harness project ID associated with this policy","default":""},"rego":{"type":"string","description":"Rego that defines the policy","minLength":1},"updated":{"type":"integer","description":"Time the policy was last updated","format":"int64"}},"required":["identifier","name","rego","created","updated","account_id","org_id","project_id"]},"AnsiblePolicyViolationError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"policy_evaluation":{"$ref":"#/components/schemas/AnsibleEvaluation"},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]},"AnsibleError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Show Ansible playbook

> Show an individual playbook.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"ansible","description":"Ansible Service handles the API for ansible entities."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/ansible/playbook/{identifier}":{"get":{"tags":["ansible"],"summary":"Show Ansible playbook","description":"Show an individual playbook.","operationId":"ansible#show-playbook","parameters":[{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"identifier","in":"path","description":"The unique identifier for this playbook","required":true,"schema":{"type":"string","description":"The unique identifier for this playbook"}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShowPlaybookResponse"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}}}}}},"components":{"schemas":{"ShowPlaybookResponse":{"type":"object","properties":{"account":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128},"ansible_galaxy":{"type":"boolean","description":"Install Ansible Galaxy dependencies","default":false},"ansible_galaxy_requirements_file":{"type":"string","description":"Path to Ansible Galaxy requirements file"},"created":{"type":"integer","description":"Timestamp when the resource was created.","format":"int64"},"description":{"type":"string","description":"Description documents the playbook purpose and usage","maxLength":1024},"env_vars":{"type":"string","description":"The environment vars in the playbook"},"identifier":{"type":"string","description":"The unique identifier for this playbook"},"name":{"type":"string","description":"Name is the human readable name","minLength":1,"maxLength":1024},"org":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128},"project":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128},"repository":{"type":"string","description":"Repository is the name of the repository to use."},"repository_branch":{"type":"string","description":"Repository Branch in which the playbook should be accessed."},"repository_commit":{"type":"string","description":"Repository Commit/Tag in which the playbook should be accessed."},"repository_connector":{"type":"string","description":"Repository Connector is the reference to the connector to use for this playbook."},"repository_path":{"type":"string","description":"Repository Path is the path in which the playbook resides.","default":""},"tags":{"type":"array","items":{"type":"string"},"description":"Tags associated with the playbook"},"updated":{"type":"integer","description":"Timestamp when the resource was last updated.","format":"int64"},"vars":{"type":"string","description":"The vars in the playbook"}},"required":["created","updated","account","org","project","identifier","name","repository_path"]},"AnsibleError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Update Ansible playbook

> Update an existing playbook.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"ansible","description":"Ansible Service handles the API for ansible entities."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/ansible/playbook/{identifier}":{"put":{"tags":["ansible"],"summary":"Update Ansible playbook","description":"Update an existing playbook.","operationId":"ansible#update-playbook","parameters":[{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"identifier","in":"path","description":"The unique identifier for this playbook","required":true,"schema":{"type":"string","description":"The unique identifier for this playbook"}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdatePlaybookRequest"}}}},"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdatePlaybookResponse"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsiblePolicyViolationError"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}}}}}},"components":{"schemas":{"UpdatePlaybookRequest":{"type":"object","properties":{"ansible_galaxy":{"type":"boolean","description":"Install Ansible Galaxy dependencies","default":false},"ansible_galaxy_requirements_file":{"type":"string","description":"Path to Ansible Galaxy requirements file"},"description":{"type":"string","description":"Description documents the playbook purpose and usage","maxLength":1024},"env_vars":{"type":"object","description":"The environment vars in the playbook","additionalProperties":{"$ref":"#/components/schemas/AnsibleVariable"}},"name":{"type":"string","description":"Name is the human readable name","minLength":1,"maxLength":1024},"repository":{"type":"string","description":"Repository is the name of the repository to use."},"repository_branch":{"type":"string","description":"Repository Branch in which the playbook should be accessed."},"repository_commit":{"type":"string","description":"Repository Commit/Tag in which the playbook should be accessed."},"repository_connector":{"type":"string","description":"Repository Connector is the reference to the connector to use for this playbook."},"repository_path":{"type":"string","description":"Repository Path is the path in which the playbook resides.","default":""},"tags":{"type":"array","items":{"type":"string"},"description":"Tags associated with the playbook"},"vars":{"type":"object","description":"The vars in the playbook","additionalProperties":{"$ref":"#/components/schemas/AnsibleVariable"}}},"required":["name","repository_path"]},"AnsibleVariable":{"type":"object","properties":{"file_name":{"type":"string","description":"Filename is where to store the value of the secret."},"key":{"type":"string","description":"Key is the identifier for the secret.","pattern":"^[a-zA-Z0-9_]+$","minLength":1,"maxLength":128},"uuid":{"type":"string","description":"UUID is the unique identifier for the secret."},"value":{"type":"string","description":"Value is the value of the secret."},"value_type":{"type":"string","description":"Type indecates the value type of the secret. In the case of secret this is a\nreference to an item in the secret store"}},"description":"AnsibleVariable is the representation for a single variable associated with ansible.","required":["key","value","value_type"]},"UpdatePlaybookResponse":{"type":"object","properties":{"policy_evaluation":{"$ref":"#/components/schemas/AnsibleEvaluation"}}},"AnsibleEvaluation":{"type":"object","properties":{"account_id":{"type":"string","description":"The Harness account in which the evaluation was performed"},"action":{"type":"string","description":"The action that triggered evaluation"},"created":{"type":"integer","description":"The time at which the evaluation was performed in Unix time milliseconds","format":"int64"},"details":{"type":"array","items":{"$ref":"#/components/schemas/AnsibleEvaluationDetail"},"description":"The detailed results of te evaluation"},"entity":{"type":"string","description":"An arbitrary user-supplied string that globally identifies the entity under evaluation"},"entity_metadata":{"type":"string","description":"Additional arbitrary user-supplied metadata about the entity under evaluation"},"id":{"type":"integer","description":"The ID of this evaluation","format":"int64"},"input":{"description":"The input provided at evaluation time"},"org_id":{"type":"string","description":"The Harness organisation in which the evaluation was performed"},"project_id":{"type":"string","description":"The Harness project in which the evaluation was performed"},"status":{"type":"string","description":"The overall status of the evaluation indicating whether it passed","enum":["error","warning","pass"]},"type":{"type":"string","description":"The types of the entity under evaluation"}},"description":"The result of a single evaluation","required":["id","status","entity","entity_metadata","type","action","account_id","org_id","project_id","created","input","details"]},"AnsibleEvaluationDetail":{"type":"object","properties":{"account_id":{"type":"string","description":"Harness account ID associated with this policy set","default":""},"action":{"type":"string","description":"Action that triggers the policy set","minLength":1},"created":{"type":"integer","description":"Time the policy set was created","format":"int64"},"description":{"type":"string","description":"Description of the policy set"},"details":{"type":"array","items":{"$ref":"#/components/schemas/AnsibleEvaluatedPolicy"}},"enabled":{"type":"boolean","description":"Only enabled policy sets are evaluated when evaluating by type/action"},"identifier":{"type":"string","description":"Identifier of the policy set","minLength":1},"name":{"type":"string","description":"Name of the policy set","minLength":1},"org_id":{"type":"string","description":"Harness organization ID associated with this policy set","default":""},"project_id":{"type":"string","description":"Harness project ID associated with this policy set","default":""},"status":{"type":"string","description":"The overall status for this policy set indicating whether it passed","enum":["error","warning","pass"]},"type":{"type":"string","description":"Type of input suitable for the policy set","minLength":1},"updated":{"type":"integer","description":"Time the policy set was last updated","format":"int64"}},"required":["status","details","identifier","name","action","type","enabled","created","updated","account_id","org_id","project_id","entity_selector"]},"AnsibleEvaluatedPolicy":{"type":"object","properties":{"deny_messages":{"type":"array","items":{"type":"string"},"description":"The values of any `deny` rego rules as returned by the rego engine"},"output":{"description":"The output returned by the rego engine when this policy was evaluated"},"policy":{"$ref":"#/components/schemas/Policy"},"rego_error":{"type":"string","description":"Any errors returned by the rego engine when this policy was evaluated"},"status":{"type":"string","description":"The overall status for this individual policy indicating whether it passed","enum":["error","warning","pass"]}},"required":["status","policy","output","deny_messages","rego_error"]},"Policy":{"type":"object","properties":{"account_id":{"type":"string","description":"Harness account ID associated with this policy","default":""},"created":{"type":"integer","description":"Time the policy was created","format":"int64"},"identifier":{"type":"string","description":"identifier of the policy","minLength":1},"name":{"type":"string","description":"Name of the policy","minLength":1},"org_id":{"type":"string","description":"Harness organization ID associated with this policy","default":""},"project_id":{"type":"string","description":"Harness project ID associated with this policy","default":""},"rego":{"type":"string","description":"Rego that defines the policy","minLength":1},"updated":{"type":"integer","description":"Time the policy was last updated","format":"int64"}},"required":["identifier","name","rego","created","updated","account_id","org_id","project_id"]},"AnsiblePolicyViolationError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"policy_evaluation":{"$ref":"#/components/schemas/AnsibleEvaluation"},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]},"AnsibleError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Delete Ansible playbook

> Delete an existing playbook.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"ansible","description":"Ansible Service handles the API for ansible entities."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/ansible/playbook/{identifier}":{"delete":{"tags":["ansible"],"summary":"Delete Ansible playbook","description":"Delete an existing playbook.","operationId":"ansible#delete-playbook","parameters":[{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"identifier","in":"path","description":"The unique identifier for this playbook","required":true,"schema":{"type":"string","description":"The unique identifier for this playbook"}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"responses":{"200":{"description":"OK response."},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}}}}}},"components":{"schemas":{"AnsibleError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Show Ansible playbook vars

> Show an individual playbook vars.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"ansible","description":"Ansible Service handles the API for ansible entities."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/ansible/playbook/{identifier}/vars":{"get":{"tags":["ansible"],"summary":"Show Ansible playbook vars","description":"Show an individual playbook vars.","operationId":"ansible#show-playbook-vars","parameters":[{"name":"limit","in":"query","description":"Limit is the number of records to return for a page.","allowEmptyValue":true,"schema":{"type":"integer","description":"Limit is the number of records to return for a page.","default":30,"format":"int64","minimum":1,"maximum":1000}},{"name":"page","in":"query","description":"Page is the page number to return relative to the page 'limit'.","allowEmptyValue":true,"schema":{"type":"integer","description":"Page is the page number to return relative to the page 'limit'.","default":1,"format":"int64","minimum":1}},{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"identifier","in":"path","description":"Playbook identifier","required":true,"schema":{"type":"string","description":"Playbook identifier"}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"responses":{"200":{"description":"OK response.","headers":{},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShowPlaybookVarsResponse"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}}}}}},"components":{"schemas":{"ShowPlaybookVarsResponse":{"type":"object","properties":{"env_vars":{"$ref":"#/components/schemas/InventoryVarResourceCollection"},"vars":{"$ref":"#/components/schemas/InventoryVarResourceCollection"}}},"InventoryVarResourceCollection":{"type":"array","items":{"$ref":"#/components/schemas/HarnessIacmInventoryVar"}},"HarnessIacmInventoryVar":{"type":"object","properties":{"created":{"type":"string","description":"Created is the timestamp of the creation."},"file_name":{"type":"string","description":"Filename is where to store the value of the secret."},"key":{"type":"string","description":"Key is the identifier for the secret.","pattern":"^[a-zA-Z0-9_]+$","minLength":1,"maxLength":128},"updated":{"type":"string","description":"Updated is the timestamp of the last update."},"uuid":{"type":"string","description":"UUID is the unique identifier for the secret."},"value":{"type":"string","description":"Value is the value of the secret."},"value_type":{"type":"string","description":"Type indecates the value type of the secret. In the case of secret this is a\nreference to an item in the secret store"},"var_type":{"type":"string","description":"The type of variable"}},"required":["key","value","value_type"]},"AnsibleError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Create dynamic Ansible playbook variable

> Create a new dynamic playbook variable.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"ansible","description":"Ansible Service handles the API for ansible entities."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/ansible/playbook/{identifier}/vars":{"post":{"tags":["ansible"],"summary":"Create dynamic Ansible playbook variable","description":"Create a new dynamic playbook variable.","operationId":"ansible#create-playbook-vars","parameters":[{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"identifier","in":"path","description":"The unique identifier for this inventory","required":true,"schema":{"type":"string","description":"The unique identifier for this inventory"}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePlaybookVarRequest"}}}},"responses":{"201":{"description":"Created response."},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}}}}}},"components":{"schemas":{"CreatePlaybookVarRequest":{"type":"object","properties":{"env_vars":{"type":"array","items":{"$ref":"#/components/schemas/HarnessIacmInventoryVarCreate"}},"vars":{"type":"array","items":{"$ref":"#/components/schemas/HarnessIacmInventoryVarCreate"}}},"required":["vars"]},"HarnessIacmInventoryVarCreate":{"type":"object","properties":{"file_name":{"type":"string","description":"Filename is where to store the value of the secret."},"key":{"type":"string","description":"Key is the identifier for the secret.","pattern":"^[a-zA-Z0-9_]+$","minLength":1,"maxLength":128},"uuid":{"type":"string","description":"UUID is the unique identifier for the secret."},"value":{"type":"string","description":"Value is the value of the secret."},"value_type":{"type":"string","description":"Type indecates the value type of the secret. In the case of secret this is a\nreference to an item in the secret store"},"var_type":{"type":"string","description":"The type of variable. eg: var, env_var"}},"required":["key","value","value_type"]},"AnsibleError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Update dynamic Ansible playbook variable

> Update an existing dynamic playbook variable.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"ansible","description":"Ansible Service handles the API for ansible entities."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/ansible/playbook/{identifier}/vars":{"put":{"tags":["ansible"],"summary":"Update dynamic Ansible playbook variable","description":"Update an existing dynamic playbook variable.","operationId":"ansible#update-playbook-vars","parameters":[{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"identifier","in":"path","description":"The unique identifier for this inventory","required":true,"schema":{"type":"string","description":"The unique identifier for this inventory"}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdatePlaybookVarsRequest"}}}},"responses":{"200":{"description":"OK response."},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}}}}}},"components":{"schemas":{"UpdatePlaybookVarsRequest":{"type":"object","properties":{"env_vars":{"type":"array","items":{"$ref":"#/components/schemas/HarnessIacmInventoryVarCreate"}},"vars":{"type":"array","items":{"$ref":"#/components/schemas/HarnessIacmInventoryVarCreate"}}},"required":["vars"]},"HarnessIacmInventoryVarCreate":{"type":"object","properties":{"file_name":{"type":"string","description":"Filename is where to store the value of the secret."},"key":{"type":"string","description":"Key is the identifier for the secret.","pattern":"^[a-zA-Z0-9_]+$","minLength":1,"maxLength":128},"uuid":{"type":"string","description":"UUID is the unique identifier for the secret."},"value":{"type":"string","description":"Value is the value of the secret."},"value_type":{"type":"string","description":"Type indecates the value type of the secret. In the case of secret this is a\nreference to an item in the secret store"},"var_type":{"type":"string","description":"The type of variable. eg: var, env_var"}},"required":["key","value","value_type"]},"AnsibleError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Delete dynamic Ansible playbook variable

> Delete a dynamic playbook variable.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"ansible","description":"Ansible Service handles the API for ansible entities."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/ansible/playbook/{identifier}/vars":{"delete":{"tags":["ansible"],"summary":"Delete dynamic Ansible playbook variable","description":"Delete a dynamic playbook variable.","operationId":"ansible#delete-playbook-vars","parameters":[{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"identifier","in":"path","description":"The unique identifier for this inventory","required":true,"schema":{"type":"string","description":"The unique identifier for this inventory"}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeletePlaybookVarsRequest"}}}},"responses":{"200":{"description":"OK response."},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}}}}}},"components":{"schemas":{"DeletePlaybookVarsRequest":{"type":"object","properties":{"vars":{"type":"array","items":{"type":"string"}}},"required":["vars"]},"AnsibleError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Publish results

> Store ansible run results and create an activity record in a single call.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"ansible","description":"Ansible Service handles the API for ansible entities."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/ansible/results":{"post":{"tags":["ansible"],"summary":"Publish results","description":"Store ansible run results and create an activity record in a single call.","operationId":"ansible#publish-results","parameters":[{"name":"pipeline_id","in":"query","description":"The unique identifier for the associated pipeline","allowEmptyValue":true,"schema":{"type":"string","description":"The unique identifier for the associated pipeline"}},{"name":"stage_id","in":"query","description":"The unique identifier for a stage","allowEmptyValue":true,"schema":{"type":"string","description":"The unique identifier for a stage"}},{"name":"pipeline_execution_id","in":"query","description":"The unique identifier for the associated pipeline execution","allowEmptyValue":true,"schema":{"type":"string","description":"The unique identifier for the associated pipeline execution"}},{"name":"pipeline_stage_id","in":"query","description":"The unique identifier for the associated pipeline execution stage","allowEmptyValue":true,"schema":{"type":"string","description":"The unique identifier for the associated pipeline execution stage"}},{"name":"data_type","in":"query","description":"Type of data stored","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Type of data stored","enum":["task_results"]}},{"name":"inventories","in":"query","description":"Inventories associated with this event","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Inventories associated with this event"}},{"name":"playbooks","in":"query","description":"Playbooks associated with this event","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Playbooks associated with this event"}},{"name":"event_type","in":"query","description":"The type of event that occurred.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"The type of event that occurred.","enum":["activity-execution","activity-dry-run-execution"]}},{"name":"metadata","in":"query","description":"JSON-encoded activity metadata (activity_status, git_branch, git_repo, etc.).","allowEmptyValue":true,"schema":{"type":"string","description":"JSON-encoded activity metadata (activity_status, git_branch, git_repo, etc.)."}},{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}},{"name":"Content-Length","in":"header","description":"Size in bytes of the data.","allowEmptyValue":true,"schema":{"type":"integer","description":"Size in bytes of the data.","format":"int64"}}],"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublishResultsResponse"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/AnsibleError"}}}}}}}},"components":{"schemas":{"PublishResultsResponse":{"type":"object","properties":{"id":{"type":"string","description":"The unique identifier for the data"}},"required":["id"]},"AnsibleError":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```
