# Copyright (C) 2005-2025 Splunk Inc. All Rights Reserved. from ITOA.itoa_object import ItoaObject from ITOA.setup_logging import logger class ItsiAtIncrementalValues(ItoaObject): ''' Implements ITSI AT Incremental Values ''' log_prefix = '[ITSI AT Incremental Values] ' collection_name = 'itsi_at_incremental_values' object_type = 'at_incremental_values' def __init__(self, session_key, current_user_name): super(ItsiAtIncrementalValues, self).__init__(session_key, current_user_name, 'at_incremental_values', collection_name=self.collection_name, title_validation_required=False) def do_object_validation(self, owner, objects, validate_name=True, dupname_tag=None, transaction_id=None, skip_local_failure=False): super(ItsiAtIncrementalValues, self).do_object_validation( owner, objects, validate_name, dupname_tag, transaction_id, skip_local_failure) required_fields = ['_key', 'policies'] for json_data in objects: for field in required_fields: value = json_data.get(field) if value is None: self.raise_error_bad_validation(logger, f'Missing required field: {field}', 409) policies = json_data.get('policies') if not isinstance(policies, dict): self.raise_error_bad_validation( logger, 'Invalid policies: Policies must be of type dict.', 409 ) def get_kpi_at_incremental_values(self, owner, kpi_id, req_source='unknown', transaction_id=None): """ Over the parent method of retrieves kpi incremental values by id @type owner: basestring @param owner: user who is performing this operation @type kpi_id: string @param kpi_id: KPI id of object to retrieve @type req_source: string @param req_source: identified source initiating the operation @rtype: dictionary @return: object matching id on success, empty rows if object is not found, throws exceptions on errors """ job_data = super(ItsiAtIncrementalValues, self).get( owner, kpi_id, req_source, transaction_id ) return job_data