# -*- coding: utf-8 -*-
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: scalekit/v1/auth/passwordless.proto
# Protobuf Python Version: 5.26.1
"""Generated protocol buffer code."""
from google.protobuf import descriptor as _descriptor
from google.protobuf import descriptor_pool as _descriptor_pool
from google.protobuf import symbol_database as _symbol_database
from google.protobuf.internal import builder as _builder
# @@protoc_insertion_point(imports)

_sym_db = _symbol_database.Default()


from buf.validate import validate_pb2 as buf_dot_validate_dot_validate__pb2
from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2
from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2
from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2
from google.protobuf import struct_pb2 as google_dot_protobuf_dot_struct__pb2
from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2
from protoc_gen_openapiv2.options import annotations_pb2 as protoc__gen__openapiv2_dot_options_dot_annotations__pb2
from scalekit.v1.commons import commons_pb2 as scalekit_dot_v1_dot_commons_dot_commons__pb2
from scalekit.v1.options import options_pb2 as scalekit_dot_v1_dot_options_dot_options__pb2


DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n#scalekit/v1/auth/passwordless.proto\x12\x1dscalekit.v1.auth.passwordless\x1a\x1b\x62uf/validate/validate.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\x1a!scalekit/v1/commons/commons.proto\x1a!scalekit/v1/options/options.proto\"\xc8\x10\n\x17SendPasswordlessRequest\x12\xad\x01\n\x05\x65mail\x18\x01 \x01(\tB\x96\x01\x92\x41\x85\x01\x32kEmail address where the passwordless authentication credentials will be sent. Must be a valid email format.J\x16\"john.doe@example.com\"\xbaH\nr\x05\x10\x01\x18\xc0\x02\xc8\x01\x01R\x05\x65mail\x12\xa6\x02\n\x08template\x18\x02 \x01(\x0e\x32+.scalekit.v1.auth.passwordless.TemplateTypeB\xd7\x01\x92\x41\xcb\x01\x32\xbe\x01Specifies the authentication intent for the passwordless request. Use SIGNIN for existing users or SIGNUP for new user registration. This affects the email template and user experience flow.J\x08\"SIGNIN\"\xbaH\x05\x82\x01\x02\x10\x01H\x00R\x08template\x88\x01\x01\x12\xa9\x02\n\x12magiclink_auth_uri\x18\x03 \x01(\tB\xf5\x01\x92\x41\xe4\x01\x32\xaf\x01Your application\'s callback URL where users will be redirected after clicking the magic link in their email. The link token will be appended as a query parameter as link_tokenJ0\"https://yourapp.com/auth/passwordless/callback\"\xe0\x41\x01\xbaH\x07r\x05\x10\x01\x18\xe8\x07H\x01R\x10magiclinkAuthUri\x88\x01\x01\x12\x9b\x02\n\x05state\x18\x04 \x01(\tB\xff\x01\x92\x41\xee\x01\x32\xd9\x01\x43ustom state parameter that will be returned unchanged in the verification response. Use this to maintain application state between the authentication request and callback, such as the intended destination after loginJ\x10\"d62ivasry29lso\"\xe0\x41\x01\xbaH\x07r\x05\x10\x01\x18\xe8\x07H\x02R\x05state\x88\x01\x01\x12\xa6\x01\n\nexpires_in\x18\x05 \x01(\rB\x81\x01\x92\x41{2tTime in seconds until the passwordless authentication expires. If not specified, defaults to 300 seconds (5 minutes)J\x03\x33\x30\x30\xe0\x41\x01H\x03R\texpiresIn\x88\x01\x01\x12\xdd\x05\n\x12template_variables\x18\x06 \x03(\x0b\x32M.scalekit.v1.auth.passwordless.SendPasswordlessRequest.TemplateVariablesEntryB\xde\x04\x92\x41\xcf\x04\x32\x9a\x04\x41 set of key-value pairs to personalize the email template.\n\n* You may include up to 30 key-value pairs.\n* The following variable names are reserved by the system and cannot be supplied: `otp`, `expiry_time_relative`, `link`, `expire_time`, `expiry_time`.\n* Every variable referenced in your email template must be included as a key-value pair.\n\nUse these variables to insert custom information, such as a team name, URL or the user\'s employee ID. All variables are interpolated before the email is sent, regardless of the email provider.J0{\"custom_variable_key\": \"custom_variable_value\"}\xe0\x41\x01\xbaH\x05\x9a\x01\x02\x10\x1eR\x11templateVariables\x1a\x44\n\x16TemplateVariablesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\x42\x0b\n\t_templateB\x15\n\x13_magiclink_auth_uriB\x08\n\x06_stateB\r\n\x0b_expires_in\"\x9c\x07\n\x18SendPasswordlessResponse\x12\xc5\x01\n\x0f\x61uth_request_id\x18\x01 \x01(\tB\x9c\x01\x92\x41\x95\x01\x32]Unique identifier for this passwordless authentication request. Use this ID to resend emails.J4\"h5Y8kT5RVwaea5WEgW4n-6C-aO_-fuTUW7Vb9-Rh3AcY9qxZqQ\"\xe0\x41\x03R\rauthRequestId\x12\xcc\x01\n\nexpires_at\x18\x02 \x01(\x03\x42\xac\x01\x92\x41\xa5\x01\x32\x96\x01Unix timestamp (seconds since epoch) when the passwordless authentication will expire. After this time, the OTP or magic link will no longer be valid.J\n1748696575\xe0\x41\x03R\texpiresAt\x12\xbe\x01\n\nexpires_in\x18\x03 \x01(\rB\x9e\x01\x92\x41\x97\x01\x32\x8f\x01Number of seconds from now until the passwordless authentication expires. This is a convenience field calculated from the expires_at timestamp.J\x03\x33\x30\x30\xe0\x41\x03R\texpiresIn\x12\xa7\x02\n\x11passwordless_type\x18\x04 \x01(\x0e\x32/.scalekit.v1.auth.passwordless.PasswordlessTypeB\xc8\x01\x92\x41\xbc\x01\x32\xb2\x01Type of passwordless authentication that was sent via email. OTP sends a numeric code, LINK sends a clickable magic link, and LINK_OTP provides both options for user convenience.J\x05\"OTP\"\xbaH\x05\x82\x01\x02\x10\x01R\x10passwordlessType\"\xb4\x06\n\x19VerifyPasswordLessRequest\x12\xbd\x01\n\x04\x63ode\x18\x01 \x01(\tB\xa6\x01\x92\x41\x99\x01\x32\x8c\x01The Verification Code (OTP) received via email. This is typically a 6-digit numeric code that users enter manually to verify their identity.J\x08\"123456\"\xbaH\x06r\x04\x10\x01\x18\x14H\x00R\x04\x63ode\x12\x8a\x02\n\nlink_token\x18\x02 \x01(\tB\xe8\x01\x92\x41\xdb\x01\x32\xb0\x01The unique token from the magic link URL received via email. Extract this token when users click the magic link and are redirected to your application to later verify the user.J&\"afe9d61c-d80d-4020-a8ee-61765ab71cb3\"\xbaH\x06r\x04\x10\x01\x18\x64H\x00R\tlinkToken\x12\xa2\x02\n\x0f\x61uth_request_id\x18\x03 \x01(\tB\xf4\x01\x92\x41\xe8\x01\x32\xaf\x01The authentication request identifier returned from the send passwordless email endpoint. Required when verifying OTP codes to link the verification with the original request.J4\"h5Y8kT5RVwaea5WEgW4n-6C-aO_-fuTUW7Vb9-Rh3AcY9qxZqQ\"\xbaH\x05r\x03\x18\xc8\x01H\x01R\rauthRequestId\x88\x01\x01\x42\x11\n\x0f\x61uth_credentialB\x12\n\x10_auth_request_id\"\xc1\x02\n\x19ResendPasswordlessRequest\x12\xa3\x02\n\x0f\x61uth_request_id\x18\x01 \x01(\tB\xfa\x01\x92\x41\xe9\x01\x32\xb0\x01The authentication request identifier from the original send passwordless email request. Use this to resend the Verification Code (OTP) or Magic Link to the same email address.J4\"h5Y8kT5RVwaea5WEgW4n-6C-aO_-fuTUW7Vb9-Rh3AcY9qxZqQ\"\xbaH\nr\x05\x10\x01\x18\xc8\x01\xc8\x01\x01R\rauthRequestId\"\x94\x07\n\x1aVerifyPasswordLessResponse\x12\xbc\x01\n\x05\x65mail\x18\x01 \x01(\tB\xa5\x01\x92\x41\x9e\x01\x32\x83\x01\x45mail address of the successfully authenticated user. This confirms which email account was verified through the passwordless flow.J\x16\"john.doe@example.com\"\xe0\x41\x03R\x05\x65mail\x12\xe8\x01\n\x05state\x18\x02 \x01(\tB\xcc\x01\x92\x41\xc5\x01\x32\xad\x01The custom state parameter that was provided in the original authentication request, returned unchanged. Use this to restore your application\'s context after authentication.J\x13\"kdt7yiag28t341fr1\"\xe0\x41\x03H\x00R\x05state\x88\x01\x01\x12\xcb\x01\n\x08template\x18\x03 \x01(\x0e\x32+.scalekit.v1.auth.passwordless.TemplateTypeB}\x92\x41r2fSpecifies which email template to choose. For User Signin choose SIGNIN and for User Signup use SIGNUPJ\x08\"SIGNIN\"\xbaH\x05\x82\x01\x02\x10\x01H\x01R\x08template\x88\x01\x01\x12\xe6\x01\n\x11passwordless_type\x18\x04 \x01(\x0e\x32/.scalekit.v1.auth.passwordless.PasswordlessTypeB\x87\x01\x92\x41|2sThe type of passwordless authentication that was successfully verified, confirming which method the user completed.J\x05\"OTP\"\xbaH\x05\x82\x01\x02\x10\x01R\x10passwordlessTypeB\x08\n\x06_stateB\x0b\n\t_template*7\n\x0cTemplateType\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\n\n\x06SIGNIN\x10\x01\x12\n\n\x06SIGNUP\x10\x02*V\n\x10PasswordlessType\x12!\n\x1dPASSWORDLESS_TYPE_UNSPECIFIED\x10\x00\x12\x07\n\x03OTP\x10\x01\x12\x08\n\x04LINK\x10\x02\x12\x0c\n\x08LINK_OTP\x10\x03\x32\xe9!\n\x13PasswordlessService\x12\xdb\x0c\n\x15SendPasswordlessEmail\x12\x36.scalekit.v1.auth.passwordless.SendPasswordlessRequest\x1a\x37.scalekit.v1.auth.passwordless.SendPasswordlessResponse\"\xd0\x0b\x92\x41\x9c\x0b\n\x11Passwordless Auth\x12\x17Send passwordless email\x1atSend a verification email containing either a verification code (OTP), magic link, or both to a user\'s email addressJ\xd0\x01\n\x03\x32\x30\x30\x12\xc8\x01\n\x8d\x01Successfully sent passwordless authentication email. Returns the authentication request details including expiration time and auth request ID\x12\x36\n4\x1a\x32#/definitions/passwordlessSendPasswordlessResponsej\xa4\x08\n\rx-codeSamples\x12\x92\x08\x32\x8f\x08\n\xfc\x02*\xf9\x02\n\x16\n\x05label\x12\r\x1a\x0bNode.js SDK\n\x14\n\x04lang\x12\x0c\x1a\njavascript\n\xc8\x02\n\x06source\x12\xbd\x02\x1a\xba\x02\x63onst response = await scalekit.passwordless.\n  sendPasswordlessEmail(\n\t\"john.doe@example.com\",\n\t{\n\t\ttemplate: \"SIGNIN\",\n\t\texpiresIn: 100,\n\t\tmagiclinkAuthUri: \"https://www.google.com\",\n\t\ttemplateVariables: {\n\t\t\temployeeID: \"EMP523\",\n\t\t\tteamName: \"Alpha Team\",\n\t\t\tsupportEmail: \"support@yourcompany.com\",\n\t\t},\n\t}\n);\n\x8d\x05*\x8a\x05\n\x11\n\x05label\x12\x08\x1a\x06Go SDK\n\x0c\n\x04lang\x12\x04\x1a\x02go\n\xe6\x04\n\x06source\x12\xdb\x04\x1a\xd8\x04templateType := scalekit.TemplateTypeSignin\nresponse, err := client.Passwordless().SendPasswordlessEmail(\n    ctx,\n    \"john.doe@example.com\",\n    &scalekit.SendPasswordlessOptions{\n        Template:         &templateType,\n        ExpiresIn:        100,\n        MagiclinkAuthUri: \"https://www.google.com\",\n        TemplateVariables: map[string]string{\n            \"employeeID\":    \"EMP523\",\n            \"teamName\":      \"Alpha Team\",\n            \"supportEmail\":  \"support@yourcompany.com\",\n        },\n    },\n)\n\nif err != nil {\n    // Handle error\n    return\n}\n\nauthRequestId := response.AuthRequestId\x82\xb5\x18\x02\x18\x04\x82\xd3\xe4\x93\x02$\"\x1f/api/v1/passwordless/email/send:\x01*\x12\xbc\x0b\n\x17VerifyPasswordlessEmail\x12\x38.scalekit.v1.auth.passwordless.VerifyPasswordLessRequest\x1a\x39.scalekit.v1.auth.passwordless.VerifyPasswordLessResponse\"\xab\n\x92\x41\xf5\t\n\x11Passwordless Auth\x12\x19Verify passwordless email\x1aMVerify a user\'s identity using either a verification code or magic link tokenJ\x92\x01\n\x03\x32\x30\x30\x12\x8a\x01\nISuccessfully verified the passwordless authentication. Returns user email\x12=\n;\x1a\x39.scalekit.v1.auth.passwordless.VerifyPasswordLessResponsej\xe0\x07\n\rx-codeSamples\x12\xce\x07\x32\xcb\x07\n\xac\x02*\xa9\x02\n\x16\n\x05label\x12\r\x1a\x0bNode.js SDK\n\x14\n\x04lang\x12\x0c\x1a\njavascript\n\xf8\x01\n\x06source\x12\xed\x01\x1a\xea\x01\x63onst { authRequestId } = sendResponse;\nconst verifyResponse = await scalekit.passwordless.\n  verifyPasswordlessEmail(\n\t// Verification Code (OTP)\n\t{ code: \"123456\" },\n\t// Magic Link Token\n\t{ linkToken: link_token },\n\tauthRequestId\n);\n\x99\x05*\x96\x05\n\x11\n\x05label\x12\x08\x1a\x06Go SDK\n\x0c\n\x04lang\x12\x04\x1a\x02go\n\xf2\x04\n\x06source\x12\xe7\x04\x1a\xe4\x04// Verify with OTP code\nverifyResponse, err := client.Passwordless().VerifyPasswordlessEmail(\n    ctx,\n    &scalekit.VerifyPasswordlessOptions{\n        Code:          \"123456\", // OTP code\n        AuthRequestId: authRequestId,\n    },\n)\n\nif err != nil {\n    // Handle error\n    return\n}\n\n// Verify with magic link token\nverifyResponse, err := client.Passwordless().VerifyPasswordlessEmail(\n    ctx,\n    &scalekit.VerifyPasswordlessOptions{\n        LinkToken: linkToken, // Magic link token\n    },\n)\n\nif err != nil {\n    // Handle error\n    return\n}\n\n// User verified successfully\nuserEmail := verifyResponse.Email\x82\xb5\x18\x02\x18\x04\x82\xd3\xe4\x93\x02&\"!/api/v1/passwordless/email/verify:\x01*\x12\xd8\x07\n\x17ResendPasswordlessEmail\x12\x38.scalekit.v1.auth.passwordless.ResendPasswordlessRequest\x1a\x37.scalekit.v1.auth.passwordless.SendPasswordlessResponse\"\xc9\x06\x92\x41\x93\x06\n\x11Passwordless Auth\x12\x19Resend passwordless email\x1a\x62Resend a verification email if the user didn\'t receive it or if the previous code/link has expiredJ\xcb\x01\n\x03\x32\x30\x30\x12\xc3\x01\n\x83\x01Successfully resent the passwordless authentication email. Returns updated authentication request details with new expiration time.\x12;\n9\x1a\x37.scalekit.v1.auth.passwordless.SendPasswordlessResponsej\xb0\x03\n\rx-codeSamples\x12\x9e\x03\x32\x9b\x03\n\xcb\x01*\xc8\x01\n\x16\n\x05label\x12\r\x1a\x0bNode.js SDK\n\x14\n\x04lang\x12\x0c\x1a\njavascript\n\x97\x01\n\x06source\x12\x8c\x01\x1a\x89\x01\x63onst { authRequestId } = sendResponse;\nconst resendResponse = await scalekit.passwordless\n.resendPasswordlessEmail(\n    authRequestId\n);\n\xca\x01*\xc7\x01\n\x11\n\x05label\x12\x08\x1a\x06Go SDK\n\x0c\n\x04lang\x12\x04\x1a\x02go\n\xa3\x01\n\x06source\x12\x98\x01\x1a\x95\x01resendResponse, err := client.Passwordless().ResendPasswordlessEmail(\n    ctx,\n    authRequestId,\n)\n\nif err != nil {\n    // Handle error\n    return\n}\x82\xb5\x18\x02\x18\x04\x82\xd3\xe4\x93\x02&\"!/api/v1/passwordless/email/resend:\x01*\x1a\xd9\x01\x92\x41\xd5\x01\n\x11Passwordless Auth\x12\xbf\x01\x45ndpoints for sending and verifying passwordless authentication emails. These APIs allow users to authenticate without passwords by receiving a verification code or magic link in their email.B=Z;github.com/scalekit-inc/scalekit/pkg/grpc/auth/passwordlessb\x06proto3')

