{"type":"api","title":"Get Template Job Control Status Per Device","meta":{"id":"/apps/pubhub/media/crosswork-network-controller-7-1/f445c17e25a1120e8fbde4bd413083d0fd88b2b3/b44e8ba1-6566-34bf-b4f1-d28c15d76254","info":{"title":"Crosswork Collection Service APIs","description":"Crosswork Collector Services APIs manage application intents for collection jobs across multiple devices and different collection types, including SNMP, CLI, TRAP, MDT, GNMI, and SYSLOG.","version":"1.0.0","contact":{"name":"Crosswork Team, Cisco","email":"support@cisco.com"},"license":{"name":"Cisco Software License Agreement","url":"http://www.cisco.com/public/sw-license-agreement.html"}},"x-parser-conf":{"overview":{"markdownPath":"reference/INFRA/COLLECTIONS/collection-service-overview.md"}},"swagger":"2.0","basePath":"/crosswork/collection/v1","schemes":["https","http"],"securityDefinitions":{"bearerAuth":{"type":"apiKey","description":"bearer auth","name":"Authorization","in":"header"}}},"spec":{"summary":"Get Template Job Control Status Per Device","description":"Use GetTemplateCollectionControlStatusPerDevice for a detailed view of the control status of each template sensor within a device job.\nThe return data will indicate if the control path state per device and per template has been successfully set up within the Helios database.\nYou must supply an Application context or device id, and the collect_type.","operationId":"CollectionService_GetTemplateCollectionControlStatusPerDevice","responses":{"200":{"description":"OK. The request was successful. The result is contained in the response body","schema":{"type":"object","properties":{"collection_control_status_list":{"type":"array","items":{"type":"object","properties":{"application_context":{"description":"The application_context is a handle that uniquely identifies your application's collection job. It serves as the key to the object on which CRUD operations are performed.\nThe combination of application_id and context_id should be unique globally.","type":"object","properties":{"application_id":{"type":"string","description":"The application_id is a unique ID that identifies your application. Crosswork applications always prefix the application_id with “cw“."},"context_id":{"type":"string","description":"The context_id is a unique ID that identifies your application subscription across all collection jobs. We recommend that you use the device UUID for the context_id."}},"$$ref":"#/definitions/collection_serviceApplicationContext"},"device_id":{"type":"string","description":"ID of the device on which the operation was carried out. NOT A SET, might want to put ID."},"status":{"description":"The current Status of the overall job: READY, NOT_READY, FAILED.","type":"string","enum":["UNKNOWN_STATUS","NOTREADY","READY","FAILED"],"default":"UNKNOWN_STATUS","title":"The state of the async Object ApplicationContext within the Collection Service with respect to the operational state on one or more devices","$$ref":"#/definitions/collection_serviceStatus"},"sensor_template_input_configs":{"type":"array","items":{"type":"object","properties":{"sensor_template_id":{"type":"string","title":"Specify the sensor template ID to be used for collection"},"cadence_in_millisec":{"type":"string","format":"uint64","title":"Input Cadence"},"parameter_values":{"title":"Sensor template parameter combination values","type":"object","properties":{"template_param_values":{"type":"array","items":{"type":"object","properties":{"template_param_value":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"bytes_value":{"type":"string","format":"byte"},"string_value":{"type":"string"},"bool_value":{"type":"boolean"},"uint32_value":{"type":"integer","format":"int64"},"uint64_value":{"type":"string","format":"uint64"},"sint32_value":{"type":"integer","format":"int32"},"sint64_value":{"type":"string","format":"int64"},"double_value":{"type":"number","format":"double"},"float_value":{"type":"number","format":"float"},"null_value":{"type":"boolean"},"list_value":{"type":"object","properties":{"value":{"type":"array","items":{"type":"object","properties":{"bytes_value":{"type":"string","format":"byte"},"string_value":{"type":"string"},"bool_value":{"type":"boolean"},"uint32_value":{"type":"integer","format":"int64"},"uint64_value":{"type":"string","format":"uint64"},"sint32_value":{"type":"integer","format":"int32"},"sint64_value":{"type":"string","format":"int64"},"double_value":{"type":"number","format":"double"},"float_value":{"type":"number","format":"float"},"null_value":{"type":"boolean"}},"$$ref":"#/definitions/common_collection_dataValue"},"title":"list items must be of same type"}},"$$ref":"#/definitions/common_collection_datalist"}},"title":"Generic Key value message","$$ref":"#/definitions/common_collection_dataKeyValue"},"title":"Parameters values for sensor template variables"}},"title":"Specify parameter values for template parameters","$$ref":"#/definitions/common_collection_dataParameterValue"},"title":"Parameters value combinations set for sensor template variables\nfor ex: \n\"template_param_values\": [\n {{\"vrf\":\"vrf1\"}, {\"neighbor-ip\":\"ip1\"}},\n {{\"vrf\":\"vrf1\"}, {\"neighbor-ip\":\"ip2\"}},\n {{\"vrf\":\"vrf1\"}, {\"neighbor-ip\":\"ip3\"}}\n ]"}},"$$ref":"#/definitions/common_collection_dataParameterValues"}},"title":"SensorTemplateInputConfig contains a sensor template, cadence and parameter values","$$ref":"#/definitions/collection_serviceSensorTemplateInputConfig"},"title":"Sensor template input config"},"sensor_template_output_configs":{"type":"array","items":{"type":"object","properties":{"sensor_template_id":{"type":"string","title":"Specify Sensor template"},"destination":{"type":"array","items":{"type":"object","properties":{"destination_id":{"type":"string","title":"Unique identifier for a Destination Provider in Inventory"},"context_id":{"type":"string","description":"Destination context identifier.\nIt could be topic name if the destination is message bus.\nThe combination of destination_id and context_id needs to be unique for a Destination.\nWhat context id means depends on the destination type of the destination provider.\nIf \"GRPC\" is the destination type, context_id is not used and will be ignored."},"destination_name":{"type":"string","description":"The name of the destination. Not used during write operations, but optionally filled when using GET APIs.\nIt maps to the destination provider name in Crosswork Device Lifecycle Manager (DLM)."}},"description":"Use the destination identifier to uniquely identify a destination.\nThe output encoding format for the destination is derived from the Inventory destination_id.","$$ref":"#/definitions/collection_serviceDestination"},"description":"The destinations to which sensor data is written."}},"title":"SensorTemplateOutputConfig contains a sensor template and its destination details","$$ref":"#/definitions/collection_serviceSensorTemplateOutputConfig"},"title":"Sensor template output config"},"commit_state":{"title":"Indicates whether the target versus the requested state was converged on the device successfully across all jobs","type":"string","enum":["UNKNOWN_CONFIG_COMMIT_STATE","COMMITTED","NOT_COMMITTED"],"default":"UNKNOWN_CONFIG_COMMIT_STATE","description":"- COMMITTED: Control configuration for the device was successfully converged based on the target state.\n - NOT_COMMITTED: Control configuration for the device was not successfully converged based on the target state.","$$ref":"#/definitions/collection_serviceConfigurationCommitState"},"device_error":{"title":"Any processing error encountered during commit","type":"object","properties":{"error":{"type":"string","description":"Message is a textual description of the reason for rejection. You can safely pass it on to the operator through logs or the UI."}},"$$ref":"#/definitions/collection_serviceError"}},"title":"TemplateCollectionControlStatus indicates success or failure on a per-template basis for a given job","$$ref":"#/definitions/collection_serviceTemplateCollectionControlStatus"},"description":"Status of the job over a list of devices."},"query_options":{"type":"object","properties":{"page_token":{"type":"string","title":"Page token used to echo back to get the next page. If collection_job_device_sets is empty or the page token are empty, there are no more results"},"page_size":{"type":"integer","format":"int64","title":"page_size"},"filter_list":{"type":"array","items":{"type":"object","properties":{"operator":{"description":"The filter logical or conditional operator (such as AND, OR, \u003e, \u003c).","type":"string","enum":["UNKNOWN_OPERATOR","OPERATOR_OR","OPERATOR_AND","OPERATOR_EQ","OPERATOR_REGEX","OPERATOR_CONTAINS"],"default":"UNKNOWN_OPERATOR","$$ref":"#/definitions/collection_serviceFilterOperator"},"field_list":{"type":"array","items":{"type":"object","properties":{"field":{"type":"string","description":"The name of the field to filter on. Only CollectionState String is supported."},"value":{"type":"string","description":"The field value to filter on. For non-strings, the backend will convert it to honor actual DB type."}},"$$ref":"#/definitions/collection_serviceFilterField"},"title":"The list of filter criteria"}},"title":"Filter","$$ref":"#/definitions/collection_serviceFilter"},"title":"filtering options"},"filter_query":{"type":"string","description":"Reserved for future use."}},"title":"Query Options","$$ref":"#/definitions/collection_serviceQueryOptions"},"result":{"type":"object","properties":{"request_result":{"description":"The result values indicates whether the request was accepted or rejected, not the outcome of the work itself.","type":"string","enum":["UNKNOWN_RESULT","REJECTED","ACCEPTED"],"default":"UNKNOWN_RESULT","$$ref":"#/definitions/collection_serviceRequestResult"},"error":{"description":"A text message describing the reason for rejection. It can be safely passed on to the operator through logs or the UI.","type":"object","properties":{"error":{"type":"string","description":"Message is a textual description of the reason for rejection. You can safely pass it on to the operator through logs or the UI."}},"title":"Error associated with an object","$$ref":"#/definitions/collection_serviceError"}},"description":"Result is used to convey whether an operation (individual or in a batch) has been accepted or rejected.\nFor sync APIs, an error or rejection indicates failure of the operation.\nA string error message accompanies rejection to support troubleshooting.\nFor notification objects, rejection represents failure to do intended operation.","$$ref":"#/definitions/collection_serviceResult","title":"Request reply, indicating whether the request was accepted or rejected"}},"example":{"collection_control_status_list":[{"application_context":{"application_id":"proto_template_test_app","context_id":"proto_template_test_context"},"device_id":"3d2b878b-3f11-4a65-a226-63864b089a1b","status":"READY","sensor_template_input_configs":[{"sensor_template_id":"template-test-version-template","cadence_in_millisec":"60000","parameter_values":{"template_param_values":[{"template_param_value":[{"key":"command","string_value":"test"}]}]}}],"sensor_template_output_configs":[{"sensor_template_id":"template-test-version-template","destination":[{"destination_id":"c2a8fba8-8363-3d22-b0c2-a9e449693fae","context_id":"dest_context2","destination_name":""}]}],"commit_state":"COMMITTED","device_error":null}],"query_options":null,"result":{"request_result":"ACCEPTED","error":{"error":""}}},"description":"CollectionTemplateControlStatusDeviceResponse indicates the list of templates for which the job is successfully processed.","$$ref":"#/definitions/collection_serviceGetTemplateCollectionControlStatusResponse"}},"default":{"description":"An unexpected error response.","schema":{"type":"object","properties":{"collection_control_status_list":{"type":"array","items":{"type":"object","properties":{"application_context":{"description":"The application_context is a handle that uniquely identifies your application's collection job. It serves as the key to the object on which CRUD operations are performed.\nThe combination of application_id and context_id should be unique globally.","type":"object","properties":{"application_id":{"type":"string","description":"The application_id is a unique ID that identifies your application. Crosswork applications always prefix the application_id with “cw“."},"context_id":{"type":"string","description":"The context_id is a unique ID that identifies your application subscription across all collection jobs. We recommend that you use the device UUID for the context_id."}},"$$ref":"#/definitions/collection_serviceApplicationContext"},"device_id":{"type":"string","description":"ID of the device on which the operation was carried out. NOT A SET, might want to put ID."},"status":{"description":"The current Status of the overall job: READY, NOT_READY, FAILED.","type":"string","enum":["UNKNOWN_STATUS","NOTREADY","READY","FAILED"],"default":"UNKNOWN_STATUS","title":"The state of the async Object ApplicationContext within the Collection Service with respect to the operational state on one or more devices","$$ref":"#/definitions/collection_serviceStatus"},"sensor_template_input_configs":{"type":"array","items":{"type":"object","properties":{"sensor_template_id":{"type":"string","title":"Specify the sensor template ID to be used for collection"},"cadence_in_millisec":{"type":"string","format":"uint64","title":"Input Cadence"},"parameter_values":{"title":"Sensor template parameter combination values","type":"object","properties":{"template_param_values":{"type":"array","items":{"type":"object","properties":{"template_param_value":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"bytes_value":{"type":"string","format":"byte"},"string_value":{"type":"string"},"bool_value":{"type":"boolean"},"uint32_value":{"type":"integer","format":"int64"},"uint64_value":{"type":"string","format":"uint64"},"sint32_value":{"type":"integer","format":"int32"},"sint64_value":{"type":"string","format":"int64"},"double_value":{"type":"number","format":"double"},"float_value":{"type":"number","format":"float"},"null_value":{"type":"boolean"},"list_value":{"type":"object","properties":{"value":{"type":"array","items":{"type":"object","properties":{"bytes_value":{"type":"string","format":"byte"},"string_value":{"type":"string"},"bool_value":{"type":"boolean"},"uint32_value":{"type":"integer","format":"int64"},"uint64_value":{"type":"string","format":"uint64"},"sint32_value":{"type":"integer","format":"int32"},"sint64_value":{"type":"string","format":"int64"},"double_value":{"type":"number","format":"double"},"float_value":{"type":"number","format":"float"},"null_value":{"type":"boolean"}},"$$ref":"#/definitions/common_collection_dataValue"},"title":"list items must be of same type"}},"$$ref":"#/definitions/common_collection_datalist"}},"title":"Generic Key value message","$$ref":"#/definitions/common_collection_dataKeyValue"},"title":"Parameters values for sensor template variables"}},"title":"Specify parameter values for template parameters","$$ref":"#/definitions/common_collection_dataParameterValue"},"title":"Parameters value combinations set for sensor template variables\nfor ex: \n\"template_param_values\": [\n {{\"vrf\":\"vrf1\"}, {\"neighbor-ip\":\"ip1\"}},\n {{\"vrf\":\"vrf1\"}, {\"neighbor-ip\":\"ip2\"}},\n {{\"vrf\":\"vrf1\"}, {\"neighbor-ip\":\"ip3\"}}\n ]"}},"$$ref":"#/definitions/common_collection_dataParameterValues"}},"title":"SensorTemplateInputConfig contains a sensor template, cadence and parameter values","$$ref":"#/definitions/collection_serviceSensorTemplateInputConfig"},"title":"Sensor template input config"},"sensor_template_output_configs":{"type":"array","items":{"type":"object","properties":{"sensor_template_id":{"type":"string","title":"Specify Sensor template"},"destination":{"type":"array","items":{"type":"object","properties":{"destination_id":{"type":"string","title":"Unique identifier for a Destination Provider in Inventory"},"context_id":{"type":"string","description":"Destination context identifier.\nIt could be topic name if the destination is message bus.\nThe combination of destination_id and context_id needs to be unique for a Destination.\nWhat context id means depends on the destination type of the destination provider.\nIf \"GRPC\" is the destination type, context_id is not used and will be ignored."},"destination_name":{"type":"string","description":"The name of the destination. Not used during write operations, but optionally filled when using GET APIs.\nIt maps to the destination provider name in Crosswork Device Lifecycle Manager (DLM)."}},"description":"Use the destination identifier to uniquely identify a destination.\nThe output encoding format for the destination is derived from the Inventory destination_id.","$$ref":"#/definitions/collection_serviceDestination"},"description":"The destinations to which sensor data is written."}},"title":"SensorTemplateOutputConfig contains a sensor template and its destination details","$$ref":"#/definitions/collection_serviceSensorTemplateOutputConfig"},"title":"Sensor template output config"},"commit_state":{"title":"Indicates whether the target versus the requested state was converged on the device successfully across all jobs","type":"string","enum":["UNKNOWN_CONFIG_COMMIT_STATE","COMMITTED","NOT_COMMITTED"],"default":"UNKNOWN_CONFIG_COMMIT_STATE","description":"- COMMITTED: Control configuration for the device was successfully converged based on the target state.\n - NOT_COMMITTED: Control configuration for the device was not successfully converged based on the target state.","$$ref":"#/definitions/collection_serviceConfigurationCommitState"},"device_error":{"title":"Any processing error encountered during commit","type":"object","properties":{"error":{"type":"string","description":"Message is a textual description of the reason for rejection. You can safely pass it on to the operator through logs or the UI."}},"$$ref":"#/definitions/collection_serviceError"}},"title":"TemplateCollectionControlStatus indicates success or failure on a per-template basis for a given job","$$ref":"#/definitions/collection_serviceTemplateCollectionControlStatus"},"description":"Status of the job over a list of devices."},"query_options":{"type":"object","properties":{"page_token":{"type":"string","title":"Page token used to echo back to get the next page. If collection_job_device_sets is empty or the page token are empty, there are no more results"},"page_size":{"type":"integer","format":"int64","title":"page_size"},"filter_list":{"type":"array","items":{"type":"object","properties":{"operator":{"description":"The filter logical or conditional operator (such as AND, OR, \u003e, \u003c).","type":"string","enum":["UNKNOWN_OPERATOR","OPERATOR_OR","OPERATOR_AND","OPERATOR_EQ","OPERATOR_REGEX","OPERATOR_CONTAINS"],"default":"UNKNOWN_OPERATOR","$$ref":"#/definitions/collection_serviceFilterOperator"},"field_list":{"type":"array","items":{"type":"object","properties":{"field":{"type":"string","description":"The name of the field to filter on. Only CollectionState String is supported."},"value":{"type":"string","description":"The field value to filter on. For non-strings, the backend will convert it to honor actual DB type."}},"$$ref":"#/definitions/collection_serviceFilterField"},"title":"The list of filter criteria"}},"title":"Filter","$$ref":"#/definitions/collection_serviceFilter"},"title":"filtering options"},"filter_query":{"type":"string","description":"Reserved for future use."}},"title":"Query Options","$$ref":"#/definitions/collection_serviceQueryOptions"},"result":{"type":"object","properties":{"request_result":{"description":"The result values indicates whether the request was accepted or rejected, not the outcome of the work itself.","type":"string","enum":["UNKNOWN_RESULT","REJECTED","ACCEPTED"],"default":"UNKNOWN_RESULT","$$ref":"#/definitions/collection_serviceRequestResult"},"error":{"description":"A text message describing the reason for rejection. It can be safely passed on to the operator through logs or the UI.","type":"object","properties":{"error":{"type":"string","description":"Message is a textual description of the reason for rejection. You can safely pass it on to the operator through logs or the UI."}},"title":"Error associated with an object","$$ref":"#/definitions/collection_serviceError"}},"description":"Result is used to convey whether an operation (individual or in a batch) has been accepted or rejected.\nFor sync APIs, an error or rejection indicates failure of the operation.\nA string error message accompanies rejection to support troubleshooting.\nFor notification objects, rejection represents failure to do intended operation.","$$ref":"#/definitions/collection_serviceResult","title":"Request reply, indicating whether the request was accepted or rejected"}},"example":{"collection_control_status_list":[],"query_options":null,"result":{"request_result":"REJECTED","error":{"error":"empty request"}}},"$$ref":"#/definitions/templatecollectionjobcontrolstatusqueryErrorResponse"}}},"parameters":[{"name":"body","in":"body","description":"Get Template Collection Job Control Status.","required":true,"schema":{"type":"object","properties":{"application_context":{"description":"The application_context is a handle that uniquely identifies your application's collection job. It serves as the key to the object on which CRUD operations are performed.\nThe combination of application_id and context_id should be unique globally.","type":"object","properties":{"application_id":{"type":"string","description":"The application_id is a unique ID that identifies your application. Crosswork applications always prefix the application_id with “cw“."},"context_id":{"type":"string","description":"The context_id is a unique ID that identifies your application subscription across all collection jobs. We recommend that you use the device UUID for the context_id."}},"$$ref":"#/definitions/collection_serviceApplicationContext"},"query_options":{"type":"object","properties":{"page_token":{"type":"string","title":"Page token used to echo back to get the next page. If collection_job_device_sets is empty or the page token are empty, there are no more results"},"page_size":{"type":"integer","format":"int64","title":"page_size"},"filter_list":{"type":"array","items":{"type":"object","properties":{"operator":{"description":"The filter logical or conditional operator (such as AND, OR, \u003e, \u003c).","type":"string","enum":["UNKNOWN_OPERATOR","OPERATOR_OR","OPERATOR_AND","OPERATOR_EQ","OPERATOR_REGEX","OPERATOR_CONTAINS"],"default":"UNKNOWN_OPERATOR","$$ref":"#/definitions/collection_serviceFilterOperator"},"field_list":{"type":"array","items":{"type":"object","properties":{"field":{"type":"string","description":"The name of the field to filter on. Only CollectionState String is supported."},"value":{"type":"string","description":"The field value to filter on. For non-strings, the backend will convert it to honor actual DB type."}},"$$ref":"#/definitions/collection_serviceFilterField"},"title":"The list of filter criteria"}},"title":"Filter","$$ref":"#/definitions/collection_serviceFilter"},"title":"filtering options"},"filter_query":{"type":"string","description":"Reserved for future use."}},"title":"Query Options","$$ref":"#/definitions/collection_serviceQueryOptions"}},"example":{"application_context":{"application_id":"cw.dlminvmgr0","context_id":"dlm/cli-collector/group/te-tunnel-id/subscription"},"query_options":{"filter_list":[],"page_token":"","page_size":500}},"title":"GetTemplateCollectionControlStatusRequest","$$ref":"#/definitions/collection_serviceGetTemplateCollectionControlStatusRequest"}}],"tags":["CollectionService"],"__originalOperationId":"CollectionService_GetTemplateCollectionControlStatusPerDevice","consumes":["application/json"],"produces":["application/json"],"method":"post","path":"/templatecollectionjob/controlstatus/query"}}