openapi: 3.2.0 info: title: Fenergo Policy Provider API version: '1.0' description: 'Operations tagged PolicyProvider across 2 of this provider''s published API definitions: fenergo-policyproviderscommand-v1-0-openapi.json, fenergo-policyprovidersquery-v1-0-openapi.json. Each path carries the servers of the definition it was published in.' servers: - url: /policyproviderscommand - url: /policyprovidersquery security: - Bearer: [] tags: - name: PolicyProvider paths: /api/provider: post: tags: - PolicyProvider summary: Create External Api Provider description: 'Creates a new External Api Provider. Required permissions: Following permissions are required: PolicyConfigurationEdit' operationId: CreatePolicyProvider 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/PolicyProviderDtoServiceRequest' responses: '201': description: Success. PolicyProvider created content: application/json: schema: $ref: '#/components/schemas/CreatePolicyProviderResponseDtoServiceResponse' '400': description: Bad request. The request has missing/invalid values content: application/json: schema: $ref: '#/components/schemas/ServiceResponse' '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 '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 get: tags: - PolicyProvider summary: Get providers description: 'Returns all External providers. Required permissions: At least one of the following permissions is required: PolicyConfigurationAccess, PolicySearch' operationId: GetAllPolicyProviders 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 responses: '200': description: Success. List of providers is returned content: application/json: schema: $ref: '#/components/schemas/PolicyProviderDtoIEnumerableServiceResponse' '400': description: Bad request. The request has missing/invalid values content: application/json: schema: $ref: '#/components/schemas/ServiceResponse' '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 servers: - url: /policyproviderscommand /api/provider/{providerId}: put: tags: - PolicyProvider summary: Update Policy External Api Provider description: 'Required permissions: Following permissions are required: PolicyConfigurationEdit' operationId: UpdatePolicyProvider parameters: - name: providerId in: path description: PolicyProvider 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: Update PolicyProvider request content: application/json: schema: allOf: - $ref: '#/components/schemas/UpdatePolicyProviderDtoServiceRequest' responses: '202': description: Success. PolicyProvider updated '400': description: Bad request. The request has missing/invalid values content: application/json: schema: $ref: '#/components/schemas/ServiceResponse' '404': description: Resource not found content: application/json: schema: $ref: '#/components/schemas/ObjectServiceResponse' example: data: {} messages: - message: Not Found. PolicyProvider 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 delete: tags: - PolicyProvider summary: Delete Policy Api Provider description: 'Deletes an existing Policy External Api Provider. Required permissions: Following permissions are required: PolicyConfigurationDelete' operationId: DeleteProvider parameters: - name: providerId in: path description: PolicyProvider 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. PolicyProvider deleted '400': description: Bad request. The request has missing/invalid values content: application/json: schema: $ref: '#/components/schemas/ServiceResponse' '404': description: Resource not found content: application/json: schema: $ref: '#/components/schemas/ObjectServiceResponse' example: data: {} messages: - message: Not Found. PolicyProvider 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 get: tags: - PolicyProvider summary: Get provider by id description: 'Returns the provider for a given id. Required permissions: At least one of the following permissions is required: PolicyConfigurationAccess, PolicySearch' operationId: GetProviderById parameters: - name: providerId in: path description: PolicyApiProvider 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: '200': description: Success. PolicyProvider is returned content: application/json: schema: $ref: '#/components/schemas/PolicyProviderDtoServiceResponse' '400': description: Bad request. The provider has missing/invalid values content: application/json: schema: $ref: '#/components/schemas/ServiceResponse' '404': description: Resource not found content: application/json: schema: $ref: '#/components/schemas/ObjectServiceResponse' example: data: {} messages: - message: Not Found. PolicyProvider 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 servers: - url: /policyproviderscommand /api/provider/datagroup/{dataGroupId}: get: tags: - PolicyProvider summary: Get providers by Data Group Id description: 'Returns external providers associated with data group. Required permissions: At least one of the following permissions is required: PolicyConfigurationAccess, PolicySearch' operationId: GetPolicyProvidersByDataGroupId parameters: - name: dataGroupId in: path description: Data Group 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: '200': description: Success. List of providers is returned content: application/json: schema: $ref: '#/components/schemas/DataGroupProviderDtoIEnumerableServiceResponse' '400': description: Bad request. The request has missing/invalid values content: application/json: schema: $ref: '#/components/schemas/ServiceResponse' '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 servers: - url: /policyprovidersquery components: schemas: PolicyProviderDto: type: object properties: id: type: string description: Unique identifier of PolicyProvider format: uuid example: 118313c6-91e6-4b05-a537-5a1ab906418f name: type: - string - 'null' description: Name of Policy Api Provider example: Policy_api_provider_name serviceUrl: type: - string - 'null' description: Url of Policy Api Provider service example: https://TestProviderService.com encryptionKey: type: - string - 'null' description: Encryption key of Policy Api Provider example: MTIzNDU2Nzg5MTEyMzQ1Njc4OTExMjM0NTY3ODkxMTI= authenticationKey: type: - string - 'null' description: Authentication key of Policy Api Provider example: MTIzNDU2Nzg5MTEyMzQ1Njc4OTExMjM0NTY3ODkxMTI= type: type: - string - 'null' description: 'Type of Policy Api Provider Available options are: Search, Validation, DataGroupSearch, DataGroupValidation' example: Search dataGroupId: type: - string - 'null' description: 'Id of selected data group. Required only for Types: DataGroupSearch and DataGroupValidation' example: 118313c6-91e6-4b05-a537-5a1ab906418f searchFieldsConfigs: type: - array - 'null' items: $ref: '#/components/schemas/SearchFieldsConfigDto' description: 'List of search field configuration. Required only for Type: DataGroupSearch' resultFieldsConfig: type: - array - 'null' items: $ref: '#/components/schemas/ResultFieldsConfigDto' description: 'List of result field configuration. Required only for Types: DataGroupSearch and DataGroupValidation' additionalSearchFieldsConfigs: type: - array - 'null' items: $ref: '#/components/schemas/AdditionalSearchFieldsConfigDto' description: 'List of data group fields sent as additional search context. Optional for Type: DataGroupSearch' detailsUrl: type: - string - 'null' description: Url of getting details for selected option example: https://DetailsProviderService.com callIntegrationFlow: type: boolean description: The flag which indicates if Integration Flow should be called instead of ServiceUrl example: true flowKey: type: - string - 'null' description: Integration Flow Key example: validationFlow detailsFlowKey: type: - string - 'null' description: Integration Flow Key of getting details for selected option example: validationFlowDetails additionalProperties: false description: Response DTO representing PolicyProvider ServiceResponse: type: object properties: data: type: - string - 'null' messages: type: - array - 'null' items: $ref: '#/components/schemas/ServiceResponseMessage' additionalProperties: false UpdatePolicyProviderDto: allOf: - $ref: '#/components/schemas/PolicyProviderDto' - type: object properties: version: type: integer description: 'Current version of PolicyProvider aggregate where the changes needs to be applied. This parameter is required to guarantee consistency and conflicts detection. If it is not provided, it will save new changes on top of latest without conflicts checking' format: int32 default: -1 example: -1 additionalProperties: false description: Request DTO representing requirement metadata AdditionalSearchFieldsConfigDto: type: object properties: dataKey: type: - string - 'null' description: Data Key of Data Group field example: Address_Line1 additionalProperties: false description: DTO which represents Additional Search Fields Configuration PolicyProviderDtoServiceRequest: type: object properties: data: allOf: - $ref: '#/components/schemas/PolicyProviderDto' description: Response DTO representing PolicyProvider additionalProperties: false CreatePolicyProviderResponseDtoServiceResponse: type: object properties: data: allOf: - $ref: '#/components/schemas/CreatePolicyProviderResponseDto' messages: type: - array - 'null' items: $ref: '#/components/schemas/ServiceResponseMessage' additionalProperties: false UpdatePolicyProviderDtoServiceRequest: type: object properties: data: allOf: - $ref: '#/components/schemas/UpdatePolicyProviderDto' description: Request DTO representing requirement metadata additionalProperties: false ServiceResponseMessage: type: object properties: message: type: - string - 'null' type: type: - string - 'null' errorCode: type: - string - 'null' additionalProperties: false ResultFieldsConfigDto: type: object properties: dataKey: type: - string - 'null' description: Data Key of Data Group field example: Address_Line1 additionalProperties: false description: DTO which represents Result Field Configuration CreatePolicyProviderResponseDto: type: object properties: id: type: string description: The UiD of created Policy Api Provider format: uuid example: 1bb44eba-d489-4138-8cfa-eee3d49250c9 additionalProperties: false SearchFieldsConfigDto: type: object properties: label: type: - string - 'null' description: Field label example: Full Address name: type: - string - 'null' description: Field Name which will be sent to adapter api example: FullAddress additionalProperties: false description: DTO which represents Search Field Configuration 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 PolicyProviderDto_2: type: object properties: id: type: string description: Unique identifier of PolicyApiProvider format: uuid example: 118313c6-91e6-4b05-a537-5a1ab906418f name: type: - string - 'null' description: Name of Policy Api Provider example: Policy_api_provider_name serviceUrl: type: - string - 'null' description: Url of Policy Api Provider service example: https://TestProviderService.com type: type: - string - 'null' description: 'Type of Policy Api Provider Available options are: Search, Validation' example: Search version: type: integer description: Version number for given Aggregate (concurrency check) format: int32 example: 1 dataGroupId: type: - string - 'null' description: 'Id of selected data group. Required only for Type: DataGroupSearch' example: 118313c6-91e6-4b05-a537-5a1ab906418f searchFieldsConfigs: type: - array - 'null' items: $ref: '#/components/schemas/SearchFieldsConfigDto_2' description: 'List of search field configuration. Required only for Type: DataGroupSearch' resultFieldsConfig: type: - array - 'null' items: $ref: '#/components/schemas/ResultFieldsConfigDto' description: 'List of result field configuration. Required only for Type: DataGroupSearch' additionalSearchFieldsConfigs: type: - array - 'null' items: $ref: '#/components/schemas/AdditionalSearchFieldsConfigDto_2' description: 'List of data group fields sent as additional search context. Optional for Type: DataGroupSearch' detailsUrl: type: - string - 'null' description: Url of Policy Api Provider details service example: https://TestProviderService.com callIntegrationFlow: type: boolean description: The flag which indicates if Integration Flow should be called instead of ServiceUrl example: true flowKey: type: - string - 'null' description: Integration Flow Key example: validationFlow detailsFlowKey: type: - string - 'null' description: Integration Flow Key of getting details for selected option example: validationFlowDetails additionalProperties: false description: Response DTO representing requirement set data PolicyProviderDtoIEnumerableServiceResponse: type: object properties: data: type: - array - 'null' items: $ref: '#/components/schemas/PolicyProviderDto_2' messages: type: - array - 'null' items: $ref: '#/components/schemas/ServiceResponseMessage' additionalProperties: false AdditionalSearchFieldsConfigDto_2: type: object properties: dataKey: type: - string - 'null' description: Data Key of the Data Group field used as additional search context example: country additionalProperties: false description: DTO which represents Additional Search Field Configuration DataGroupProviderDtoIEnumerableServiceResponse: type: object properties: data: type: - array - 'null' items: $ref: '#/components/schemas/DataGroupProviderDto' messages: type: - array - 'null' items: $ref: '#/components/schemas/ServiceResponseMessage' additionalProperties: false PolicyProviderDtoServiceResponse: type: object properties: data: allOf: - $ref: '#/components/schemas/PolicyProviderDto_2' description: Response DTO representing requirement set data messages: type: - array - 'null' items: $ref: '#/components/schemas/ServiceResponseMessage' additionalProperties: false DataGroupProviderDto: type: object properties: id: type: string description: Unique identifier of PolicyApiProvider format: uuid example: 118313c6-91e6-4b05-a537-5a1ab906418f dataGroupId: type: - string - 'null' description: 'Id of selected data group. Required only for Type: DataGroupSearch' example: 118313c6-91e6-4b05-a537-5a1ab906418f searchFieldsConfigs: type: - array - 'null' items: $ref: '#/components/schemas/SearchFieldsConfigDto_2' description: 'List of search field configuration. Required only for Type: DataGroupSearch' resultFieldsConfig: type: - array - 'null' items: $ref: '#/components/schemas/ResultFieldsConfigDto' description: 'List of result field configuration. Required only for Type: DataGroupSearch' additionalSearchFieldsConfigs: type: - array - 'null' items: $ref: '#/components/schemas/AdditionalSearchFieldsConfigDto_2' description: 'List of data group fields sent as additional search context. Optional for Type: DataGroupSearch' additionalProperties: false SearchFieldsConfigDto_2: type: object properties: label: type: - string - 'null' description: Field label example: Full Address name: type: - string - 'null' description: Field name example: FullAddress additionalProperties: false description: DTO which represents Search Field Configuration securitySchemes: Bearer: type: apiKey description: Please insert JWT with Bearer into field name: Authorization in: header x-refined-from: - fenergo-policyproviderscommand-v1-0-openapi.json - fenergo-policyprovidersquery-v1-0-openapi.json