openapi: 3.2.0 info: title: FIAM-KPN Service Consumer Contracts API description: A collection of crates for federated identity and access management license: name: '' version: 0.1.1 servers: - url: https://api-prd.kpn.com/fiam description: Server tags: - name: Service Consumer Contracts description: Contract access for service consumers (read-only operations) paths: /api/v1/service-consumers/contracts: get: tags: - Service Consumer Contracts operationId: get_contracts_sc responses: '200': description: List of accessible contracts returned content: application/json: schema: $ref: '#/components/schemas/Paged_Contract' '401': description: Unauthorized client content: application/json: schema: $ref: '#/components/schemas/ProblemDetail' '403': description: Access denied content: application/json: schema: $ref: '#/components/schemas/ProblemDetail' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/ProblemDetail' security: - bearer_auth: [] /api/v1/service-consumers/contracts/{contract_id}: get: tags: - Service Consumer Contracts operationId: get_contract_sc parameters: - name: contract_id in: path description: Contract ID required: true schema: type: string responses: '200': description: Contract details returned content: application/json: schema: $ref: '#/components/schemas/Contract' '401': description: Unauthorized client content: application/json: schema: $ref: '#/components/schemas/ProblemDetail' '403': description: Access denied content: application/json: schema: $ref: '#/components/schemas/ProblemDetail' '404': description: Contract not found content: application/json: schema: $ref: '#/components/schemas/ProblemDetail' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/ProblemDetail' security: - bearer_auth: [] components: schemas: ProblemDetail: type: object required: - type - status properties: detail: type: - string - 'null' instance: type: - string - 'null' status: type: integer format: int32 minimum: 0 title: type: - string - 'null' type: type: string additionalProperties: {} Paged_Contract: type: object required: - page - size - page_count - total_count properties: page: type: integer format: int32 minimum: 0 page_count: type: integer format: int32 minimum: 0 records: type: - array - 'null' items: type: object required: - id - service_provider - service_consumer - data_owner - start_date - end_date - resource_type - resource - resource_attribute - action properties: action: type: string data_owner: type: string end_date: type: string format: date-time id: type: string resource: type: string resource_attribute: type: string resource_type: type: string service_consumer: type: string service_provider: type: string start_date: type: string format: date-time size: type: integer format: int32 minimum: 0 total_count: type: integer format: int32 minimum: 0 Contract: type: object required: - id - service_provider - service_consumer - data_owner - start_date - end_date - resource_type - resource - resource_attribute - action properties: action: type: string data_owner: type: string end_date: type: string format: date-time id: type: string resource: type: string resource_attribute: type: string resource_type: type: string service_consumer: type: string service_provider: type: string start_date: type: string format: date-time securitySchemes: bearer_auth: type: http scheme: bearer bearerFormat: JWT description: JWT Bearer token obtained from /oauth/token endpoint