_globals = globals()
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'scalekit.v1.auth.passwordless_pb2', _globals)
if not _descriptor._USE_C_DESCRIPTORS:
  _globals['DESCRIPTOR']._loaded_options = None
  _globals['DESCRIPTOR']._serialized_options = b'Z;github.com/scalekit-inc/scalekit/pkg/grpc/auth/passwordless'
  _globals['_SENDPASSWORDLESSREQUEST_TEMPLATEVARIABLESENTRY']._loaded_options = None
  _globals['_SENDPASSWORDLESSREQUEST_TEMPLATEVARIABLESENTRY']._serialized_options = b'8\001'
  _globals['_SENDPASSWORDLESSREQUEST'].fields_by_name['email']._loaded_options = None
  _globals['_SENDPASSWORDLESSREQUEST'].fields_by_name['email']._serialized_options = b'\222A\205\0012kEmail address where the passwordless authentication credentials will be sent. Must be a valid email format.J\026\"john.doe@example.com\"\272H\nr\005\020\001\030\300\002\310\001\001'
  _globals['_SENDPASSWORDLESSREQUEST'].fields_by_name['template']._loaded_options = None
  _globals['_SENDPASSWORDLESSREQUEST'].fields_by_name['template']._serialized_options = b'\222A\313\0012\276\001Specifies the authentication intent for the passwordless request. Use SIGNIN for existing users or SIGNUP for new user registration. This affects the email template and user experience flow.J\010\"SIGNIN\"\272H\005\202\001\002\020\001'
  _globals['_SENDPASSWORDLESSREQUEST'].fields_by_name['magiclink_auth_uri']._loaded_options = None
  _globals['_SENDPASSWORDLESSREQUEST'].fields_by_name['magiclink_auth_uri']._serialized_options = b'\222A\344\0012\257\001Your application\'s callback URL where users will be redirected after clicking the magic link in their email. The link token will be appended as a query parameter as link_tokenJ0\"https://yourapp.com/auth/passwordless/callback\"\340A\001\272H\007r\005\020\001\030\350\007'
  _globals['_SENDPASSWORDLESSREQUEST'].fields_by_name['state']._loaded_options = None
  _globals['_SENDPASSWORDLESSREQUEST'].fields_by_name['state']._serialized_options = b'\222A\356\0012\331\001Custom state parameter that will be returned unchanged in the verification response. Use this to maintain application state between the authentication request and callback, such as the intended destination after loginJ\020\"d62ivasry29lso\"\340A\001\272H\007r\005\020\001\030\350\007'
  _globals['_SENDPASSWORDLESSREQUEST'].fields_by_name['expires_in']._loaded_options = None
  _globals['_SENDPASSWORDLESSREQUEST'].fields_by_name['expires_in']._serialized_options = b'\222A{2tTime in seconds until the passwordless authentication expires. If not specified, defaults to 300 seconds (5 minutes)J\003300\340A\001'
  _globals['_SENDPASSWORDLESSREQUEST'].fields_by_name['template_variables']._loaded_options = None
  _globals['_SENDPASSWORDLESSREQUEST'].fields_by_name['template_variables']._serialized_options = b'\222A\317\0042\232\004A set of key-value pairs to personalize the email template.\n\n* You may include up to 30 key-value pairs.\n* The following variable names are reserved by the system and cannot be supplied: `otp`, `expiry_time_relative`, `link`, `expire_time`, `expiry_time`.\n* Every variable referenced in your email template must be included as a key-value pair.\n\nUse these variables to insert custom information, such as a team name, URL or the user\'s employee ID. All variables are interpolated before the email is sent, regardless of the email provider.J0{\"custom_variable_key\": \"custom_variable_value\"}\340A\001\272H\005\232\001\002\020\036'
  _globals['_SENDPASSWORDLESSRESPONSE'].fields_by_name['auth_request_id']._loaded_options = None
  _globals['_SENDPASSWORDLESSRESPONSE'].fields_by_name['auth_request_id']._serialized_options = b'\222A\225\0012]Unique identifier for this passwordless authentication request. Use this ID to resend emails.J4\"h5Y8kT5RVwaea5WEgW4n-6C-aO_-fuTUW7Vb9-Rh3AcY9qxZqQ\"\340A\003'
  _globals['_SENDPASSWORDLESSRESPONSE'].fields_by_name['expires_at']._loaded_options = None
  _globals['_SENDPASSWORDLESSRESPONSE'].fields_by_name['expires_at']._serialized_options = b'\222A\245\0012\226\001Unix timestamp (seconds since epoch) when the passwordless authentication will expire. After this time, the OTP or magic link will no longer be valid.J\n1748696575\340A\003'
  _globals['_SENDPASSWORDLESSRESPONSE'].fields_by_name['expires_in']._loaded_options = None
  _globals['_SENDPASSWORDLESSRESPONSE'].fields_by_name['expires_in']._serialized_options = b'\222A\227\0012\217\001Number of seconds from now until the passwordless authentication expires. This is a convenience field calculated from the expires_at timestamp.J\003300\340A\003'
  _globals['_SENDPASSWORDLESSRESPONSE'].fields_by_name['passwordless_type']._loaded_options = None
  _globals['_SENDPASSWORDLESSRESPONSE'].fields_by_name['passwordless_type']._serialized_options = b'\222A\274\0012\262\001Type of passwordless authentication that was sent via email. OTP sends a numeric code, LINK sends a clickable magic link, and LINK_OTP provides both options for user convenience.J\005\"OTP\"\272H\005\202\001\002\020\001'
  _globals['_VERIFYPASSWORDLESSREQUEST'].fields_by_name['code']._loaded_options = None
  _globals['_VERIFYPASSWORDLESSREQUEST'].fields_by_name['code']._serialized_options = b'\222A\231\0012\214\001The Verification Code (OTP) received via email. This is typically a 6-digit numeric code that users enter manually to verify their identity.J\010\"123456\"\272H\006r\004\020\001\030\024'
  _globals['_VERIFYPASSWORDLESSREQUEST'].fields_by_name['link_token']._loaded_options = None
  _globals['_VERIFYPASSWORDLESSREQUEST'].fields_by_name['link_token']._serialized_options = b'\222A\333\0012\260\001The unique token from the magic link URL received via email. Extract this token when users click the magic link and are redirected to your application to later verify the user.J&\"afe9d61c-d80d-4020-a8ee-61765ab71cb3\"\272H\006r\004\020\001\030d'
  _globals['_VERIFYPASSWORDLESSREQUEST'].fields_by_name['auth_request_id']._loaded_options = None
  _globals['_VERIFYPASSWORDLESSREQUEST'].fields_by_name['auth_request_id']._serialized_options = b'\222A\350\0012\257\001The authentication request identifier returned from the send passwordless email endpoint. Required when verifying OTP codes to link the verification with the original request.J4\"h5Y8kT5RVwaea5WEgW4n-6C-aO_-fuTUW7Vb9-Rh3AcY9qxZqQ\"\272H\005r\003\030\310\001'
  _globals['_RESENDPASSWORDLESSREQUEST'].fields_by_name['auth_request_id']._loaded_options = None
  _globals['_RESENDPASSWORDLESSREQUEST'].fields_by_name['auth_request_id']._serialized_options = b'\222A\351\0012\260\001The authentication request identifier from the original send passwordless email request. Use this to resend the Verification Code (OTP) or Magic Link to the same email address.J4\"h5Y8kT5RVwaea5WEgW4n-6C-aO_-fuTUW7Vb9-Rh3AcY9qxZqQ\"\272H\nr\005\020\001\030\310\001\310\001\001'
  _globals['_VERIFYPASSWORDLESSRESPONSE'].fields_by_name['email']._loaded_options = None
  _globals['_VERIFYPASSWORDLESSRESPONSE'].fields_by_name['email']._serialized_options = b'\222A\236\0012\203\001Email address of the successfully authenticated user. This confirms which email account was verified through the passwordless flow.J\026\"john.doe@example.com\"\340A\003'
  _globals['_VERIFYPASSWORDLESSRESPONSE'].fields_by_name['state']._loaded_options = None
  _globals['_VERIFYPASSWORDLESSRESPONSE'].fields_by_name['state']._serialized_options = b'\222A\305\0012\255\001The custom state parameter that was provided in the original authentication request, returned unchanged. Use this to restore your application\'s context after authentication.J\023\"kdt7yiag28t341fr1\"\340A\003'
  _globals['_VERIFYPASSWORDLESSRESPONSE'].fields_by_name['template']._loaded_options = None
  _globals['_VERIFYPASSWORDLESSRESPONSE'].fields_by_name['template']._serialized_options = b'\222Ar2fSpecifies which email template to choose. For User Signin choose SIGNIN and for User Signup use SIGNUPJ\010\"SIGNIN\"\272H\005\202\001\002\020\001'
  _globals['_VERIFYPASSWORDLESSRESPONSE'].fields_by_name['passwordless_type']._loaded_options = None
  _globals['_VERIFYPASSWORDLESSRESPONSE'].fields_by_name['passwordless_type']._serialized_options = b'\222A|2sThe type of passwordless authentication that was successfully verified, confirming which method the user completed.J\005\"OTP\"\272H\005\202\001\002\020\001'
  _globals['_PASSWORDLESSSERVICE']._loaded_options = None
  _globals['_PASSWORDLESSSERVICE']._serialized_options = b'\222A\325\001\n\021Passwordless Auth\022\277\001Endpoints for sending and verifying passwordless authentication emails. These APIs allow users to authenticate without passwords by receiving a verification code or magic link in their email.'
  _globals['_PASSWORDLESSSERVICE'].methods_by_name['SendPasswordlessEmail']._loaded_options = None
  _globals['_PASSWORDLESSSERVICE'].methods_by_name['SendPasswordlessEmail']._serialized_options = b'\222A\234\013\n\021Passwordless Auth\022\027Send passwordless email\032tSend a verification email containing either a verification code (OTP), magic link, or both to a user\'s email addressJ\320\001\n\003200\022\310\001\n\215\001Successfully sent passwordless authentication email. Returns the authentication request details including expiration time and auth request ID\0226\n4\0322#/definitions/passwordlessSendPasswordlessResponsej\244\010\n\rx-codeSamples\022\222\0102\217\010\n\374\002*\371\002\n\026\n\005label\022\r\032\013Node.js SDK\n\024\n\004lang\022\014\032\njavascript\n\310\002\n\006source\022\275\002\032\272\002const response = await scalekit.passwordless.\n  sendPasswordlessEmail(\n\t\"john.doe@example.com\",\n\t{\n\t\ttemplate: \"SIGNIN\",\n\t\texpiresIn: 100,\n\t\tmagiclinkAuthUri: \"https://www.google.com\",\n\t\ttemplateVariables: {\n\t\t\temployeeID: \"EMP523\",\n\t\t\tteamName: \"Alpha Team\",\n\t\t\tsupportEmail: \"support@yourcompany.com\",\n\t\t},\n\t}\n);\n\215\005*\212\005\n\021\n\005label\022\010\032\006Go SDK\n\014\n\004lang\022\004\032\002go\n\346\004\n\006source\022\333\004\032\330\004templateType := scalekit.TemplateTypeSignin\nresponse, err := client.Passwordless().SendPasswordlessEmail(\n    ctx,\n    \"john.doe@example.com\",\n    &scalekit.SendPasswordlessOptions{\n        Template:         &templateType,\n        ExpiresIn:        100,\n        MagiclinkAuthUri: \"https://www.google.com\",\n        TemplateVariables: map[string]string{\n            \"employeeID\":    \"EMP523\",\n            \"teamName\":      \"Alpha Team\",\n            \"supportEmail\":  \"support@yourcompany.com\",\n        },\n    },\n)\n\nif err != nil {\n    // Handle error\n    return\n}\n\nauthRequestId := response.AuthRequestId\202\265\030\002\030\004\202\323\344\223\002$\"\037/api/v1/passwordless/email/send:\001*'
  _globals['_PASSWORDLESSSERVICE'].methods_by_name['VerifyPasswordlessEmail']._loaded_options = None
  _globals['_PASSWORDLESSSERVICE'].methods_by_name['VerifyPasswordlessEmail']._serialized_options = b'\222A\365\t\n\021Passwordless Auth\022\031Verify passwordless email\032MVerify a user\'s identity using either a verification code or magic link tokenJ\222\001\n\003200\022\212\001\nISuccessfully verified the passwordless authentication. Returns user email\022=\n;\0329.scalekit.v1.auth.passwordless.VerifyPasswordLessResponsej\340\007\n\rx-codeSamples\022\316\0072\313\007\n\254\002*\251\002\n\026\n\005label\022\r\032\013Node.js SDK\n\024\n\004lang\022\014\032\njavascript\n\370\001\n\006source\022\355\001\032\352\001const { authRequestId } = sendResponse;\nconst verifyResponse = await scalekit.passwordless.\n  verifyPasswordlessEmail(\n\t// Verification Code (OTP)\n\t{ code: \"123456\" },\n\t// Magic Link Token\n\t{ linkToken: link_token },\n\tauthRequestId\n);\n\231\005*\226\005\n\021\n\005label\022\010\032\006Go SDK\n\014\n\004lang\022\004\032\002go\n\362\004\n\006source\022\347\004\032\344\004// Verify with OTP code\nverifyResponse, err := client.Passwordless().VerifyPasswordlessEmail(\n    ctx,\n    &scalekit.VerifyPasswordlessOptions{\n        Code:          \"123456\", // OTP code\n        AuthRequestId: authRequestId,\n    },\n)\n\nif err != nil {\n    // Handle error\n    return\n}\n\n// Verify with magic link token\nverifyResponse, err := client.Passwordless().VerifyPasswordlessEmail(\n    ctx,\n    &scalekit.VerifyPasswordlessOptions{\n        LinkToken: linkToken, // Magic link token\n    },\n)\n\nif err != nil {\n    // Handle error\n    return\n}\n\n// User verified successfully\nuserEmail := verifyResponse.Email\202\265\030\002\030\004\202\323\344\223\002&\"!/api/v1/passwordless/email/verify:\001*'
  _globals['_PASSWORDLESSSERVICE'].methods_by_name['ResendPasswordlessEmail']._loaded_options = None
  _globals['_PASSWORDLESSSERVICE'].methods_by_name['ResendPasswordlessEmail']._serialized_options = b'\222A\223\006\n\021Passwordless Auth\022\031Resend passwordless email\032bResend a verification email if the user didn\'t receive it or if the previous code/link has expiredJ\313\001\n\003200\022\303\001\n\203\001Successfully resent the passwordless authentication email. Returns updated authentication request details with new expiration time.\022;\n9\0327.scalekit.v1.auth.passwordless.SendPasswordlessResponsej\260\003\n\rx-codeSamples\022\236\0032\233\003\n\313\001*\310\001\n\026\n\005label\022\r\032\013Node.js SDK\n\024\n\004lang\022\014\032\njavascript\n\227\001\n\006source\022\214\001\032\211\001const { authRequestId } = sendResponse;\nconst resendResponse = await scalekit.passwordless\n.resendPasswordlessEmail(\n    authRequestId\n);\n\312\001*\307\001\n\021\n\005label\022\010\032\006Go SDK\n\014\n\004lang\022\004\032\002go\n\243\001\n\006source\022\230\001\032\225\001resendResponse, err := client.Passwordless().ResendPasswordlessEmail(\n    ctx,\n    authRequestId,\n)\n\nif err != nil {\n    // Handle error\n    return\n}\202\265\030\002\030\004\202\323\344\223\002&\"!/api/v1/passwordless/email/resend:\001*'
  _globals['_TEMPLATETYPE']._serialized_start=5488
  _globals['_TEMPLATETYPE']._serialized_end=5543
  _globals['_PASSWORDLESSTYPE']._serialized_start=5545
  _globals['_PASSWORDLESSTYPE']._serialized_end=5631
  _globals['_SENDPASSWORDLESSREQUEST']._serialized_start=373
  _globals['_SENDPASSWORDLESSREQUEST']._serialized_end=2493
  _globals['_SENDPASSWORDLESSREQUEST_TEMPLATEVARIABLESENTRY']._serialized_start=2364
  _globals['_SENDPASSWORDLESSREQUEST_TEMPLATEVARIABLESENTRY']._serialized_end=2432
  _globals['_SENDPASSWORDLESSRESPONSE']._serialized_start=2496
  _globals['_SENDPASSWORDLESSRESPONSE']._serialized_end=3420
  _globals['_VERIFYPASSWORDLESSREQUEST']._serialized_start=3423
  _globals['_VERIFYPASSWORDLESSREQUEST']._serialized_end=4243
  _globals['_RESENDPASSWORDLESSREQUEST']._serialized_start=4246
  _globals['_RESENDPASSWORDLESSREQUEST']._serialized_end=4567
  _globals['_VERIFYPASSWORDLESSRESPONSE']._serialized_start=4570
  _globals['_VERIFYPASSWORDLESSRESPONSE']._serialized_end=5486
  _globals['_PASSWORDLESSSERVICE']._serialized_start=5634
  _globals['_PASSWORDLESSSERVICE']._serialized_end=9963
# @@protoc_insertion_point(module_scope)
