From d34746450efb1b843b6136acf6fe8b330253e974 Mon Sep 17 00:00:00 2001 From: Jimmy Phan Date: Thu, 26 Jan 2023 13:10:08 -0800 Subject: [PATCH 1/6] Add app attestation and assertion api documentation. This adds attestation and assertion documentation. Attestation is the verifying an app is a valid instance of an iOS app and assertion is requesting a secret of some kind after attestation is verified, in this case X.509 certificates that can be used for client authentication. Add response to successful assertion. --- .gitignore | 1 + reference/auth.v1.yaml | 114 ++++++++++++++++++ reference/auth/models/appchallenge.v1.yaml | 7 ++ reference/auth/models/assertionsecret.v1.yaml | 20 +++ reference/auth/models/assertionverify.v1.yaml | 30 +++++ .../auth/models/attestationverify.v1.yaml | 18 +++ reference/auth/models/coastaldata.v1.yaml | 24 ++++ reference/auth/models/keyid.v1.yaml | 3 + reference/auth/models/newappchallenge.v1.yaml | 9 ++ reference/common/models/base64.v1.yaml | 4 + 10 files changed, 230 insertions(+) create mode 100644 reference/auth/models/appchallenge.v1.yaml create mode 100644 reference/auth/models/assertionsecret.v1.yaml create mode 100644 reference/auth/models/assertionverify.v1.yaml create mode 100644 reference/auth/models/attestationverify.v1.yaml create mode 100644 reference/auth/models/coastaldata.v1.yaml create mode 100644 reference/auth/models/keyid.v1.yaml create mode 100644 reference/auth/models/newappchallenge.v1.yaml create mode 100644 reference/common/models/base64.v1.yaml diff --git a/.gitignore b/.gitignore index 6cd4ef26..8cea200a 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,4 @@ build .idea/ /node_modules/ /tools/ +.DS_Store diff --git a/reference/auth.v1.yaml b/reference/auth.v1.yaml index 977fd30f..456ab972 100644 --- a/reference/auth.v1.yaml +++ b/reference/auth.v1.yaml @@ -39,6 +39,10 @@ tags: description: >- List and manage users. + - name: Attestation + description: >- + Attest and assert an app is a valid instance of an iOS app. + paths: '/auth/login': post: @@ -722,6 +726,98 @@ paths: security: - serverToken: [] + '/v1/attestations/challenges': + post: + operationId: CreateAttestationChallenge + summary: Create an attestation challenge. + description: >- + Starts the attestation flow by requesting an attestation challenge that the client will later use in an Apple API call and to verify an attestation. + requestBody: + content: + 'application/json': + schema: + $ref: './auth/models/newappchallenge.v1.yaml' + responses: + '201': + $ref: '#/components/responses/AppChallenge' + '400': + $ref: './common/responses/badrequest.v1.yaml' + '401': + $ref: './common/responses/unauthorized.v1.yaml' + '403': + $ref: './common/responses/forbidden.v1.yaml' + tags: + - Attestation + + '/v1/attestations/verifications': + post: + operationId: VerifyAttestation + summary: Verify an attestation. + description: >- + This confirms the app is a valid instance of an iOS app. It must use the previously generated challenge. + requestBody: + content: + 'application/json': + schema: + $ref: './auth/models/attestationverify.v1.yaml' + responses: + '204': + description: The attestation was verified successfully. + '400': + $ref: './common/responses/badrequest.v1.yaml' + '401': + $ref: './common/responses/unauthorized.v1.yaml' + '403': + $ref: './common/responses/forbidden.v1.yaml' + tags: + - Attestation + + '/v1/assertions/challenges': + post: + operationId: CreateAssertionChallenge + summary: Create an assertion challenge. + description: >- + Requests an assertion challenge be generated. This can only happen after attestation has been verified. + requestBody: + content: + 'application/json': + schema: + $ref: './auth/models/newappchallenge.v1.yaml' + responses: + '201': + $ref: '#/components/responses/AppChallenge' + '400': + $ref: './common/responses/badrequest.v1.yaml' + '401': + $ref: './common/responses/unauthorized.v1.yaml' + '403': + $ref: './common/responses/forbidden.v1.yaml' + tags: + - Attestation + + '/v1/assertions/verifications': + post: + operationId: VerifyAssertion + summary: Verify an assertion. + description: >- + This verifies an assertion and returns X.509 certficates. + requestBody: + content: + 'application/json': + schema: + $ref: './auth/models/assertionverify.v1.yaml' + responses: + '200': + $ref: '#/components/responses/Assertion' + '400': + $ref: './common/responses/badrequest.v1.yaml' + '401': + $ref: './common/responses/unauthorized.v1.yaml' + '403': + $ref: './common/responses/forbidden.v1.yaml' + tags: + - Attestation + components: securitySchemes: basicAuth: @@ -1001,3 +1097,21 @@ components: required: - code - reason + AppChallenge: + description: 'Challenge generated by server and which client should use in later operations.' + headers: + 'X-Tidepool-Session-Token': + $ref: './common/headers/tidepoolsessiontoken.v1.yaml' + content: + 'application/json': + schema: + $ref: './auth/models/appchallenge.v1.yaml' + Assertion: + description: 'Certificates returned upon successful assertion.' + headers: + 'X-Tidepool-Session-Token': + $ref: './common/headers/tidepoolsessiontoken.v1.yaml' + content: + 'application/json': + schema: + $ref: './auth/models/assertionsecret.v1.yaml' \ No newline at end of file diff --git a/reference/auth/models/appchallenge.v1.yaml b/reference/auth/models/appchallenge.v1.yaml new file mode 100644 index 00000000..0e3c306d --- /dev/null +++ b/reference/auth/models/appchallenge.v1.yaml @@ -0,0 +1,7 @@ +title: Challenge +description: Challenge generated by server. +type: object +properties: + challenge: + type: string + minLength: 1 diff --git a/reference/auth/models/assertionsecret.v1.yaml b/reference/auth/models/assertionsecret.v1.yaml new file mode 100644 index 00000000..0a919906 --- /dev/null +++ b/reference/auth/models/assertionsecret.v1.yaml @@ -0,0 +1,20 @@ +title: AssertionSecret +description: Data sent back upon successful app assertion. This will include X.509 certificates. +type: object +properties: + certificates: + description: X.509 certificates to be used for client authentication. + type: array + items: + type: object + properties: + content: + type: string + description: base64 encoded X.509 certificate in DER format. + ttlInDays: + type: integer + type: + type: string + oneOf: + - CONSTRAINED + - WILDCARD \ No newline at end of file diff --git a/reference/auth/models/assertionverify.v1.yaml b/reference/auth/models/assertionverify.v1.yaml new file mode 100644 index 00000000..2a7c6f9f --- /dev/null +++ b/reference/auth/models/assertionverify.v1.yaml @@ -0,0 +1,30 @@ +title: Assertion Verify +description: Request body for verifying an assertion. +type: object +properties: + assertion: + $ref: '../../common/models/base64.v1.yaml' + description: Base64 encoded data received from Apple App Attest API. User must base64 encode the binary data received from Apple. + clientData: + type: object + properties: + challenge: + type: string + minLength: 1 + partner: + description: Code name of partner to retrieve certificate from. + type: string + minLength: 1 + enum: + - Coastal + partnerData: + description: Actual data to send to partner API. + $ref: './coastaldata.v1.yaml' + description: Actual data requested by client. Must include the previously requested challenge. + keyId: + $ref: './keyid.v1.yaml' + description: Base64 encoded key Id received from Apple App Attest API. +required: + - attestation + - clientData + - keyId diff --git a/reference/auth/models/attestationverify.v1.yaml b/reference/auth/models/attestationverify.v1.yaml new file mode 100644 index 00000000..e4df04e3 --- /dev/null +++ b/reference/auth/models/attestationverify.v1.yaml @@ -0,0 +1,18 @@ +title: Attestation Verify +description: Request body for verifying an attestation. +type: object +properties: + attestation: + $ref: '../../common/models/base64.v1.yaml' + description: Base64 encoded data received from Apple App Attest API. User must base64 encode the binary data received from Apple. + challenge: + type: string + minLength: 1 + description: Challenge string returned from the Tidepool platform API. + keyId: + $ref: './keyid.v1.yaml' + description: Base64 encoded key Id received from Apple App Attest API. +required: + - attestation + - challenge + - keyId diff --git a/reference/auth/models/coastaldata.v1.yaml b/reference/auth/models/coastaldata.v1.yaml new file mode 100644 index 00000000..187c06cb --- /dev/null +++ b/reference/auth/models/coastaldata.v1.yaml @@ -0,0 +1,24 @@ +title: CoastalData +description: Data to send to Coastal's API. +type: object +properties: + rcTypeId: + type: string + rcInstanceId: + type: string + rcHWVersions: + type: array + items: + type: string + rcSWVersions: + type: array + items: + type: string + phdTypeId: + type: string + phdInstanceId: + type: string + csr: + type: string + rcbMac: + type: string diff --git a/reference/auth/models/keyid.v1.yaml b/reference/auth/models/keyid.v1.yaml new file mode 100644 index 00000000..59fbd1f2 --- /dev/null +++ b/reference/auth/models/keyid.v1.yaml @@ -0,0 +1,3 @@ +title: Key Id +description: Base64 encoded key identifier received from apple. The Key Id is some shortened data, usually a hash, used to identify the longer actual key. +$ref: '../../common/models/base64.v1.yaml' diff --git a/reference/auth/models/newappchallenge.v1.yaml b/reference/auth/models/newappchallenge.v1.yaml new file mode 100644 index 00000000..2f0c2014 --- /dev/null +++ b/reference/auth/models/newappchallenge.v1.yaml @@ -0,0 +1,9 @@ +title: New App Challenge +description: Information needed when generating an attestation or assertion challenge. +type: object +properties: + keyId: + $ref: '../../common/models/base64.v1.yaml' + description: Base64 encoded key Id received from Apple App Attest API. +required: + - keyId diff --git a/reference/common/models/base64.v1.yaml b/reference/common/models/base64.v1.yaml new file mode 100644 index 00000000..8d841293 --- /dev/null +++ b/reference/common/models/base64.v1.yaml @@ -0,0 +1,4 @@ +title: Base64 +type: string +description: Base64 encoded data. +pattern: '^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$' From 3618b588e22fd230d5ba8c390899cdb9d14007f6 Mon Sep 17 00:00:00 2001 From: lostlevels Date: Mon, 24 Jul 2023 13:10:53 -0700 Subject: [PATCH 2/6] Fix typos and fields. --- reference/auth/models/assertionsecret.v1.yaml | 4 ++-- reference/auth/models/assertionverify.v1.yaml | 1 + reference/auth/models/attestationverify.v1.yaml | 2 +- reference/auth/models/coastaldata.v1.yaml | 10 +++++++++- 4 files changed, 13 insertions(+), 4 deletions(-) diff --git a/reference/auth/models/assertionsecret.v1.yaml b/reference/auth/models/assertionsecret.v1.yaml index 0a919906..72e2b59a 100644 --- a/reference/auth/models/assertionsecret.v1.yaml +++ b/reference/auth/models/assertionsecret.v1.yaml @@ -9,12 +9,12 @@ properties: type: object properties: content: - type: string + $ref: '../../common/models/base64.v1.yaml' description: base64 encoded X.509 certificate in DER format. ttlInDays: type: integer type: type: string - oneOf: + enum: - CONSTRAINED - WILDCARD \ No newline at end of file diff --git a/reference/auth/models/assertionverify.v1.yaml b/reference/auth/models/assertionverify.v1.yaml index 2a7c6f9f..e2704982 100644 --- a/reference/auth/models/assertionverify.v1.yaml +++ b/reference/auth/models/assertionverify.v1.yaml @@ -9,6 +9,7 @@ properties: type: object properties: challenge: + description: The previously returned assertion challenge. type: string minLength: 1 partner: diff --git a/reference/auth/models/attestationverify.v1.yaml b/reference/auth/models/attestationverify.v1.yaml index e4df04e3..ab215daa 100644 --- a/reference/auth/models/attestationverify.v1.yaml +++ b/reference/auth/models/attestationverify.v1.yaml @@ -8,7 +8,7 @@ properties: challenge: type: string minLength: 1 - description: Challenge string returned from the Tidepool platform API. + description: The previously returned attestation challenge. keyId: $ref: './keyid.v1.yaml' description: Base64 encoded key Id received from Apple App Attest API. diff --git a/reference/auth/models/coastaldata.v1.yaml b/reference/auth/models/coastaldata.v1.yaml index 187c06cb..2183ddb2 100644 --- a/reference/auth/models/coastaldata.v1.yaml +++ b/reference/auth/models/coastaldata.v1.yaml @@ -4,8 +4,10 @@ type: object properties: rcTypeId: type: string + minLength: 1 rcInstanceId: type: string + minLength: 1 rcHWVersions: type: array items: @@ -16,9 +18,15 @@ properties: type: string phdTypeId: type: string + minLength: 1 phdInstanceId: type: string + minLength: 1 csr: - type: string + $ref: '../../common/models/base64.v1.yaml' + description: Base64 encoded string of the PEM formatted certificate signing request to the partner API. + minLength: 1 rcbMac: type: string + description: Deprecated field that will be removed in the future but currently required by partner. Value can be any non empty string. + minLength: 1 From ca5940f772b945aa4ab520377e5022c75856d079 Mon Sep 17 00:00:00 2001 From: lostlevels Date: Thu, 31 Aug 2023 11:20:51 -0700 Subject: [PATCH 3/6] Update api for palmtree. --- reference/auth/models/assertionsecret.v1.yaml | 24 +++++-------------- reference/auth/models/assertionverify.v1.yaml | 9 ++++--- .../auth/models/attestationverify.v1.yaml | 4 ++-- ...taldata.v1.yaml => coastalrequest.v1.yaml} | 14 ++++------- reference/auth/models/coastalresponse.v1.yaml | 21 ++++++++++++++++ reference/auth/models/keyid.v1.yaml | 3 ++- reference/auth/models/newappchallenge.v1.yaml | 3 ++- reference/auth/models/palmtreerequest.v1.yaml | 8 +++++++ .../auth/models/palmtreeresponse.v1.yaml | 24 +++++++++++++++++++ 9 files changed, 75 insertions(+), 35 deletions(-) rename reference/auth/models/{coastaldata.v1.yaml => coastalrequest.v1.yaml} (61%) create mode 100644 reference/auth/models/coastalresponse.v1.yaml create mode 100644 reference/auth/models/palmtreerequest.v1.yaml create mode 100644 reference/auth/models/palmtreeresponse.v1.yaml diff --git a/reference/auth/models/assertionsecret.v1.yaml b/reference/auth/models/assertionsecret.v1.yaml index 72e2b59a..286cf16b 100644 --- a/reference/auth/models/assertionsecret.v1.yaml +++ b/reference/auth/models/assertionsecret.v1.yaml @@ -1,20 +1,8 @@ -title: AssertionSecret -description: Data sent back upon successful app assertion. This will include X.509 certificates. +title: Assertion Secret +description: Data sent back upon successful app assertion. type: object properties: - certificates: - description: X.509 certificates to be used for client authentication. - type: array - items: - type: object - properties: - content: - $ref: '../../common/models/base64.v1.yaml' - description: base64 encoded X.509 certificate in DER format. - ttlInDays: - type: integer - type: - type: string - enum: - - CONSTRAINED - - WILDCARD \ No newline at end of file + data: + oneOf: + - $ref: './coastalresponse.v1.yaml' + - $ref: './palmtreeresponse.v1.yaml' \ No newline at end of file diff --git a/reference/auth/models/assertionverify.v1.yaml b/reference/auth/models/assertionverify.v1.yaml index e2704982..d27f23a1 100644 --- a/reference/auth/models/assertionverify.v1.yaml +++ b/reference/auth/models/assertionverify.v1.yaml @@ -3,7 +3,8 @@ description: Request body for verifying an assertion. type: object properties: assertion: - $ref: '../../common/models/base64.v1.yaml' + type: string + pattern: '^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$' description: Base64 encoded data received from Apple App Attest API. User must base64 encode the binary data received from Apple. clientData: type: object @@ -18,9 +19,11 @@ properties: minLength: 1 enum: - Coastal + - PalmTree partnerData: - description: Actual data to send to partner API. - $ref: './coastaldata.v1.yaml' + oneOf: + - $ref: './coastalrequest.v1.yaml' + - $ref: './palmtreerequest.v1.yaml' description: Actual data requested by client. Must include the previously requested challenge. keyId: $ref: './keyid.v1.yaml' diff --git a/reference/auth/models/attestationverify.v1.yaml b/reference/auth/models/attestationverify.v1.yaml index ab215daa..6a785352 100644 --- a/reference/auth/models/attestationverify.v1.yaml +++ b/reference/auth/models/attestationverify.v1.yaml @@ -3,7 +3,8 @@ description: Request body for verifying an attestation. type: object properties: attestation: - $ref: '../../common/models/base64.v1.yaml' + type: string + pattern: '^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$' description: Base64 encoded data received from Apple App Attest API. User must base64 encode the binary data received from Apple. challenge: type: string @@ -11,7 +12,6 @@ properties: description: The previously returned attestation challenge. keyId: $ref: './keyid.v1.yaml' - description: Base64 encoded key Id received from Apple App Attest API. required: - attestation - challenge diff --git a/reference/auth/models/coastaldata.v1.yaml b/reference/auth/models/coastalrequest.v1.yaml similarity index 61% rename from reference/auth/models/coastaldata.v1.yaml rename to reference/auth/models/coastalrequest.v1.yaml index 2183ddb2..25ef8f9e 100644 --- a/reference/auth/models/coastaldata.v1.yaml +++ b/reference/auth/models/coastalrequest.v1.yaml @@ -1,10 +1,7 @@ -title: CoastalData +title: Coastal Request Data description: Data to send to Coastal's API. type: object properties: - rcTypeId: - type: string - minLength: 1 rcInstanceId: type: string minLength: 1 @@ -23,10 +20,7 @@ properties: type: string minLength: 1 csr: - $ref: '../../common/models/base64.v1.yaml' - description: Base64 encoded string of the PEM formatted certificate signing request to the partner API. - minLength: 1 - rcbMac: type: string - description: Deprecated field that will be removed in the future but currently required by partner. Value can be any non empty string. - minLength: 1 + pattern: '^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$' + description: Base64 encoded string of the PEM formatted certificate signing request to the partner API. + minLength: 1 \ No newline at end of file diff --git a/reference/auth/models/coastalresponse.v1.yaml b/reference/auth/models/coastalresponse.v1.yaml new file mode 100644 index 00000000..478cf285 --- /dev/null +++ b/reference/auth/models/coastalresponse.v1.yaml @@ -0,0 +1,21 @@ +title: Coastal Response +description: Data retrieved from Coastal's API. +type: object +properties: + certificates: + description: X.509 certificates to be used for client authentication. + type: array + items: + type: object + properties: + content: + type: string + pattern: '^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$' + description: base64 encoded X.509 certificate in DER format. + ttlInDays: + type: integer + type: + type: string + enum: + - CONSTRAINED + - WILDCARD \ No newline at end of file diff --git a/reference/auth/models/keyid.v1.yaml b/reference/auth/models/keyid.v1.yaml index 59fbd1f2..248a7f91 100644 --- a/reference/auth/models/keyid.v1.yaml +++ b/reference/auth/models/keyid.v1.yaml @@ -1,3 +1,4 @@ title: Key Id description: Base64 encoded key identifier received from apple. The Key Id is some shortened data, usually a hash, used to identify the longer actual key. -$ref: '../../common/models/base64.v1.yaml' +type: string +pattern: '^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$' diff --git a/reference/auth/models/newappchallenge.v1.yaml b/reference/auth/models/newappchallenge.v1.yaml index 2f0c2014..b8001001 100644 --- a/reference/auth/models/newappchallenge.v1.yaml +++ b/reference/auth/models/newappchallenge.v1.yaml @@ -3,7 +3,8 @@ description: Information needed when generating an attestation or assertion chal type: object properties: keyId: - $ref: '../../common/models/base64.v1.yaml' + type: string + pattern: '^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$' description: Base64 encoded key Id received from Apple App Attest API. required: - keyId diff --git a/reference/auth/models/palmtreerequest.v1.yaml b/reference/auth/models/palmtreerequest.v1.yaml new file mode 100644 index 00000000..0091da3a --- /dev/null +++ b/reference/auth/models/palmtreerequest.v1.yaml @@ -0,0 +1,8 @@ +title: Palm Tree Request Data +description: Data to send to Palm Tree's API. +type: object +properties: + csr: + description: Base64 encoded certificate signing request. + type: string + pattern: '^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$' \ No newline at end of file diff --git a/reference/auth/models/palmtreeresponse.v1.yaml b/reference/auth/models/palmtreeresponse.v1.yaml new file mode 100644 index 00000000..f1ff92ac --- /dev/null +++ b/reference/auth/models/palmtreeresponse.v1.yaml @@ -0,0 +1,24 @@ +title: Palm Tree Response +description: Data retrieved from Palm Tree's API. +type: object +properties: + type: + type: string + enrollment: + type: object + properties: + body: + type: string + description: PEM encoded certificate. + id: + type: string + issuerName: + type: string + serialNumber: + type: string + subjectName: + type: string + status: + type: string + validityPeriod: + type: string \ No newline at end of file From 3523ade94abc7c699551bb064a2931967d423d81 Mon Sep 17 00:00:00 2001 From: lostlevels Date: Tue, 12 Sep 2023 12:50:45 -0700 Subject: [PATCH 4/6] Add security sessionToken --- reference/auth.v1.yaml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/reference/auth.v1.yaml b/reference/auth.v1.yaml index 456ab972..6ab3da22 100644 --- a/reference/auth.v1.yaml +++ b/reference/auth.v1.yaml @@ -746,6 +746,8 @@ paths: $ref: './common/responses/unauthorized.v1.yaml' '403': $ref: './common/responses/forbidden.v1.yaml' + security: + - sessionToken: [] tags: - Attestation @@ -769,6 +771,8 @@ paths: $ref: './common/responses/unauthorized.v1.yaml' '403': $ref: './common/responses/forbidden.v1.yaml' + security: + - sessionToken: [] tags: - Attestation @@ -792,6 +796,8 @@ paths: $ref: './common/responses/unauthorized.v1.yaml' '403': $ref: './common/responses/forbidden.v1.yaml' + security: + - sessionToken: [] tags: - Attestation @@ -815,6 +821,8 @@ paths: $ref: './common/responses/unauthorized.v1.yaml' '403': $ref: './common/responses/forbidden.v1.yaml' + security: + - sessionToken: [] tags: - Attestation From 1484802e0215108142de2e8229b18a6101d58670 Mon Sep 17 00:00:00 2001 From: lostlevels Date: Tue, 12 Sep 2023 14:33:53 -0700 Subject: [PATCH 5/6] Update format of csr. --- reference/auth/models/coastalrequest.v1.yaml | 2 +- reference/auth/models/palmtreerequest.v1.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/reference/auth/models/coastalrequest.v1.yaml b/reference/auth/models/coastalrequest.v1.yaml index 25ef8f9e..385847f2 100644 --- a/reference/auth/models/coastalrequest.v1.yaml +++ b/reference/auth/models/coastalrequest.v1.yaml @@ -22,5 +22,5 @@ properties: csr: type: string pattern: '^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$' - description: Base64 encoded string of the PEM formatted certificate signing request to the partner API. + description: Base64 encoded string of the PEM formatted certificate signing request to Coastal. minLength: 1 \ No newline at end of file diff --git a/reference/auth/models/palmtreerequest.v1.yaml b/reference/auth/models/palmtreerequest.v1.yaml index 0091da3a..923e841f 100644 --- a/reference/auth/models/palmtreerequest.v1.yaml +++ b/reference/auth/models/palmtreerequest.v1.yaml @@ -3,6 +3,6 @@ description: Data to send to Palm Tree's API. type: object properties: csr: - description: Base64 encoded certificate signing request. + description: Base64 encoded string of the DER formatted certificate signing request to PalmTree. type: string pattern: '^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$' \ No newline at end of file From 4f6c59a6a033c3240b3ef0b143c06d0481294e2b Mon Sep 17 00:00:00 2001 From: lostlevels Date: Thu, 19 Oct 2023 09:33:30 -0700 Subject: [PATCH 6/6] Singularize rcHWVersion and rcSWVersion. --- reference/auth/models/coastalrequest.v1.yaml | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/reference/auth/models/coastalrequest.v1.yaml b/reference/auth/models/coastalrequest.v1.yaml index 385847f2..06c1424c 100644 --- a/reference/auth/models/coastalrequest.v1.yaml +++ b/reference/auth/models/coastalrequest.v1.yaml @@ -5,14 +5,10 @@ properties: rcInstanceId: type: string minLength: 1 - rcHWVersions: - type: array - items: - type: string - rcSWVersions: - type: array - items: - type: string + rcHWVersion: + type: string + rcSWVersion: + type: string phdTypeId: type: string minLength: 1