diff --git a/doc/openapi.yaml b/doc/openapi.yaml index 6d9aa122..da4d0466 100644 --- a/doc/openapi.yaml +++ b/doc/openapi.yaml @@ -76,53 +76,53 @@ info: backgroundColor: #FFFFFF servers: -- url: https://{domain}:{port}/api/v1 - description: Krill server API URL. - variables: - domain: - default: localhost - port: - enum: - - '443' - - '3000' - default: '3000' + - url: https://{domain}:{port}/api/v1 + description: Krill server API URL. + variables: + domain: + default: localhost + port: + enum: + - '443' + - '3000' + default: '3000' tags: -- name: "Publishers" -- name: "Certificate Authorities" -- name: "Key Rolls" - description: | - Krill CAs can have 0 or more 'Resource Classes' under each of its (0 or - more) parents. Krill CAs will talk to all of their parents regularly and - ask them about their resource entitlements. Typically a CA will have one - parent and receive all their resources in a single resource class, but it's - also possible that resources are split into multiple resource classes. - Krill CAs can also have multiple parents and have resource classes under - each of them. + - name: "Publishers" + - name: "Certificate Authorities" + - name: "Key Rolls" + description: | + Krill CAs can have 0 or more 'Resource Classes' under each of its (0 or + more) parents. Krill CAs will talk to all of their parents regularly and + ask them about their resource entitlements. Typically a CA will have one + parent and receive all their resources in a single resource class, but it's + also possible that resources are split into multiple resource classes. + Krill CAs can also have multiple parents and have resource classes under + each of them. - When a krill CA first gets a resource class it will: - - create a pending key pair - - request a certificate + When a krill CA first gets a resource class it will: + - create a pending key pair + - request a certificate - The 'key state' of this resource class is then shown as type "Pending". + The 'key state' of this resource class is then shown as type "Pending". - When the CA receives a certificate for this new pair it will be promoted to - "Active", and publishing of objects will start. I.e. the CA will start - publishing a manifest and CRL, and any configured ROAs for which the - prefixes are held by this class. + When the CA receives a certificate for this new pair it will be promoted to + "Active", and publishing of objects will start. I.e. the CA will start + publishing a manifest and CRL, and any configured ROAs for which the + prefixes are held by this class. - Resource classes in the state 'Active' can be rolled. The following phases - exist in a key roll: - - RollPending - - RollNew - - RollOld -- name: "Route Authorizations" - description: | - Managing Route Authorizations (ROA configs) -- name: "Other" + Resource classes in the state 'Active' can be rolled. The following phases + exist in a key roll: + - RollPending + - RollNew + - RollOld + - name: "Route Authorizations" + description: | + Managing Route Authorizations (ROA configs) + - name: "Other" -security: -- KRILL_AUTH_TOKEN: [] +security: + - KRILL_AUTH_TOKEN: [] paths: /authorized: @@ -241,6 +241,25 @@ paths: '500': $ref: '#/components/responses/GeneralPublicationServerError' + /publishers/stale/{seconds}: + get: + operationId: list_publishers_stale_seconds + tags: + - "Publishers" + summary: List all publishers which have not published for X seconds. + description: | + Lists all publishers which have not published for the given time (seconds). Typically one + might expect updates from Krill publishers every 16 hours. + parameters: + - $ref: '#/components/parameters/seconds' + responses: + '200': + $ref: '#/components/responses/StalePublishers' + '403': + $ref: '#/components/responses/Forbidden' + '500': + $ref: '#/components/responses/GeneralPublicationServerError' + /cas: get: operationId: list_cas @@ -1001,9 +1020,9 @@ externalDocs: components: securitySchemes: KRILL_AUTH_TOKEN: - type: http - scheme: bearer - bearerFormat: KRILL_AUTH_TOKEN + type: http + scheme: bearer + bearerFormat: KRILL_AUTH_TOKEN parameters: ca_handle: @@ -1037,6 +1056,12 @@ components: type: string enum: ['json','xml'] required: true + seconds: + in: path + name: seconds + schema: + type: integer + required: true schemas: # Types ordered fundamental to complex @@ -1072,7 +1097,7 @@ components: base_uri: type: string format: uri - rpki_notify: + rpki_notify: type: string format: uri Resources: @@ -1124,38 +1149,38 @@ components: $ref: '#/components/schemas/IdCert' rfc6492: allOf: - - $ref: '#/components/schemas/rfcCommon' - - type: object - properties: - parent_handle: - $ref: '#/components/schemas/Handle' - child_handle: - $ref: '#/components/schemas/Handle' - service_uri: - $ref: '#/components/schemas/ServiceUri' + - $ref: '#/components/schemas/rfcCommon' + - type: object + properties: + parent_handle: + $ref: '#/components/schemas/Handle' + child_handle: + $ref: '#/components/schemas/Handle' + service_uri: + $ref: '#/components/schemas/ServiceUri' rfc8181Base: allOf: - - $ref: '#/components/schemas/rfcCommon' - - type: object - properties: - publisher_handle: - $ref: '#/components/schemas/Handle' + - $ref: '#/components/schemas/rfcCommon' + - type: object + properties: + publisher_handle: + $ref: '#/components/schemas/Handle' rfc8181: allOf: - - $ref: '#/components/schemas/rfc8181Base' - - type: object - properties: - service_uri: - $ref: '#/components/schemas/ServiceUri' - repo_info: - $ref: '#/components/schemas/RepoInfo' + - $ref: '#/components/schemas/rfc8181Base' + - type: object + properties: + service_uri: + $ref: '#/components/schemas/ServiceUri' + repo_info: + $ref: '#/components/schemas/RepoInfo' rfc8183: allOf: - - $ref: '#/components/schemas/rfcCommon' - - type: object - properties: - child_handle: - $ref: '#/components/schemas/Handle' + - $ref: '#/components/schemas/rfcCommon' + - type: object + properties: + child_handle: + $ref: '#/components/schemas/Handle' Rfc6492OrEmbedded: oneOf: - $ref: '#/components/schemas/embedded' @@ -1336,8 +1361,8 @@ components: properties: handle: allOf: - - $ref: '#/components/schemas/Handle' - - description: The handle attribute uniquely identifies the new Certificate Authority within this Krill instance. + - $ref: '#/components/schemas/Handle' + - description: The handle attribute uniquely identifies the new Certificate Authority within this Krill instance. AddCAChildRequest: type: object required: @@ -1347,8 +1372,8 @@ components: properties: handle: allOf: - - $ref: '#/components/schemas/Handle' - - description: The handle attribute uniquely identifies the new Certificate Authority within this Krill instance. + - $ref: '#/components/schemas/Handle' + - description: The handle attribute uniquely identifies the new Certificate Authority within this Krill instance. resources: $ref: '#/components/schemas/Resources' auth: @@ -1374,8 +1399,8 @@ components: properties: handle: allOf: - - $ref: '#/components/schemas/Handle' - - description: The local handle by which your ca refers to this parent. + - $ref: '#/components/schemas/Handle' + - description: The local handle by which your ca refers to this parent. contact: $ref: '#/components/schemas/Rfc6492OrEmbedded' AddPublisherRequest: @@ -1829,9 +1854,9 @@ components: - handle: 'ta' kind: 'ta' resources: - asn: 'AS1-AS10' - v4: '10.0.0.0/8' - v6: '::/128' + asn: 'AS1-AS10' + v4: '10.0.0.0/8' + v6: '::/128' resource_classes: '0': name_space: '0' @@ -1873,8 +1898,8 @@ components: properties: handle: allOf: - - $ref: '#/components/schemas/Handle' - - description: The RFC-8183 handle that uniquely identifies the CA in this Krill instance. + - $ref: '#/components/schemas/Handle' + - description: The RFC-8183 handle that uniquely identifies the CA in this Krill instance. GetChildCA: description: Success. content: @@ -1959,6 +1984,17 @@ components: application/json: schema: $ref: '#/components/schemas/rfc8181' + StalePublishers: + description: Success. + content: + application/json: + schema: + type: array + items: + type: string + example: + - 'a' + - 'b' GetRepositoryForCA: description: Success. content: @@ -1968,14 +2004,14 @@ components: properties: contact: oneOf: - - type: object - properties: - embedded: - $ref: '#/components/schemas/RepoInfo' - - type: object - properties: - rfc8181: - $ref: '#/components/schemas/rfc8181' + - type: object + properties: + embedded: + $ref: '#/components/schemas/RepoInfo' + - type: object + properties: + rfc8181: + $ref: '#/components/schemas/rfc8181' examples: embedded: value: @@ -2066,4 +2102,4 @@ components: id_cert: '' parent_handle: 'ta' child_handle: 'ca' - service_uri: 'https://localhost:3000/rfc6492/ta' + service_uri: 'https://localhost:3000/rfc6492/ta' \ No newline at end of file