3939 description : >-
4040 List and manage users.
4141
42+ - name : Attestation
43+ description : >-
44+ Attest and assert an app is a valid instance of an iOS app.
45+
4246paths :
4347 ' /auth/login ' :
4448 post :
@@ -719,6 +723,98 @@ paths:
719723 security :
720724 - serverToken : []
721725
726+ ' /v1/attestations/challenges ' :
727+ post :
728+ operationId : CreateAttestationChallenge
729+ summary : Create an attestation challenge.
730+ description : >-
731+ 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.
732+ requestBody :
733+ content :
734+ ' application/json ' :
735+ schema :
736+ $ref : ' ./auth/models/newappchallenge.v1.yaml'
737+ responses :
738+ ' 201 ' :
739+ $ref : ' #/components/responses/AppChallenge'
740+ ' 400 ' :
741+ $ref : ' ./common/responses/badrequest.v1.yaml'
742+ ' 401 ' :
743+ $ref : ' ./common/responses/unauthorized.v1.yaml'
744+ ' 403 ' :
745+ $ref : ' ./common/responses/forbidden.v1.yaml'
746+ tags :
747+ - Attestation
748+
749+ ' /v1/attestations/verifications ' :
750+ post :
751+ operationId : VerifyAttestation
752+ summary : Verify an attestation.
753+ description : >-
754+ This confirms the app is a valid instance of an iOS app. It must use the previously generated challenge.
755+ requestBody :
756+ content :
757+ ' application/json ' :
758+ schema :
759+ $ref : ' ./auth/models/attestationverify.v1.yaml'
760+ responses :
761+ ' 204 ' :
762+ description : The attestation was verified successfully.
763+ ' 400 ' :
764+ $ref : ' ./common/responses/badrequest.v1.yaml'
765+ ' 401 ' :
766+ $ref : ' ./common/responses/unauthorized.v1.yaml'
767+ ' 403 ' :
768+ $ref : ' ./common/responses/forbidden.v1.yaml'
769+ tags :
770+ - Attestation
771+
772+ ' /v1/assertions/challenges ' :
773+ post :
774+ operationId : CreateAssertionChallenge
775+ summary : Create an assertion challenge.
776+ description : >-
777+ Requests an assertion challenge be generated. This can only happen after attestation has been verified.
778+ requestBody :
779+ content :
780+ ' application/json ' :
781+ schema :
782+ $ref : ' ./auth/models/newappchallenge.v1.yaml'
783+ responses :
784+ ' 201 ' :
785+ $ref : ' #/components/responses/AppChallenge'
786+ ' 400 ' :
787+ $ref : ' ./common/responses/badrequest.v1.yaml'
788+ ' 401 ' :
789+ $ref : ' ./common/responses/unauthorized.v1.yaml'
790+ ' 403 ' :
791+ $ref : ' ./common/responses/forbidden.v1.yaml'
792+ tags :
793+ - Attestation
794+
795+ ' /v1/assertions/verifications ' :
796+ post :
797+ operationId : VerifyAssertion
798+ summary : Verify an assertion.
799+ description : >-
800+ This verifies an assertion and returns X.509 certficates.
801+ requestBody :
802+ content :
803+ ' application/json ' :
804+ schema :
805+ $ref : ' ./auth/models/assertionverify.v1.yaml'
806+ responses :
807+ ' 200 ' :
808+ $ref : ' #/components/responses/Assertion'
809+ ' 400 ' :
810+ $ref : ' ./common/responses/badrequest.v1.yaml'
811+ ' 401 ' :
812+ $ref : ' ./common/responses/unauthorized.v1.yaml'
813+ ' 403 ' :
814+ $ref : ' ./common/responses/forbidden.v1.yaml'
815+ tags :
816+ - Attestation
817+
722818components :
723819 securitySchemes :
724820 basicAuth :
@@ -998,3 +1094,21 @@ components:
9981094 required :
9991095 - code
10001096 - reason
1097+ AppChallenge :
1098+ description : ' Challenge generated by server and which client should use in later operations.'
1099+ headers :
1100+ ' X-Tidepool-Session-Token ' :
1101+ $ref : ' ./common/headers/tidepoolsessiontoken.v1.yaml'
1102+ content :
1103+ ' application/json ' :
1104+ schema :
1105+ $ref : ' ./auth/models/appchallenge.v1.yaml'
1106+ Assertion :
1107+ description : ' Certificates returned upon successful assertion.'
1108+ headers :
1109+ ' X-Tidepool-Session-Token ' :
1110+ $ref : ' ./common/headers/tidepoolsessiontoken.v1.yaml'
1111+ content :
1112+ ' application/json ' :
1113+ schema :
1114+ $ref : ' ./auth/models/assertionsecret.v1.yaml'
0 commit comments