{ "swagger": "2.0", "info": { "title": "Auth API", "version": "0.1", "contact": { "url": "https://github.com/caos/zitadel/pkg/auth" } }, "schemes": [ "https" ], "consumes": [ "application/json", "application/grpc" ], "produces": [ "application/json", "application/grpc" ], "paths": { "/global/projectorgs/_search": { "post": { "operationId": "SearchMyProjectOrgs", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v1MyProjectOrgSearchResponse" } } }, "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/v1MyProjectOrgSearchRequest" } } ], "tags": [ "AuthService" ] } }, "/healthz": { "get": { "summary": "Readiness", "operationId": "Healthz", "responses": { "200": { "description": "A successful response.", "schema": { "properties": {} } } }, "tags": [ "AuthService" ] } }, "/me/usersessions": { "get": { "summary": "Authorization", "operationId": "GetMyUserSessions", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v1UserSessionViews" } } }, "tags": [ "AuthService" ] } }, "/permissions/me": { "get": { "operationId": "GetMyProjectPermissions", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v1MyPermissions" } } }, "tags": [ "AuthService" ] } }, "/permissions/zitadel/me": { "get": { "summary": "Permission", "operationId": "GetMyZitadelPermissions", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v1MyPermissions" } } }, "tags": [ "AuthService" ] } }, "/policies/passwords/complexity": { "get": { "operationId": "GetMyPasswordComplexityPolicy", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v1PasswordComplexityPolicy" } } }, "tags": [ "AuthService" ] } }, "/ready": { "get": { "operationId": "Ready", "responses": { "200": { "description": "A successful response.", "schema": { "properties": {} } } }, "tags": [ "AuthService" ] } }, "/usergrants/me/_search": { "post": { "operationId": "SearchMyUserGrant", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v1UserGrantSearchResponse" } } }, "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/v1UserGrantSearchRequest" } } ], "tags": [ "AuthService" ] } }, "/users/me": { "get": { "summary": "User", "operationId": "GetMyUser", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v1UserView" } } }, "tags": [ "AuthService" ] } }, "/users/me/address": { "get": { "operationId": "GetMyUserAddress", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v1UserAddressView" } } }, "tags": [ "AuthService" ] }, "put": { "operationId": "UpdateMyUserAddress", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v1UserAddress" } } }, "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/v1UpdateUserAddressRequest" } } ], "tags": [ "AuthService" ] } }, "/users/me/changes": { "get": { "operationId": "GetMyUserChanges", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v1Changes" } } }, "parameters": [ { "name": "limit", "in": "query", "required": false, "type": "string", "format": "uint64" }, { "name": "sequence_offset", "in": "query", "required": false, "type": "string", "format": "uint64" }, { "name": "asc", "in": "query", "required": false, "type": "boolean", "format": "boolean" } ], "tags": [ "AuthService" ] } }, "/users/me/email": { "get": { "operationId": "GetMyUserEmail", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v1UserEmailView" } } }, "tags": [ "AuthService" ] }, "put": { "operationId": "ChangeMyUserEmail", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v1UserEmail" } } }, "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/v1UpdateUserEmailRequest" } } ], "tags": [ "AuthService" ] } }, "/users/me/email/_resendverification": { "post": { "operationId": "ResendMyEmailVerificationMail", "responses": { "200": { "description": "A successful response.", "schema": { "properties": {} } } }, "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { "properties": {} } } ], "tags": [ "AuthService" ] } }, "/users/me/email/_verify": { "post": { "operationId": "VerifyMyUserEmail", "responses": { "200": { "description": "A successful response.", "schema": { "properties": {} } } }, "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/v1VerifyMyUserEmailRequest" } } ], "tags": [ "AuthService" ] } }, "/users/me/mfa/otp": { "delete": { "operationId": "RemoveMfaOTP", "responses": { "200": { "description": "A successful response.", "schema": { "properties": {} } } }, "tags": [ "AuthService" ] }, "post": { "summary": "MFA", "operationId": "AddMfaOTP", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v1MfaOtpResponse" } } }, "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { "properties": {} } } ], "tags": [ "AuthService" ] } }, "/users/me/mfa/otp/_verify": { "put": { "operationId": "VerifyMfaOTP", "responses": { "200": { "description": "A successful response.", "schema": { "properties": {} } } }, "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/v1VerifyMfaOtp" } } ], "tags": [ "AuthService" ] } }, "/users/me/mfas": { "get": { "operationId": "GetMyMfas", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v1MultiFactors" } } }, "tags": [ "AuthService" ] } }, "/users/me/passwords/_change": { "put": { "summary": "Password", "operationId": "ChangeMyPassword", "responses": { "200": { "description": "A successful response.", "schema": { "properties": {} } } }, "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/v1PasswordChange" } } ], "tags": [ "AuthService" ] } }, "/users/me/phone": { "get": { "operationId": "GetMyUserPhone", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v1UserPhoneView" } } }, "tags": [ "AuthService" ] }, "delete": { "operationId": "RemoveMyUserPhone", "responses": { "200": { "description": "A successful response.", "schema": { "properties": {} } } }, "tags": [ "AuthService" ] }, "put": { "operationId": "ChangeMyUserPhone", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v1UserPhone" } } }, "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/v1UpdateUserPhoneRequest" } } ], "tags": [ "AuthService" ] } }, "/users/me/phone/_resendverification": { "post": { "operationId": "ResendMyPhoneVerificationCode", "responses": { "200": { "description": "A successful response.", "schema": { "properties": {} } } }, "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { "properties": {} } } ], "tags": [ "AuthService" ] } }, "/users/me/phone/_verify": { "post": { "operationId": "VerifyMyUserPhone", "responses": { "200": { "description": "A successful response.", "schema": { "properties": {} } } }, "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/v1VerifyUserPhoneRequest" } } ], "tags": [ "AuthService" ] } }, "/users/me/profile": { "get": { "operationId": "GetMyUserProfile", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v1UserProfileView" } } }, "tags": [ "AuthService" ] }, "put": { "operationId": "UpdateMyUserProfile", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v1UserProfile" } } }, "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/v1UpdateUserProfileRequest" } } ], "tags": [ "AuthService" ] } }, "/validate": { "get": { "operationId": "Validate", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/protobufStruct" } } }, "tags": [ "AuthService" ] } } }, "definitions": { "protobufListValue": { "type": "object", "properties": { "values": { "type": "array", "items": { "$ref": "#/definitions/protobufValue" }, "description": "Repeated field of dynamically typed values." } }, "description": "`ListValue` is a wrapper around a repeated field of values.\n\nThe JSON representation for `ListValue` is JSON array." }, "protobufNullValue": { "type": "string", "enum": [ "NULL_VALUE" ], "default": "NULL_VALUE", "description": "`NullValue` is a singleton enumeration to represent the null value for the\n`Value` type union.\n\n The JSON representation for `NullValue` is JSON `null`.\n\n - NULL_VALUE: Null value." }, "protobufStruct": { "type": "object", "properties": { "fields": { "type": "object", "additionalProperties": { "$ref": "#/definitions/protobufValue" }, "description": "Unordered map of dynamically typed values." } }, "description": "`Struct` represents a structured data value, consisting of fields\nwhich map to dynamically typed values. In some languages, `Struct`\nmight be supported by a native representation. For example, in\nscripting languages like JS a struct is represented as an\nobject. The details of that representation are described together\nwith the proto support for the language.\n\nThe JSON representation for `Struct` is JSON object." }, "protobufValue": { "type": "object", "properties": { "null_value": { "$ref": "#/definitions/protobufNullValue", "description": "Represents a null value." }, "number_value": { "type": "number", "format": "double", "description": "Represents a double value." }, "string_value": { "type": "string", "description": "Represents a string value." }, "bool_value": { "type": "boolean", "format": "boolean", "description": "Represents a boolean value." }, "struct_value": { "$ref": "#/definitions/protobufStruct", "description": "Represents a structured value." }, "list_value": { "$ref": "#/definitions/protobufListValue", "description": "Represents a repeated `Value`." } }, "description": "`Value` represents a dynamically typed value which can be either\nnull, a number, a string, a boolean, a recursive struct value, or a\nlist of values. A producer of value is expected to set one of that\nvariants, absence of any variant indicates an error.\n\nThe JSON representation for `Value` is JSON value." }, "v1Change": { "type": "object", "properties": { "change_date": { "type": "string", "format": "date-time" }, "event_type": { "$ref": "#/definitions/v1LocalizedMessage" }, "sequence": { "type": "string", "format": "uint64" }, "editor_id": { "type": "string" }, "editor": { "type": "string" }, "data": { "$ref": "#/definitions/protobufStruct" } } }, "v1Changes": { "type": "object", "properties": { "changes": { "type": "array", "items": { "$ref": "#/definitions/v1Change" } }, "offset": { "type": "string", "format": "uint64" }, "limit": { "type": "string", "format": "uint64" } } }, "v1Gender": { "type": "string", "enum": [ "GENDER_UNSPECIFIED", "GENDER_FEMALE", "GENDER_MALE", "GENDER_DIVERSE" ], "default": "GENDER_UNSPECIFIED" }, "v1LocalizedMessage": { "type": "object", "properties": { "key": { "type": "string" }, "localized_message": { "type": "string" } } }, "v1MFAState": { "type": "string", "enum": [ "MFASTATE_UNSPECIFIED", "MFASTATE_NOT_READY", "MFASTATE_READY", "MFASTATE_REMOVED" ], "default": "MFASTATE_UNSPECIFIED" }, "v1MfaOtpResponse": { "type": "object", "properties": { "user_id": { "type": "string" }, "url": { "type": "string" }, "secret": { "type": "string" }, "state": { "$ref": "#/definitions/v1MFAState" } } }, "v1MfaType": { "type": "string", "enum": [ "MFATYPE_UNSPECIFIED", "MFATYPE_SMS", "MFATYPE_OTP" ], "default": "MFATYPE_UNSPECIFIED" }, "v1MultiFactor": { "type": "object", "properties": { "type": { "$ref": "#/definitions/v1MfaType" }, "state": { "$ref": "#/definitions/v1MFAState" } } }, "v1MultiFactors": { "type": "object", "properties": { "mfas": { "type": "array", "items": { "$ref": "#/definitions/v1MultiFactor" } } } }, "v1MyPermissions": { "type": "object", "properties": { "permissions": { "type": "array", "items": { "type": "string" } } } }, "v1MyProjectOrgSearchKey": { "type": "string", "enum": [ "MYPROJECTORGSEARCHKEY_UNSPECIFIED", "MYPROJECTORGSEARCHKEY_ORG_NAME" ], "default": "MYPROJECTORGSEARCHKEY_UNSPECIFIED" }, "v1MyProjectOrgSearchQuery": { "type": "object", "properties": { "key": { "$ref": "#/definitions/v1MyProjectOrgSearchKey" }, "method": { "$ref": "#/definitions/v1SearchMethod" }, "value": { "type": "string" } } }, "v1MyProjectOrgSearchRequest": { "type": "object", "properties": { "offset": { "type": "string", "format": "uint64" }, "limit": { "type": "string", "format": "uint64" }, "asc": { "type": "boolean", "format": "boolean" }, "queries": { "type": "array", "items": { "$ref": "#/definitions/v1MyProjectOrgSearchQuery" } } } }, "v1MyProjectOrgSearchResponse": { "type": "object", "properties": { "offset": { "type": "string", "format": "uint64" }, "limit": { "type": "string", "format": "uint64" }, "total_result": { "type": "string", "format": "uint64" }, "result": { "type": "array", "items": { "$ref": "#/definitions/v1Org" } } } }, "v1Org": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" } } }, "v1PasswordChange": { "type": "object", "properties": { "old_password": { "type": "string" }, "new_password": { "type": "string" } } }, "v1PasswordComplexityPolicy": { "type": "object", "properties": { "id": { "type": "string" }, "description": { "type": "string" }, "creation_date": { "type": "string", "format": "date-time" }, "change_date": { "type": "string", "format": "date-time" }, "min_length": { "type": "string", "format": "uint64" }, "has_lowercase": { "type": "boolean", "format": "boolean" }, "has_uppercase": { "type": "boolean", "format": "boolean" }, "has_number": { "type": "boolean", "format": "boolean" }, "has_symbol": { "type": "boolean", "format": "boolean" }, "sequence": { "type": "string", "format": "uint64" }, "is_default": { "type": "boolean", "format": "boolean" } } }, "v1SearchMethod": { "type": "string", "enum": [ "SEARCHMETHOD_EQUALS", "SEARCHMETHOD_STARTS_WITH", "SEARCHMETHOD_CONTAINS", "SEARCHMETHOD_EQUALS_IGNORE_CASE", "SEARCHMETHOD_STARTS_WITH_IGNORE_CASE", "SEARCHMETHOD_CONTAINS_IGNORE_CASE" ], "default": "SEARCHMETHOD_EQUALS" }, "v1UpdateUserAddressRequest": { "type": "object", "properties": { "country": { "type": "string" }, "locality": { "type": "string" }, "postal_code": { "type": "string" }, "region": { "type": "string" }, "street_address": { "type": "string" } } }, "v1UpdateUserEmailRequest": { "type": "object", "properties": { "email": { "type": "string" } } }, "v1UpdateUserPhoneRequest": { "type": "object", "properties": { "phone": { "type": "string" } } }, "v1UpdateUserProfileRequest": { "type": "object", "properties": { "first_name": { "type": "string" }, "last_name": { "type": "string" }, "nick_name": { "type": "string" }, "preferred_language": { "type": "string" }, "gender": { "$ref": "#/definitions/v1Gender" } } }, "v1UserAddress": { "type": "object", "properties": { "id": { "type": "string" }, "country": { "type": "string" }, "locality": { "type": "string" }, "postal_code": { "type": "string" }, "region": { "type": "string" }, "street_address": { "type": "string" }, "sequence": { "type": "string", "format": "uint64" }, "creation_date": { "type": "string", "format": "date-time" }, "change_date": { "type": "string", "format": "date-time" } } }, "v1UserAddressView": { "type": "object", "properties": { "id": { "type": "string" }, "country": { "type": "string" }, "locality": { "type": "string" }, "postal_code": { "type": "string" }, "region": { "type": "string" }, "street_address": { "type": "string" }, "sequence": { "type": "string", "format": "uint64" }, "creation_date": { "type": "string", "format": "date-time" }, "change_date": { "type": "string", "format": "date-time" } } }, "v1UserEmail": { "type": "object", "properties": { "id": { "type": "string" }, "email": { "type": "string" }, "isEmailVerified": { "type": "boolean", "format": "boolean" }, "sequence": { "type": "string", "format": "uint64" }, "creation_date": { "type": "string", "format": "date-time" }, "change_date": { "type": "string", "format": "date-time" } } }, "v1UserEmailView": { "type": "object", "properties": { "id": { "type": "string" }, "email": { "type": "string" }, "isEmailVerified": { "type": "boolean", "format": "boolean" }, "sequence": { "type": "string", "format": "uint64" }, "creation_date": { "type": "string", "format": "date-time" }, "change_date": { "type": "string", "format": "date-time" } } }, "v1UserGrantSearchKey": { "type": "string", "enum": [ "UserGrantSearchKey_UNKNOWN", "UserGrantSearchKey_ORG_ID", "UserGrantSearchKey_PROJECT_ID" ], "default": "UserGrantSearchKey_UNKNOWN" }, "v1UserGrantSearchQuery": { "type": "object", "properties": { "key": { "$ref": "#/definitions/v1UserGrantSearchKey" }, "method": { "$ref": "#/definitions/v1SearchMethod" }, "value": { "type": "string" } } }, "v1UserGrantSearchRequest": { "type": "object", "properties": { "offset": { "type": "string", "format": "uint64" }, "limit": { "type": "string", "format": "uint64" }, "sorting_column": { "$ref": "#/definitions/v1UserGrantSearchKey" }, "asc": { "type": "boolean", "format": "boolean" }, "queries": { "type": "array", "items": { "$ref": "#/definitions/v1UserGrantSearchQuery" } } } }, "v1UserGrantSearchResponse": { "type": "object", "properties": { "offset": { "type": "string", "format": "uint64" }, "limit": { "type": "string", "format": "uint64" }, "total_result": { "type": "string", "format": "uint64" }, "result": { "type": "array", "items": { "$ref": "#/definitions/v1UserGrantView" } } } }, "v1UserGrantView": { "type": "object", "properties": { "OrgId": { "type": "string" }, "ProjectId": { "type": "string" }, "UserId": { "type": "string" }, "Roles": { "type": "array", "items": { "type": "string" } }, "OrgName": { "type": "string" }, "GrantId": { "type": "string" } } }, "v1UserPhone": { "type": "object", "properties": { "id": { "type": "string" }, "phone": { "type": "string" }, "is_phone_verified": { "type": "boolean", "format": "boolean" }, "sequence": { "type": "string", "format": "uint64" }, "creation_date": { "type": "string", "format": "date-time" }, "change_date": { "type": "string", "format": "date-time" } } }, "v1UserPhoneView": { "type": "object", "properties": { "id": { "type": "string" }, "phone": { "type": "string" }, "is_phone_verified": { "type": "boolean", "format": "boolean" }, "sequence": { "type": "string", "format": "uint64" }, "creation_date": { "type": "string", "format": "date-time" }, "change_date": { "type": "string", "format": "date-time" } } }, "v1UserProfile": { "type": "object", "properties": { "id": { "type": "string" }, "user_name": { "type": "string" }, "first_name": { "type": "string" }, "last_name": { "type": "string" }, "nick_name": { "type": "string" }, "display_name": { "type": "string" }, "preferred_language": { "type": "string" }, "gender": { "$ref": "#/definitions/v1Gender" }, "sequence": { "type": "string", "format": "uint64" }, "creation_date": { "type": "string", "format": "date-time" }, "change_date": { "type": "string", "format": "date-time" } } }, "v1UserProfileView": { "type": "object", "properties": { "id": { "type": "string" }, "user_name": { "type": "string" }, "first_name": { "type": "string" }, "last_name": { "type": "string" }, "nick_name": { "type": "string" }, "display_name": { "type": "string" }, "preferred_language": { "type": "string" }, "gender": { "$ref": "#/definitions/v1Gender" }, "sequence": { "type": "string", "format": "uint64" }, "creation_date": { "type": "string", "format": "date-time" }, "change_date": { "type": "string", "format": "date-time" }, "login_names": { "type": "array", "items": { "type": "string" } }, "preferred_login_name": { "type": "string" } } }, "v1UserSessionState": { "type": "string", "enum": [ "USERSESSIONSTATE_UNSPECIFIED", "USERSESSIONSTATE_ACTIVE", "USERSESSIONSTATE_TERMINATED" ], "default": "USERSESSIONSTATE_UNSPECIFIED" }, "v1UserSessionView": { "type": "object", "properties": { "id": { "type": "string" }, "agent_id": { "type": "string" }, "auth_state": { "$ref": "#/definitions/v1UserSessionState" }, "user_id": { "type": "string" }, "user_name": { "type": "string" }, "sequence": { "type": "string", "format": "uint64" }, "login_name": { "type": "string" }, "display_name": { "type": "string" } } }, "v1UserSessionViews": { "type": "object", "properties": { "user_sessions": { "type": "array", "items": { "$ref": "#/definitions/v1UserSessionView" } } } }, "v1UserState": { "type": "string", "enum": [ "USERSTATE_UNSPECIFIED", "USERSTATE_ACTIVE", "USERSTATE_INACTIVE", "USERSTATE_DELETED", "USERSTATE_LOCKED", "USERSTATE_SUSPEND", "USERSTATE_INITIAL" ], "default": "USERSTATE_UNSPECIFIED" }, "v1UserView": { "type": "object", "properties": { "id": { "type": "string" }, "state": { "$ref": "#/definitions/v1UserState" }, "creation_date": { "type": "string", "format": "date-time" }, "change_date": { "type": "string", "format": "date-time" }, "last_login": { "type": "string", "format": "date-time" }, "password_changed": { "type": "string", "format": "date-time" }, "user_name": { "type": "string" }, "first_name": { "type": "string" }, "last_name": { "type": "string" }, "display_name": { "type": "string" }, "nick_name": { "type": "string" }, "preferred_language": { "type": "string" }, "gender": { "$ref": "#/definitions/v1Gender" }, "email": { "type": "string" }, "is_email_verified": { "type": "boolean", "format": "boolean" }, "phone": { "type": "string" }, "is_phone_verified": { "type": "boolean", "format": "boolean" }, "country": { "type": "string" }, "locality": { "type": "string" }, "postal_code": { "type": "string" }, "region": { "type": "string" }, "street_address": { "type": "string" }, "sequence": { "type": "string", "format": "uint64" }, "resource_owner": { "type": "string" }, "login_names": { "type": "array", "items": { "type": "string" } }, "preferred_login_name": { "type": "string" } } }, "v1VerifyMfaOtp": { "type": "object", "properties": { "code": { "type": "string" } } }, "v1VerifyMyUserEmailRequest": { "type": "object", "properties": { "code": { "type": "string" } } }, "v1VerifyUserPhoneRequest": { "type": "object", "properties": { "code": { "type": "string" } } } } }