{"files":{"SKILL.md":"---\nname: catalog-inventory\ndescription: \"Catalog Inventory API skill. Use when working with Catalog Inventory for graphql, openapi.json, service_credential_types. Covers 38 endpoints.\"\nversion: 1.0.0\ngenerator: lapsh\n---\n\n# Catalog Inventory\nAPI version: 1.0.0\n\n## Auth\nBearer basic\n\n## Base URL\nhttps://cloud.redhat.com//api/catalog-inventory/v1.0\n\n## Setup\n1. Set Authorization header with Bearer token\n2. GET /openapi.json -- return this api document in json format\n3. POST /graphql -- create first graphql\n\n## Endpoints\n38 endpoints across 12 groups. See references/api-spec.lap for full details.\n\n### Graphql\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /graphql | Perform a GraphQL Query |\n\n### Openapi.json\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /openapi.json | Return this API document in JSON format |\n\n### Service_credential_types\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /service_credential_types | List ServiceCredentialTypes |\n| GET | /service_credential_types/{id} | Show an existing ServiceCredentialType |\n\n### Service_credentials\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /service_credentials | List ServiceCredentials |\n| GET | /service_credentials/{id} | Show an existing ServiceCredential |\n\n### Service_instances\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /service_instances | List ServiceInstances |\n| GET | /service_instances/{id} | Show an existing ServiceInstance |\n\n### Service_inventories\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /service_inventories | List ServiceInventories |\n| GET | /service_inventories/{id} | Show an existing ServiceInventory |\n| POST | /service_inventories/{id}/tag | Tag a ServiceInventory |\n| GET | /service_inventories/{id}/tags | List Tags for ServiceInventory |\n| POST | /service_inventories/{id}/untag | Untag a ServiceInventory |\n\n### Service_offering_nodes\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /service_offering_nodes | List ServiceOfferingNodes |\n| GET | /service_offering_nodes/{id} | Show an existing ServiceOfferingNode |\n\n### Service_offerings\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /service_offerings | List ServiceOfferings |\n| GET | /service_offerings/{id} | Show an existing ServiceOffering |\n| POST | /service_offerings/{id}/applied_inventories_tags | Invokes computing of ServiceInventories tags for given ServiceOffering |\n| POST | /service_offerings/{id}/order | Order an existing ServiceOffering |\n| GET | /service_offerings/{id}/service_instances | List ServiceInstances for ServiceOffering |\n| GET | /service_offerings/{id}/service_offering_nodes | List ServiceOfferingNodes for ServiceOffering |\n| GET | /service_offerings/{id}/service_plans | List ServicePlans for ServiceOffering |\n\n### Service_plans\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /service_plans | List ServicePlans |\n| GET | /service_plans/{id} | Show an existing ServicePlan |\n\n### Sources\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /sources | List Sources |\n| GET | /sources/{id} | Show an existing Source |\n| PATCH | /sources/{id}/refresh | Refresh an existing Source |\n| PATCH | /sources/{id}/incremental_refresh | Incremental Refresh an existing Source |\n| GET | /sources/{id}/service_instances | List ServiceInstances for Source |\n| GET | /sources/{id}/service_inventories | List ServiceInventories for Source |\n| GET | /sources/{id}/service_offering_nodes | List ServiceOfferingNodes for Source |\n| GET | /sources/{id}/service_offerings | List ServiceOfferings for Source |\n| GET | /sources/{id}/service_plans | List ServicePlans for Source |\n| GET | /sources/{id}/tasks | List Tasks for Source |\n\n### Tags\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /tags | List Tags |\n\n### Tasks\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /tasks | List Tasks |\n| GET | /tasks/{id} | Show an existing Task |\n| PATCH | /tasks/{id} | Update an existing Task |\n\n## Common Questions\nMatch user requests to endpoints in references/api-spec.lap. Key patterns:\n- \"Create a graphql?\" -> POST /graphql\n- \"List all openapi.json?\" -> GET /openapi.json\n- \"List all service_credential_types?\" -> GET /service_credential_types\n- \"Get service_credential_type details?\" -> GET /service_credential_types/{id}\n- \"List all service_credentials?\" -> GET /service_credentials\n- \"Get service_credential details?\" -> GET /service_credentials/{id}\n- \"List all service_instances?\" -> GET /service_instances\n- \"Get service_instance details?\" -> GET /service_instances/{id}\n- \"List all service_inventories?\" -> GET /service_inventories\n- \"Get service_inventory details?\" -> GET /service_inventories/{id}\n- \"Create a tag?\" -> POST /service_inventories/{id}/tag\n- \"List all tags?\" -> GET /service_inventories/{id}/tags\n- \"Create a untag?\" -> POST /service_inventories/{id}/untag\n- \"List all service_offering_nodes?\" -> GET /service_offering_nodes\n- \"Get service_offering_node details?\" -> GET /service_offering_nodes/{id}\n- \"List all service_offerings?\" -> GET /service_offerings\n- \"Get service_offering details?\" -> GET /service_offerings/{id}\n- \"Create a applied_inventories_tag?\" -> POST /service_offerings/{id}/applied_inventories_tags\n- \"Create a order?\" -> POST /service_offerings/{id}/order\n- \"List all service_plans?\" -> GET /service_offerings/{id}/service_plans\n- \"Get service_plan details?\" -> GET /service_plans/{id}\n- \"List all sources?\" -> GET /sources\n- \"Get source details?\" -> GET /sources/{id}\n- \"List all tasks?\" -> GET /sources/{id}/tasks\n- \"Get task details?\" -> GET /tasks/{id}\n- \"Partially update a task?\" -> PATCH /tasks/{id}\n- \"How to authenticate?\" -> See Auth section above\n\n## Response Tips\n- Check response schemas in references/api-spec.lap for field details\n- Paginated endpoints accept limit/offset or cursor parameters\n- Create/update endpoints return the modified resource on success\n- Error responses include status codes and descriptions in the spec\n\n## References\n- Full spec: See references/api-spec.lap for complete endpoint details, parameter tables, and response schemas\n\n> Generated from the official API spec by [LAP](https://lap.sh)\n","references/api-spec.lap":"@lap v0.3\n# Machine-readable API spec. Each @endpoint block is one API call.\n@api Catalog Inventory\n@base https://cloud.redhat.com//api/catalog-inventory/v1.0\n@version 1.0.0\n@auth Bearer basic\n@endpoints 38\n@hint download_for_search\n@toc graphql(1), openapi.json(1), service_credential_types(2), service_credentials(2), service_instances(2), service_inventories(5), service_offering_nodes(2), service_offerings(7), service_plans(2), sources(10), tags(1), tasks(3)\n\n@group graphql\n@endpoint POST /graphql\n@desc Perform a GraphQL Query\n@required {query: str={} # The GraphQL query}\n@optional {operationName: str= # If the Query contains several named operations, the operationName controls which one should be executed, variables: map # Optional Query variables}\n@returns(200) {data: map, errors: [map]} # GraphQL Query Response\n\n@endgroup\n\n@group openapi.json\n@endpoint GET /openapi.json\n@desc Return this API document in JSON format\n@returns(200) The API document for this version of the API\n\n@endgroup\n\n@group service_credential_types\n@endpoint GET /service_credential_types\n@desc List ServiceCredentialTypes\n@optional {limit: int=100 # The numbers of items to return per page., offset: int=0 # The number of items to skip before starting to collect the result set., filter: map # Filter for querying collections., sort_by: map # The list of attribute and order to sort the result set by.}\n@returns(200) {meta: map{count: int, limit: int, offset: int}, links: map{first: str, last: str, next: str, prev: str}, data: [map]} # ServiceCredentialTypes collection\n\n@endpoint GET /service_credential_types/{id}\n@desc Show an existing ServiceCredentialType\n@required {id: str # ID of the resource}\n@returns(200) {archived_at: str(date-time), created_at: str(date-time), description: str, id: str, kind: str, last_seen_at: str(date-time), name: str, namespace: str, refresh_state_part_id: str, source_created_at: str(date-time), source_deleted_at: str(date-time), source_id: str, source_ref: str, updated_at: str(date-time)} # ServiceCredentialType info\n@errors {404: Not found}\n\n@endgroup\n\n@group service_credentials\n@endpoint GET /service_credentials\n@desc List ServiceCredentials\n@optional {limit: int=100 # The numbers of items to return per page., offset: int=0 # The number of items to skip before starting to collect the result set., filter: map # Filter for querying collections., sort_by: map # The list of attribute and order to sort the result set by.}\n@returns(200) {meta: map{count: int, limit: int, offset: int}, links: map{first: str, last: str, next: str, prev: str}, data: [map]} # ServiceCredentials collection\n\n@endpoint GET /service_credentials/{id}\n@desc Show an existing ServiceCredential\n@required {id: str # ID of the resource}\n@returns(200) {archived_at: str(date-time), created_at: str(date-time), description: str, id: str, last_seen_at: str(date-time), name: str, refresh_state_part_id: str, service_credential_type_id: str, source_created_at: str(date-time), source_id: str, source_ref: str, source_updated_at: str(date-time), type_name: str, updated_at: str(date-time)} # ServiceCredential info\n@errors {404: Not found}\n\n@endgroup\n\n@group service_instances\n@endpoint GET /service_instances\n@desc List ServiceInstances\n@optional {limit: int=100 # The numbers of items to return per page., offset: int=0 # The number of items to skip before starting to collect the result set., filter: map # Filter for querying collections., sort_by: map # The list of attribute and order to sort the result set by.}\n@returns(200) {meta: map{count: int, limit: int, offset: int}, links: map{first: str, last: str, next: str, prev: str}, data: [map]} # ServiceInstances collection\n\n@endpoint GET /service_instances/{id}\n@desc Show an existing ServiceInstance\n@required {id: str # ID of the resource}\n@returns(200) {archived_at: str(date-time), created_at: str(date-time), external_url: str, extra: map, id: str, last_seen_at: str(date-time), name: str, refresh_state_part_id: str, root_service_instance_id: str, service_inventory_id: str, service_offering_id: str, service_plan_id: str, source_created_at: str(date-time), source_deleted_at: str(date-time), source_id: str, source_ref: str(uuid), updated_at: str(date-time)} # ServiceInstance info\n@errors {404: Not found}\n\n@endgroup\n\n@group service_inventories\n@endpoint GET /service_inventories\n@desc List ServiceInventories\n@optional {limit: int=100 # The numbers of items to return per page., offset: int=0 # The number of items to skip before starting to collect the result set., filter: map # Filter for querying collections., sort_by: map # The list of attribute and order to sort the result set by.}\n@returns(200) {meta: map{count: int, limit: int, offset: int}, links: map{first: str, last: str, next: str, prev: str}, data: [map]} # ServiceInventories collection\n\n@endpoint GET /service_inventories/{id}\n@desc Show an existing ServiceInventory\n@required {id: str # ID of the resource}\n@returns(200) {archived_at: str(date-time), created_at: str(date-time), description: str, extra: map, id: str, last_seen_at: str(date-time), name: str, refresh_state_part_id: str, source_created_at: str(date-time), source_id: str, source_ref: str, source_updated_at: str(date-time), updated_at: str(date-time)} # ServiceInventory info\n@errors {404: Not found}\n\n@endpoint POST /service_inventories/{id}/tag\n@desc Tag a ServiceInventory\n@required {id: str # ID of the resource}\n@returns(201) ServiceInventory tagged successful\n@errors {304: Not modified}\n\n@endpoint GET /service_inventories/{id}/tags\n@desc List Tags for ServiceInventory\n@required {id: str # ID of the resource}\n@optional {limit: int=100 # The numbers of items to return per page., offset: int=0 # The number of items to skip before starting to collect the result set., filter: map # Filter for querying collections., sort_by: map # The list of attribute and order to sort the result set by.}\n@returns(200) {meta: map{count: int, limit: int, offset: int}, links: map{first: str, last: str, next: str, prev: str}, data: [map]} # Tags collection\n@errors {404: Not found}\n\n@endpoint POST /service_inventories/{id}/untag\n@desc Untag a ServiceInventory\n@required {id: str # ID of the resource}\n@returns(204) ServiceInventory untagged successfully\n\n@endgroup\n\n@group service_offering_nodes\n@endpoint GET /service_offering_nodes\n@desc List ServiceOfferingNodes\n@optional {limit: int=100 # The numbers of items to return per page., offset: int=0 # The number of items to skip before starting to collect the result set., filter: map # Filter for querying collections., sort_by: map # The list of attribute and order to sort the result set by.}\n@returns(200) {meta: map{count: int, limit: int, offset: int}, links: map{first: str, last: str, next: str, prev: str}, data: [map]} # ServiceOfferingNodes collection\n\n@endpoint GET /service_offering_nodes/{id}\n@desc Show an existing ServiceOfferingNode\n@required {id: str # ID of the resource}\n@returns(200) {archived_at: str(date-time), created_at: str(date-time), extra: map, id: str, last_seen_at: str(date-time), name: str, refresh_state_part_id: str, root_service_offering_id: str, service_inventory_id: str, service_offering_id: str, source_created_at: str(date-time), source_id: str, source_ref: str, source_updated_at: str(date-time), updated_at: str(date-time)} # ServiceOfferingNode info\n@errors {404: Not found}\n\n@endgroup\n\n@group service_offerings\n@endpoint GET /service_offerings\n@desc List ServiceOfferings\n@optional {limit: int=100 # The numbers of items to return per page., offset: int=0 # The number of items to skip before starting to collect the result set., filter: map # Filter for querying collections., sort_by: map # The list of attribute and order to sort the result set by.}\n@returns(200) {meta: map{count: int, limit: int, offset: int}, links: map{first: str, last: str, next: str, prev: str}, data: [map]} # ServiceOfferings collection\n\n@endpoint GET /service_offerings/{id}\n@desc Show an existing ServiceOffering\n@required {id: str # ID of the resource}\n@returns(200) {archived_at: str(date-time), created_at: str(date-time), description: str, display_name: str, distributor: str, documentation_url: str, extra: map, id: str, last_seen_at: str(date-time), long_description: str, name: str, refresh_state_part_id: str, service_inventory_id: str, source_created_at: str(date-time), source_deleted_at: str(date-time), source_id: str, source_ref: str, support_url: str, updated_at: str(date-time)} # ServiceOffering info\n@errors {404: Not found}\n\n@endpoint POST /service_offerings/{id}/applied_inventories_tags\n@desc Invokes computing of ServiceInventories tags for given ServiceOffering\n@required {id: str # ID of the resource}\n@optional {service_parameters: map # The provider specific parameters needed to compute list of used service inventories}\n@returns(200) Returns an array of inventories tags for the computing result\n@errors {400: BadRequest}\n\n@endpoint POST /service_offerings/{id}/order\n@desc Order an existing ServiceOffering\n@required {id: str # ID of the resource}\n@optional {service_parameters: map # JSON object with provisioning parameters, provider_control_parameters: map # The provider specific parameters needed to provision this service. This might include namespaces, special keys, service_plan_id: str # ID of the resource}\n@returns(200) {task_id: str} # Returns a task ID for the order\n@errors {400: BadRequest}\n\n@endpoint GET /service_offerings/{id}/service_instances\n@desc List ServiceInstances for ServiceOffering\n@required {id: str # ID of the resource}\n@optional {limit: int=100 # The numbers of items to return per page., offset: int=0 # The number of items to skip before starting to collect the result set., filter: map # Filter for querying collections., sort_by: map # The list of attribute and order to sort the result set by.}\n@returns(200) {meta: map{count: int, limit: int, offset: int}, links: map{first: str, last: str, next: str, prev: str}, data: [map]} # ServiceInstances collection\n@errors {404: Not found}\n\n@endpoint GET /service_offerings/{id}/service_offering_nodes\n@desc List ServiceOfferingNodes for ServiceOffering\n@required {id: str # ID of the resource}\n@optional {limit: int=100 # The numbers of items to return per page., offset: int=0 # The number of items to skip before starting to collect the result set., filter: map # Filter for querying collections., sort_by: map # The list of attribute and order to sort the result set by.}\n@returns(200) {meta: map{count: int, limit: int, offset: int}, links: map{first: str, last: str, next: str, prev: str}, data: [map]} # ServiceOfferingNodes collection\n@errors {404: Not found}\n\n@endpoint GET /service_offerings/{id}/service_plans\n@desc List ServicePlans for ServiceOffering\n@required {id: str # ID of the resource}\n@optional {limit: int=100 # The numbers of items to return per page., offset: int=0 # The number of items to skip before starting to collect the result set., filter: map # Filter for querying collections., sort_by: map # The list of attribute and order to sort the result set by.}\n@returns(200) {meta: map{count: int, limit: int, offset: int}, links: map{first: str, last: str, next: str, prev: str}, data: [map]} # ServicePlans collection\n@errors {404: Not found}\n\n@endgroup\n\n@group service_plans\n@endpoint GET /service_plans\n@desc List ServicePlans\n@optional {limit: int=100 # The numbers of items to return per page., offset: int=0 # The number of items to skip before starting to collect the result set., filter: map # Filter for querying collections., sort_by: map # The list of attribute and order to sort the result set by.}\n@returns(200) {meta: map{count: int, limit: int, offset: int}, links: map{first: str, last: str, next: str, prev: str}, data: [map]} # ServicePlans collection\n\n@endpoint GET /service_plans/{id}\n@desc Show an existing ServicePlan\n@required {id: str # ID of the resource}\n@returns(200) {archived_at: str(date-time), create_json_schema: map, created_at: str(date-time), description: str, extra: map, id: str, last_seen_at: str(date-time), name: str, refresh_state_part_id: str, resource_version: str, service_offering_id: str, source_created_at: str(date-time), source_deleted_at: str(date-time), source_id: str, source_ref: str(uuid), update_json_schema: str, updated_at: str(date-time)} # ServicePlan info\n@errors {404: Not found}\n\n@endgroup\n\n@group sources\n@endpoint GET /sources\n@desc List Sources\n@optional {limit: int=100 # The numbers of items to return per page., offset: int=0 # The number of items to skip before starting to collect the result set., filter: map # Filter for querying collections., sort_by: map # The list of attribute and order to sort the result set by.}\n@returns(200) {meta: map{count: int, limit: int, offset: int}, links: map{first: str, last: str, next: str, prev: str}, data: [map]} # Sources collection\n\n@endpoint GET /sources/{id}\n@desc Show an existing Source\n@required {id: str # ID of the resource}\n@returns(200) {archived_at: str(date-time), created_at: str(date-time), id: str, info: map, name: str, cloud_connector_id: str, enabled: bool, refresh_state: str, refresh_started_at: str(date-time), refresh_finished_at: str(date-time), last_refresh_message: str, refresh_task_id: str(uuid), availability_status: str, availability_message: str, last_successful_refresh_at: str(date-time), last_checked_at: str(date-time), last_available_at: str(date-time), previous_sha: str, previous_size: int, uid: str, updated_at: str(date-time)} # Source info\n@errors {404: Not found}\n\n@endpoint PATCH /sources/{id}/refresh\n@desc Refresh an existing Source\n@required {id: str # ID of the resource}\n@returns(204) Updated, no content\n@errors {400: Bad request, 404: Not found, 429: Too many requests}\n\n@endpoint PATCH /sources/{id}/incremental_refresh\n@desc Incremental Refresh an existing Source\n@required {id: str # ID of the resource}\n@returns(204) Updated, no content\n@errors {400: Bad request, 404: Not found, 429: Too many requests}\n\n@endpoint GET /sources/{id}/service_instances\n@desc List ServiceInstances for Source\n@required {id: str # ID of the resource}\n@optional {limit: int=100 # The numbers of items to return per page., offset: int=0 # The number of items to skip before starting to collect the result set., filter: map # Filter for querying collections., sort_by: map # The list of attribute and order to sort the result set by.}\n@returns(200) {meta: map{count: int, limit: int, offset: int}, links: map{first: str, last: str, next: str, prev: str}, data: [map]} # ServiceInstances collection\n@errors {404: Not found}\n\n@endpoint GET /sources/{id}/service_inventories\n@desc List ServiceInventories for Source\n@required {id: str # ID of the resource}\n@optional {limit: int=100 # The numbers of items to return per page., offset: int=0 # The number of items to skip before starting to collect the result set., filter: map # Filter for querying collections., sort_by: map # The list of attribute and order to sort the result set by.}\n@returns(200) {meta: map{count: int, limit: int, offset: int}, links: map{first: str, last: str, next: str, prev: str}, data: [map]} # ServiceInventories collection\n@errors {404: Not found}\n\n@endpoint GET /sources/{id}/service_offering_nodes\n@desc List ServiceOfferingNodes for Source\n@required {id: str # ID of the resource}\n@optional {limit: int=100 # The numbers of items to return per page., offset: int=0 # The number of items to skip before starting to collect the result set., filter: map # Filter for querying collections., sort_by: map # The list of attribute and order to sort the result set by.}\n@returns(200) {meta: map{count: int, limit: int, offset: int}, links: map{first: str, last: str, next: str, prev: str}, data: [map]} # ServiceOfferingNodes collection\n@errors {404: Not found}\n\n@endpoint GET /sources/{id}/service_offerings\n@desc List ServiceOfferings for Source\n@required {id: str # ID of the resource}\n@optional {limit: int=100 # The numbers of items to return per page., offset: int=0 # The number of items to skip before starting to collect the result set., filter: map # Filter for querying collections., sort_by: map # The list of attribute and order to sort the result set by.}\n@returns(200) {meta: map{count: int, limit: int, offset: int}, links: map{first: str, last: str, next: str, prev: str}, data: [map]} # ServiceOfferings collection\n@errors {404: Not found}\n\n@endpoint GET /sources/{id}/service_plans\n@desc List ServicePlans for Source\n@required {id: str # ID of the resource}\n@optional {limit: int=100 # The numbers of items to return per page., offset: int=0 # The number of items to skip before starting to collect the result set., filter: map # Filter for querying collections., sort_by: map # The list of attribute and order to sort the result set by.}\n@returns(200) {meta: map{count: int, limit: int, offset: int}, links: map{first: str, last: str, next: str, prev: str}, data: [map]} # ServicePlans collection\n@errors {404: Not found}\n\n@endpoint GET /sources/{id}/tasks\n@desc List Tasks for Source\n@required {id: str # ID of the resource}\n@optional {limit: int=100 # The numbers of items to return per page., offset: int=0 # The number of items to skip before starting to collect the result set., filter: map # Filter for querying collections., sort_by: map # The list of attribute and order to sort the result set by.}\n@returns(200) {meta: map{count: int, limit: int, offset: int}, links: map{first: str, last: str, next: str, prev: str}, data: [map]} # Tasks collection\n@errors {404: Not found}\n\n@endgroup\n\n@group tags\n@endpoint GET /tags\n@desc List Tags\n@optional {limit: int=100 # The numbers of items to return per page., offset: int=0 # The number of items to skip before starting to collect the result set., filter: map # Filter for querying collections., sort_by: map # The list of attribute and order to sort the result set by.}\n@returns(200) {meta: map{count: int, limit: int, offset: int}, links: map{first: str, last: str, next: str, prev: str}, data: [map]} # Tags collection\n\n@endgroup\n\n@group tasks\n@endpoint GET /tasks\n@desc List Tasks\n@optional {limit: int=100 # The numbers of items to return per page., offset: int=0 # The number of items to skip before starting to collect the result set., filter: map # Filter for querying collections., sort_by: map # The list of attribute and order to sort the result set by.}\n@returns(200) {meta: map{count: int, limit: int, offset: int}, links: map{first: str, last: str, next: str, prev: str}, data: [map]} # Tasks collection\n\n@endpoint GET /tasks/{id}\n@desc Show an existing Task\n@required {id: str # UUID of task}\n@returns(200) {archived_at: str(date-time), completed_at: str(date-time), input: map, output: map, created_at: str(date-time), id: str(uuid), name: str, source_id: str, state: str, status: str, type: str, message: str, controller_message_id: str(uuid), child_task_id: str(uuid), target_source_ref: str, target_type: str, updated_at: str(date-time), owner: str} # Task info\n@errors {404: Not found}\n\n@endpoint PATCH /tasks/{id}\n@desc Update an existing Task\n@required {id: str # UUID of task}\n@optional {archived_at: str(date-time), completed_at: str(date-time), input: map, output: map, created_at: str(date-time), id: str(uuid) # UUID of task, name: str, source_id: str # ID of the resource, state: str(pending/queued/running/timedout/completed), status: str(ok/warn/unchanged/error), type: str, message: str, controller_message_id: str(uuid), child_task_id: str(uuid), target_source_ref: str, target_type: str, updated_at: str(date-time), owner: str}\n@returns(204) Updated, no content\n@errors {400: Bad request, 404: Not found}\n\n@endgroup\n\n@end\n"}}