openapi: 3.2.0 info: title: Fenergo Nebula Review Command Product Rules API description: Review Command API is part of FenX eco-system to manage EntityRule and Review Instances. All the operations require valid access token obtained from Identity service. version: '1.0' servers: - url: /reviewcommand security: - Bearer: [] tags: - name: ProductRules paths: /api/product-rule: post: tags: - ProductRules summary: Create Product Rule description: 'Creates a new Product Rule with a first draft version. The new version initializes with the provided data, has the default status of draft and the author as the only required signee. Required permissions: Following permissions are required: ReviewJourneySchedulingEdit' operationId: CreateProductRule parameters: - name: X-TENANT-ID in: header description: The UiD of the tenant representing organization required: true schema: type: string example: b11f8be3-f29b-4959-8964-956d4af7c468 requestBody: content: application/json: schema: allOf: - $ref: '#/components/schemas/ProductRuleDtoServiceRequest' responses: '202': description: Success. Product Rule created content: application/json: schema: $ref: '#/components/schemas/ProductRuleDtoServiceResponse' '400': description: Bad request. The request has missing/invalid values content: application/json: schema: $ref: '#/components/schemas/ValidationErrorModelListServiceResponse' '401': description: User is not authorized to perform this request content: application/json: example: message: Unauthorized '403': description: Access to resource is forbidden. content: application/json: schema: $ref: '#/components/schemas/ObjectServiceResponse' example: data: {} messages: - message: 'Access denied. Following permissions are required: Permission1, Permission2' type: Forbidden errorCode: Error Code '500': description: Internal server exception. Please, contact your provider. content: application/json: schema: $ref: '#/components/schemas/ObjectServiceResponse' example: data: null messages: - message: Internal server exception. Please, contact your provider. type: Error errorCode: INTERNAL_SERVER_ERROR '410': description: Endpoint marked as deprecated was terminated. This response will be present only if the endpoint was marked as deprecated and has reached the sunset date. During the deprecation period, the API will include additional 'sunset' and 'deprecation' headers. content: application/json: schema: $ref: '#/components/schemas/StringServiceResponse' example: data: null messages: - message: This endpoint is obsolete and was terminated on yyyy-MM-dd type: Error errorCode: OBSOLETE_ENDPOINT /api/product-rule/{productRuleId}: post: tags: - ProductRules summary: Create product rule version description: 'Creates a new version of an existing product rule. Assigns the next available version number. The new version initializes with the provided data, has the default status of draft and the author as the only required signee. Required permissions: Following permissions are required: ReviewJourneySchedulingEdit' operationId: CreateProductRuleVersion parameters: - name: productRuleId in: path description: Product rule id required: true schema: type: string format: uuid - name: X-TENANT-ID in: header description: The UiD of the tenant representing organization required: true schema: type: string example: b11f8be3-f29b-4959-8964-956d4af7c468 requestBody: description: Create product rule version request content: application/json: schema: allOf: - $ref: '#/components/schemas/ProductRuleDtoServiceRequest' responses: '202': description: Success. product rule version created content: application/json: schema: $ref: '#/components/schemas/ProductRuleDtoServiceResponse' '404': description: Resource not found content: application/json: schema: $ref: '#/components/schemas/ObjectServiceResponse' example: data: {} messages: - message: Not Found. Review schema with given id does not exist type: Error errorCode: Error Code '400': description: Bad request. The request has missing/invalid values content: application/json: schema: $ref: '#/components/schemas/ValidationErrorModelListServiceResponse' '401': description: User is not authorized to perform this request content: application/json: example: message: Unauthorized '403': description: Access to resource is forbidden. content: application/json: schema: $ref: '#/components/schemas/ObjectServiceResponse' example: data: {} messages: - message: 'Access denied. Following permissions are required: Permission1, Permission2' type: Forbidden errorCode: Error Code '500': description: Internal server exception. Please, contact your provider. content: application/json: schema: $ref: '#/components/schemas/ObjectServiceResponse' example: data: null messages: - message: Internal server exception. Please, contact your provider. type: Error errorCode: INTERNAL_SERVER_ERROR '410': description: Endpoint marked as deprecated was terminated. This response will be present only if the endpoint was marked as deprecated and has reached the sunset date. During the deprecation period, the API will include additional 'sunset' and 'deprecation' headers. content: application/json: schema: $ref: '#/components/schemas/StringServiceResponse' example: data: null messages: - message: This endpoint is obsolete and was terminated on yyyy-MM-dd type: Error errorCode: OBSOLETE_ENDPOINT delete: tags: - ProductRules summary: Delete Product Rule and all its versions description: 'Deletes an existing Product Rule and all its versions. Required permissions: Following permissions are required: ReviewJourneySchedulingDelete' operationId: DeleteProductRule parameters: - name: productRuleId in: path description: Product Rule Id required: true schema: type: string format: uuid - name: X-TENANT-ID in: header description: The UiD of the tenant representing organization required: true schema: type: string example: b11f8be3-f29b-4959-8964-956d4af7c468 responses: '202': description: Success. Product Rule deleted '404': description: Resource not found content: application/json: schema: $ref: '#/components/schemas/ObjectServiceResponse' example: data: {} messages: - message: Not Found. Product Rule with given id does not exist type: Error errorCode: Error Code '400': description: Bad request. The request has missing/invalid values content: application/json: schema: $ref: '#/components/schemas/ValidationErrorModelListServiceResponse' '401': description: User is not authorized to perform this request content: application/json: example: message: Unauthorized '403': description: Access to resource is forbidden. content: application/json: schema: $ref: '#/components/schemas/ObjectServiceResponse' example: data: {} messages: - message: 'Access denied. Following permissions are required: Permission1, Permission2' type: Forbidden errorCode: Error Code '500': description: Internal server exception. Please, contact your provider. content: application/json: schema: $ref: '#/components/schemas/ObjectServiceResponse' example: data: null messages: - message: Internal server exception. Please, contact your provider. type: Error errorCode: INTERNAL_SERVER_ERROR '410': description: Endpoint marked as deprecated was terminated. This response will be present only if the endpoint was marked as deprecated and has reached the sunset date. During the deprecation period, the API will include additional 'sunset' and 'deprecation' headers. content: application/json: schema: $ref: '#/components/schemas/StringServiceResponse' example: data: null messages: - message: This endpoint is obsolete and was terminated on yyyy-MM-dd type: Error errorCode: OBSOLETE_ENDPOINT /api/product-rule/{productRuleId}/version/{versionNumber}: put: tags: - ProductRules summary: Update Product Rule version description: 'Updates an existing Product Rule version. Only draft and rejected versions are allowed to be updated. Required permissions: Following permissions are required: ReviewJourneySchedulingEdit' operationId: UpdateProductRuleVersion parameters: - name: productRuleId in: path description: Product Rule id required: true schema: type: string format: uuid - name: versionNumber in: path description: Version number to update required: true schema: type: integer format: int32 - name: X-TENANT-ID in: header description: The UiD of the tenant representing organization required: true schema: type: string example: b11f8be3-f29b-4959-8964-956d4af7c468 requestBody: description: Update Product Rule version request content: application/json: schema: allOf: - $ref: '#/components/schemas/UpdateProductRuleVersionDtoServiceRequest' responses: '202': description: Success. Product Rule version updated '404': description: Resource not found content: application/json: schema: $ref: '#/components/schemas/ObjectServiceResponse' example: data: {} messages: - message: Not Found. Product Rule with given id does not exist type: Error errorCode: Error Code '409': description: Conflict saving changes in expected version content: application/json: schema: $ref: '#/components/schemas/ObjectServiceResponse' example: data: {} messages: - message: There are conflicts that cannot be resolved automatically, get latest and apply your changes type: Error errorCode: CONFLICT '400': description: Bad request. The request has missing/invalid values content: application/json: schema: $ref: '#/components/schemas/ValidationErrorModelListServiceResponse' '401': description: User is not authorized to perform this request content: application/json: example: message: Unauthorized '403': description: Access to resource is forbidden. content: application/json: schema: $ref: '#/components/schemas/ObjectServiceResponse' example: data: {} messages: - message: 'Access denied. Following permissions are required: Permission1, Permission2' type: Forbidden errorCode: Error Code '500': description: Internal server exception. Please, contact your provider. content: application/json: schema: $ref: '#/components/schemas/ObjectServiceResponse' example: data: null messages: - message: Internal server exception. Please, contact your provider. type: Error errorCode: INTERNAL_SERVER_ERROR '410': description: Endpoint marked as deprecated was terminated. This response will be present only if the endpoint was marked as deprecated and has reached the sunset date. During the deprecation period, the API will include additional 'sunset' and 'deprecation' headers. content: application/json: schema: $ref: '#/components/schemas/StringServiceResponse' example: data: null messages: - message: This endpoint is obsolete and was terminated on yyyy-MM-dd type: Error errorCode: OBSOLETE_ENDPOINT delete: tags: - ProductRules summary: Delete Product Rule version description: 'Deletes the selected version of an existing Product Rule. If the version is the last one, then the version number of it will become the next available one for the model. Otherwise, the version number will be flagged as deleted and become unavailable. Required permissions: Following permissions are required: ReviewJourneySchedulingDelete' operationId: DeleteProductRuleVersion parameters: - name: productRuleId in: path description: Product Rule Id required: true schema: type: string format: uuid - name: versionNumber in: path description: Version number to delete required: true schema: type: integer format: int32 - name: X-TENANT-ID in: header description: The UiD of the tenant representing organization required: true schema: type: string example: b11f8be3-f29b-4959-8964-956d4af7c468 responses: '202': description: Success. Product Rule version deleted '404': description: Resource not found content: application/json: schema: $ref: '#/components/schemas/ObjectServiceResponse' example: data: {} messages: - message: Not Found. Product Rule with given id does not exist type: Error errorCode: Error Code '400': description: Bad request. The request has missing/invalid values content: application/json: schema: $ref: '#/components/schemas/ValidationErrorModelListServiceResponse' '401': description: User is not authorized to perform this request content: application/json: example: message: Unauthorized '403': description: Access to resource is forbidden. content: application/json: schema: $ref: '#/components/schemas/ObjectServiceResponse' example: data: {} messages: - message: 'Access denied. Following permissions are required: Permission1, Permission2' type: Forbidden errorCode: Error Code '500': description: Internal server exception. Please, contact your provider. content: application/json: schema: $ref: '#/components/schemas/ObjectServiceResponse' example: data: null messages: - message: Internal server exception. Please, contact your provider. type: Error errorCode: INTERNAL_SERVER_ERROR '410': description: Endpoint marked as deprecated was terminated. This response will be present only if the endpoint was marked as deprecated and has reached the sunset date. During the deprecation period, the API will include additional 'sunset' and 'deprecation' headers. content: application/json: schema: $ref: '#/components/schemas/StringServiceResponse' example: data: null messages: - message: This endpoint is obsolete and was terminated on yyyy-MM-dd type: Error errorCode: OBSOLETE_ENDPOINT /api/product-rule/{productRuleId}/version/{versionNumber}/clone: post: tags: - ProductRules summary: Clone Product Rule version description: 'Clones the selected version of an existing Product Rule and creates a new model with a single version. The new version contains all the data of the original selected one, will have the default status of draft and the author as the only required signee. Returns the id of the cloned data group version. Required permissions: Following permissions are required: ReviewJourneySchedulingEdit' operationId: CloneProductRuleVersion parameters: - name: productRuleId in: path description: Product Rule Id required: true schema: type: string format: uuid - name: versionNumber in: path description: Version number to clone required: true schema: type: integer format: int32 - name: X-TENANT-ID in: header description: The UiD of the tenant representing organization required: true schema: type: string example: b11f8be3-f29b-4959-8964-956d4af7c468 requestBody: description: Clone Product Rule version request content: application/json: schema: allOf: - $ref: '#/components/schemas/CloneProductRuleVersionDtoServiceRequest' responses: '202': description: Success. Product Rule version cloned content: application/json: schema: $ref: '#/components/schemas/CloneProductRuleVersionResponseServiceResponse' '404': description: Resource not found content: application/json: schema: $ref: '#/components/schemas/ObjectServiceResponse' example: data: {} messages: - message: Not Found. Product Rule with given id does not exist type: Error errorCode: Error Code '400': description: Bad request. The request has missing/invalid values content: application/json: schema: $ref: '#/components/schemas/ValidationErrorModelListServiceResponse' '401': description: User is not authorized to perform this request content: application/json: example: message: Unauthorized '403': description: Access to resource is forbidden. content: application/json: schema: $ref: '#/components/schemas/ObjectServiceResponse' example: data: {} messages: - message: 'Access denied. Following permissions are required: Permission1, Permission2' type: Forbidden errorCode: Error Code '500': description: Internal server exception. Please, contact your provider. content: application/json: schema: $ref: '#/components/schemas/ObjectServiceResponse' example: data: null messages: - message: Internal server exception. Please, contact your provider. type: Error errorCode: INTERNAL_SERVER_ERROR '410': description: Endpoint marked as deprecated was terminated. This response will be present only if the endpoint was marked as deprecated and has reached the sunset date. During the deprecation period, the API will include additional 'sunset' and 'deprecation' headers. content: application/json: schema: $ref: '#/components/schemas/StringServiceResponse' example: data: null messages: - message: This endpoint is obsolete and was terminated on yyyy-MM-dd type: Error errorCode: OBSOLETE_ENDPOINT /api/product-rule/{productRuleId}/version/{versionNumber}/submit-for-approval: put: tags: - ProductRules summary: Submit Product Rule version for approval description: 'Submits the selected version of an existing Product Rule for approval. Required permissions: Following permissions are required: ReviewJourneySchedulingEdit' operationId: SubmitProductRuleVersion parameters: - name: productRuleId in: path description: Product Rule Id required: true schema: type: string format: uuid - name: versionNumber in: path description: Version number to submit required: true schema: type: integer format: int32 - name: X-TENANT-ID in: header description: The UiD of the tenant representing organization required: true schema: type: string example: b11f8be3-f29b-4959-8964-956d4af7c468 responses: '202': description: Success. Product Rule version submitted '404': description: Resource not found content: application/json: schema: $ref: '#/components/schemas/ObjectServiceResponse' example: data: {} messages: - message: Not Found. Product Rule with given id does not exist type: Error errorCode: Error Code '400': description: Bad request. The request has missing/invalid values content: application/json: schema: $ref: '#/components/schemas/ValidationErrorModelListServiceResponse' '401': description: User is not authorized to perform this request content: application/json: example: message: Unauthorized '403': description: Access to resource is forbidden. content: application/json: schema: $ref: '#/components/schemas/ObjectServiceResponse' example: data: {} messages: - message: 'Access denied. Following permissions are required: Permission1, Permission2' type: Forbidden errorCode: Error Code '500': description: Internal server exception. Please, contact your provider. content: application/json: schema: $ref: '#/components/schemas/ObjectServiceResponse' example: data: null messages: - message: Internal server exception. Please, contact your provider. type: Error errorCode: INTERNAL_SERVER_ERROR '410': description: Endpoint marked as deprecated was terminated. This response will be present only if the endpoint was marked as deprecated and has reached the sunset date. During the deprecation period, the API will include additional 'sunset' and 'deprecation' headers. content: application/json: schema: $ref: '#/components/schemas/StringServiceResponse' example: data: null messages: - message: This endpoint is obsolete and was terminated on yyyy-MM-dd type: Error errorCode: OBSOLETE_ENDPOINT /api/product-rule/{productRuleId}/version/{versionNumber}/sign: put: tags: - ProductRules summary: Sign Product Rule version description: 'Signs the selected version of an existing Product Rule and changes the version status accordingly to the action (Approve/Reject). Required permissions: Following permissions are required: ReviewJourneySchedulingApprove' operationId: SignProductRuleVersion parameters: - name: productRuleId in: path description: Product Rule Id required: true schema: type: string format: uuid - name: versionNumber in: path description: Version number to sign required: true schema: type: integer format: int32 - name: X-TENANT-ID in: header description: The UiD of the tenant representing organization required: true schema: type: string example: b11f8be3-f29b-4959-8964-956d4af7c468 requestBody: description: Sign Product Rule version request content: application/json: schema: allOf: - $ref: '#/components/schemas/ApproveActionServiceRequest' responses: '202': description: Success. Product Rule version signed content: application/json: schema: $ref: '#/components/schemas/ProductRuleVersionSignResponseServiceResponse' '404': description: Resource not found content: application/json: schema: $ref: '#/components/schemas/ObjectServiceResponse' example: data: {} messages: - message: Not Found. Product Rule with given id does not exist type: Error errorCode: Error Code '400': description: Bad request. The request has missing/invalid values content: application/json: schema: $ref: '#/components/schemas/ValidationErrorModelListServiceResponse' '401': description: User is not authorized to perform this request content: application/json: example: message: Unauthorized '403': description: Access to resource is forbidden. content: application/json: schema: $ref: '#/components/schemas/ObjectServiceResponse' example: data: {} messages: - message: 'Access denied. Following permissions are required: Permission1, Permission2' type: Forbidden errorCode: Error Code '500': description: Internal server exception. Please, contact your provider. content: application/json: schema: $ref: '#/components/schemas/ObjectServiceResponse' example: data: null messages: - message: Internal server exception. Please, contact your provider. type: Error errorCode: INTERNAL_SERVER_ERROR '410': description: Endpoint marked as deprecated was terminated. This response will be present only if the endpoint was marked as deprecated and has reached the sunset date. During the deprecation period, the API will include additional 'sunset' and 'deprecation' headers. content: application/json: schema: $ref: '#/components/schemas/StringServiceResponse' example: data: null messages: - message: This endpoint is obsolete and was terminated on yyyy-MM-dd type: Error errorCode: OBSOLETE_ENDPOINT /api/product-rule/{productRuleId}/version/{versionNumber}/archive: put: tags: - ProductRules summary: Archive Product Rule version description: 'Archives the selected version of an existing Product Rule. Required permissions: Following permissions are required: ReviewJourneySchedulingArchive' operationId: ArchiveProductRuleVersion parameters: - name: productRuleId in: path description: Product Rule Id required: true schema: type: string format: uuid - name: versionNumber in: path description: Version number to archive required: true schema: type: integer format: int32 - name: X-TENANT-ID in: header description: The UiD of the tenant representing organization required: true schema: type: string example: b11f8be3-f29b-4959-8964-956d4af7c468 responses: '202': description: Success. Product Rule version archived '400': description: Bad request. The request has missing/invalid values content: application/json: schema: $ref: '#/components/schemas/ValidationErrorModelListServiceResponse' '404': description: Resource not found content: application/json: schema: $ref: '#/components/schemas/ObjectServiceResponse' example: data: {} messages: - message: Not Found. Product Rule with given id does not exist type: Error errorCode: Error Code '401': description: User is not authorized to perform this request content: application/json: example: message: Unauthorized '403': description: Access to resource is forbidden. content: application/json: schema: $ref: '#/components/schemas/ObjectServiceResponse' example: data: {} messages: - message: 'Access denied. Following permissions are required: Permission1, Permission2' type: Forbidden errorCode: Error Code '500': description: Internal server exception. Please, contact your provider. content: application/json: schema: $ref: '#/components/schemas/ObjectServiceResponse' example: data: null messages: - message: Internal server exception. Please, contact your provider. type: Error errorCode: INTERNAL_SERVER_ERROR '410': description: Endpoint marked as deprecated was terminated. This response will be present only if the endpoint was marked as deprecated and has reached the sunset date. During the deprecation period, the API will include additional 'sunset' and 'deprecation' headers. content: application/json: schema: $ref: '#/components/schemas/StringServiceResponse' example: data: null messages: - message: This endpoint is obsolete and was terminated on yyyy-MM-dd type: Error errorCode: OBSOLETE_ENDPOINT components: schemas: ProductRuleDto: type: object properties: productRuleId: type: string format: uuid id: type: - string - 'null' format: uuid name: type: - string - 'null' description: type: - string - 'null' journeyType: type: - string - 'null' launchJourneyIn: type: integer format: int32 advanceLaunchBy: type: integer format: int32 conditions: type: - array - 'null' items: $ref: '#/components/schemas/ConditionDto' journeyTypesScope: type: - array - 'null' items: type: string usePolicyDateField: type: boolean policyDateField: type: - string - 'null' versionNumber: type: integer format: int32 effectiveFrom: type: string format: date-time signees: type: - array - 'null' items: $ref: '#/components/schemas/Signee' created: type: string format: date-time status: allOf: - $ref: '#/components/schemas/VersionStatus' additionalProperties: false UpdateProductRuleVersionDtoServiceRequest: type: object properties: data: allOf: - $ref: '#/components/schemas/UpdateProductRuleVersionDto' additionalProperties: false CloneProductRuleVersionResponse: type: object properties: productRuleId: type: string format: uuid additionalProperties: false ProductRuleVersionSignResponse: type: object properties: productRuleId: type: string format: uuid versionNumber: type: integer format: int32 status: allOf: - $ref: '#/components/schemas/VersionStatus' additionalProperties: false Signee: type: object properties: subject: type: - string - 'null' successor: allOf: - $ref: '#/components/schemas/Approver' action: allOf: - $ref: '#/components/schemas/ApproveAction' hasProcessedRequest: type: boolean readOnly: true additionalProperties: false CloneProductRuleVersionDto: type: object properties: name: type: - string - 'null' additionalProperties: false ProductRuleVersionSignResponseServiceResponse: type: object properties: data: allOf: - $ref: '#/components/schemas/ProductRuleVersionSignResponse' messages: type: - array - 'null' items: $ref: '#/components/schemas/ServiceResponseMessage' additionalProperties: false ProductRuleDtoServiceResponse: type: object properties: data: allOf: - $ref: '#/components/schemas/ProductRuleDto' messages: type: - array - 'null' items: $ref: '#/components/schemas/ServiceResponseMessage' additionalProperties: false ConditionDto: required: - logicalOperation - operands type: object properties: id: type: string format: uuid name: type: - string - 'null' description: type: - string - 'null' logicalOperation: minLength: 1 type: string operands: minItems: 1 type: array items: $ref: '#/components/schemas/ConditionDefinitionDto' additionalProperties: false UpdateProductRuleVersionDto: allOf: - $ref: '#/components/schemas/ProductRuleDto' - type: object properties: version: type: integer format: int32 default: -1 additionalProperties: false ValueField: type: object properties: dataSource: type: - string - 'null' field: type: - string - 'null' additionalProperties: false Decision: enum: - Approve - Reject type: string CloneProductRuleVersionResponseServiceResponse: type: object properties: data: allOf: - $ref: '#/components/schemas/CloneProductRuleVersionResponse' messages: type: - array - 'null' items: $ref: '#/components/schemas/ServiceResponseMessage' additionalProperties: false CloneProductRuleVersionDtoServiceRequest: type: object properties: data: allOf: - $ref: '#/components/schemas/CloneProductRuleVersionDto' additionalProperties: false ApproveActionServiceRequest: type: object properties: data: allOf: - $ref: '#/components/schemas/ApproveAction' additionalProperties: false ObjectServiceResponse: type: object properties: data: {} messages: type: - array - 'null' items: $ref: '#/components/schemas/ServiceResponseMessage' additionalProperties: false StringServiceResponse: type: object properties: data: type: - string - 'null' messages: type: - array - 'null' items: $ref: '#/components/schemas/ServiceResponseMessage' additionalProperties: false Approver: type: object properties: subject: type: - string - 'null' successor: allOf: - $ref: '#/components/schemas/Approver' action: allOf: - $ref: '#/components/schemas/ApproveAction' hasProcessedRequest: type: boolean readOnly: true additionalProperties: false ValidationErrorModelListServiceResponse: type: object properties: data: type: - array - 'null' items: $ref: '#/components/schemas/ValidationErrorModel' messages: type: - array - 'null' items: $ref: '#/components/schemas/ServiceResponseMessage' additionalProperties: false example: data: - propertyName: data errorMessage: Data is required attemptedValue: '' errorCode: NotNullValidator messages: - message: Data is required type: Error errorCode: Error Code ConditionDefinitionDto: type: object properties: fieldName: type: - string - 'null' value: type: - array - 'null' items: type: string valueId: type: - array - 'null' items: type: string valueType: type: - string - 'null' dataSource: type: - string - 'null' operation: type: - string - 'null' logicalOperation: type: - string - 'null' operands: type: - array - 'null' items: $ref: '#/components/schemas/ConditionDefinitionDto' valueField: allOf: - $ref: '#/components/schemas/ValueField' additionalProperties: false ValidationErrorModel: type: object properties: propertyName: type: - string - 'null' errorMessage: type: - string - 'null' attemptedValue: {} errorCode: type: - string - 'null' additionalProperties: false VersionStatus: enum: - Draft - Pending - Rejected - Published - Archived - Deleted type: string ProductRuleDtoServiceRequest: type: object properties: data: allOf: - $ref: '#/components/schemas/ProductRuleDto' additionalProperties: false ServiceResponseMessage: type: object properties: message: type: - string - 'null' type: type: - string - 'null' errorCode: type: - string - 'null' additionalProperties: false ApproveAction: type: object properties: comment: type: - string - 'null' decision: allOf: - $ref: '#/components/schemas/Decision' created: type: string format: date-time additionalProperties: false securitySchemes: Bearer: type: apiKey description: Please insert JWT with Bearer into field name: Authorization in: header