{"openapi":"3.0.4","info":{"title":"Upsert rules to a particular Check Definition","description":"Upsert rules for a given check definition. This will not affect any other rules that are not included in the request.","version":"0.0.1"},"servers":[{"url":"https://fbn-prd.lusid.com/api"}],"paths":{"/api/dataquality/checkdefinitions/{scope}/{code}/$upsertRules":{"post":{"tags":["CheckDefinitions"],"summary":"Upsert rules to a particular Check Definition","description":"Upsert rules for a given check definition. This will not affect any other rules that are not included in the request.","operationId":"UpsertRules","parameters":[{"name":"scope","in":"path","description":"The scope of the specified Check Definition.","required":true,"schema":{"maxLength":64,"minLength":1,"pattern":"^[a-zA-Z0-9\\-_]+$","type":"string"}},{"name":"code","in":"path","description":"The code of the specified Check Definition. Together with the domain and scope this uniquely\r\n            identifies the Check Definition.","required":true,"schema":{"maxLength":64,"minLength":1,"pattern":"^[a-zA-Z0-9\\-_]+$","type":"string"}}],"requestBody":{"description":"The request containing the rules to be upserted","content":{"application/json-patch+json":{"schema":{"type":"array","items":{"$ref":"/docs/api/lusid/schemas.json#/components/schemas/UpsertDataQualityRule"}},"example":[{"ruleSetKey":"ruleSetKey1","rule":{"ruleKey":"ruleKey1","displayName":"ruleName","description":"description1","ruleFormula":"expression1","severity":1}},{"ruleSetKey":"ruleSetKey2","rule":{"ruleKey":"ruleKey2","displayName":"ruleName","description":"description2","ruleFormula":"expression2","severity":5}}]},"application/json":{"schema":{"type":"array","items":{"$ref":"/docs/api/lusid/schemas.json#/components/schemas/UpsertDataQualityRule"}},"example":[{"ruleSetKey":"ruleSetKey1","rule":{"ruleKey":"ruleKey1","displayName":"ruleName","description":"description1","ruleFormula":"expression1","severity":1}},{"ruleSetKey":"ruleSetKey2","rule":{"ruleKey":"ruleKey2","displayName":"ruleName","description":"description2","ruleFormula":"expression2","severity":5}}]},"text/json":{"schema":{"type":"array","items":{"$ref":"/docs/api/lusid/schemas.json#/components/schemas/UpsertDataQualityRule"}},"example":[{"ruleSetKey":"ruleSetKey1","rule":{"ruleKey":"ruleKey1","displayName":"ruleName","description":"description1","ruleFormula":"expression1","severity":1}},{"ruleSetKey":"ruleSetKey2","rule":{"ruleKey":"ruleKey2","displayName":"ruleName","description":"description2","ruleFormula":"expression2","severity":5}}]},"application/*+json":{"schema":{"type":"array","items":{"$ref":"/docs/api/lusid/schemas.json#/components/schemas/UpsertDataQualityRule"}},"example":[{"ruleSetKey":"ruleSetKey1","rule":{"ruleKey":"ruleKey1","displayName":"ruleName","description":"description1","ruleFormula":"expression1","severity":1}},{"ruleSetKey":"ruleSetKey2","rule":{"ruleKey":"ruleKey2","displayName":"ruleName","description":"description2","ruleFormula":"expression2","severity":5}}]}}},"responses":{"200":{"description":"The updated check definition","content":{"application/json":{"schema":{"$ref":"/docs/api/lusid/schemas.json#/components/schemas/CheckDefinition"},"example":{"id":{"scope":"DataQuality","code":"PortfolioBalanceCheck"},"displayName":"Portfolio Balance Validation","description":"A check definition to validate portfolio balances are within expected ranges","datasetSchema":{"type":"LusidEntity","entityType":"Portfolios"},"ruleSets":[{"ruleSetKey":"BalanceRuleSet","displayName":"BalanceRuleSet","description":"Rules for validating portfolio balance data","ruleSetFilter":"Properties[Instrument/DataQuality/Type] eq 'Equity'","rules":[{"ruleKey":"PositiveBalanceRule","displayName":"PositiveBalanceRule","description":"Ensures portfolio balances are positive","ruleFormula":"Holdings.Sum(h => h.Units * h.Cost.Amount) > 0","severity":2},{"ruleKey":"ReasonableBalanceRule","displayName":"ReasonableBalanceRule","description":"Ensures portfolio balances are within reasonable limits","ruleFormula":"Holdings.Sum(h => h.Units * h.Cost.Amount) < 1000000000","severity":2}]}],"href":"https://lusid.company.com/api/checkdefinitions/DataQuality/PortfolioBalanceCheck","version":{"effectiveFrom":"2024-01-01T00:00:00.0000000+00:00","asAtDate":"2024-01-01T00:00:00.0000000+00:00","asAtCreated":"2024-01-01T00:00:00.0000000+00:00","userIdCreated":"userId","requestIdCreated":"requestId","reasonCreated":"","asAtModified":"2024-01-01T00:00:00.0000000+00:00","userIdModified":"userId","requestIdModified":"userId","reasonModified":"","asAtVersionNumber":1,"entityUniqueId":"67cd5403-60d3-4744-8455-c4522a3886cb"},"properties":{"CheckDefinition/DataQuality/Priority":{"key":"CheckDefinition/DataQuality/Priority","value":{"labelValue":"High"},"effectiveFrom":"2024-01-01T00:00:00.0000000+00:00","effectiveUntil":"2025-12-31T23:59:59.0000000+00:00"}}}},"text/plain":{"schema":{"$ref":"/docs/api/lusid/schemas.json#/components/schemas/CheckDefinition"},"example":{"id":{"scope":"DataQuality","code":"PortfolioBalanceCheck"},"displayName":"Portfolio Balance Validation","description":"A check definition to validate portfolio balances are within expected ranges","datasetSchema":{"type":"LusidEntity","entityType":"Portfolios"},"ruleSets":[{"ruleSetKey":"BalanceRuleSet","displayName":"BalanceRuleSet","description":"Rules for validating portfolio balance data","ruleSetFilter":"Properties[Instrument/DataQuality/Type] eq 'Equity'","rules":[{"ruleKey":"PositiveBalanceRule","displayName":"PositiveBalanceRule","description":"Ensures portfolio balances are positive","ruleFormula":"Holdings.Sum(h => h.Units * h.Cost.Amount) > 0","severity":2},{"ruleKey":"ReasonableBalanceRule","displayName":"ReasonableBalanceRule","description":"Ensures portfolio balances are within reasonable limits","ruleFormula":"Holdings.Sum(h => h.Units * h.Cost.Amount) < 1000000000","severity":2}]}],"href":"https://lusid.company.com/api/checkdefinitions/DataQuality/PortfolioBalanceCheck","version":{"effectiveFrom":"2024-01-01T00:00:00.0000000+00:00","asAtDate":"2024-01-01T00:00:00.0000000+00:00","asAtCreated":"2024-01-01T00:00:00.0000000+00:00","userIdCreated":"userId","requestIdCreated":"requestId","reasonCreated":"","asAtModified":"2024-01-01T00:00:00.0000000+00:00","userIdModified":"userId","requestIdModified":"userId","reasonModified":"","asAtVersionNumber":1,"entityUniqueId":"67cd5403-60d3-4744-8455-c4522a3886cb"},"properties":{"CheckDefinition/DataQuality/Priority":{"key":"CheckDefinition/DataQuality/Priority","value":{"labelValue":"High"},"effectiveFrom":"2024-01-01T00:00:00.0000000+00:00","effectiveUntil":"2025-12-31T23:59:59.0000000+00:00"}}}},"text/json":{"schema":{"$ref":"/docs/api/lusid/schemas.json#/components/schemas/CheckDefinition"},"example":{"id":{"scope":"DataQuality","code":"PortfolioBalanceCheck"},"displayName":"Portfolio Balance Validation","description":"A check definition to validate portfolio balances are within expected ranges","datasetSchema":{"type":"LusidEntity","entityType":"Portfolios"},"ruleSets":[{"ruleSetKey":"BalanceRuleSet","displayName":"BalanceRuleSet","description":"Rules for validating portfolio balance data","ruleSetFilter":"Properties[Instrument/DataQuality/Type] eq 'Equity'","rules":[{"ruleKey":"PositiveBalanceRule","displayName":"PositiveBalanceRule","description":"Ensures portfolio balances are positive","ruleFormula":"Holdings.Sum(h => h.Units * h.Cost.Amount) > 0","severity":2},{"ruleKey":"ReasonableBalanceRule","displayName":"ReasonableBalanceRule","description":"Ensures portfolio balances are within reasonable limits","ruleFormula":"Holdings.Sum(h => h.Units * h.Cost.Amount) < 1000000000","severity":2}]}],"href":"https://lusid.company.com/api/checkdefinitions/DataQuality/PortfolioBalanceCheck","version":{"effectiveFrom":"2024-01-01T00:00:00.0000000+00:00","asAtDate":"2024-01-01T00:00:00.0000000+00:00","asAtCreated":"2024-01-01T00:00:00.0000000+00:00","userIdCreated":"userId","requestIdCreated":"requestId","reasonCreated":"","asAtModified":"2024-01-01T00:00:00.0000000+00:00","userIdModified":"userId","requestIdModified":"userId","reasonModified":"","asAtVersionNumber":1,"entityUniqueId":"67cd5403-60d3-4744-8455-c4522a3886cb"},"properties":{"CheckDefinition/DataQuality/Priority":{"key":"CheckDefinition/DataQuality/Priority","value":{"labelValue":"High"},"effectiveFrom":"2024-01-01T00:00:00.0000000+00:00","effectiveUntil":"2025-12-31T23:59:59.0000000+00:00"}}}}}},"400":{"description":"The details of the input related failure","content":{"application/json":{"schema":{"$ref":"/docs/api/lusid/schemas.json#/components/schemas/LusidValidationProblemDetails"}},"text/plain":{"schema":{"$ref":"/docs/api/lusid/schemas.json#/components/schemas/LusidValidationProblemDetails"}},"text/json":{"schema":{"$ref":"/docs/api/lusid/schemas.json#/components/schemas/LusidValidationProblemDetails"}}}},"default":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"/docs/api/lusid/schemas.json#/components/schemas/LusidProblemDetails"}}}}},"security":[{"BearerAuth":[]}],"x-fbn-apistatus":"Experimental"}}},"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer"}}}}