{"openapi":"3.1.0","info":{"title":"Authentication API","version":"0.0.1","description":"Functionality for authenticating against Rhino services"},"paths":{"/auth/capsule":{"post":{"tags":["auth"],"operationId":"auth.authCapsule","parameters":[],"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["jwt","userId"],"properties":{"jwt":{"type":"string"},"userId":{"type":"string"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpApiDecodeError"}}}},"422":{"description":"InvalidRequest","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidRequest"}}}}},"description":"authenticate using capsule serialized session","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["serializedSession","walletId"],"properties":{"serializedSession":{"type":"string"},"walletId":{"type":"string"}},"additionalProperties":false}}},"required":true}}},"/auth/apiKey":{"post":{"tags":["auth"],"operationId":"auth.authApiKey","parameters":[],"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["jwt","userId"],"properties":{"jwt":{"type":"string"},"userId":{"type":"string"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpApiDecodeError"}}}},"422":{"description":"InvalidRequest","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidRequest"}}}}},"description":"authenticate using api key","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["apiKey"],"properties":{"apiKey":{"type":"string"}},"additionalProperties":false}}},"required":true}}},"/auth/evm-signature/{ethAddress}":{"post":{"tags":["auth"],"operationId":"auth.authEvmSignature","parameters":[],"security":[],"responses":{"200":{"description":"AuthEvmSignatureResponseSchema","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthEvmSignatureResponseSchema"}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpApiDecodeError"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Unauthorized"}}}},"422":{"description":"InvalidRequest","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidRequest"}}}}},"description":"Authenticate using an EVM signature","summary":"Authenticate (EVM)","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthEvmSignaturePayloadSchema"}}},"required":true}}},"/google/oauth":{"get":{"tags":["google"],"operationId":"google.oauth","parameters":[],"security":[],"responses":{"302":{"description":"Success"},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpApiDecodeError"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Unauthorized"}}}},"422":{"description":"InvalidRequest","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidRequest"}}}}},"description":"authenticate google oauth callback"}}},"components":{"schemas":{"HttpApiDecodeError":{"type":"object","required":["issues","message","_tag"],"properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/Issue"}},"message":{"type":"string"},"_tag":{"type":"string","enum":["HttpApiDecodeError"]}},"additionalProperties":false,"description":"The request did not match the expected schema"},"Issue":{"type":"object","required":["_tag","path","message"],"properties":{"_tag":{"type":"string","enum":["Pointer","Unexpected","Missing","Composite","Refinement","Transformation","Type","Forbidden"],"description":"The tag identifying the type of parse issue"},"path":{"type":"array","items":{"$ref":"#/components/schemas/PropertyKey"},"description":"The path to the property where the issue occurred"},"message":{"type":"string","description":"A descriptive message explaining the issue"}},"additionalProperties":false,"description":"Represents an error encountered while parsing a value to match the schema"},"PropertyKey":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"object","required":["_tag","key"],"properties":{"_tag":{"type":"string","enum":["symbol"]},"key":{"type":"string"}},"additionalProperties":false,"description":"an object to be decoded into a globally shared symbol"}]},"InvalidRequest":{"type":"object","required":["message","_tag"],"properties":{"message":{"type":"string"},"_tag":{"type":"string","enum":["InvalidRequest"]}},"additionalProperties":false},"AuthEvmSignaturePayloadSchema":{"type":"object","required":["version","signature","createdAt"],"properties":{"version":{"type":"number","enum":[3]},"signature":{"type":"string"},"createdAt":{"$ref":"#/components/schemas/DateFromString"}},"additionalProperties":false},"DateFromString":{"type":"string","description":"a string to be decoded into a Date"},"AuthEvmSignaturePathSchema":{"type":"object","required":["ethAddress"],"properties":{"ethAddress":{"$ref":"#/components/schemas/EthAddressSchema"}},"additionalProperties":false},"EthAddressSchema":{"type":"string","description":"a string that will be trimmed"},"AuthEvmSignatureResponseSchema":{"type":"object","required":["jwt","ethAddress","userId"],"properties":{"jwt":{"type":"string"},"ethAddress":{"$ref":"#/components/schemas/EthAddressSchema"},"userId":{"type":"string"}},"additionalProperties":false},"Unauthorized":{"type":"object","required":["message","_tag"],"properties":{"message":{"type":"string"},"_tag":{"type":"string","enum":["Unauthorized"]}},"additionalProperties":false},"OauthQueryParams":{"type":"object","required":["code","state"],"properties":{"code":{"type":"string"},"state":{"type":"string","contentMediaType":"application/json","contentSchema":{"type":"object","required":["redirectUrl"],"properties":{"redirectUrl":{"type":"string"}},"additionalProperties":false}}},"additionalProperties":false}},"securitySchemes":{}},"security":[],"tags":[{"name":"auth"},{"name":"google"}],"servers":[{"url":"https://api.rhino.fi/authentication"}]}