{"openapi":"3.1.0","info":{"title":"Wallet API","description":"OrderingStack wallet API","version":"1.0"},"servers":[{"url":"https://ordering.3e.pl"}],"security":[{"oauth2":[]}],"paths":{"/wallet-api/api/wallet/{wallet}":{"get":{"tags":["wallet"],"description":"Get wallet for specific user. If it is not created - get 404.","operationId":"getWallet","parameters":[{"name":"wallet","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"x-tenant","in":"header","required":false,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/Wallet"}}}}},"security":[{"oauth2-client":[]},{"oauth2":["ROLE_SU","ROLE_WALLET"]}]},"put":{"tags":["wallet"],"description":"Update wallet for logged user. If wallet was not there - it is created.","operationId":"putWallet","parameters":[{"name":"wallet","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"x-tenant","in":"header","required":false,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Properties"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/Wallet"}}}}},"security":[{"oauth2-client":[]},{"oauth2":["ROLE_SU","ROLE_WALLET"]}]},"post":{"tags":["wallet"],"description":"Create wallet for specific user. If wallet is already there - attributes are overwritten if they are provided and not empty.","operationId":"postWallet","parameters":[{"name":"wallet","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"x-tenant","in":"header","required":false,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Properties"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/Wallet"}}}}},"security":[{"oauth2-client":[]},{"oauth2":["ROLE_SU","ROLE_WALLET"]}]}},"/wallet-api/api/reward/{reward}":{"get":{"tags":["rewards"],"description":"Get reward by id.","operationId":"getReward","parameters":[{"name":"reward","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"x-tenant","in":"header","required":false,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/Reward"}}}}},"security":[{"oauth2-client":[]},{"oauth2":["ROLE_SU","ROLE_REWARDS"]}]},"put":{"tags":["rewards"],"description":"Update reward by id.","operationId":"updateReward","parameters":[{"name":"reward","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"x-tenant","in":"header","required":false,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RewardDto"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/Reward"}}}}},"security":[{"oauth2-client":[]},{"oauth2":["ROLE_SU","ROLE_REWARDS"]}]},"delete":{"tags":["rewards"],"description":"Delete reward by id.","operationId":"deleteReward","parameters":[{"name":"reward","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"x-tenant","in":"header","required":false,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/Reward"}}}}},"security":[{"oauth2-client":[]},{"oauth2":["ROLE_SU","ROLE_REWARDS"]}]}},"/wallet-api/api/wallet/{wallet}/voucher":{"post":{"tags":["voucher"],"description":"Use voucher on specific wallet","operationId":"useVoucher","parameters":[{"name":"wallet","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"x-tenant","in":"header","required":false,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UseVoucherRequest_OperationScope"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/UseVoucherResponse_OperationScope"}}}}},"security":[{"oauth2-client":[]},{"oauth2":["ROLE_SU","ROLE_WALLET","ROLE_WALLET_VOUCHER"]}]}},"/wallet-api/api/wallet/{wallet}/operation":{"post":{"tags":["operation"],"description":"New operation (usage of collected points)","operationId":"addOperation","parameters":[{"name":"wallet","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"x-tenant","in":"header","required":false,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateOperationRequest_OperationScope"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/CreateOperationResponse_OperationScope"}}}}},"security":[{"oauth2-client":[]},{"oauth2":["ROLE_SU","ROLE_WALLET","ROLE_WALLET_OP"]}]},"delete":{"tags":["operation"],"description":"Operation rollback (points are returned to batches they were collected from).","operationId":"rollbackOperation","parameters":[{"name":"wallet","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"x-tenant","in":"header","required":false,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"string","format":"uuid"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/Wallet_OperationScope"}}}}},"security":[{"oauth2-client":[]},{"oauth2":["ROLE_SU","ROLE_WALLET","ROLE_WALLET_OP"]}]}},"/wallet-api/api/wallet/{wallet}/batch":{"post":{"tags":["batch"],"description":"Create and add new batch of points. Batch can have expiration date and price for which points were bought..","operationId":"addBatch","parameters":[{"name":"wallet","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"x-tenant","in":"header","required":false,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateBatchRequest_BatchScope"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/Batch_BatchScope"}}}}},"security":[{"oauth2-client":[]},{"oauth2":["ROLE_SU","ROLE_WALLET","ROLE_WALLET_BATCH"]}]}},"/wallet-api/api/wallet/my/voucher":{"post":{"tags":["voucher"],"description":"Use voucher on logged user wallet","operationId":"useVoucherOnMyWallet","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UseVoucherRequest_OperationScope"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/UseVoucherResponse_OperationScope"}}}}},"security":[{"oauth2":[]}]}},"/loyalty-api/api/my/voucher":{"post":{"tags":["voucher"],"description":"Use voucher on logged user wallet","operationId":"useVoucherOnMyWallet_1","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UseVoucherRequest_OperationScope"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/UseVoucherResponse_OperationScope"}}}}},"security":[{"oauth2":[]}]}},"/wallet-api/api/voucher":{"post":{"tags":["voucher"],"description":"Create new voucher. Expiration date for voucher can be provided (it also applies to batch of points from that voucher). Additionaly points can last for specified number of days after voucher usage.","operationId":"createVoucher","parameters":[{"name":"x-tenant","in":"header","required":false,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateVoucherRequest_Visible"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/Voucher_Visible"}}}}},"security":[{"oauth2-client":[]},{"oauth2":["ROLE_SU","ROLE_WALLET","ROLE_WALLET_VOUCHER"]}]}},"/wallet-api/api/reward":{"post":{"tags":["rewards"],"description":"Insert reward by id.","operationId":"insertReward","parameters":[{"name":"x-tenant","in":"header","required":false,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RewardDto"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/Reward"}}}}},"security":[{"oauth2-client":[]},{"oauth2":["ROLE_SU","ROLE_REWARDS"]}]}},"/wallet-api/api/wallet/my":{"get":{"tags":["wallet"],"description":"Get wallet for logged user. If it is not created - get 404.","operationId":"getMyWallet","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/Wallet_Visible"}}}}},"security":[{"oauth2":[]}]},"post":{"tags":["wallet"],"description":"Create wallet for logged user. If wallet is already there - nothing happens.","operationId":"createMyWallet","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/Wallet_Visible"}}}}},"security":[{"oauth2":[]}]}},"/wallet-api/api/my/wallet":{"get":{"tags":["wallet"],"description":"Get wallet for logged user. If it is not created - get 404.","operationId":"getMyWallet_1","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/Wallet_Visible"}}}}},"security":[{"oauth2":[]}]},"post":{"tags":["wallet"],"description":"Create wallet for logged user. If wallet is already there - nothing happens.","operationId":"createMyWallet_1","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/Wallet_Visible"}}}}},"security":[{"oauth2":[]}]}},"/wallet-api/api/voucher/{voucher}":{"get":{"tags":["voucher"],"description":"Get voucher details.","operationId":"getVoucher","parameters":[{"name":"voucher","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"x-tenant","in":"header","required":false,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/VoucherDto_Visible"}}}}},"security":[{"oauth2-client":[]},{"oauth2":["ROLE_SU","ROLE_WALLET","ROLE_WALLET_VOUCHER"]}]}},"/wallet-api/api/rewards":{"get":{"tags":["rewards"],"description":"Get rewards (supports pagination).","operationId":"getRewards","parameters":[{"name":"filter","in":"query","required":true,"schema":{"$ref":"#/components/schemas/RewardsFilter"}},{"name":"x-tenant","in":"header","required":false,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/StreamingResponseBody"}}}}},"security":[{"oauth2":[]}]}},"/wallet-api/api/report/wallets":{"get":{"tags":["wallet","report"],"description":"Wallets report.","operationId":"walletsReport","parameters":[{"name":"x-tenant","in":"header","required":false,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/StreamingResponseBody"}}}}},"security":[{"oauth2-client":[]},{"oauth2":["ROLE_SU","ROLE_WALLET"]}]}},"/wallet-api/api/report/vouchers":{"get":{"tags":["voucher","report"],"description":"Vouchers in period.","operationId":"vouchers","parameters":[{"name":"from","in":"query","required":true,"schema":{"type":"string","format":"date-time"}},{"name":"to","in":"query","required":true,"schema":{"type":"string","format":"date-time"}},{"name":"x-tenant","in":"header","required":false,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/StreamingResponseBody"}}}}},"security":[{"oauth2-client":[]},{"oauth2":["ROLE_SU","ROLE_WALLET"]}]}},"/wallet-api/api/report/expiring":{"get":{"tags":["batch","report"],"description":"Points expiring in near future.","operationId":"expiringPoints","parameters":[{"name":"to","in":"query","required":true,"schema":{"type":"string","format":"date-time"}},{"name":"x-tenant","in":"header","required":false,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/StreamingResponseBody"}}}}},"security":[{"oauth2-client":[]},{"oauth2":["ROLE_SU","ROLE_WALLET"]}]}},"/wallet-api/api/report/expiredPaidBatches":{"get":{"tags":["batch","report"],"description":"Expired paid batches in period.","operationId":"expiredPaidBatches","parameters":[{"name":"from","in":"query","required":true,"schema":{"type":"string","format":"date-time"}},{"name":"to","in":"query","required":true,"schema":{"type":"string","format":"date-time"}},{"name":"x-tenant","in":"header","required":false,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/StreamingResponseBody"}}}}},"security":[{"oauth2-client":[]},{"oauth2":["ROLE_SU","ROLE_WALLET"]}]}},"/wallet-api/api/my/operations":{"get":{"tags":["user"],"description":"Get operations for my wallet. This endpoint is compatible with React AdminOnRest framework to provide DataSource.","operationId":"getMyOperations","parameters":[{"name":"list","in":"query","required":true,"schema":{"$ref":"#/components/schemas/MyOperationsFilter"}}],"responses":{"default":{"description":"default response","headers":{"x-total-count":{"description":"Total count of items matching query (without pagination applied)","style":"simple","schema":{"type":"string"}}},"content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/OperationDto"}}}}}},"security":[{"oauth2":[]}]}},"/wallet-api/api/my/batches":{"get":{"tags":["user"],"description":"Get active batches for my wallet. This endpoint is compatible with React AdminOnRest framework to provide DataSource.","operationId":"getMyBatches","parameters":[{"name":"list","in":"query","required":true,"schema":{"$ref":"#/components/schemas/MyBatchesFilter"}}],"responses":{"default":{"description":"default response","headers":{"x-total-count":{"description":"Total count of items matching query (without pagination applied)","style":"simple","schema":{"type":"string"}}},"content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/BatchDto"}}}}}},"security":[{"oauth2":[]}]}},"/wallet-api/api/aggregated-report":{"get":{"tags":["report"],"description":"Get aggregated report. This endpoint is compatible with React AdminOnRest framework to provide DataSource.","operationId":"getAggregatedReport","parameters":[{"name":"list","in":"query","required":true,"schema":{"$ref":"#/components/schemas/AggregateFilter"}}],"responses":{"default":{"description":"default response","headers":{"x-total-count":{"description":"Total count of items matching query (without pagination applied)","style":"simple","schema":{"type":"string"}}},"content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/BatchDto"}}}}}},"security":[{"oauth2-client":[]},{"oauth2":["ROLE_SU","ROLE_WALLET"]}]}}},"components":{"schemas":{"Properties":{"type":"object","additionalProperties":{"type":"string"}},"Wallet":{"type":"object","properties":{"tenant":{"type":"string","format":"uuid"},"id":{"type":"string","format":"uuid"},"amount":{"type":"number"},"created":{"type":"string","format":"date-time"},"lastOperation":{"type":"string","format":"date-time"},"lastBatch":{"type":"string","format":"date-time"},"extra":{"type":"object","additionalProperties":{"type":"string"}}},"required":["amount","id","tenant"]},"Details":{"type":"object","properties":{"literals":{"type":"object","additionalProperties":{"type":"string"},"description":"Contains literals as hashmap (name='product name', description='product description'). Values which keys match 'some-name-LANGUAGE' are treated as translations and overwrite 'some-name' entry."},"media":{"type":"array","description":"Media library with images and other external files. Files should be placed in some CDN.","items":{"$ref":"#/components/schemas/Media"},"maxItems":64,"minItems":0}}},"Media":{"type":"object","properties":{"url":{"type":"string","maxLength":256,"minLength":0},"name":{"type":"string","maxLength":64,"minLength":1,"pattern":"[\\p{L}\\p{N}_.-]+"}},"required":["name"]},"RewardDto":{"type":"object","properties":{"code":{"type":"string","maxLength":32,"minLength":1},"name":{"type":"string","maxLength":128,"minLength":3,"pattern":"[\\p{L}\\p{N}_. -]+"},"visible":{"type":"boolean","description":"Visible in catalog and allowed to exchange for points by users themselves"},"details":{"$ref":"#/components/schemas/Details"},"availableFrom":{"type":"string","format":"date-time"},"availableTo":{"type":"string","format":"date-time"},"points":{"type":"number","minimum":0},"maxCount":{"type":"integer","format":"int32","minimum":1},"priority":{"type":"integer","format":"int32","minimum":0},"product":{"type":"string"},"productConfig":{},"tags":{"type":"array","items":{"type":"string"}},"extra":{"type":"object","additionalProperties":{"type":"string"}}},"required":["name","points","product"]},"Reward":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"code":{"type":"string","maxLength":32,"minLength":1},"name":{"type":"string","maxLength":128,"minLength":3,"pattern":"[\\p{L}\\p{N}_. -]+"},"visible":{"type":"boolean","description":"Visible in catalog and allowed to exchange for points by users themselves"},"details":{"$ref":"#/components/schemas/Details"},"availableFrom":{"type":"string","format":"date-time"},"availableTo":{"type":"string","format":"date-time"},"points":{"type":"number","minimum":0},"maxCount":{"type":"integer","format":"int32","minimum":1},"priority":{"type":"integer","format":"int32","minimum":0},"product":{"type":"string"},"productConfig":{},"tags":{"type":"array","items":{"type":"string"}},"extra":{"type":"object","additionalProperties":{"type":"string"}}},"required":["id","name","points","product"]},"UseVoucherRequest_OperationScope":{"type":"object","properties":{"voucher":{"type":"string","format":"uuid"}},"required":["voucher"]},"UseVoucherResponse_OperationScope":{"type":"object","properties":{"voucher":{"type":"string","format":"uuid"},"wallet":{"$ref":"#/components/schemas/Wallet_OperationScope"},"batch":{"type":"string","format":"uuid"},"expiring":{"type":"string","format":"date-time"}}},"Wallet_OperationScope":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"amount":{"type":"number"},"created":{"type":"string","format":"date-time"},"lastOperation":{"type":"string","format":"date-time"},"lastBatch":{"type":"string","format":"date-time"}},"required":["amount","id"]},"CreateOperationRequest_OperationScope":{"type":"object","properties":{"amount":{"type":"number","minimum":0.0},"order":{"type":"string","maxLength":64,"minLength":0},"extra":{"type":"object","additionalProperties":{"type":"string"}}},"required":["amount"]},"Properties_OperationScope":{"type":"object","additionalProperties":{"type":"string"}},"CreateOperationResponse_OperationScope":{"type":"object","properties":{"operation":{"$ref":"#/components/schemas/Operation_OperationScope"},"batches":{"type":"array","items":{"$ref":"#/components/schemas/OperationBatch_OperationScope"}}}},"OperationBatch_OperationScope":{"type":"object","properties":{"batch":{"type":"string","format":"uuid"},"amount":{"type":"number"}},"required":["amount","batch"]},"Operation_OperationScope":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"wallet":{"type":"string","format":"uuid"},"amount":{"type":"number"},"created":{"type":"string","format":"date-time"},"extra":{"$ref":"#/components/schemas/Properties_OperationScope"},"order":{"type":"string"},"reverted":{"type":"boolean"}}},"CreateBatchRequest_BatchScope":{"type":"object","properties":{"amount":{"type":"number","minimum":0.0},"price":{"type":"number","minimum":0.0},"expires":{"type":"string","format":"date-time"},"order":{"type":"string","maxLength":64,"minLength":0},"extra":{"type":"object","additionalProperties":{"type":"string"}}},"required":["amount"]},"Properties_BatchScope":{"type":"object","additionalProperties":{"type":"string"}},"Batch_BatchScope":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"wallet":{"type":"string","format":"uuid"},"created":{"type":"string","format":"date-time"},"expires":{"type":"string","format":"date-time"},"amount":{"type":"number"},"available":{"type":"number"},"price":{"type":"number"},"voucher":{"type":"string","format":"uuid"},"extra":{"$ref":"#/components/schemas/Properties_BatchScope"}},"required":["amount","available","created","wallet"]},"CreateVoucherRequest_Visible":{"type":"object","properties":{"amount":{"type":"number","minimum":0.0},"price":{"type":"number","minimum":0.0},"expires":{"type":"string","format":"date-time"},"pointsExpireInDays":{"type":"integer","format":"int32","minimum":1},"forWallet":{"type":"string","format":"uuid"},"extra":{"type":"object","additionalProperties":{"type":"string"}}},"required":["amount"]},"Voucher_Visible":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"created":{"type":"string","format":"date-time"},"expires":{"type":"string","format":"date-time"},"pointsExpireInDays":{"type":"integer","format":"int32","minimum":1},"forWallet":{"type":"string","format":"uuid"},"amount":{"type":"number","minimum":0.0},"price":{"type":"number","minimum":0.0},"used":{"type":"boolean"}},"required":["amount","created","id"]},"Wallet_Visible":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"amount":{"type":"number"},"created":{"type":"string","format":"date-time"},"lastOperation":{"type":"string","format":"date-time"},"lastBatch":{"type":"string","format":"date-time"}},"required":["amount","id"]},"VoucherDto_Visible":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"created":{"type":"string","format":"date-time"},"expires":{"type":"string","format":"date-time"},"pointsExpireInDays":{"type":"integer","format":"int32"},"forWallet":{"type":"string","format":"uuid"},"batch":{"type":"string","format":"uuid"},"amount":{"type":"number"},"price":{"type":"number"},"used":{"type":"boolean"}}},"RewardsFilter":{"type":"object","properties":{"_sort":{"type":"array","description":"Order by columns","items":{"type":"string","pattern":"[a-zA-Z0-9._-]+"},"maxItems":16,"minItems":0},"_order":{"type":"array","description":"Order directions (ASC/DESC)","items":{"type":"string","enum":["ASC","DESC"]},"maxItems":16,"minItems":0},"_start":{"type":"integer","format":"int32","description":"Page start","minimum":0},"_end":{"type":"integer","format":"int32","description":"Page end. In some cases it is possible to provide -1 to export all records without pagination.","minimum":-1}}},"StreamingResponseBody":{},"OperationDto":{"type":"object","properties":{"created":{"type":"string","format":"date-time"},"amount":{"type":"number"},"order":{"type":"string"},"reverted":{"type":"boolean"}}},"MyOperationsFilter":{"type":"object","properties":{"_sort":{"type":"array","description":"Order by columns","items":{"type":"string","pattern":"[a-zA-Z0-9._-]+"},"maxItems":16,"minItems":0},"_order":{"type":"array","description":"Order directions (ASC/DESC)","items":{"type":"string","enum":["ASC","DESC"]},"maxItems":16,"minItems":0},"_start":{"type":"integer","format":"int32","description":"Page start","minimum":0},"_end":{"type":"integer","format":"int32","description":"Page end. In some cases it is possible to provide -1 to export all records without pagination.","minimum":-1}}},"BatchDto":{"type":"object","properties":{"created":{"type":"string","format":"date-time"},"expires":{"type":"string","format":"date-time"},"total":{"type":"number"},"used":{"type":"number"},"price":{"type":"number"}}},"MyBatchesFilter":{"type":"object","properties":{"_sort":{"type":"array","description":"Order by columns","items":{"type":"string","pattern":"[a-zA-Z0-9._-]+"},"maxItems":16,"minItems":0},"_order":{"type":"array","description":"Order directions (ASC/DESC)","items":{"type":"string","enum":["ASC","DESC"]},"maxItems":16,"minItems":0},"_start":{"type":"integer","format":"int32","description":"Page start","minimum":0},"_end":{"type":"integer","format":"int32","description":"Page end. In some cases it is possible to provide -1 to export all records without pagination.","minimum":-1}}},"AggregateFilter":{"type":"object","properties":{"_sort":{"type":"array","description":"Order by columns","items":{"type":"string","pattern":"[a-zA-Z0-9._-]+"},"maxItems":16,"minItems":0},"_order":{"type":"array","description":"Order directions (ASC/DESC)","items":{"type":"string","enum":["ASC","DESC"]},"maxItems":16,"minItems":0},"_start":{"type":"integer","format":"int32","description":"Page start","minimum":0},"_end":{"type":"integer","format":"int32","description":"Page end. In some cases it is possible to provide -1 to export all records without pagination.","minimum":-1},"fromDate":{"type":"string","format":"date-time"},"toDate":{"type":"string","format":"date-time"}},"required":["fromDate","toDate"]}},"securitySchemes":{"oauth2":{"type":"oauth2","description":"Standard token auth","in":"header","bearerFormat":"jwt"},"oauth2-client":{"type":"oauth2","description":"Internal authorization between microservices","in":"header","bearerFormat":"jwt"}}}}