# Generated with protoc-gen-openapi # https://github.com/google/gnostic/tree/master/cmd/protoc-gen-openapi openapi: 3.0.3 info: title: IntermediateService API version: 0.0.1 paths: /intermediate/v1/exchange-intermediate-session-for-session: post: tags: - IntermediateService operationId: IntermediateService_ExchangeIntermediateSessionForSession requestBody: content: application/json: schema: $ref: '#/components/schemas/ExchangeIntermediateSessionForSessionRequest' required: true responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/ExchangeIntermediateSessionForSessionResponse' default: description: Default error response content: application/json: schema: $ref: '#/components/schemas/Status' /intermediate/v1/exchange-relayed-session-token-for-session: post: tags: - IntermediateService operationId: IntermediateService_ExchangeRelayedSessionTokenForSession requestBody: content: application/json: schema: $ref: '#/components/schemas/ExchangeRelayedSessionTokenForSessionRequest' required: true responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/ExchangeRelayedSessionTokenForSessionResponse' default: description: Default error response content: application/json: schema: $ref: '#/components/schemas/Status' /intermediate/v1/exchange-session-for-intermediate-session: post: tags: - IntermediateService operationId: IntermediateService_ExchangeSessionForIntermediateSession requestBody: content: application/json: schema: $ref: '#/components/schemas/ExchangeSessionForIntermediateSessionRequest' required: true responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/ExchangeSessionForIntermediateSessionResponse' default: description: Default error response content: application/json: schema: $ref: '#/components/schemas/Status' /intermediate/v1/get-authenticator-app-options: post: tags: - IntermediateService operationId: IntermediateService_GetAuthenticatorAppOptions requestBody: content: application/json: schema: $ref: '#/components/schemas/GetAuthenticatorAppOptionsRequest' required: true responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/GetAuthenticatorAppOptionsResponse' default: description: Default error response content: application/json: schema: $ref: '#/components/schemas/Status' /intermediate/v1/get-passkey-options: post: tags: - IntermediateService operationId: IntermediateService_GetPasskeyOptions requestBody: content: application/json: schema: $ref: '#/components/schemas/GetPasskeyOptionsRequest' required: true responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/GetPasskeyOptionsResponse' default: description: Default error response content: application/json: schema: $ref: '#/components/schemas/Status' /intermediate/v1/github-oauth-redirect-url: post: tags: - IntermediateService operationId: IntermediateService_GetGithubOAuthRedirectURL requestBody: content: application/json: schema: $ref: '#/components/schemas/GetGithubOAuthRedirectURLRequest' required: true responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/GetGithubOAuthRedirectURLResponse' default: description: Default error response content: application/json: schema: $ref: '#/components/schemas/Status' /intermediate/v1/google-oauth-redirect-url: post: tags: - IntermediateService operationId: IntermediateService_GetGoogleOAuthRedirectURL requestBody: content: application/json: schema: $ref: '#/components/schemas/GetGoogleOAuthRedirectURLRequest' required: true responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/GetGoogleOAuthRedirectURLResponse' default: description: Default error response content: application/json: schema: $ref: '#/components/schemas/Status' /intermediate/v1/intermediate-session: post: tags: - IntermediateService operationId: IntermediateService_CreateIntermediateSession requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateIntermediateSessionRequest' required: true responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/CreateIntermediateSessionResponse' default: description: Default error response content: application/json: schema: $ref: '#/components/schemas/Status' /intermediate/v1/issue-email-verification-challenge: post: tags: - IntermediateService operationId: IntermediateService_IssueEmailVerificationChallenge requestBody: content: application/json: schema: $ref: '#/components/schemas/IssueEmailVerificationChallengeRequest' required: true responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/IssueEmailVerificationChallengeResponse' default: description: Default error response content: application/json: schema: $ref: '#/components/schemas/Status' /intermediate/v1/issue-passkey-challenge: post: tags: - IntermediateService operationId: IntermediateService_IssuePasskeyChallenge requestBody: content: application/json: schema: $ref: '#/components/schemas/IssuePasskeyChallengeRequest' required: true responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/IssuePasskeyChallengeResponse' default: description: Default error response content: application/json: schema: $ref: '#/components/schemas/Status' /intermediate/v1/issue-password-reset-code: post: tags: - IntermediateService operationId: IntermediateService_IssuePasswordResetCode requestBody: content: application/json: schema: $ref: '#/components/schemas/IssuePasswordResetCodeRequest' required: true responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/IssuePasswordResetCodeResponse' default: description: Default error response content: application/json: schema: $ref: '#/components/schemas/Status' /intermediate/v1/microsoft-oauth-redirect-url: post: tags: - IntermediateService operationId: IntermediateService_GetMicrosoftOAuthRedirectURL requestBody: content: application/json: schema: $ref: '#/components/schemas/GetMicrosoftOAuthRedirectURLRequest' required: true responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/GetMicrosoftOAuthRedirectURLResponse' default: description: Default error response content: application/json: schema: $ref: '#/components/schemas/Status' /intermediate/v1/organizations: get: tags: - IntermediateService operationId: IntermediateService_ListOrganizations responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/ListOrganizationsResponse' default: description: Default error response content: application/json: schema: $ref: '#/components/schemas/Status' post: tags: - IntermediateService operationId: IntermediateService_CreateOrganization requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateOrganizationRequest' required: true responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/CreateOrganizationResponse' default: description: Default error response content: application/json: schema: $ref: '#/components/schemas/Status' /intermediate/v1/redeem-github-oauth-code: post: tags: - IntermediateService operationId: IntermediateService_RedeemGithubOAuthCode requestBody: content: application/json: schema: $ref: '#/components/schemas/RedeemGithubOAuthCodeRequest' required: true responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/RedeemGithubOAuthCodeResponse' default: description: Default error response content: application/json: schema: $ref: '#/components/schemas/Status' /intermediate/v1/redeem-google-oauth-code: post: tags: - IntermediateService operationId: IntermediateService_RedeemGoogleOAuthCode requestBody: content: application/json: schema: $ref: '#/components/schemas/RedeemGoogleOAuthCodeRequest' required: true responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/RedeemGoogleOAuthCodeResponse' default: description: Default error response content: application/json: schema: $ref: '#/components/schemas/Status' /intermediate/v1/redeem-microsoft-oauth-code: post: tags: - IntermediateService operationId: IntermediateService_RedeemMicrosoftOAuthCode requestBody: content: application/json: schema: $ref: '#/components/schemas/RedeemMicrosoftOAuthCodeRequest' required: true responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/RedeemMicrosoftOAuthCodeResponse' default: description: Default error response content: application/json: schema: $ref: '#/components/schemas/Status' /intermediate/v1/redeem-user-impersonation-token: post: tags: - IntermediateService operationId: IntermediateService_RedeemUserImpersonationToken requestBody: content: application/json: schema: $ref: '#/components/schemas/RedeemUserImpersonationTokenRequest' required: true responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/RedeemUserImpersonationTokenResponse' default: description: Default error response content: application/json: schema: $ref: '#/components/schemas/Status' /intermediate/v1/register-authenticator-app: post: tags: - IntermediateService operationId: IntermediateService_RegisterAuthenticatorApp requestBody: content: application/json: schema: $ref: '#/components/schemas/RegisterAuthenticatorAppRequest' required: true responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/RegisterAuthenticatorAppResponse' default: description: Default error response content: application/json: schema: $ref: '#/components/schemas/Status' /intermediate/v1/register-passkey: post: tags: - IntermediateService operationId: IntermediateService_RegisterPasskey requestBody: content: application/json: schema: $ref: '#/components/schemas/RegisterPasskeyRequest' required: true responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/RegisterPasskeyResponse' default: description: Default error response content: application/json: schema: $ref: '#/components/schemas/Status' /intermediate/v1/register-password: post: tags: - IntermediateService operationId: IntermediateService_RegisterPassword requestBody: content: application/json: schema: $ref: '#/components/schemas/RegisterPasswordRequest' required: true responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/RegisterPasswordResponse' default: description: Default error response content: application/json: schema: $ref: '#/components/schemas/Status' /intermediate/v1/saml-organizations: post: tags: - IntermediateService operationId: IntermediateService_ListSAMLOrganizations requestBody: content: application/json: schema: $ref: '#/components/schemas/ListSAMLOrganizationsRequest' required: true responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/ListSAMLOrganizationsResponse' default: description: Default error response content: application/json: schema: $ref: '#/components/schemas/Status' /intermediate/v1/set-email-as-primary-login-factor: post: tags: - IntermediateService operationId: IntermediateService_SetEmailAsPrimaryLoginFactor requestBody: content: application/json: schema: $ref: '#/components/schemas/SetEmailAsPrimaryLoginFactorRequest' required: true responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/SetEmailAsPrimaryLoginFactorResponse' default: description: Default error response content: application/json: schema: $ref: '#/components/schemas/Status' /intermediate/v1/set-organization: post: tags: - IntermediateService operationId: IntermediateService_SetOrganization parameters: - name: organizationId in: query schema: type: string responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/SetOrganizationResponse' default: description: Default error response content: application/json: schema: $ref: '#/components/schemas/Status' /intermediate/v1/set-password-as-primary-login-factor: post: tags: - IntermediateService operationId: IntermediateService_SetPasswordAsPrimaryLoginFactor requestBody: content: application/json: schema: $ref: '#/components/schemas/SetPasswordAsPrimaryLoginFactorRequest' required: true responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/SetPasswordAsPrimaryLoginFactorResponse' default: description: Default error response content: application/json: schema: $ref: '#/components/schemas/Status' /intermediate/v1/verify-authenticator-app: post: tags: - IntermediateService operationId: IntermediateService_VerifyAuthenticatorApp requestBody: content: application/json: schema: $ref: '#/components/schemas/VerifyAuthenticatorAppRequest' required: true responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/VerifyAuthenticatorAppResponse' default: description: Default error response content: application/json: schema: $ref: '#/components/schemas/Status' /intermediate/v1/verify-email-challenge: post: tags: - IntermediateService operationId: IntermediateService_VerifyEmailChallenge requestBody: content: application/json: schema: $ref: '#/components/schemas/VerifyEmailChallengeRequest' required: true responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/VerifyEmailChallengeResponse' default: description: Default error response content: application/json: schema: $ref: '#/components/schemas/Status' /intermediate/v1/verify-passkey: post: tags: - IntermediateService operationId: IntermediateService_VerifyPasskey requestBody: content: application/json: schema: $ref: '#/components/schemas/VerifyPasskeyRequest' required: true responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/VerifyPasskeyResponse' default: description: Default error response content: application/json: schema: $ref: '#/components/schemas/Status' /intermediate/v1/verify-password: post: tags: - IntermediateService operationId: IntermediateService_VerifyPassword requestBody: content: application/json: schema: $ref: '#/components/schemas/VerifyPasswordRequest' required: true responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/VerifyPasswordResponse' default: description: Default error response content: application/json: schema: $ref: '#/components/schemas/Status' /intermediate/v1/verify-password-reset-code: post: tags: - IntermediateService operationId: IntermediateService_VerifyPasswordResetCode requestBody: content: application/json: schema: $ref: '#/components/schemas/VerifyPasswordResetCodeRequest' required: true responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/VerifyPasswordResetCodeResponse' default: description: Default error response content: application/json: schema: $ref: '#/components/schemas/Status' /intermediate/v1/whoami: get: tags: - IntermediateService operationId: IntermediateService_Whoami responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/WhoamiResponse' default: description: Default error response content: application/json: schema: $ref: '#/components/schemas/Status' components: schemas: CreateIntermediateSessionRequest: type: object properties: relayedSessionState: type: string redirectUri: type: string returnRelayedSessionTokenAsQueryParam: type: boolean CreateIntermediateSessionResponse: type: object properties: intermediateSessionSecretToken: type: string CreateOrganizationRequest: type: object properties: displayName: type: string CreateOrganizationResponse: type: object properties: organizationId: type: string ExchangeIntermediateSessionForSessionRequest: type: object properties: {} ExchangeIntermediateSessionForSessionResponse: type: object properties: refreshToken: type: string accessToken: type: string newUser: type: boolean relayedSessionToken: type: string redirectUri: type: string returnRelayedSessionTokenAsQueryParam: type: boolean ExchangeRelayedSessionTokenForSessionRequest: type: object properties: relayedSessionToken: type: string ExchangeRelayedSessionTokenForSessionResponse: type: object properties: refreshToken: type: string accessToken: type: string relayedSessionState: type: string ExchangeSessionForIntermediateSessionRequest: type: object properties: refreshToken: type: string ExchangeSessionForIntermediateSessionResponse: type: object properties: intermediateSessionSecretToken: type: string GetAuthenticatorAppOptionsRequest: type: object properties: {} GetAuthenticatorAppOptionsResponse: type: object properties: otpauthUri: type: string GetGithubOAuthRedirectURLRequest: type: object properties: redirectUrl: type: string GetGithubOAuthRedirectURLResponse: type: object properties: url: type: string GetGoogleOAuthRedirectURLRequest: type: object properties: redirectUrl: type: string GetGoogleOAuthRedirectURLResponse: type: object properties: url: type: string GetMicrosoftOAuthRedirectURLRequest: type: object properties: redirectUrl: type: string GetMicrosoftOAuthRedirectURLResponse: type: object properties: url: type: string GetPasskeyOptionsRequest: type: object properties: {} GetPasskeyOptionsResponse: type: object properties: rpId: type: string rpName: type: string userId: type: string userDisplayName: type: string GoogleProtobufAny: type: object properties: '@type': type: string description: The type of the serialized message. additionalProperties: true description: Contains an arbitrary serialized message along with a @type that describes the type of the serialized message. IntermediateSession: type: object properties: id: type: string projectId: type: string email: type: string emailVerified: type: boolean userDisplayName: type: string googleUserId: type: string googleHostedDomain: type: string microsoftUserId: type: string microsoftTenantId: type: string githubUserId: type: string organizationId: type: string passwordVerified: type: boolean authenticatorAppVerified: type: boolean passkeyVerified: type: boolean newUserPasswordRegistered: type: boolean emailVerificationChallengeRegistered: type: boolean primaryAuthFactor: type: integer format: enum IssueEmailVerificationChallengeRequest: type: object properties: email: type: string IssueEmailVerificationChallengeResponse: type: object properties: {} IssuePasskeyChallengeRequest: type: object properties: {} IssuePasskeyChallengeResponse: type: object properties: rpId: type: string credentialIds: type: array items: type: string format: bytes challenge: type: string format: bytes IssuePasswordResetCodeRequest: type: object properties: {} IssuePasswordResetCodeResponse: type: object properties: {} ListOrganizationsResponse: type: object properties: organizations: type: array items: $ref: '#/components/schemas/Organization' ListSAMLOrganizationsRequest: type: object properties: email: type: string ListSAMLOrganizationsResponse: type: object properties: organizations: type: array items: $ref: '#/components/schemas/Organization' Organization: type: object properties: id: type: string displayName: type: string logInWithEmail: type: boolean logInWithGoogle: type: boolean logInWithMicrosoft: type: boolean logInWithGithub: type: boolean logInWithPassword: type: boolean logInWithSaml: type: boolean logInWithAuthenticatorApp: type: boolean logInWithPasskey: type: boolean requireMfa: type: boolean primarySamlConnectionId: type: string userExists: type: boolean userHasPassword: type: boolean userHasAuthenticatorApp: type: boolean userHasPasskey: type: boolean RedeemGithubOAuthCodeRequest: type: object properties: code: type: string state: type: string redirectUrl: type: string RedeemGithubOAuthCodeResponse: type: object properties: {} RedeemGoogleOAuthCodeRequest: type: object properties: code: type: string state: type: string redirectUrl: type: string RedeemGoogleOAuthCodeResponse: type: object properties: {} RedeemMicrosoftOAuthCodeRequest: type: object properties: code: type: string state: type: string redirectUrl: type: string RedeemMicrosoftOAuthCodeResponse: type: object properties: {} RedeemUserImpersonationTokenRequest: type: object properties: secretUserImpersonationToken: type: string RedeemUserImpersonationTokenResponse: type: object properties: refreshToken: type: string accessToken: type: string RegisterAuthenticatorAppRequest: type: object properties: totpCode: type: string RegisterAuthenticatorAppResponse: type: object properties: recoveryCodes: type: array items: type: string RegisterPasskeyRequest: type: object properties: attestationObject: type: string rpId: type: string RegisterPasskeyResponse: type: object properties: {} RegisterPasswordRequest: type: object properties: password: type: string RegisterPasswordResponse: type: object properties: {} SetEmailAsPrimaryLoginFactorRequest: type: object properties: {} SetEmailAsPrimaryLoginFactorResponse: type: object properties: {} SetOrganizationResponse: type: object properties: {} SetPasswordAsPrimaryLoginFactorRequest: type: object properties: {} SetPasswordAsPrimaryLoginFactorResponse: type: object properties: {} Status: type: object properties: code: type: integer description: The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code]. format: int32 message: type: string description: A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the [google.rpc.Status.details][google.rpc.Status.details] field, or localized by the client. details: type: array items: $ref: '#/components/schemas/GoogleProtobufAny' description: A list of messages that carry the error details. There is a common set of message types for APIs to use. description: 'The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).' VerifyAuthenticatorAppRequest: type: object properties: totpCode: type: string recoveryCode: type: string VerifyAuthenticatorAppResponse: type: object properties: {} VerifyEmailChallengeRequest: type: object properties: code: type: string VerifyEmailChallengeResponse: type: object properties: {} VerifyPasskeyRequest: type: object properties: credentialId: type: string format: bytes clientDataJson: type: string authenticatorData: type: string signature: type: string VerifyPasskeyResponse: type: object properties: {} VerifyPasswordRequest: type: object properties: organizationId: type: string password: type: string email: type: string VerifyPasswordResetCodeRequest: type: object properties: passwordResetCode: type: string VerifyPasswordResetCodeResponse: type: object properties: {} VerifyPasswordResponse: type: object properties: {} WhoamiResponse: type: object properties: intermediateSession: $ref: '#/components/schemas/IntermediateSession' tags: - name: IntermediateService