diff --git a/openapi.yaml b/openapi.yaml index 1a8a7c145..89220e786 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -13,7 +13,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -swagger: "2.0" +openapi: "3.1.0" info: title: Rekor description: Rekor is a cryptographically secure, immutable transparency log for signed software releases. @@ -40,25 +40,28 @@ paths: operationId: searchIndex tags: - index - parameters: - - in: body - name: query - required: true - schema: - $ref: '#/definitions/SearchIndex' + requestBody: + description: query + required: true + content: + application/json: + schema: + $ref: "#/definitions/SearchIndex" responses: - 200: + "200": description: Returns zero or more entry UUIDs from the transparency log based on search query - schema: - type: array - items: - type: string - description: Entry UUID in transparency log - pattern: '^([0-9a-fA-F]{64}|[0-9a-fA-F]{80})$' - 400: - $ref: '#/responses/BadContent' + content: + application/json: + schema: + type: array + items: + type: string + description: Entry UUID in transparency log + pattern: "^([0-9a-fA-F]{64}|[0-9a-fA-F]{80})$" + "400": + $ref: "#/responses/BadContent" default: - $ref: '#/responses/InternalServerError' + $ref: "#/responses/InternalServerError" /api/v1/log: get: @@ -70,16 +73,17 @@ paths: parameters: - in: query name: stable - type: boolean - default: false + schema: + type: boolean + default: false description: Whether to return a stable checkpoint for the active shard responses: - 200: + "200": description: A JSON object with the root hash and tree size as properties schema: - $ref: '#/definitions/LogInfo' + $ref: "#/definitions/LogInfo" default: - $ref: '#/responses/InternalServerError' + $ref: "#/responses/InternalServerError" /api/v1/log/publicKey: get: @@ -91,18 +95,19 @@ paths: parameters: - in: query name: treeID - type: string - pattern: '^[0-9]+$' + schema: + type: string + pattern: "^[0-9]+$" description: The tree ID of the tree you wish to get a public key for produces: - application/x-pem-file responses: - 200: + "200": description: The public key schema: type: string default: - $ref: '#/responses/InternalServerError' + $ref: "#/responses/InternalServerError" /api/v1/log/proof: get: @@ -114,32 +119,35 @@ paths: parameters: - in: query name: firstSize - type: integer - default: 1 - minimum: 1 + schema: + type: integer + default: 1 + minimum: 1 description: > The size of the tree that you wish to prove consistency from (1 means the beginning of the log) Defaults to 1 if not specified - in: query name: lastSize - type: integer required: true - minimum: 1 + schema: + type: integer + minimum: 1 description: The size of the tree that you wish to prove consistency to - in: query name: treeID - type: string - pattern: '^[0-9]+$' + schema: + type: string + pattern: "^[0-9]+$" description: The tree ID of the tree that you wish to prove consistency for responses: - 200: + "200": description: All hashes required to compute the consistency proof schema: - $ref: '#/definitions/ConsistencyProof' - 400: - $ref: '#/responses/BadContent' + $ref: "#/definitions/ConsistencyProof" + "400": + $ref: "#/responses/BadContent" default: - $ref: '#/responses/InternalServerError' + $ref: "#/responses/InternalServerError" /api/v1/log/entries: post: @@ -150,31 +158,34 @@ paths: operationId: createLogEntry tags: - entries - parameters: - - in: body - name: proposedEntry - schema: - $ref: '#/definitions/ProposedEntry' - required: true + requestBody: + description: proposedEntry + required: true + content: + application/json: + schema: + $ref: "#/definitions/ProposedEntry" responses: 201: description: Returns the entry created in the transparency log headers: ETag: - type: string + schema: + type: string description: UUID of log entry Location: - type: string + schema: + type: string description: URI location of log entry format: uri schema: - $ref: '#/definitions/LogEntry' - 400: - $ref: '#/responses/BadContent' + $ref: "#/definitions/LogEntry" + "400": + $ref: "#/responses/BadContent" 409: - $ref: '#/responses/Conflict' + $ref: "#/responses/Conflict" default: - $ref: '#/responses/InternalServerError' + $ref: "#/responses/InternalServerError" get: summary: Retrieves an entry and inclusion proof from the transparency log (if it exists) by index operationId: getLogEntryByIndex @@ -183,19 +194,20 @@ paths: parameters: - in: query name: logIndex - type: integer required: true - minimum: 0 + schema: + type: integer + minimum: 0 description: specifies the index of the entry in the transparency log to be retrieved responses: - 200: + "200": description: the entry in the transparency log requested along with an inclusion proof schema: - $ref: '#/definitions/LogEntry' + $ref: "#/definitions/LogEntry" 404: - $ref: '#/responses/NotFound' + $ref: "#/responses/NotFound" default: - $ref: '#/responses/InternalServerError' + $ref: "#/responses/InternalServerError" /api/v1/log/entries/{entryUUID}: get: @@ -207,19 +219,20 @@ paths: parameters: - in: path name: entryUUID - type: string required: true - pattern: '^([0-9a-fA-F]{64}|[0-9a-fA-F]{80})$' + schema: + type: string + pattern: "^([0-9a-fA-F]{64}|[0-9a-fA-F]{80})$" description: the UUID of the entry for which the inclusion proof information should be returned responses: - 200: + "200": description: Information needed for a client to compute the inclusion proof schema: - $ref: '#/definitions/LogEntry' + $ref: "#/definitions/LogEntry" 404: - $ref: '#/responses/NotFound' + $ref: "#/responses/NotFound" default: - $ref: '#/responses/InternalServerError' + $ref: "#/responses/InternalServerError" /api/v1/log/entries/retrieve: post: @@ -227,25 +240,26 @@ paths: operationId: searchLogQuery tags: - entries - parameters: - - in: body - name: entry - required: true - schema: - $ref: '#/definitions/SearchLogQuery' + requestBody: + description: entry + required: true + content: + application/json: + schema: + $ref: "#/definitions/SearchLogQuery" responses: - 200: + "200": description: Returns zero or more entries from the transparency log, according to how many were included in request query schema: type: array items: - $ref: '#/definitions/LogEntry' - 400: - $ref: '#/responses/BadContent' - 422: - $ref: '#/responses/UnprocessableEntity' + $ref: "#/definitions/LogEntry" + "400": + $ref: "#/responses/BadContent" + "422": + $ref: "#/responses/UnprocessableEntity" default: - $ref: '#/responses/InternalServerError' + $ref: "#/responses/InternalServerError" definitions: ProposedEntry: @@ -261,187 +275,187 @@ definitions: type: object description: Rekord object allOf: - - $ref: '#/definitions/ProposedEntry' - - properties: - apiVersion: - type: string - pattern: ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$ - spec: - type: object - $ref: 'pkg/types/rekord/rekord_schema.json' - required: - - apiVersion - - spec - additionalProperties: false + - $ref: "#/definitions/ProposedEntry" + - properties: + apiVersion: + type: string + pattern: ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$ + spec: + type: object + $ref: "pkg/types/rekord/rekord_schema.json" + required: + - apiVersion + - spec + additionalProperties: false hashedrekord: type: object description: Hashed Rekord object allOf: - - $ref: '#/definitions/ProposedEntry' - - properties: - apiVersion: - type: string - pattern: ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$ - spec: - type: object - $ref: 'pkg/types/hashedrekord/hashedrekord_schema.json' - required: - - apiVersion - - spec - additionalProperties: false + - $ref: "#/definitions/ProposedEntry" + - properties: + apiVersion: + type: string + pattern: ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$ + spec: + type: object + $ref: "pkg/types/hashedrekord/hashedrekord_schema.json" + required: + - apiVersion + - spec + additionalProperties: false rpm: type: object description: RPM package allOf: - - $ref: '#/definitions/ProposedEntry' - - properties: - apiVersion: - type: string - pattern: ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$ - spec: - type: object - $ref: 'pkg/types/rpm/rpm_schema.json' - required: - - apiVersion - - spec - additionalProperties: false + - $ref: "#/definitions/ProposedEntry" + - properties: + apiVersion: + type: string + pattern: ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$ + spec: + type: object + $ref: "pkg/types/rpm/rpm_schema.json" + required: + - apiVersion + - spec + additionalProperties: false tuf: type: object description: TUF metadata allOf: - - $ref: '#/definitions/ProposedEntry' - - properties: - apiVersion: - type: string - pattern: ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$ - spec: - type: object - $ref: 'pkg/types/tuf/tuf_schema.json' - required: - - apiVersion - - spec - additionalProperties: false + - $ref: "#/definitions/ProposedEntry" + - properties: + apiVersion: + type: string + pattern: ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$ + spec: + type: object + $ref: "pkg/types/tuf/tuf_schema.json" + required: + - apiVersion + - spec + additionalProperties: false alpine: type: object description: Alpine package allOf: - - $ref: '#/definitions/ProposedEntry' - - properties: - apiVersion: - type: string - pattern: ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$ - spec: - type: object - $ref: 'pkg/types/alpine/alpine_schema.json' - required: - - apiVersion - - spec - additionalProperties: false + - $ref: "#/definitions/ProposedEntry" + - properties: + apiVersion: + type: string + pattern: ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$ + spec: + type: object + $ref: "pkg/types/alpine/alpine_schema.json" + required: + - apiVersion + - spec + additionalProperties: false helm: type: object description: Helm chart allOf: - - $ref: '#/definitions/ProposedEntry' - - properties: - apiVersion: - type: string - pattern: ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$ - spec: - type: object - $ref: 'pkg/types/helm/helm_schema.json' - required: - - apiVersion - - spec + - $ref: "#/definitions/ProposedEntry" + - properties: + apiVersion: + type: string + pattern: ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$ + spec: + type: object + $ref: "pkg/types/helm/helm_schema.json" + required: + - apiVersion + - spec intoto: type: object description: Intoto object allOf: - - $ref: '#/definitions/ProposedEntry' - - properties: - apiVersion: - type: string - pattern: ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$ - spec: - type: object - $ref: 'pkg/types/intoto/intoto_schema.json' - required: - - apiVersion - - spec - additionalProperties: false + - $ref: "#/definitions/ProposedEntry" + - properties: + apiVersion: + type: string + pattern: ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$ + spec: + type: object + $ref: "pkg/types/intoto/intoto_schema.json" + required: + - apiVersion + - spec + additionalProperties: false cose: type: object description: COSE object allOf: - - $ref: '#/definitions/ProposedEntry' - - properties: - apiVersion: - type: string - pattern: ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$ - spec: - type: object - $ref: 'pkg/types/cose/cose_schema.json' - required: - - apiVersion - - spec - additionalProperties: false + - $ref: "#/definitions/ProposedEntry" + - properties: + apiVersion: + type: string + pattern: ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$ + spec: + type: object + $ref: "pkg/types/cose/cose_schema.json" + required: + - apiVersion + - spec + additionalProperties: false jar: type: object description: Java Archive (JAR) allOf: - - $ref: '#/definitions/ProposedEntry' - - properties: - apiVersion: - type: string - pattern: ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$ - spec: - type: object - $ref: 'pkg/types/jar/jar_schema.json' - required: - - apiVersion - - spec - additionalProperties: false + - $ref: "#/definitions/ProposedEntry" + - properties: + apiVersion: + type: string + pattern: ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$ + spec: + type: object + $ref: "pkg/types/jar/jar_schema.json" + required: + - apiVersion + - spec + additionalProperties: false rfc3161: type: object description: RFC3161 Timestamp allOf: - - $ref: '#/definitions/ProposedEntry' - - properties: - apiVersion: - type: string - pattern: ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$ - spec: - type: object - $ref: 'pkg/types/rfc3161/rfc3161_schema.json' - required: - - apiVersion - - spec - additionalProperties: false + - $ref: "#/definitions/ProposedEntry" + - properties: + apiVersion: + type: string + pattern: ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$ + spec: + type: object + $ref: "pkg/types/rfc3161/rfc3161_schema.json" + required: + - apiVersion + - spec + additionalProperties: false dsse: type: object description: DSSE envelope allOf: - - $ref: '#/definitions/ProposedEntry' - - properties: - apiVersion: - type: string - pattern: ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$ - spec: - type: object - $ref: 'pkg/types/dsse/dsse_schema.json' - required: - - apiVersion - - spec - additionalProperties: false + - $ref: "#/definitions/ProposedEntry" + - properties: + apiVersion: + type: string + pattern: ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$ + spec: + type: object + $ref: "pkg/types/dsse/dsse_schema.json" + required: + - apiVersion + - spec + additionalProperties: false LogEntry: type: object @@ -450,7 +464,7 @@ definitions: properties: logID: type: string - pattern: '^[0-9a-fA-F]{64}$' + pattern: "^[0-9a-fA-F]{64}$" description: This is the SHA256 hash of the DER-encoded public key for the log at the time the entry was included in the log logIndex: type: integer @@ -472,14 +486,14 @@ definitions: type: object properties: inclusionProof: - $ref: '#/definitions/InclusionProof' + $ref: "#/definitions/InclusionProof" signedEntryTimestamp: type: string format: byte # To verify the signedEntryTimestamp: - # 1. Remove the Verification object from the JSON Document - # 2. Canonicalize the remaining JSON document by following RFC 8785 rules - # 3. Verify the canonicalized payload and signedEntryTimestamp against rekor's public key + # 1. Remove the Verification object from the JSON Document + # 2. Canonicalize the remaining JSON document by following RFC 8785 rules + # 3. Verify the canonicalized payload and signedEntryTimestamp against rekor's public key description: Signature over the logID, logIndex, body and integratedTime. required: - "logID" @@ -498,7 +512,7 @@ definitions: properties: format: type: string - enum: ['pgp','x509','minisign', 'ssh', 'tuf'] + enum: ["pgp", "x509", "minisign", "ssh", "tuf"] content: type: string format: byte @@ -509,10 +523,10 @@ definitions: - "format" hash: type: string - pattern: '^(sha512:)?[0-9a-fA-F]{128}$|^(sha256:)?[0-9a-fA-F]{64}$|^(sha1:)?[0-9a-fA-F]{40}$' + pattern: "^(sha512:)?[0-9a-fA-F]{128}$|^(sha256:)?[0-9a-fA-F]{64}$|^(sha1:)?[0-9a-fA-F]{40}$" operator: type: string - enum: ['and','or'] + enum: ["and", "or"] SearchLogQuery: type: object @@ -523,7 +537,7 @@ definitions: maxItems: 10 items: type: string - pattern: '^([0-9a-fA-F]{64}|[0-9a-fA-F]{80})$' + pattern: "^([0-9a-fA-F]{64}|[0-9a-fA-F]{80})$" logIndexes: type: array minItems: 1 @@ -536,7 +550,7 @@ definitions: minItems: 1 maxItems: 10 items: - $ref: '#/definitions/ProposedEntry' + $ref: "#/definitions/ProposedEntry" LogInfo: type: object @@ -544,7 +558,7 @@ definitions: rootHash: type: string description: The current hash value stored at the root of the merkle tree - pattern: '^[0-9a-fA-F]{64}$' + pattern: "^[0-9a-fA-F]{64}$" treeSize: type: integer description: The current number of nodes in the merkle tree @@ -556,11 +570,11 @@ definitions: treeID: type: string description: The current treeID - pattern: '^[0-9]+$' + pattern: "^[0-9]+$" inactiveShards: type: array items: - $ref: '#/definitions/InactiveShardLogInfo' + $ref: "#/definitions/InactiveShardLogInfo" required: - rootHash @@ -573,7 +587,7 @@ definitions: rootHash: type: string description: The current hash value stored at the root of the merkle tree - pattern: '^[0-9a-fA-F]{64}$' + pattern: "^[0-9a-fA-F]{64}$" treeSize: type: integer description: The current number of nodes in the merkle tree @@ -585,7 +599,7 @@ definitions: treeID: type: string description: The current treeID - pattern: '^[0-9]+$' + pattern: "^[0-9]+$" required: - rootHash - treeSize @@ -598,13 +612,13 @@ definitions: rootHash: type: string description: The hash value stored at the root of the merkle tree at the time the proof was generated - pattern: '^[0-9a-fA-F]{64}$' + pattern: "^[0-9a-fA-F]{64}$" hashes: type: array items: type: string description: SHA256 hash value expressed in hexadecimal format - pattern: '^[0-9a-fA-F]{64}$' + pattern: "^[0-9a-fA-F]{64}$" required: - rootHash - hashes @@ -619,7 +633,7 @@ definitions: rootHash: description: The hash value stored at the root of the merkle tree at the time the proof was generated type: string - pattern: '^[0-9a-fA-F]{64}$' + pattern: "^[0-9a-fA-F]{64}$" treeSize: type: integer description: The size of the merkle tree at the time the inclusion proof was generated @@ -630,7 +644,7 @@ definitions: items: type: string description: SHA256 hash value expressed in hexadecimal format - pattern: '^[0-9a-fA-F]{64}$' + pattern: "^[0-9a-fA-F]{64}$" checkpoint: type: string format: signedCheckpoint