# -*- coding: utf-8 -*-
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: scalekit/v1/clients/clients.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.api import visibility_pb2 as google_dot_api_dot_visibility__pb2
from google.protobuf import any_pb2 as google_dot_protobuf_dot_any__pb2
from google.protobuf import duration_pb2 as google_dot_protobuf_dot_duration__pb2
from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2
from google.protobuf import field_mask_pb2 as google_dot_protobuf_dot_field__mask__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 google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__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/clients/clients.proto\x12\x13scalekit.v1.clients\x1a\x1b\x62uf/validate/validate.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x1bgoogle/api/visibility.proto\x1a\x19google/protobuf/any.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a google/protobuf/field_mask.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1egoogle/protobuf/wrappers.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\x1a!scalekit/v1/commons/commons.proto\x1a!scalekit/v1/options/options.proto\"\x8a\x01\n\x15\x43reateResourceRequest\x12q\n\x08resource\x18\x01 \x01(\x0b\x32#.scalekit.v1.clients.CreateResourceB0\x92\x41\'2%Details of the resource to be created\xbaH\x03\xc8\x01\x01R\x08resource\"\xde\n\n\x0e\x43reateResource\x12|\n\rresource_type\x18\x01 \x01(\x0e\x32!.scalekit.v1.clients.ResourceTypeB4\x92\x41+2\"Type of the resource to be createdJ\x05\"WEB\"\xbaH\x03\xc8\x01\x01R\x0cresourceType\x12K\n\x04name\x18\x02 \x01(\tB7\x92\x41)2\x14Name of the resourceJ\x11\"My API Resource\"\xbaH\x08r\x03\x18\x80\x01\xc8\x01\x01R\x04name\x12\x86\x01\n\x0b\x64\x65scription\x18\x03 \x01(\tBd\x92\x41Y2\x1b\x44\x65scription of the resourceJ:\"Resource for accessing your organization\'s API resources\"\xbaH\x05r\x03\x18\x80\x04R\x0b\x64\x65scription\x12\xab\x01\n\x0cresource_uri\x18\x04 \x01(\tB\x87\x01\x92\x41\x83\x01\x32\x61Resource identifier for the resource. This could be the URL used to access the resource resourcesJ\x1e\"https://resource.example.com\"R\x0bresourceUri\x12g\n\x13\x61\x63\x63\x65ss_token_expiry\x18\x05 \x01(\x03\x42\x37\x92\x41\x34\x32,Expiry time in seconds for the access token.J\x04\x33\x36\x30\x30R\x11\x61\x63\x63\x65ssTokenExpiry\x12k\n\x14refresh_token_expiry\x18\x06 \x01(\x03\x42\x39\x92\x41\x36\x32-Expiry time in seconds for the refresh token.J\x05\x38\x36\x34\x30\x30R\x12refreshTokenExpiry\x12\x9f\x01\n#disable_dynamic_client_registration\x18\x07 \x01(\x08\x42P\x92\x41M2EIndicates if dynamic client registration is allowed for this resourceJ\x04trueR disableDynamicClientRegistration\x12\x61\n\x08logo_uri\x18\x08 \x01(\tBF\x92\x41;2\x19Logo URI for the resourceJ\x1e\"https://example.com/logo.png\"\xbaH\x05r\x03\x18\x80\x04R\x07logoUri\x12X\n\x08provider\x18\t \x01(\tB<\x92\x41\x31\x32$Connection provider for the resourceJ\t\"DESCOPE\"\xbaH\x05r\x03\x18\x80\x04R\x08provider\x12\xa9\x01\n\x0bresource_id\x18\n \x01(\tB\x87\x01\x92\x41\x83\x01\x32\x61Resource identifier for the resource. This could be the URL used to access the resource resourcesJ\x1e\"https://resource.example.com\"R\nresourceId\x12i\n\x06scopes\x18\x0b \x03(\tBQ\x92\x41N21List of OAuth scopes associated with the resourceJ\x19[\"usr:read\", \"usr:write\"]R\x06scopes\"\x8a\x06\n\x0eResourceClient\x12\x44\n\x04name\x18\x01 \x01(\tB0\x92\x41%2\x12Name of the clientJ\x0f\"My API Client\"\xbaH\x05r\x03\x18\x80\x01R\x04name\x12\x82\x01\n\x0b\x64\x65scription\x18\x02 \x01(\tB`\x92\x41U2\x19\x44\x65scription of the clientJ8\"Client for accessing your organization\'s API resources\"\xbaH\x05r\x03\x18\x80\x04R\x0b\x64\x65scription\x12\x38\n\x06scopes\x18\x03 \x03(\tB \x92\x41\x1d\x32\x1bOAuth scopes for the clientR\x06scopes\x12\x62\n\x08\x61udience\x18\x04 \x03(\tBF\x92\x41\x43\x32$OAuth audience values for the clientJ\x1b[\"https://api.example.com\"]R\x08\x61udience\x12\xc6\x01\n\rcustom_claims\x18\x05 \x03(\x0b\x32 .scalekit.v1.clients.CustomClaimB\x7f\x92\x41|2zCustom claims to be included in access tokens. Please keep this to the essentials as this increases the size of the token.R\x0c\x63ustomClaims\x12_\n\x06\x65xpiry\x18\x06 \x01(\x03\x42G\x92\x41\x44\x32<Expiry time in seconds for the token generated by the clientJ\x04\x33\x36\x30\x30R\x06\x65xpiry\x12\x65\n\x0credirect_uri\x18\x07 \x01(\tBB\x92\x41?2\x1bRedirect URI for the clientJ [\"https://example.com/callback\"]R\x0bredirectUri\"y\n\x16\x43reateResourceResponse\x12_\n\x08resource\x18\x01 \x01(\x0b\x32\x1d.scalekit.v1.clients.ResourceB$\x92\x41!2\x1f\x44\x65tails of the created resourceR\x08resource\"\x92\x01\n\x12GetResourceRequest\x12|\n\x0bresource_id\x18\x01 \x01(\tB[\x92\x41O24Unique identifier of the client resource to retrieveJ\x17\"app_69388798466720005\"\xbaH\x06r\x04\x10\x01\x18 R\nresourceId\"x\n\x13GetResourceResponse\x12\x61\n\x08resource\x18\x01 \x01(\x0b\x32\x1d.scalekit.v1.clients.ResourceB&\x92\x41#2!Details of the requested resourceR\x08resource\"\x9d\x01\n\x1d\x44\x65leteResourceProviderRequest\x12|\n\x0bresource_id\x18\x01 \x01(\tB[\x92\x41O24Unique identifier of the client resource to retrieveJ\x17\"app_69388798466720005\"\xbaH\x06r\x04\x10\x01\x18 R\nresourceId\"\x93\x01\n\x15\x44\x65leteResourceRequest\x12z\n\x0bresource_id\x18\x01 \x01(\tBY\x92\x41M22Unique identifier of the client resource to deleteJ\x17\"app_69388798466720005\"\xbaH\x06r\x04\x10\x01\x18 R\nresourceId\"\xe6\x0b\n\x0b\x41pplication\x12\x86\x01\n\x02id\x18\x01 \x01(\tBv\x92\x41s2XUnique identifier for the resource. Automatically generated upon creation and immutable.J\x17\"app_69388798466720005\"R\x02id\x12H\n\x04name\x18\x02 \x01(\tB4\x92\x41)2\x14Name of the resourceJ\x11\"My API Resource\"\xbaH\x05r\x03\x18\x80\x01R\x04name\x12\xb4\x01\n\x0bresource_id\x18\x03 \x01(\tB\x92\x01\x92\x41\x84\x01\x32\x62Resource identifier for the resource. This could  be the URL used to access the resource resourcesJ\x1e\"https://resource.example.com\"\xbaH\x07r\x05\x10\x01\x18\x80\x04R\nresourceId\x12\x86\x01\n\x0b\x64\x65scription\x18\x04 \x01(\tBd\x92\x41Y2\x1b\x44\x65scription of the resourceJ:\"Resource for accessing your organization\'s API resources\"\xbaH\x05r\x03\x18\x80\x04R\x0b\x64\x65scription\x12t\n\x10\x61pplication_type\x18\x05 \x01(\x0e\x32!.scalekit.v1.clients.ResourceTypeB&\x92\x41\x1d\x32\x14Type of the resourceJ\x05\"WEB\"\xbaH\x03\xc8\x01\x01R\x0f\x61pplicationType\x12\xa5\x01\n#disable_dynamic_client_registration\x18\x06 \x01(\x08\x42V\x92\x41M2EIndicates if dynamic client registration is allowed for this resourceJ\x04true\xbaH\x03\xc8\x01\x01R disableDynamicClientRegistration\x12\x61\n\x08logo_uri\x18\x07 \x01(\tBF\x92\x41;2\x19Logo URI for the resourceJ\x1e\"https://example.com/logo.png\"\xbaH\x05r\x03\x18\x80\x04R\x07logoUri\x12g\n\x13\x61\x63\x63\x65ss_token_expiry\x18\x08 \x01(\x03\x42\x37\x92\x41\x34\x32,Expiry time in seconds for the access token.J\x04\x33\x36\x30\x30R\x11\x61\x63\x63\x65ssTokenExpiry\x12k\n\x14refresh_token_expiry\x18\t \x01(\x03\x42\x39\x92\x41\x36\x32-Expiry time in seconds for the refresh token.J\x05\x38\x36\x34\x30\x30R\x12refreshTokenExpiry\x12\x85\x01\n\x0b\x63reate_time\x18\n \x01(\x0b\x32\x1a.google.protobuf.TimestampBH\x92\x41\x45\x32\'Timestamp when the resource was createdJ\x1a\"2024-01-05T14:48:00.000Z\"R\ncreateTime\x12\x8a\x01\n\x0bupdate_time\x18\x0b \x01(\x0b\x32\x1a.google.protobuf.TimestampBM\x92\x41J2,Timestamp when the resource was last updatedJ\x1a\"2024-01-05T14:48:00.000Z\"R\nupdateTime\x12X\n\x08provider\x18\x0c \x01(\tB<\x92\x41\x31\x32$Connection provider for the resourceJ\t\"DESCOPE\"\xbaH\x05r\x03\x18\x80\x04R\x08provider\"\x95\x14\n\x08Resource\x12\x86\x01\n\x02id\x18\x01 \x01(\tBv\x92\x41s2XUnique identifier for the resource. Automatically generated upon creation and immutable.J\x17\"app_69388798466720005\"R\x02id\x12H\n\x04name\x18\x02 \x01(\tB4\x92\x41)2\x14Name of the resourceJ\x11\"My API Resource\"\xbaH\x05r\x03\x18\x80\x01R\x04name\x12\xb6\x01\n\x0cresource_uri\x18\x03 \x01(\tB\x92\x01\x92\x41\x84\x01\x32\x62Resource identifier for the resource. This could  be the URL used to access the resource resourcesJ\x1e\"https://resource.example.com\"\xbaH\x07r\x05\x10\x01\x18\x80\x04R\x0bresourceUri\x12\x86\x01\n\x0b\x64\x65scription\x18\x04 \x01(\tBd\x92\x41Y2\x1b\x44\x65scription of the resourceJ:\"Resource for accessing your organization\'s API resources\"\xbaH\x05r\x03\x18\x80\x04R\x0b\x64\x65scription\x12n\n\rresource_type\x18\x05 \x01(\x0e\x32!.scalekit.v1.clients.ResourceTypeB&\x92\x41\x1d\x32\x14Type of the resourceJ\x05\"WEB\"\xbaH\x03\xc8\x01\x01R\x0cresourceType\x12\xa5\x01\n#disable_dynamic_client_registration\x18\x06 \x01(\x08\x42V\x92\x41M2EIndicates if dynamic client registration is allowed for this resourceJ\x04true\xbaH\x03\xc8\x01\x01R disableDynamicClientRegistration\x12\x61\n\x08logo_uri\x18\x07 \x01(\tBF\x92\x41;2\x19Logo URI for the resourceJ\x1e\"https://example.com/logo.png\"\xbaH\x05r\x03\x18\x80\x04R\x07logoUri\x12g\n\x13\x61\x63\x63\x65ss_token_expiry\x18\x08 \x01(\x03\x42\x37\x92\x41\x34\x32,Expiry time in seconds for the access token.J\x04\x33\x36\x30\x30R\x11\x61\x63\x63\x65ssTokenExpiry\x12k\n\x14refresh_token_expiry\x18\t \x01(\x03\x42\x39\x92\x41\x36\x32-Expiry time in seconds for the refresh token.J\x05\x38\x36\x34\x30\x30R\x12refreshTokenExpiry\x12\x85\x01\n\x0b\x63reate_time\x18\n \x01(\x0b\x32\x1a.google.protobuf.TimestampBH\x92\x41\x45\x32\'Timestamp when the resource was createdJ\x1a\"2024-01-05T14:48:00.000Z\"R\ncreateTime\x12\x8a\x01\n\x0bupdate_time\x18\x0b \x01(\x0b\x32\x1a.google.protobuf.TimestampBM\x92\x41J2,Timestamp when the resource was last updatedJ\x1a\"2024-01-05T14:48:00.000Z\"R\nupdateTime\x12X\n\x08provider\x18\x0c \x01(\tB<\x92\x41\x31\x32$Connection provider for the resourceJ\t\"DESCOPE\"\xbaH\x05r\x03\x18\x80\x04R\x08provider\x12\xcb\x03\n\x12protected_metadata\x18\r \x01(\x0b\x32\x17.google.protobuf.StructB\x82\x03\x92\x41\xfe\x02\x32\x82\x01Protected metadata for the resource. This field is used to store additional information that should not be exposed in public APIs.J\xf6\x01{\"resource\": \"https://example.com/mcp\",\"authorization_servers\": [\"https://example.scalekit.com/resources/res_123123123\"],\"bearer_methods_supported\": [\"header\"],\"resource_documentation\": \"https://example.com/docs\",\"scopes_supported\": [\"usr:read\"]}R\x11protectedMetadata\x12\xb0\x01\n\x16protected_metadata_uri\x18\x0e \x01(\tBz\x92\x41w25URI to access the protected metadata for the resourceJ>\"https://example.com/.well-known/oauth-protected-resource/mcp\"R\x14protectedMetadataUri\x12\xb4\x01\n\x0bresource_id\x18\x0f \x01(\tB\x92\x01\x92\x41\x84\x01\x32\x62Resource identifier for the resource. This could  be the URL used to access the resource resourcesJ\x1e\"https://resource.example.com\"\xbaH\x07r\x05\x10\x01\x18\x80\x04R\nresourceId\x12\xfb\x01\n\x06scopes\x18\x10 \x03(\x0b\x32\x1a.scalekit.v1.clients.ScopeB\xc6\x01\x92\x41\xc2\x01\x32OList of OAuth scopes associated with the resource with enabled or disabled flagJo[{\"id\": \"perm_\", \"name\": \"usr:read\", \"description\": \"Reading basic information of the users\", \"enabled\": true}]R\x06scopes\"\xf2\x01\n\x15RegisterClientRequest\x12i\n\x06res_id\x18\x01 \x01(\tBR\x92\x41\x43\x32(Unique identifier of the client resourceJ\x17\"app_69388798466720005\"\xbaH\tr\x04\x10\x01\x18 \xc8\x01\x01R\x05resId\x12n\n\x06\x63lient\x18\x02 \x01(\x0b\x32#.scalekit.v1.clients.RegisterClientB1\x92\x41(2&Details of the client to be registered\xbaH\x03\xc8\x01\x01R\x06\x63lient\"\x96\x06\n\x0eRegisterClient\x12Q\n\x0b\x63lient_name\x18\x01 \x01(\tB0\x92\x41%2\x12Name of the clientJ\x0f\"My API Client\"\xbaH\x05r\x03\x18\x80\x01R\nclientName\x12\x82\x01\n\x0b\x64\x65scription\x18\x02 \x01(\tB`\x92\x41U2\x19\x44\x65scription of the clientJ8\"Client for accessing your organization\'s API resources\"\xbaH\x05r\x03\x18\x80\x04R\x0b\x64\x65scription\x12g\n\rredirect_uris\x18\x03 \x03(\tBB\x92\x41?2\x1bRedirect URI for the clientJ [\"https://example.com/callback\"]R\x0credirectUris\x12Y\n\x05scope\x18\x04 \x01(\tBC\x92\x41@2\x1bOAuth scopes for the clientJ![\"read:users\", \"write:resources\"]R\x05scope\x12T\n\nclient_uri\x18\x05 \x01(\tB5\x92\x41\x32\x32\x19\x43lient URI for the clientJ\x15\"https://example.com\"R\tclientUri\x12W\n\x08logo_uri\x18\x06 \x01(\tB<\x92\x41\x39\x32\x17Logo URI for the clientJ\x1e\"https://example.com/logo.png\"R\x07logoUri\x12\\\n\x07tos_uri\x18\x07 \x01(\tBC\x92\x41@2#Terms of Service URI for the clientJ\x19\"https://example.com/tos\"R\x06tosUri\x12[\n\npolicy_uri\x18\x08 \x01(\tB<\x92\x41\x39\x32\x19Policy URI for the clientJ\x1c\"https://example.com/policy\"R\tpolicyUri\"\xe8\x14\n\x16RegisterClientResponse\x12\xfc\x01\n\tclient_id\x18\x01 \x01(\tB\xde\x01\x92\x41\xda\x01\x32\xbc\x01The unique identifier for this M2M client. This ID is used to identify the client in API requests and logs. It is automatically generated when the client is created and cannot be modified.J\x19\"m2morg_1231234233424344\"R\x08\x63lientId\x12\xb3\x02\n\x07secrets\x18\x02 \x03(\x0b\x32!.scalekit.v1.clients.ClientSecretB\xf5\x01\x92\x41\xf1\x01\x32\xee\x01List of client secrets associated with this client. Each secret can be used for authentication, but only the most recently created secret is typically active. Secrets are stored securely and their values are never returned after creation.R\x07secrets\x12\xa2\x01\n\x04name\x18\x03 \x01(\tB\x8d\x01\x92\x41\x89\x01\x32\x62The display name of the M2M client. This name helps identify the client in the dashboard and logs.J#\"GitHub Actions Deployment Service\"R\x04name\x12\xda\x01\n\x0b\x64\x65scription\x18\x04 \x01(\tB\xb7\x01\x92\x41\xb3\x01\x32{A detailed description of the client\'s purpose and usage. This helps administrators understand what the client is used for.J4\"Service account for automated deployment processes\"R\x0b\x64\x65scription\x12\xd5\x01\n\x0b\x63reate_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x97\x01\x92\x41\x93\x01\x32uThe timestamp when this M2M client was created. This field is automatically set by the server and cannot be modified.J\x1a\"2024-01-05T14:48:00.000Z\"R\ncreateTime\x12\xf4\x01\n\x0bupdate_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\xb6\x01\x92\x41\xb2\x01\x32\x93\x01The timestamp when this M2M client was last updated. This field is automatically updated by the server whenever the client\'s configuration changes.J\x1a\"2024-01-05T14:48:00.000Z\"R\nupdateTime\x12\xbe\x01\n\x06scopes\x18\x07 \x03(\tB\xa5\x01\x92\x41\xa1\x01\x32uThe OAuth 2.0 scopes granted to this client. These scopes determine what resources and actions the client can access.J([\"deploy:resources\", \"read:deployments\"]R\x06scopes\x12\xc7\x01\n\x08\x61udience\x18\x08 \x03(\tB\xaa\x01\x92\x41\xa6\x01\x32\x86\x01The intended recipients of access tokens issued to this client. Each audience value should be a URI that identifies an API or service.J\x1b[\"https://api.example.com\"]R\x08\x61udience\x12\xec\x01\n\rcustom_claims\x18\t \x03(\x0b\x32 .scalekit.v1.clients.CustomClaimB\xa4\x01\x92\x41\xa0\x01\x32\x9d\x01\x41\x64\x64itional claims included in access tokens issued to this client. These claims provide context about the client and can be used for authorization decisions.R\x0c\x63ustomClaims\x12\xb2\x01\n\x06\x65xpiry\x18\n \x01(\x03\x42\x99\x01\x92\x41\x95\x01\x32\x8c\x01The lifetime of access tokens issued to this client, in seconds. This determines how long a token remains valid before it must be refreshed.J\x04\x33\x36\x30\x30R\x06\x65xpiry\x12\xc4\x01\n\x0bresource_id\x18\x0b \x01(\tB\xa2\x01\x92\x41\x9e\x01\x32\x83\x01The ID of the resource associated with this M2M client. This field is used to link the client to a specific resource in the system.J\x16\"app_1231234233424344\"R\nresourceId\x12\xd1\x01\n\rredirect_uris\x18\x0c \x03(\tB\xab\x01\x92\x41\xa7\x01\x32\x82\x01The redirect URI for this M2M client. This URI is used in the OAuth 2.0 authorization flow to redirect users after authentication.J [\"https://example.com/callback\"]R\x0credirectUris\"\xbe\x02\n\x14ListResourcesRequest\x12r\n\rresource_type\x18\x01 \x01(\x0e\x32!.scalekit.v1.clients.ResourceTypeB*\x92\x41!2\x18\x46ilter resources by typeJ\x05\"WEB\"\xbaH\x03\xc8\x01\x01R\x0cresourceType\x12]\n\npage_token\x18\x02 \x01(\tB>\x92\x41;2\"Token for the next page of resultsJ\x15\"next_page_token_123\"R\tpageToken\x12S\n\tpage_size\x18\x03 \x01(\rB6\x92\x41,2&Number of resources to return per pageJ\x02\x32\x30\xbaH\x04*\x02\x18\x1eR\x08pageSize\"\x86\x02\n\x15ListResourcesResponse\x12G\n\ntotal_size\x18\x01 \x01(\rB(\x92\x41%2#Total number of resources availableR\ttotalSize\x12O\n\x0fnext_page_token\x18\x02 \x01(\tB\'\x92\x41$2\"Token for the next page of resultsR\rnextPageToken\x12S\n\tresources\x18\x03 \x03(\x0b\x32\x1d.scalekit.v1.clients.ResourceB\x16\x92\x41\x13\x32\x11List of resourcesR\tresources\"\xaf\x02\n\x15UpdateResourceRequest\x12s\n\x0bresource_id\x18\x01 \x01(\tBR\x92\x41\x46\x32+Unique identifier of the resource to updateJ\x17\"app_69388798466720005\"\xbaH\x06r\x04\x10\x01\x18 R\nresourceId\x12\x64\n\x08resource\x18\x02 \x01(\x0b\x32#.scalekit.v1.clients.UpdateResourceB#\x92\x41\x1a\x32\x18Updated resource details\xbaH\x03\xc8\x01\x01R\x08resource\x12;\n\x0bupdate_mask\x18\x63 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskR\nupdateMask\"\xed\t\n\x0eUpdateResource\x12P\n\x04name\x18\x01 \x01(\tB<\x92\x41\x31\x32\x14Name of the resourceJ\x19\"My Updated API Resource\"\xbaH\x05r\x03\x18\x80\x01R\x04name\x12\x8e\x01\n\x0b\x64\x65scription\x18\x02 \x01(\tBl\x92\x41\x61\x32\x1b\x44\x65scription of the resourceJB\"Updated resource for accessing your organization\'s API resources\"\xbaH\x05r\x03\x18\x80\x04R\x0b\x64\x65scription\x12\xab\x01\n\x0cresource_uri\x18\x03 \x01(\tB\x87\x01\x92\x41\x83\x01\x32\x61Resource identifier for the resource. This could be the URL used to access the resource resourcesJ\x1e\"https://resource.example.com\"R\x0bresourceUri\x12g\n\x13\x61\x63\x63\x65ss_token_expiry\x18\x04 \x01(\x03\x42\x37\x92\x41\x34\x32,Expiry time in seconds for the access token.J\x04\x33\x36\x30\x30R\x11\x61\x63\x63\x65ssTokenExpiry\x12k\n\x14refresh_token_expiry\x18\x05 \x01(\x03\x42\x39\x92\x41\x36\x32-Expiry time in seconds for the refresh token.J\x05\x38\x36\x34\x30\x30R\x12refreshTokenExpiry\x12\x9f\x01\n#disable_dynamic_client_registration\x18\x06 \x01(\x08\x42P\x92\x41M2EIndicates if dynamic client registration is allowed for this resourceJ\x04trueR disableDynamicClientRegistration\x12\x61\n\x08logo_uri\x18\x07 \x01(\tBF\x92\x41;2\x19Logo URI for the resourceJ\x1e\"https://example.com/logo.png\"\xbaH\x05r\x03\x18\x80\x04R\x07logoUri\x12X\n\x08provider\x18\n \x01(\tB<\x92\x41\x31\x32$Connection provider for the resourceJ\t\"DESCOPE\"\xbaH\x05r\x03\x18\x80\x04R\x08provider\x12\xa9\x01\n\x0bresource_id\x18\x0b \x01(\tB\x87\x01\x92\x41\x83\x01\x32\x61Resource identifier for the resource. This could be the URL used to access the resource resourcesJ\x1e\"https://resource.example.com\"R\nresourceId\x12i\n\x06scopes\x18\x0c \x03(\tBQ\x92\x41N21List of OAuth scopes associated with the resourceJ\x19[\"usr:read\", \"usr:write\"]R\x06scopes\"y\n\x16UpdateResourceResponse\x12_\n\x08resource\x18\x01 \x01(\x0b\x32\x1d.scalekit.v1.clients.ResourceB$\x92\x41!2\x1f\x44\x65tails of the updated resourceR\x08resource\"\xfc\x01\n\x1b\x43reateResourceClientRequest\x12p\n\x0bresource_id\x18\x01 \x01(\tBO\x92\x41\x43\x32(Unique identifier of the client resourceJ\x17\"app_69388798466720005\"\xbaH\x06r\x04\x10\x01\x18 R\nresourceId\x12k\n\x06\x63lient\x18\x02 \x01(\x0b\x32#.scalekit.v1.clients.ResourceClientB.\x92\x41%2#Details of the client to be created\xbaH\x03\xc8\x01\x01R\x06\x63lient\"\xf8\x01\n\x1c\x43reateResourceClientResponse\x12Z\n\x06\x63lient\x18\x01 \x01(\x0b\x32\x1e.scalekit.v1.clients.M2MClientB\"\x92\x41\x1f\x32\x1d\x44\x65tails of the created clientR\x06\x63lient\x12|\n\x0cplain_secret\x18\x02 \x01(\tBY\x92\x41V24Client secret value (only returned once at creation)J\x1e\"CdExsdErfccxDDssddfffgfeFHH1\"R\x0bplainSecret\"\x96\x02\n\x18GetResourceClientRequest\x12u\n\x0bresource_id\x18\x01 \x01(\tBT\x92\x41H24Unique identifier of the client resource to retrieveJ\x10\"skc_1234567890\"\xbaH\x06r\x04\x10\x01\x18 R\nresourceId\x12\x82\x01\n\tclient_id\x18\x02 \x01(\tBe\x92\x41Y2<Unique identifier of the client associated with the resourceJ\x19\"m2morg_1231234233424344\"\xbaH\x06r\x04\x10\x01\x18 R\x08\x63lientId\"\xdc\x01\n\x19GetResourceClientResponse\x12\x61\n\x08resource\x18\x01 \x01(\x0b\x32\x1d.scalekit.v1.clients.ResourceB&\x92\x41#2!Details of the requested resourceR\x08resource\x12\\\n\x06\x63lient\x18\x02 \x01(\x0b\x32\x1e.scalekit.v1.clients.M2MClientB$\x92\x41!2\x1f\x44\x65tails of the requested clientR\x06\x63lient\"\x8e\x02\n\x1f\x43reateOrganizationClientRequest\x12z\n\x0forganization_id\x18\x01 \x01(\tBQ\x92\x41?2%Unique identifier of the organizationJ\x16\"org_1231234233424344\"\xbaH\x0cr\n\x10\x01\x18 :\x04org_R\x0eorganizationId\x12o\n\x06\x63lient\x18\x02 \x01(\x0b\x32\'.scalekit.v1.clients.OrganizationClientB.\x92\x41%2#Details of the client to be created\xbaH\x03\xc8\x01\x01R\x06\x63lient\"\xa8\x0c\n\x12OrganizationClient\x12\xe7\x01\n\x04name\x18\x01 \x01(\tB\xd2\x01\x92\x41\xc6\x01\x32\x9e\x01\x41 descriptive name for the API client that helps identify its purpose. This name is displayed in the dashboard and logs. Must be between 1 and 128 characters.J#\"GitHub Actions Deployment Service\"\xbaH\x05r\x03\x18\x80\x01R\x04name\x12\x88\x02\n\x0b\x64\x65scription\x18\x02 \x01(\tB\xe5\x01\x92\x41\xd9\x01\x32\x8e\x01\x41 detailed explanation of the client\'s purpose and usage. This helps administrators understand what the client is used for and who manages it.JF\"Service account for GitHub Actions to deploy resources to production\"\xbaH\x05r\x03\x18\x80\x04R\x0b\x64\x65scription\x12\x95\x02\n\x06scopes\x18\x03 \x03(\tB\xfc\x01\x92\x41\xf8\x01\x32\xcb\x01OAuth 2.0 scopes that define the permissions granted to this client. Each scope represents a specific permission or set of permissions. The client can only access resources that match its granted scopes.J([\"deploy:resources\", \"read:deployments\"]R\x06scopes\x12\x9e\x02\n\x08\x61udience\x18\x04 \x03(\tB\x81\x02\x92\x41\xfd\x01\x32\xa8\x01The intended recipients of the access tokens issued to this client. Each audience value should be a URI that identifies the API or service that will validate the token.JP[\"https://api.example.com/api/analytics\", \"https://deployment-api.acmecorp.com\"]R\x08\x61udience\x12\x82\x03\n\rcustom_claims\x18\x05 \x03(\x0b\x32 .scalekit.v1.clients.CustomClaimB\xba\x02\x92\x41\xb6\x02\x32\xd7\x01\x41\x64\x64itional claims to be included in access tokens issued to this client. These claims provide context about the client and can be used for authorization decisions. Keep claims minimal to avoid increasing token size.JZ[{\"key\": \"environment\", \"value\": \"production\"}, {\"key\": \"service\", \"value\": \"deployment\"}]R\x0c\x63ustomClaims\x12_\n\x06\x65xpiry\x18\x06 \x01(\x03\x42G\x92\x41\x44\x32<Expiry time in seconds for the token generated by the clientJ\x04\x33\x36\x30\x30R\x06\x65xpiry\"\xfc\x01\n CreateOrganizationClientResponse\x12Z\n\x06\x63lient\x18\x01 \x01(\x0b\x32\x1e.scalekit.v1.clients.M2MClientB\"\x92\x41\x1f\x32\x1d\x44\x65tails of the created clientR\x06\x63lient\x12|\n\x0cplain_secret\x18\x02 \x01(\tBY\x92\x41V24Client secret value (only returned once at creation)J\x1e\"CdExsdErfccxDDssddfffgfeFHH1\"R\x0bplainSecret\"\xf9\x02\n\x1fUpdateOrganizationClientRequest\x12z\n\x0forganization_id\x18\x01 \x01(\tBQ\x92\x41?2%Unique identifier of the organizationJ\x16\"org_1231234233424344\"\xbaH\x0cr\n\x10\x01\x18 :\x04org_R\x0eorganizationId\x12n\n\tclient_id\x18\x02 \x01(\tBQ\x92\x41<2\x1fUnique identifier of the clientJ\x19\"m2morg_1231234233424344\"\xbaH\x0fr\r\x10\x01\x18 :\x07m2morg_R\x08\x63lientId\x12j\n\x06\x63lient\x18\x03 \x01(\x0b\x32\'.scalekit.v1.clients.OrganizationClientB)\x92\x41 2\x1eUpdated details for the client\xbaH\x03\xc8\x01\x01R\x06\x63lient\"~\n UpdateOrganizationClientResponse\x12Z\n\x06\x63lient\x18\x01 \x01(\x0b\x32\x1e.scalekit.v1.clients.M2MClientB\"\x92\x41\x1f\x32\x1dUpdated details of the clientR\x06\x63lient\"\x81\x16\n\tM2MClient\x12\xfc\x01\n\tclient_id\x18\x01 \x01(\tB\xde\x01\x92\x41\xda\x01\x32\xbc\x01The unique identifier for this API client. This ID is used to identify the client in API requests and logs. It is automatically generated when the client is created and cannot be modified.J\x19\"m2morg_1231234233424344\"R\x08\x63lientId\x12\xb3\x02\n\x07secrets\x18\x02 \x03(\x0b\x32!.scalekit.v1.clients.ClientSecretB\xf5\x01\x92\x41\xf1\x01\x32\xee\x01List of client secrets associated with this client. Each secret can be used for authentication, but only the most recently created secret is typically active. Secrets are stored securely and their values are never returned after creation.R\x07secrets\x12\xa2\x01\n\x04name\x18\x03 \x01(\tB\x8d\x01\x92\x41\x89\x01\x32\x62The display name of the API client. This name helps identify the client in the dashboard and logs.J#\"GitHub Actions Deployment Service\"R\x04name\x12\xda\x01\n\x0b\x64\x65scription\x18\x04 \x01(\tB\xb7\x01\x92\x41\xb3\x01\x32{A detailed description of the client\'s purpose and usage. This helps administrators understand what the client is used for.J4\"Service account for automated deployment processes\"R\x0b\x64\x65scription\x12\xf7\x01\n\x0forganization_id\x18\x05 \x01(\tB\xcd\x01\x92\x41\xc9\x01\x32\xae\x01The ID of the organization that owns this API client. This ID is used to associate the client with the correct organization and enforce organization-specific access controls.J\x16\"org_1231234233424344\"R\x0eorganizationId\x12\xd5\x01\n\x0b\x63reate_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x97\x01\x92\x41\x93\x01\x32uThe timestamp when this API client was created. This field is automatically set by the server and cannot be modified.J\x1a\"2024-01-05T14:48:00.000Z\"R\ncreateTime\x12\xf4\x01\n\x0bupdate_time\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\xb6\x01\x92\x41\xb2\x01\x32\x93\x01The timestamp when this API client was last updated. This field is automatically updated by the server whenever the client\'s configuration changes.J\x1a\"2024-01-05T14:48:00.000Z\"R\nupdateTime\x12\xbe\x01\n\x06scopes\x18\x08 \x03(\tB\xa5\x01\x92\x41\xa1\x01\x32uThe OAuth 2.0 scopes granted to this client. These scopes determine what resources and actions the client can access.J([\"deploy:resources\", \"read:deployments\"]R\x06scopes\x12\xc7\x01\n\x08\x61udience\x18\t \x03(\tB\xaa\x01\x92\x41\xa6\x01\x32\x86\x01The intended recipients of access tokens issued to this client. Each audience value should be a URI that identifies an API or service.J\x1b[\"https://api.example.com\"]R\x08\x61udience\x12\xec\x01\n\rcustom_claims\x18\n \x03(\x0b\x32 .scalekit.v1.clients.CustomClaimB\xa4\x01\x92\x41\xa0\x01\x32\x9d\x01\x41\x64\x64itional claims included in access tokens issued to this client. These claims provide context about the client and can be used for authorization decisions.R\x0c\x63ustomClaims\x12_\n\x06\x65xpiry\x18\x0b \x01(\x03\x42G\x92\x41\x44\x32<Expiry time in seconds for the token generated by the clientJ\x04\x33\x36\x30\x30R\x06\x65xpiry\x12\xc4\x01\n\x0bresource_id\x18\x0c \x01(\tB\xa2\x01\x92\x41\x9e\x01\x32\x83\x01The ID of the resource associated with this M2M client. This field is used to link the client to a specific resource in the system.J\x16\"app_1231234233424344\"R\nresourceId\x12\xd1\x01\n\rredirect_uris\x18\r \x03(\tB\xab\x01\x92\x41\xa7\x01\x32\x82\x01The redirect URI for this API client. This URI is used in the OAuth 2.0 authorization flow to redirect users after authentication.J [\"https://example.com/callback\"]R\x0credirectUris\"\x8e\x02\n\x1cGetOrganizationClientRequest\x12z\n\x0forganization_id\x18\x01 \x01(\tBQ\x92\x41?2%Unique identifier of the organizationJ\x16\"org_1231234233424344\"\xbaH\x0cr\n\x10\x01\x18 :\x04org_R\x0eorganizationId\x12r\n\tclient_id\x18\x02 \x01(\tBU\x92\x41@2#Unique identifier of the API clientJ\x19\"m2morg_1231234233424344\"\xbaH\x0fr\r\x10\x01\x18 :\x07m2morg_R\x08\x63lientId\"}\n\x1dGetOrganizationClientResponse\x12\\\n\x06\x63lient\x18\x01 \x01(\x0b\x32\x1e.scalekit.v1.clients.M2MClientB$\x92\x41!2\x1f\x44\x65tails of the requested clientR\x06\x63lient\"\xd4\x02\n\x0b\x43ustomClaim\x12\xb7\x01\n\x03key\x18\x01 \x01(\tB\xa4\x01\x92\x41\x96\x01\x32\x84\x01The name of the custom claim. Must be between 1 and 128 characters. Use descriptive names that clearly indicate the claim\'s purpose.J\r\"environment\"\xbaH\x07r\x05\x10\x01\x18\x80\x01R\x03key\x12\x8a\x01\n\x05value\x18\x02 \x01(\tBt\x92\x41q2aThe value of the custom claim. This value will be included in access tokens issued to the client.J\x0c\"production\"R\x05value\"\x97\x02\n%CreateOrganizationClientSecretRequest\x12z\n\x0forganization_id\x18\x01 \x01(\tBQ\x92\x41?2%Unique identifier of the organizationJ\x16\"org_1231234233424344\"\xbaH\x0cr\n\x10\x01\x18 :\x04org_R\x0eorganizationId\x12r\n\tclient_id\x18\x02 \x01(\tBU\x92\x41@2#Unique identifier of the API clientJ\x19\"m2morg_1231234233424344\"\xbaH\x0fr\r\x10\x01\x18 :\x07m2morg_R\x08\x63lientId\"\x8b\x02\n&CreateOrganizationClientSecretResponse\x12{\n\x0cplain_secret\x18\x01 \x01(\tBX\x92\x41U24Client secret value (only returned once at creation)J\x1d\"m2morg_client_secret_xyz123\"R\x0bplainSecret\x12\x64\n\x06secret\x18\x02 \x01(\x0b\x32!.scalekit.v1.clients.ClientSecretB)\x92\x41&2$Details of the created client secretR\x06secret\"\x82\x03\n%DeleteOrganizationClientSecretRequest\x12z\n\x0forganization_id\x18\x01 \x01(\tBQ\x92\x41?2%Unique identifier of the organizationJ\x16\"org_1231234233424344\"\xbaH\x0cr\n\x10\x01\x18 :\x04org_R\x0eorganizationId\x12r\n\tclient_id\x18\x02 \x01(\tBU\x92\x41@2#Unique identifier of the API clientJ\x19\"m2morg_1231234233424344\"\xbaH\x0fr\r\x10\x01\x18 :\x07m2morg_R\x08\x63lientId\x12i\n\tsecret_id\x18\x03 \x01(\tBL\x92\x41@2&Unique identifier of the client secretJ\x16\"sec_1231234233424344\"\xbaH\x06r\x04\x10\x01\x18 R\x08secretId\"\xd0\x05\n\x1eListOrganizationClientsRequest\x12\xb1\x01\n\x0forganization_id\x18\x01 \x01(\tB\x87\x01\x92\x41u2[Unique identifier of the organization whose clients to list. Must start with \'org_\' prefix.J\x16\"org_1231234233424344\"\xbaH\x0cr\n\x10\x01\x18 :\x04org_R\x0eorganizationId\x12r\n\tpage_size\x18\x02 \x01(\rBU\x92\x41R2LMaximum number of API clients to return per page. Must be between 10 and 100J\x02\x33\x30R\x08pageSize\x12\x96\x01\n\npage_token\x18\x03 \x01(\tBw\x92\x41t2bPagination token from the previous response. Use to retrieve the next page of organization clientsJ\x0e\"<page_token>\"R\tpageToken:\xec\x01\x92\x41\xe8\x01\n\xa8\x01*!List Organization Clients Request2\x82\x01Request message for listing API clients within a specific organization. Supports pagination for handling large numbers of clients.*;\n\x11\x41PI Documentation\x12&https://docs.scalekit.com/m2m/overview\"\xa5\x06\n\x1fListOrganizationClientsResponse\x12\x97\x01\n\x0fnext_page_token\x18\x01 \x01(\tBo\x92\x41l2UPagination token for the next page of results. Use this token to fetch the next page.J\x13\"<next_page_token>\"R\rnextPageToken\x12X\n\ntotal_size\x18\x02 \x01(\rB9\x92\x41\x36\x32\x30Total number of API clients in the organization.J\x02\x33\x30R\ttotalSize\x12\xe0\x01\n\x07\x63lients\x18\x03 \x03(\x0b\x32\x1e.scalekit.v1.clients.M2MClientB\xa5\x01\x92\x41\xa1\x01\x32\x9e\x01List of API client objects for the organization. Each client includes its configuration, metadata, and active secrets (without exposing actual secret values).R\x07\x63lients\x12\x9f\x01\n\x0fprev_page_token\x18\x04 \x01(\tBw\x92\x41t2]Pagination token for the previous page of results. Use this token to fetch the previous page.J\x13\"<prev_page_token>\"R\rprevPageToken:\x88\x01\x92\x41\x84\x01\n\x81\x01*\"List Organization Clients Response2[Response message containing a paginated list of API clients for the specified organization.\"\x83\x03\n\x1f\x44\x65leteOrganizationClientRequest\x12\xb0\x01\n\x0forganization_id\x18\x01 \x01(\tB\x86\x01\x92\x41t2ZUnique identifier of the organization that owns the client. Must start with \'org_\' prefix.J\x16\"org_1231234233424344\"\xbaH\x0cr\n\x10\x01\x18 :\x04org_R\x0eorganizationId\x12\xac\x01\n\tclient_id\x18\x02 \x01(\tB\x8e\x01\x92\x41y2\\Unique identifier of the API client to permanently delete. Must start with \'m2morg_\' prefix.J\x19\"m2morg_1231234233424344\"\xbaH\x0fr\r\x10\x01\x18 :\x07m2morg_R\x08\x63lientId\"\xa5\x01\n\x10GetClientRequest\x12\x90\x01\n\tclient_id\x18\x01 \x01(\tBs\x92\x41g2SUnique identifier of the client resource to retrieve. Must be 1-32 characters long.J\x10\"skc_1234567890\"\xbaH\x06r\x04\x10\x01\x18 R\x08\x63lientId\"\xf5\x01\n\x11GetClientResponse\x12\xdf\x01\n\x06\x63lient\x18\x01 \x01(\x0b\x32\x1b.scalekit.v1.clients.ClientB\xa9\x01\x92\x41\xa5\x01\x32\xa2\x01\x43omplete client configuration including authentication settings, redirect URIs, and secrets. This contains all current settings for the requested client resource.R\x06\x63lient\"\xf0\x01\n\x12ListClientsRequest\x12\xd9\x01\n\x14include_plain_secret\x18\x01 \x01(\x08\x42\xa6\x01\x92\x41\xa2\x01\x32\x98\x01Whether to include plain secret values in the response. Should only be enabled during initial creation as secrets should be securely stored immediately.J\x05\x66\x61lseR\x12includePlainSecret\"\xb5\x02\n\x13ListClientsResponse\x12Z\n\ntotal_size\x18\x01 \x01(\rB;\x92\x41\x38\x32\x32Total number of client resources in the workspace.J\x02\x31\x32R\ttotalSize\x12\xc1\x01\n\x07\x63lients\x18\x02 \x03(\x0b\x32\x1b.scalekit.v1.clients.ClientB\x89\x01\x92\x41\x85\x01\x32\x82\x01List of client resource configurations matching the query criteria. Each client includes its metadata and authentication settings.R\x07\x63lients\"\xfa\x03\n\x13UpdateClientRequest\x12}\n\tclient_id\x18\x01 \x01(\tB`\x92\x41T2:Unique identifier of the registered application to update.J\x16\"skc_01H9XPQR7ZY2AJKL\"\xbaH\x06r\x04\x10\x01\x18 R\x08\x63lientId\x12\x9f\x02\n\x06\x63lient\x18\x02 \x01(\x0b\x32!.scalekit.v1.clients.UpdateClientB\xe3\x01\x92\x41\xd9\x01\x32\x62\x41pplication configuration parameters to update. Contains redirect URIs and authentication settingsJs{\"redirect_uris\": [\"https://app.example.com/callback\"], \"default_redirect_uri\": \"https://app.example.com/callback\"}\xbaH\x03\xc8\x01\x01R\x06\x63lient\x12\x42\n\x04mask\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x12\xe0\x41\x03\xfa\xd2\xe4\x93\x02\t\x12\x07PREVIEWR\x04mask\"\xa8\x10\n\x0cUpdateClient\x12\x9e\x02\n\rredirect_uris\x18\x02 \x03(\tB\xf8\x01\x92\x41\xe5\x01\x32\x9c\x01List of allowed redirect URIs for OAuth 2.0 authorization flows. Each URI must be valid and use HTTPS in production environments. Maximum of 5 URIs allowed.JD[\"https://app.example.com/callback\", \"https://dev.example.com/auth\"]\xbaH\x0c\x92\x01\t\x18\x01\"\x05r\x03\x88\x01\x01R\x0credirectUris\x12\x9b\x02\n\x14\x64\x65\x66\x61ult_redirect_uri\x18\x03 \x01(\tB\xe3\x01\x92\x41\xa7\x01\x32\x80\x01Primary redirect URI used when none is specified in authorization requests. Must exactly match one of the URIs in redirect_uris.J\"\"https://app.example.com/callback\"\xbaH5\xba\x01\x32\n\tvalid_uri\x12\x17uri must be a valid URI\x1a\x0cthis.isUri()H\x00R\x12\x64\x65\x66\x61ultRedirectUri\x88\x01\x01\x12\xc3\x02\n\x18\x62\x61\x63k_channel_logout_uris\x18\x04 \x03(\tB\x89\x02\x92\x41\xf6\x01\x32\x95\x01HTTPS endpoints for receiving back-channel logout notifications. Required for implementing application-initiated logout flows and session management.J\\[\"https://app.example.com/backchannel-logout\", \"https://app.example.com/backchannel-logout\"]\xbaH\x0c\x92\x01\t\x18\x01\"\x05r\x03\x88\x01\x01R\x15\x62\x61\x63kChannelLogoutUris\x12\xb6\x02\n\x19post_logout_redirect_uris\x18\x05 \x03(\tB\xfa\x01\x92\x41\xe7\x01\x32\x9c\x01\x41llowed URIs for post-logout redirection. These URIs are used when a user is redirected after logout. Must use HTTPS and conform to security specifications.JF[\"https://app.example.com/logged-out\", \"https://app.example.com/home\"]\xbaH\x0c\x92\x01\t\x18\x01\"\x05r\x03\x88\x01\x01R\x16postLogoutRedirectUris\x12\xff\x01\n\x12initiate_login_uri\x18\x06 \x01(\tB\xcb\x01\x92\x41\xc7\x01\x32\xa3\x01Pre-configured URI for initiating login flows. This URI is used to start authentication flows programmatically. Must use HTTPS protocol and contain a valid domain.J\x1f\"https://app.example.com/login\"H\x01R\x10initiateLoginUri\x88\x01\x01\x12\xa3\x02\n\x0fpost_login_uris\x18\x07 \x03(\tB\xfa\x01\x92\x41\xe7\x01\x32\x9e\x01List of allowed post login URIs for OAuth 2.0 authorization flows. Each URI must be valid and use HTTPS in production environments. Maximum of 5 URIs allowed.JD[\"https://app.example.com/callback\", \"https://dev.example.com/auth\"]\xbaH\x0c\x92\x01\t\x18\x01\"\x05r\x03\x88\x01\x01R\rpostLoginUris:\x81\x02\x92\x41\xfd\x01\n\xbd\x01*\x1bUpdate Client Configuration2\x9d\x01Parameters for updating an API client application\'s configuration. This allows modification of redirect URIs, logout settings, and other security parameters.*;\n\x11\x41PI Documentation\x12&https://docs.scalekit.com/m2m/overviewB\x17\n\x15_default_redirect_uriB\x15\n\x13_initiate_login_uri\"\xa8\x01\n\x14UpdateClientResponse\x12\x8f\x01\n\x06\x63lient\x18\x01 \x01(\x0b\x32\x1b.scalekit.v1.clients.ClientBZ\x92\x41W2UUpdated application configuration with all current settings reflected in the responseR\x06\x63lient\"\xae\x01\n\x19\x43reateClientSecretRequest\x12\x90\x01\n\tclient_id\x18\x01 \x01(\tBs\x92\x41g2MUnique identifier of the client application for which to create a new secret.J\x16\"skc_01H9XPQR7ZY2AJKL\"\xbaH\x06r\x04\x10\x01\x18 R\x08\x63lientId\"\xad\x03\n\x1a\x43reateClientSecretResponse\x12\xc6\x01\n\x0cplain_secret\x18\x01 \x01(\tB\xa2\x01\x92\x41\x9e\x01\x32\x84\x01Plaintext secret value. This value is only returned once at creation time and must be stored securely. It cannot be retrieved again.J\x15\"sec_plaintext123456\"R\x0bplainSecret\x12\xc5\x01\n\x06secret\x18\x02 \x01(\x0b\x32!.scalekit.v1.clients.ClientSecretB\x89\x01\x92\x41\x85\x01\x32\x82\x01Metadata about the newly created secret, including its ID, creation time, and status. Does not include the plaintext secret value.R\x06secret\"\x83\x05\n\x19UpdateClientSecretRequest\x12\x8f\x01\n\tclient_id\x18\x01 \x01(\tBr\x92\x41\x66\x32LUnique identifier of the client application containing the secret to update.J\x16\"skc_01H9XPQR7ZY2AJKL\"\xbaH\x06r\x04\x10\x01\x18 R\x08\x63lientId\x12\xab\x01\n\tsecret_id\x18\x02 \x01(\tB\x8d\x01\x92\x41\x80\x01\x32\x66Unique identifier of the client secret to update. This references a specific secret within the client.J\x16\"sec_01H9XPQR7ZY2AJKL\"\xbaH\x06r\x04\x10\x01\x18 R\x08secretId\x12\xb0\x01\n\x06secret\x18\x03 \x01(\x0b\x32\'.scalekit.v1.clients.UpdateClientSecretBo\x92\x41\x66\x32\x64Updated settings for the secret. Currently supports modifying the secret\'s status (active/inactive).\xbaH\x03\xc8\x01\x01R\x06secret\x12s\n\x04mask\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskBC\x92\x41@2>Specifies which fields to update. System-controlled parameter.R\x04mask\"\xec\x01\n\x12UpdateClientSecret\x12\xd5\x01\n\x06status\x18\x01 \x01(\x0e\x32\'.scalekit.v1.clients.ClientSecretStatusB\x93\x01\x92\x41\x8f\x01\x32\x82\x01Status to set for the client secret. Set to ACTIVE to enable the secret for authentication, or INACTIVE to temporarily disable it.J\x08INACTIVER\x06status\"\xe7\x01\n\x1aUpdateClientSecretResponse\x12\xc8\x01\n\x06secret\x18\x01 \x01(\x0b\x32!.scalekit.v1.clients.ClientSecretB\x8c\x01\x92\x41\x88\x01\x32\x85\x01Updated secret metadata, reflecting the changes made by the update operation. Note that the plaintext secret value is never returned.R\x06secret\"\xd2\x02\n\x19\x44\x65leteClientSecretRequest\x12\x8f\x01\n\tclient_id\x18\x01 \x01(\tBr\x92\x41\x66\x32LUnique identifier of the client application containing the secret to delete.J\x16\"skc_01H9XPQR7ZY2AJKL\"\xbaH\x06r\x04\x10\x01\x18 R\x08\x63lientId\x12\xa2\x01\n\tsecret_id\x18\x02 \x01(\tB\x84\x01\x92\x41x2^Unique identifier of the client secret to permanently delete. This operation cannot be undone.J\x16\"sec_01H9XPQR7ZY2AJKL\"\xbaH\x06r\x04\x10\x01\x18 R\x08secretId\"\xba\x19\n\x06\x43lient\x12\xe2\x01\n\x02id\x18\x01 \x01(\tB\xd1\x01\x92\x41\xcd\x01\x32\xb2\x01Unique identifier for the client application. This ID is automatically generated when the client is created and cannot be modified. Used in API requests and authentication flows.J\x16\"skc_1234abcd5678efgh\"R\x02id\x12\xd7\x01\n\x05keyId\x18\x02 \x01(\tB\xc0\x01\x92\x41\xbc\x01\x32\xa1\x01Identifier for the cryptographic key pair used to sign tokens. This key is used for JWT signing operations. Keys can be rotated by generating new client secrets.J\x16\"key_9876zyxw5432vuts\"R\x05keyId\x12\xf0\x01\n\x0b\x63reate_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\xb2\x01\x92\x41\xae\x01\x32\x8f\x01Timestamp indicating when the client configuration was initially created. This field is automatically set by the server and cannot be modified.J\x1a\"2024-01-05T14:48:00.000Z\"R\ncreateTime\x12\x81\x02\n\x0bupdate_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\xc3\x01\x92\x41\xbf\x01\x32\xa0\x01Timestamp of the last modification to the client configuration. This field is automatically updated by the server whenever any aspect of the client is modified.J\x1a\"2024-01-10T09:12:00.000Z\"R\nupdateTime\x12\xd5\x02\n\rredirect_uris\x18\x05 \x03(\tB\xaf\x02\x92\x41\xab\x02\x32\xdb\x01List of allowed redirect URIs for OAuth 2.0 authorization flows. These URIs must use HTTPS protocol in production environments and comply with RFC 6749. Users will be redirected to one of these URIs after authorization.JK[\"https://auth.your-app.com/callback\", \"https://scalekit.example.org/auth\"]R\x0credirectUris\x12\x80\x02\n\x14\x64\x65\x66\x61ult_redirect_uri\x18\x06 \x01(\tB\xcd\x01\x92\x41\xc9\x01\x32\xa0\x01Primary redirect URI used when none is explicitly specified in authorization requests. This URI must exactly match one of the entries in the redirect_uris list.J$\"https://auth.your-app.com/callback\"R\x12\x64\x65\x66\x61ultRedirectUri\x12\xa5\x02\n\x07secrets\x18\x07 \x03(\x0b\x32!.scalekit.v1.clients.ClientSecretB\xe7\x01\x92\x41\xe3\x01\x32\xe0\x01List of client secrets used for authentication. Each secret is stored securely using one-way hashing (bcrypt). The plaintext secret values are only displayed during initial creation and must be stored securely by the client.R\x07secrets\x12\xa3\x02\n\x19post_logout_redirect_uris\x18\x08 \x03(\tB\xe7\x01\x92\x41\xe3\x01\x32\xba\x01\x41llowed URIs for post-logout redirection. These URIs are used when a user is redirected after signing out. Must use HTTPS and conform to OpenID Connect Session Management specifications.J$[\"https://auth.your-app.com/logout\"]R\x16postLogoutRedirectUris\x12\xc9\x02\n\x18\x62\x61\x63k_channel_logout_uris\x18\t \x03(\tB\x8f\x02\x92\x41\x8b\x02\x32\xd8\x01HTTPS endpoint for receiving back-channel logout notifications. This URI is called by the authentication server when a session expires or is terminated. Required for implementing relying party-initiated logout flows.J.\"https://auth.your-app.com/backchannel-logout\"R\x15\x62\x61\x63kChannelLogoutUris\x12\xa0\x02\n\x12initiate_login_uri\x18\n \x01(\tB\xf1\x01\x92\x41\xed\x01\x32\xbf\x01Pre-configured URI for initiating login flows programmatically. This URI must use the HTTPS scheme and contain a valid domain. Used for starting authentication flows without user interaction.J)\"https://auth.your-app.com/initiate-auth\"R\x10initiateLoginUri\x12\xab\x02\n\x0fpost_login_uris\x18\x0b \x03(\tB\x82\x02\x92\x41\xfe\x01\x32\xb3\x01List of allowed redirect URIs for OAuth 2.0 authorization flows. These URIs must use HTTPS protocol in production environments and comply with RFC 6749. Maximum of 5 URIs allowed.JF[\"https://auth.your-app.com/callback\", \"https://dev.example.com/auth\"]R\rpostLoginUris:\xb3\x01\x92\x41\xaf\x01\n\xac\x01*\x12\x43lient Application2\x95\x01\x43onfiguration for an API client application registered with Scalekit. Contains authentication settings, redirect URIs, and other security parameters.\"\xc1\x13\n\x0c\x43lientSecret\x12\xd5\x01\n\x02id\x18\x01 \x01(\tB\xc4\x01\x92\x41\xc0\x01\x32\xa5\x01The unique identifier for this client secret. This ID is used to reference the secret in API requests for management operations like updating or deleting the secret.J\x16\"sec_1234abcd5678efgh\"R\x02id\x12\xd1\x01\n\x0b\x63reate_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x93\x01\x92\x41\x8f\x01\x32qThe timestamp when this secret was created. This field is automatically set by the server and cannot be modified.J\x1a\"2024-01-05T14:48:00.000Z\"R\ncreateTime\x12\x86\x02\n\x0bupdate_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\xc8\x01\x92\x41\xc4\x01\x32\xa5\x01The timestamp when this secret was last updated. This field is automatically updated by the server when the secret\'s status changes or other properties are modified.J\x1a\"2024-01-10T09:12:00.000Z\"R\nupdateTime\x12\x82\x02\n\rsecret_suffix\x18\x04 \x01(\tB\xdc\x01\x92\x41\xd8\x01\x32\xcd\x01\x41 suffix that helps identify this secret. This is the last few characters of the full secret value but is not sufficient for authentication. Helps identify which secret is being used in logs and debugging.J\x06\"xyzw\"R\x0csecretSuffix\x12\xc9\x01\n\ncreated_by\x18\x05 \x01(\tB\xa4\x01\x92\x41\xa0\x01\x32\x8f\x01The identifier of the user or system that created this secret. This field helps track who created the secret for audit and compliance purposes.J\x0c\"user_12345\"H\x00R\tcreatedBy\x88\x01\x01\x12\x86\x02\n\x06status\x18\x06 \x01(\x0e\x32\'.scalekit.v1.clients.ClientSecretStatusB\xc4\x01\x92\x41\xc0\x01\x32\xb1\x01The current status of this secret. A secret must be ACTIVE to be used for authentication. INACTIVE secrets cannot be used for authentication but are retained for audit purposes.J\n\"INACTIVE\"R\x06status\x12\x8c\x02\n\x0b\x65xpire_time\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\xce\x01\x92\x41\xca\x01\x32\xab\x01The timestamp when this secret will expire. After this time, the secret cannot be used for authentication regardless of its status. If not set, the secret does not expire.J\x1a\"2025-01-05T14:48:00.000Z\"R\nexpireTime\x12\xa6\x02\n\x0elast_used_time\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\xe3\x01\x92\x41\xdf\x01\x32\xc0\x01The timestamp when this secret was last used for authentication. This field helps track secret usage for security monitoring and identifying unused secrets that may be candidates for rotation.J\x1a\"2024-02-15T10:30:00.000Z\"R\x0clastUsedTime\x12\xb3\x02\n\x0cplain_secret\x18\t \x01(\tB\x8a\x02\x92\x41\x86\x02\x32\xd7\x01The full plaintext secret value. This field is only populated when the secret is first created and is never stored by the server. It must be securely stored by the client application as it cannot be retrieved again.J*\"sec_1234567890abcdefghijklmnopqrstuvwxyz\"H\x01R\x0bplainSecret\x88\x01\x01:\x93\x01\x92\x41\x8f\x01\n\x8c\x01*\rClient Secret2{A secure credential used for authenticating an API client. Each client can have multiple secrets for key rotation purposes.B\r\n\x0b_created_byB\x0f\n\r_plain_secret\"\xb8\x02\n\x05Scope\x12\xa8\x01\n\x02id\x18\x01 \x01(\tB\x97\x01\x92\x41\x8a\x01\x32tUnique identifier for the scope resource. Must be between 1 and 100 characters long and match the specified pattern.J\x12\"scope_1234567890\"\xbaH\x06r\x04\x10\x01\x18\x64R\x02id\x12\x36\n\x04name\x18\x02 \x01(\tB\"\xbaH\x1fr\x1a\x10\x01\x18\x64\x32\x14^[a-zA-Z0-9:]{1,64}$\xc8\x01\x01R\x04name\x12*\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x08\xbaH\x05r\x03\x18\xd0\x0fR\x0b\x64\x65scription\x12 \n\x07\x65nabled\x18\x04 \x01(\x08\x42\x06\xbaH\x03\xc8\x01\x01R\x07\x65nabled\"q\n\x0b\x43reateScope\x12\x36\n\x04name\x18\x01 \x01(\tB\"\xbaH\x1fr\x1a\x10\x01\x18\x64\x32\x14^[a-zA-Z0-9:]{1,64}$\xc8\x01\x01R\x04name\x12*\n\x0b\x64\x65scription\x18\x02 \x01(\tB\x08\xbaH\x05r\x03\x18\xd0\x0fR\x0b\x64\x65scription\"\xf3\x01\n\x12\x43reateScopeRequest\x12>\n\x05scope\x18\x01 \x01(\x0b\x32 .scalekit.v1.clients.CreateScopeB\x06\xbaH\x03\xc8\x01\x01R\x05scope\x12\x9c\x01\n\x06\x65nv_id\x18\x02 \x01(\tB\x84\x01\x92\x41x2dUnique identifier of the environment where the scope will be created. Must start with \'env_\' prefix.J\x10\"env_1234567890\"\xbaH\x06r\x04\x10\x00\x18 R\x05\x65nvId\"G\n\x13\x43reateScopeResponse\x12\x30\n\x05scope\x18\x01 \x01(\x0b\x32\x1a.scalekit.v1.clients.ScopeR\x05scope\"\xaa\x01\n\x11ListScopesRequest\x12\x94\x01\n\x06\x65nv_id\x18\x01 \x01(\tB}\x92\x41q2]Unique identifier of the environment for which to list scopes. Must start with \'env_\' prefix.J\x10\"env_1234567890\"\xbaH\x06r\x04\x10\x00\x18 R\x05\x65nvId\"H\n\x12ListScopesResponse\x12\x32\n\x06scopes\x18\x01 \x03(\x0b\x32\x1a.scalekit.v1.clients.ScopeR\x06scopes\"o\n\x12UpdateScopeRequest\x12\x19\n\x02id\x18\x01 \x01(\tB\t\xbaH\x06r\x04\x10\x01\x18\x64R\x02id\x12>\n\x05scope\x18\x02 \x01(\x0b\x32 .scalekit.v1.clients.UpdateScopeB\x06\xbaH\x03\xc8\x01\x01R\x05scope\"o\n\x0bUpdateScope\x12*\n\x0b\x64\x65scription\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\x18\xd0\x0fR\x0b\x64\x65scription\x12\x34\n\x07\x65nabled\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.BoolValueR\x07\x65nabled\"G\n\x13UpdateScopeResponse\x12\x30\n\x05scope\x18\x01 \x01(\x0b\x32\x1a.scalekit.v1.clients.ScopeR\x05scope\"1\n\x12\x44\x65leteScopeRequest\x12\x1b\n\x02id\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06:\x04scp_R\x02id\"\xdc\x04\n\x19GetConsentDetailsResponse\x12\x61\n\x08resource\x18\x01 \x01(\x0b\x32\x1d.scalekit.v1.clients.ResourceB&\x92\x41#2!Details of the requested resourceR\x08resource\x12[\n\x04user\x18\x02 \x01(\x0b\x32\x19.scalekit.v1.clients.UserB,\x92\x41)2\'Details of the user who granted consentR\x04user\x12r\n\x06\x63lient\x18\x03 \x01(\x0b\x32\".scalekit.v1.clients.ConsentClientB6\x92\x41\x33\x32\x31\x44\x65tails of the client resource requesting consentR\x06\x63lient\x12\x9b\x01\n\x06scopes\x18\x04 \x03(\x0b\x32!.scalekit.v1.clients.ConsentScopeB`\x92\x41]2[List of scopes for which consent was granted. Each scope includes its name and description.R\x06scopes\x12m\n\x0b\x61pplication\x18\x05 \x01(\x0b\x32 .scalekit.v1.clients.ApplicationB)\x92\x41&2$Details of the requested applicationR\x0b\x61pplication\"\xcd\x01\n\rConsentClient\x12o\n\x04name\x18\x01 \x01(\tB[\x92\x41O2;Unique identifier of the client resource requesting consentJ\x10\"skc_1234567890\"\xbaH\x06r\x04\x10\x01\x18 R\x04name\x12(\n\x0bprivacy_uri\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x18\x64R\nprivacyUri\x12!\n\x07tos_uri\x18\x03 \x01(\tB\x08\xbaH\x05r\x03\x18\xd0\x0fR\x06tosUri\"\\\n\x0c\x43onsentScope\x12 \n\x04name\x18\x01 \x01(\tB\x0c\xbaH\tr\x04\x10\x01\x18\x64\xc8\x01\x01R\x04name\x12*\n\x0b\x64\x65scription\x18\x02 \x01(\tB\x08\xbaH\x05r\x03\x18\xd0\x0fR\x0b\x64\x65scription\"r\n\x04User\x12j\n\x05\x65mail\x18\x01 \x01(\tBT\x92\x41Q28Email address of the user. Must be a valid email format.J\x15\x61lice.doe@example.comR\x05\x65mail*k\n\x0cResourceType\x12\x1d\n\x19RESOURCE_TYPE_UNSPECIFIED\x10\x00\x12\x07\n\x03WEB\x10\x01\x12\n\n\x06MOBILE\x10\x02\x12\x0b\n\x07\x44\x45SKTOP\x10\x03\x12\n\n\x06SERVER\x10\x04\x12\x0e\n\nMCP_SERVER\x10\x05*.\n\x12\x43lientSecretStatus\x12\n\n\x06\x41\x43TIVE\x10\x00\x12\x0c\n\x08INACTIVE\x10\x01\x32\xd2\x8b\x01\n\rClientService\x12\xd6\x02\n\nListClient\x12\'.scalekit.v1.clients.ListClientsRequest\x1a(.scalekit.v1.clients.ListClientsResponse\"\xf4\x01\x92\x41\xc4\x01\n\x08\x41PI Auth\x12\x10List API clients\x1aGRetrieves a paginated list of API client applications in the workspace.J]\n\x03\x32\x30\x30\x12V\n&List of clients returned successfully.\x12,\n*\x1a(.scalekit.v1.clients.ListClientsResponse\x82\xb5\x18\x02\x18P\xfa\xd2\xe4\x93\x02\t\x12\x07PREVIEW\x82\xd3\xe4\x93\x02\x11\x12\x0f/api/v1/clients\x12\xcc\x05\n\tGetClient\x12%.scalekit.v1.clients.GetClientRequest\x1a&.scalekit.v1.clients.GetClientResponse\"\xef\x04\x92\x41\xb3\x04\n\x0e\x43lient Configs\x12\x18Get Client Configuration\x1a\xc1\x02Retrieves the complete configuration for an M2M client, including authentication settings, scopes, and custom claims. Use this endpoint to view or verify client settings, such as allowed redirect URIs, audience values, and token expiration times. The response includes all current client metadata and security parameters.J\xc2\x01\n\x03\x32\x30\x30\x12\xba\x01\n\x8b\x01\x43lient configuration retrieved successfully. Returns full client metadata including scopes, audience, custom claims, and security settings.\x12*\n(\x1a&.scalekit.v1.clients.GetClientResponse\x82\xb5\x18\x02\x18T\xfa\xd2\xe4\x93\x02\t\x12\x07PREVIEW\x82\xd3\xe4\x93\x02\x1d\x12\x1b/api/v1/clients/{client_id}\x12\xc3\x05\n\x0cUpdateClient\x12(.scalekit.v1.clients.UpdateClientRequest\x1a).scalekit.v1.clients.UpdateClientResponse\"\xdd\x04\x92\x41\x99\x04\n\x0e\x43lient Configs\x12\x1bUpdate Client Configuration\x1a\xb0\x02Updates the configuration settings for an M2M client. This endpoint allows you to modify client properties such as redirect URIs, scopes, audience, and custom claims. Required fields include redirect_uris and default_redirect_uri. Note that client_id and create_time are immutable and cannot be modified.J\xb6\x01\n\x03\x32\x30\x31\x12\xae\x01\n}Client configuration updated successfully. Returns the updated client resource with new update_time and all current settings.\x12-\n+\x1a).scalekit.v1.clients.UpdateClientResponse\x82\xb5\x18\x02\x18T\xfa\xd2\xe4\x93\x02\t\x12\x07PREVIEW\x82\xd3\xe4\x93\x02%2\x1b/api/v1/clients/{client_id}:\x06\x63lient\x12\xa4\x05\n\x12\x43reateClientSecret\x12..scalekit.v1.clients.CreateClientSecretRequest\x1a/.scalekit.v1.clients.CreateClientSecretResponse\"\xac\x04\x92\x41\xe8\x03\n\x0e\x43lient Configs\x12\x14\x43reate Client Secret\x1a\x82\x02Generates a new client secret for an API client. This endpoint creates a secure credential that can be used for OAuth 2.0 client credentials flow. The plain secret is only returned once during creation and should be stored securely by the client application.J\xba\x01\n\x03\x32\x30\x31\x12\xb2\x01\n{Client secret created successfully. Returns the new secret ID and the plain secret value (only available at creation time).\x12\x33\n1\x1a/.scalekit.v1.clients.CreateClientSecretResponse\x82\xb5\x18\x02\x18T\xfa\xd2\xe4\x93\x02\t\x12\x07PREVIEW\x82\xd3\xe4\x93\x02%\"#/api/v1/clients/{client_id}/secrets\x12\xca\x05\n\x12UpdateClientSecret\x12..scalekit.v1.clients.UpdateClientSecretRequest\x1a/.scalekit.v1.clients.UpdateClientSecretResponse\"\xd2\x04\x92\x41\xbf\x03\n\x0e\x43lient Configs\x12\x14Update Client Secret\x1a\xfd\x01Updates the status of a client secret. This endpoint allows you to activate or deactivate a client secret. Use this to rotate secrets or revoke access for compromised credentials. The secret value itself cannot be modified - create a new secret instead.J\x96\x01\n\x03\x32\x30\x30\x12\x8e\x01\nWClient secret updated successfully. Returns the updated secret with its current status.\x12\x33\n1\x1a/.scalekit.v1.clients.UpdateClientSecretResponse\x82\xb5\x18\x02\x18T\xfa\xd2\xe4\x93\x02\t\x12\x07PREVIEW\x82\xd3\xe4\x93\x02t\x1a//api/v1/clients/{client_id}/secrets/{secret_id}:\x06secretZ92//api/v1/clients/{client_id}/secrets/{secret_id}:\x06secret\x12\xe3\x03\n\x12\x44\x65leteClientSecret\x12..scalekit.v1.clients.DeleteClientSecretRequest\x1a\x16.google.protobuf.Empty\"\x84\x03\x92\x41\xb4\x02\n\x0e\x43lient Configs\x12\x14\x44\x65lete Client Secret\x1a\xc5\x01Permanently deletes a client secret. This operation cannot be undone. Use this endpoint to remove compromised or unused secrets. After deletion, the secret can no longer be used for authentication.JD\n\x03\x32\x30\x30\x12=\n;Client secret successfully deleted and no longer accessible\x82\xb5\x18\x02\x18T\xfa\xd2\xe4\x93\x02\t\x12\x07PREVIEW\x82\xd3\xe4\x93\x02\x31*//api/v1/clients/{client_id}/secrets/{secret_id}\x12\xee\n\n\x18\x43reateOrganizationClient\x12\x34.scalekit.v1.clients.CreateOrganizationClientRequest\x1a\x35.scalekit.v1.clients.CreateOrganizationClientResponse\"\xe4\t\x92\x41\x9b\t\n\x08\x41PI Auth\x12\x1e\x43reate organization API client\x1arCreates a new API client for an organization. Returns the client details and a plain secret (available only once).J\x9e\x02\n\x03\x32\x30\x31\x12\x96\x02\n\xd8\x01\x41PI client created successfully. Returns the client ID and plain secret (only available at creation time). The client can be configured with scopes, audience values, and custom claims for fine-grained access control.\x12\x39\n7\x1a\x35.scalekit.v1.clients.CreateOrganizationClientResponsej\xd9\x05\n\rx-codeSamples\x12\xc7\x05\x32\xc4\x05\n\xc1\x05*\xbe\x05\n\x15\n\x05label\x12\x0c\x1a\nPython SDK\n\x10\n\x04lang\x12\x08\x1a\x06python\n\x92\x05\n\x06source\x12\x87\x05\x1a\x84\x05\x66rom scalekit.v1.clients.clients_pb2 import OrganizationClient\n\nm2m_client = OrganizationClient(\n    name=\"GitHub Actions Deployment Service\",\n    description=\"Service account for GitHub Actions to deploy applications to production\",\n    custom_claims=[\n        {\"key\": \"github_repository\", \"value\": \"acmecorp/inventory-service\"},\n        {\"key\": \"environment\", \"value\": \"production_us\"}\n    ],\n    scopes=[\"deploy:applications\", \"read:deployments\"],\n    audience=[\"deployment-api.acmecorp.com\"],\n    expiry=3600\n)\n\nresponse = sc.m2m_client.create_organization_client(\n    organization_id=\"SCALEKIT_ORGANIZATION_ID\",\n    m2m_client=m2m_client\n)\x82\xb5\x18\x02\x18T\x82\xd3\xe4\x93\x02\x39\"//api/v1/organizations/{organization_id}/clients:\x06\x63lient\x12\xa2\x07\n\x15GetOrganizationClient\x12\x31.scalekit.v1.clients.GetOrganizationClientRequest\x1a\x32.scalekit.v1.clients.GetOrganizationClientResponse\"\xa1\x06\x92\x41\xd4\x05\n\x08\x41PI Auth\x12\x1bGet organization API client\x1a>Retrieves details of a specific API client in an organization.J\xfd\x01\n\x03\x32\x30\x30\x12\xf5\x01\n\xba\x01Returns the complete API client configuration, including all current settings and a list of active secrets. Note that secret values are not included in the response for security reasons.\x12\x36\n4\x1a\x32.scalekit.v1.clients.GetOrganizationClientResponsej\xea\x02\n\rx-codeSamples\x12\xd8\x02\x32\xd5\x02\n\xd2\x02*\xcf\x02\n\x15\n\x05label\x12\x0c\x1a\nPython SDK\n\x10\n\x04lang\x12\x08\x1a\x06python\n\xa3\x02\n\x06source\x12\x98\x02\x1a\x95\x02# Get client ID from environment variables\norg_id = \'SCALEKIT_ORGANIZATION_ID\'\nclient_id = os.environ[\'M2M_CLIENT_ID\']\n\n# Fetch client details for the specified organization\nresponse = sc.m2m_client.get_organization_client(\n    organization_id=org_id,\n    client_id=client_id\n)\x82\xb5\x18\x02\x18T\x82\xd3\xe4\x93\x02=\x12;/api/v1/organizations/{organization_id}/clients/{client_id}\x12\xbf\x08\n\x1e\x43reateOrganizationClientSecret\x12:.scalekit.v1.clients.CreateOrganizationClientSecretRequest\x1a;.scalekit.v1.clients.CreateOrganizationClientSecretResponse\"\xa3\x07\x92\x41\xce\x06\n\x08\x41PI Auth\x12%Create organization API client secret\x1a\x64\x43reates a new secret for an organization API client. Returns the plain secret (available only once).J\xfe\x01\n\x03\x32\x30\x31\x12\xf6\x01\n\xb2\x01\x43lient secret created successfully. Returns the new secret ID and the plain secret value (only available at creation time). The secret can be used immediately for authentication.\x12?\n=\x1a;.scalekit.v1.clients.CreateOrganizationClientSecretResponsej\xb3\x03\n\rx-codeSamples\x12\xa1\x03\x32\x9e\x03\n\x9b\x03*\x98\x03\n\x15\n\x05label\x12\x0c\x1a\nPython SDK\n\x10\n\x04lang\x12\x08\x1a\x06python\n\xec\x02\n\x06source\x12\xe1\x02\x1a\xde\x02# Get client ID from environment variables\norg_id = \'SCALEKIT_ORGANIZATION_ID\'\nclient_id = os.environ[\'M2M_CLIENT_ID\']\n\n# Add a new secret to the specified client\nresponse = sc.m2m_client.add_organization_client_secret(\n    organization_id=org_id,\n    client_id=client_id\n)\n\n# Extract the secret ID from the response\nsecret_id = response[0].secret.id\x82\xb5\x18\x02\x18T\x82\xd3\xe4\x93\x02\x45\"C/api/v1/organizations/{organization_id}/clients/{client_id}/secrets\x12\xed\x06\n\x1e\x44\x65leteOrganizationClientSecret\x12:.scalekit.v1.clients.DeleteOrganizationClientSecretRequest\x1a\x16.google.protobuf.Empty\"\xf6\x05\x92\x41\x95\x05\n\x08\x41PI Auth\x12%Delete organization API client secret\x1a^Permanently deletes a secret from an organization API client. This operation cannot be undone.JD\n\x03\x32\x30\x30\x12=\n;Client secret successfully deleted and no longer accessiblej\xbb\x03\n\rx-codeSamples\x12\xa9\x03\x32\xa6\x03\n\xa3\x03*\xa0\x03\n\x15\n\x05label\x12\x0c\x1a\nPython SDK\n\x10\n\x04lang\x12\x08\x1a\x06python\n\xf4\x02\n\x06source\x12\xe9\x02\x1a\xe6\x02# Get client and secret IDs from environment variables\norg_id = \'<SCALEKIT_ORGANIZATION_ID>\'\nclient_id = os.environ[\'M2M_CLIENT_ID\']\nsecret_id = os.environ[\'M2M_SECRET_ID\']\n\n# Remove the specified secret from the client\nresponse = sc.m2m_client.remove_organization_client_secret(\n    organization_id=org_id,\n    client_id=client_id,\n    secret_id=secret_id\n)\x82\xb5\x18\x02\x18T\x82\xd3\xe4\x93\x02Q*O/api/v1/organizations/{organization_id}/clients/{client_id}/secrets/{secret_id}\x12\xd6\t\n\x18UpdateOrganizationClient\x12\x34.scalekit.v1.clients.UpdateOrganizationClientRequest\x1a\x35.scalekit.v1.clients.UpdateOrganizationClientResponse\"\xcc\x08\x92\x41\xf7\x07\n\x08\x41PI Auth\x12\x1eUpdate organization API client\x1aPUpdates an existing organization API client. Only specified fields are modified.J\xe4\x01\n\x03\x32\x30\x30\x12\xdc\x01\n\x9e\x01Returns the updated organization API client with all current details reflected in the response, including modified scopes, audience values, and custom claims.\x12\x39\n7\x1a\x35.scalekit.v1.clients.UpdateOrganizationClientResponsej\x91\x05\n\rx-codeSamples\x12\xff\x04\x32\xfc\x04\n\xf9\x04*\xf6\x04\n\x15\n\x05label\x12\x0c\x1a\nPython SDK\n\x10\n\x04lang\x12\x08\x1a\x06python\n\xca\x04\n\x06source\x12\xbf\x04\x1a\xbc\x04\x66rom scalekit.v1.clients.clients_pb2 import OrganizationClient\n\norg_id = \'<SCALEKIT_ORGANIZATION_ID>\'\nclient_id = os.environ[\'M2M_CLIENT_ID\']\n\nupdate_m2m_client = OrganizationClient(\n    description=\"Service account for GitHub Actions to deploy applications to production_eu\",\n    custom_claims=[\n        {\"key\": \"github_repository\", \"value\": \"acmecorp/inventory\"},\n        {\"key\": \"environment\", \"value\": \"production_eu\"}\n    ]\n)\n\nresponse = sc.m2m_client.update_organization_client(\n    organization_id=org_id,\n    client_id=client_id,\n    m2m_client=update_m2m_client\n)\x82\xb5\x18\x02\x18T\x82\xd3\xe4\x93\x02\x45\x32;/api/v1/organizations/{organization_id}/clients/{client_id}:\x06\x63lient\x12\x93\x07\n\x18\x44\x65leteOrganizationClient\x12\x34.scalekit.v1.clients.DeleteOrganizationClientRequest\x1a\x16.google.protobuf.Empty\"\xa8\x06\x92\x41\xdb\x05\n\x08\x41PI Auth\x12\x1e\x44\x65lete organization API client\x1a\xee\x01Permanently deletes an API client from an organization. This operation cannot be undone and will revoke all access for the client. All associated secrets will also be invalidated. Use this endpoint to remove unused or compromised clients.JN\n\x03\x32\x30\x30\x12G\nEOrganization API client successfully deleted and no longer accessiblej\xed\x02\n\rx-codeSamples\x12\xdb\x02\x32\xd8\x02\n\xd5\x02*\xd2\x02\n\x15\n\x05label\x12\x0c\x1a\nPython SDK\n\x10\n\x04lang\x12\x08\x1a\x06python\n\xa6\x02\n\x06source\x12\x9b\x02\x1a\x98\x02# Get client ID from environment variables\norg_id = \'<SCALEKIT_ORGANIZATION_ID>\'\nclient_id = os.environ[\'M2M_CLIENT_ID\']\n\n# Delete the specified client from the organization\nresponse = sc.m2m_client.delete_organization_client(\n    organization_id=org_id,\n    client_id=client_id\n)\x82\xb5\x18\x02\x18T\x82\xd3\xe4\x93\x02=*;/api/v1/organizations/{organization_id}/clients/{client_id}\x12\xa8\x08\n\x17ListOrganizationClients\x12\x33.scalekit.v1.clients.ListOrganizationClientsRequest\x1a\x34.scalekit.v1.clients.ListOrganizationClientsResponse\"\xa1\x07\x92\x41\xe0\x06\n\x08\x41PI Auth\x12\x1dList organization API clients\x1a\xb9\x01Retrieves a paginated list of API clients for a specific organization. Returns client details including metadata, scopes, and secret information (without exposing actual secret values).J\xb8\x01\n\x03\x32\x30\x30\x12\xb0\x01\ntList of organization API clients returned successfully. Each client includes its configuration details and metadata.\x12\x38\n6\x1a\x34.scalekit.v1.clients.ListOrganizationClientsResponsej\xbd\x03\n\rx-codeSamples\x12\xab\x03\x32\xa8\x03\n\xa5\x03*\xa2\x03\n\x15\n\x05label\x12\x0c\x1a\nPython SDK\n\x10\n\x04lang\x12\x08\x1a\x06python\n\xf6\x02\n\x06source\x12\xeb\x02\x1a\xe8\x02# List clients for a specific organization\norg_id = \'SCALEKIT_ORGANIZATION_ID\'\n\n# Retrieve all clients with default pagination\nresponse = sc.m2m_client.list_organization_clients(\n    organization_id=org_id,\n    page_size=30\n)\n\n# Access the clients list\nclients = response.clients\nfor client in clients:\n    print(f\"Client ID: {client.id}, Name: {client.name}\")\x82\xb5\x18\x02\x18T\x82\xd3\xe4\x93\x02\x31\x12//api/v1/organizations/{organization_id}/clients\x12\x95\x03\n\x0e\x43reateResource\x12*.scalekit.v1.clients.CreateResourceRequest\x1a+.scalekit.v1.clients.CreateResourceResponse\"\xa9\x02\x92\x41\xed\x01\n\x08\x41PI Auth\x12\x0f\x43reate Resource\x1aXCreates a new client resource. The response includes the resource ID and other metadata.Jv\n\x03\x32\x30\x31\x12o\n<Resource created successfully. Returns the created resource.\x12/\n-\x1a+.scalekit.v1.clients.CreateResourceResponse\x82\xb5\x18\x02\x18T\xfa\xd2\xe4\x93\x02\t\x12\x07PREVIEW\x82\xd3\xe4\x93\x02\x1d\"\x11/api/v1/resources:\x08resource\x12\xea\x02\n\x0bGetResource\x12\'.scalekit.v1.clients.GetResourceRequest\x1a(.scalekit.v1.clients.GetResourceResponse\"\x87\x02\x92\x41\xc7\x01\n\x08\x41PI Auth\x12\x0cGet Resource\x1a\x36Retrieves details of a specific client resource by ID.Ju\n\x03\x32\x30\x30\x12n\n>Resource details retrieved successfully. Returns the resource.\x12,\n*\x1a(.scalekit.v1.clients.GetResourceResponse\x82\xb5\x18\x02\x18T\xfa\xd2\xe4\x93\x02\t\x12\x07PREVIEW\x82\xd3\xe4\x93\x02!\x12\x1f/api/v1/resources/{resource_id}\x12\xd3\x02\n\rListResources\x12).scalekit.v1.clients.ListResourcesRequest\x1a*.scalekit.v1.clients.ListResourcesResponse\"\xea\x01\x92\x41\xb8\x01\n\x08\x41PI Auth\x12\x11List applications\x1a\x36Retrieves a paginated list of API client applications.Ja\n\x03\x32\x30\x30\x12Z\n(List of resources returned successfully.\x12.\n,\x1a*.scalekit.v1.clients.ListResourcesResponse\x82\xb5\x18\x02\x18T\xfa\xd2\xe4\x93\x02\t\x12\x07PREVIEW\x82\xd3\xe4\x93\x02\x13\x12\x11/api/v1/resources\x12\x93\x03\n\x0eUpdateResource\x12*.scalekit.v1.clients.UpdateResourceRequest\x1a+.scalekit.v1.clients.UpdateResourceResponse\"\xa7\x02\x92\x41\xdd\x01\n\x08\x41PI Auth\x12\x0fUpdate Resource\x1aHUpdates an existing client resource. Only specified fields are modified.Jv\n\x03\x32\x30\x30\x12o\n<Resource updated successfully. Returns the updated resource.\x12/\n-\x1a+.scalekit.v1.clients.UpdateResourceResponse\x82\xb5\x18\x02\x18T\xfa\xd2\xe4\x93\x02\t\x12\x07PREVIEW\x82\xd3\xe4\x93\x02+2\x1f/api/v1/resources/{resource_id}:\x08resource\x12\x93\x03\n\x0e\x44\x65leteResource\x12*.scalekit.v1.clients.DeleteResourceRequest\x1a\x16.google.protobuf.Empty\"\xbc\x02\x92\x41\xfc\x01\n\x08\x41PI Auth\x12\x0f\x44\x65lete Resource\x1a\x9d\x01Permanently deletes a client resource. This operation cannot be undone and will remove the resource along with all its associated clients and configurations.J?\n\x03\x32\x30\x30\x12\x38\n6Resource successfully deleted and no longer accessible\x82\xb5\x18\x02\x18T\xfa\xd2\xe4\x93\x02\t\x12\x07PREVIEW\x82\xd3\xe4\x93\x02!*\x1f/api/v1/resources/{resource_id}\x12\xb2\x03\n\x16\x44\x65leteResourceProvider\x12\x32.scalekit.v1.clients.DeleteResourceProviderRequest\x1a(.scalekit.v1.clients.GetResourceResponse\"\xb9\x02\x92\x41\xe9\x01\n\x08\x41PI Auth\x12\x1d\x44\x65lete Provider from resource\x1aGDelete Provider from resource to use scalekit full stack authenticationJu\n\x03\x32\x30\x30\x12n\n>Resource details retrieved successfully. Returns the resource.\x12,\n*\x1a(.scalekit.v1.clients.GetResourceResponse\x82\xb5\x18\x02\x18T\xfa\xd2\xe4\x93\x02\t\x12\x07PREVIEW\x82\xd3\xe4\x93\x02\x31\x1a//api/v1/resources/{resource_id}/provider:delete\x12\xf5\x03\n\x14\x43reateResourceClient\x12\x30.scalekit.v1.clients.CreateResourceClientRequest\x1a\x31.scalekit.v1.clients.CreateResourceClientResponse\"\xf7\x02\x92\x41\xa7\x02\n\x08\x41PI Auth\x12\x16\x43reate Resource Client\x1apCreates a new API client under the specified resource. Returns client details and the plain secret (shown once).J\x90\x01\n\x03\x32\x30\x31\x12\x88\x01\nOClient created successfully. Returns the client configuration and plain secret.\x12\x35\n3\x1a\x31.scalekit.v1.clients.CreateResourceClientResponse\x82\xb5\x18\x02\x18T\xfa\xd2\xe4\x93\x02\t\x12\x07PREVIEW\x82\xd3\xe4\x93\x02\x31\"\'/api/v1/resources/{resource_id}/clients:\x06\x63lient\x12\xce\x03\n\x11GetResourceClient\x12-.scalekit.v1.clients.GetResourceClientRequest\x1a..scalekit.v1.clients.GetResourceClientResponse\"\xd9\x02\x92\x41\x85\x02\n\x08\x41PI Auth\x12\x17Get Resource API Client\x1aJRetrieves details of a specific API client associated with an application.J\x93\x01\n\x03\x32\x30\x30\x12\x8b\x01\nUClient details retrieved successfully. Returns the resource and client configuration.\x12\x32\n0\x1a..scalekit.v1.clients.GetResourceClientResponse\x82\xb5\x18\x02\x18T\xfa\xd2\xe4\x93\x02\t\x12\x07PREVIEW\x82\xd3\xe4\x93\x02\x35\x12\x33/api/v1/resources/{resource_id}/clients/{client_id}\x12\x82\x04\n\x0eRegisterClient\x12*.scalekit.v1.clients.RegisterClientRequest\x1a+.scalekit.v1.clients.RegisterClientResponse\"\x96\x03\x92\x41\xc2\x02\n\x08\x41PI Auth\x12\x13Register API client\x1a\x84\x01Registers a new API client under an existing resource using dynamic client registration. Returns the created client and its secrets.J\x99\x01\n\x03\x32\x30\x31\x12\x91\x01\n^Client registered successfully. Returns client details and plain secret (available only once).\x12/\n-\x1a+.scalekit.v1.clients.RegisterClientResponse\x82\xb5\x18\x02\x18\x01\xfa\xd2\xe4\x93\x02\t\x12\x07PREVIEW\x82\xd3\xe4\x93\x02\x35\"+/api/v1/resources/{res_id}/clients:register:\x06\x63lient\x12\xb6\x05\n\x0b\x43reateScope\x12\'.scalekit.v1.clients.CreateScopeRequest\x1a(.scalekit.v1.clients.CreateScopeResponse\"\xd3\x04\x88\x02\x01\x92\x41\xeb\x03\x12\x19\x43reate scope (Deprecated)\x1a\xa1\x02\x44\x45PRECATED: Use permission management APIs instead. Creates a new OAuth scope for API authorization. Scopes define the level of access granted to API clients. Reserved OpenID Connect scopes (profile, email, address, phone) cannot be created as they are automatically managed by the system.J\xa9\x01\n\x03\x32\x30\x31\x12\xa1\x01\nqOAuth scope created successfully. Returns the newly created scope with its name, description, and enabled status.\x12,\n*\x1a(.scalekit.v1.clients.CreateScopeResponse\x82\xb5\x18\x02\x18P\xfa\xd2\xe4\x93\x02\t\x12\x07PREVIEW\x82\xd3\xe4\x93\x02\x46\"\x0e/api/v1/scopes:\x05scopeZ-\"$/api/v1/environments/{env_id}/scopes:\x05scope\x12\xe9\x03\n\nListScopes\x12&.scalekit.v1.clients.ListScopesRequest\x1a\'.scalekit.v1.clients.ListScopesResponse\"\x89\x03\x92\x41\xb2\x02\x12\x0bList scopes\x1a\x7fRetrieves all OAuth scopes configured for the environment. Returns both custom scopes and system-managed OpenID Connect scopes.J\xa1\x01\n\x03\x32\x30\x30\x12\x99\x01\njList of OAuth scopes returned successfully. Each scope includes its name, description, and enabled status.\x12+\n)\x1a\'.scalekit.v1.clients.ListScopesResponse\x82\xb5\x18\x02\x18p\xfa\xd2\xe4\x93\x02\t\x12\x07PREVIEW\x82\xd3\xe4\x93\x02\x38\x12\x0e/api/v1/scopesZ&\x12$/api/v1/environments/{env_id}/scopes\x12\xaf\x04\n\x0bUpdateScope\x12\'.scalekit.v1.clients.UpdateScopeRequest\x1a(.scalekit.v1.clients.UpdateScopeResponse\"\xcc\x03\x88\x02\x01\x92\x41\x8e\x03\x12\x19Update scope (Deprecated)\x1a\xe0\x01\x44\x45PRECATED:  Use permission management APIs instead. Updates an existing OAuth scope\'s description and enabled status. Reserved OpenID Connect scopes (profile, email, address, phone) cannot be modified through this endpoint.J\x8d\x01\n\x03\x32\x30\x30\x12\x85\x01\nUOAuth scope updated successfully. Returns the updated scope with all current details.\x12,\n*\x1a(.scalekit.v1.clients.UpdateScopeResponse\x82\xb5\x18\x02\x18P\xfa\xd2\xe4\x93\x02\t\x12\x07PREVIEW\x82\xd3\xe4\x93\x02\x1c\x32\x13/api/v1/scopes/{id}:\x05scope\x12\xe0\x03\n\x0b\x44\x65leteScope\x12\'.scalekit.v1.clients.DeleteScopeRequest\x1a\x16.google.protobuf.Empty\"\x8f\x03\x88\x02\x01\x92\x41\xd8\x02\x12\x19\x44\x65lete scope (Deprecated)\x1a\xf6\x01\x44\x45PRECATED: Use permission management APIs instead. Permanently deletes an OAuth scope from the environment. This operation cannot be undone. Reserved OpenID Connect scopes (profile, email, address, phone) cannot be deleted through this endpoint.JB\n\x03\x32\x30\x30\x12;\n9OAuth scope successfully deleted and no longer accessible\x82\xb5\x18\x02\x18P\xfa\xd2\xe4\x93\x02\t\x12\x07PREVIEW\x82\xd3\xe4\x93\x02\x15*\x13/api/v1/scopes/{id}\x12\x97\x01\n\x11GetConsentDetails\x12\x16.google.protobuf.Empty\x1a..scalekit.v1.clients.GetConsentDetailsResponse\":\x82\xb5\x18\x02\x18\x01\xfa\xd2\xe4\x93\x02\t\x12\x07PREVIEW\x82\xd3\xe4\x93\x02\x1f\x12\x1d/api/v1/oauth/consent/details\x1a\xb8\x03\x92\x41\xb4\x03\n\x08\x41PI Auth\x12\xfd\x02\x45ndpoints for managing API client applications. API clients enable secure, automated interactions between software systems without human intervention. Each client is uniquely identified by a `client_id` and can be configured with authentication settings, redirect URIs, and security parameters. Use these endpoints to create, manage, and configure API clients for your API clients.\x1a(\x12&https://docs.scalekit.com/m2m/overviewB3Z1github.com/scalekit-inc/scalekit/pkg/grpc/clientsb\x06proto3')

_globals = globals()
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'scalekit.v1.clients.clients_pb2', _globals)
if not _descriptor._USE_C_DESCRIPTORS:
  _globals['DESCRIPTOR']._loaded_options = None
  _globals['DESCRIPTOR']._serialized_options = b'Z1github.com/scalekit-inc/scalekit/pkg/grpc/clients'
  _globals['_CREATERESOURCEREQUEST'].fields_by_name['resource']._loaded_options = None
  _globals['_CREATERESOURCEREQUEST'].fields_by_name['resource']._serialized_options = b'\222A\'2%Details of the resource to be created\272H\003\310\001\001'
  _globals['_CREATERESOURCE'].fields_by_name['resource_type']._loaded_options = None
  _globals['_CREATERESOURCE'].fields_by_name['resource_type']._serialized_options = b'\222A+2\"Type of the resource to be createdJ\005\"WEB\"\272H\003\310\001\001'
  _globals['_CREATERESOURCE'].fields_by_name['name']._loaded_options = None
  _globals['_CREATERESOURCE'].fields_by_name['name']._serialized_options = b'\222A)2\024Name of the resourceJ\021\"My API Resource\"\272H\010r\003\030\200\001\310\001\001'
  _globals['_CREATERESOURCE'].fields_by_name['description']._loaded_options = None
  _globals['_CREATERESOURCE'].fields_by_name['description']._serialized_options = b'\222AY2\033Description of the resourceJ:\"Resource for accessing your organization\'s API resources\"\272H\005r\003\030\200\004'
  _globals['_CREATERESOURCE'].fields_by_name['resource_uri']._loaded_options = None
  _globals['_CREATERESOURCE'].fields_by_name['resource_uri']._serialized_options = b'\222A\203\0012aResource identifier for the resource. This could be the URL used to access the resource resourcesJ\036\"https://resource.example.com\"'
  _globals['_CREATERESOURCE'].fields_by_name['access_token_expiry']._loaded_options = None
  _globals['_CREATERESOURCE'].fields_by_name['access_token_expiry']._serialized_options = b'\222A42,Expiry time in seconds for the access token.J\0043600'
  _globals['_CREATERESOURCE'].fields_by_name['refresh_token_expiry']._loaded_options = None
  _globals['_CREATERESOURCE'].fields_by_name['refresh_token_expiry']._serialized_options = b'\222A62-Expiry time in seconds for the refresh token.J\00586400'
  _globals['_CREATERESOURCE'].fields_by_name['disable_dynamic_client_registration']._loaded_options = None
  _globals['_CREATERESOURCE'].fields_by_name['disable_dynamic_client_registration']._serialized_options = b'\222AM2EIndicates if dynamic client registration is allowed for this resourceJ\004true'
  _globals['_CREATERESOURCE'].fields_by_name['logo_uri']._loaded_options = None
  _globals['_CREATERESOURCE'].fields_by_name['logo_uri']._serialized_options = b'\222A;2\031Logo URI for the resourceJ\036\"https://example.com/logo.png\"\272H\005r\003\030\200\004'
  _globals['_CREATERESOURCE'].fields_by_name['provider']._loaded_options = None
  _globals['_CREATERESOURCE'].fields_by_name['provider']._serialized_options = b'\222A12$Connection provider for the resourceJ\t\"DESCOPE\"\272H\005r\003\030\200\004'
  _globals['_CREATERESOURCE'].fields_by_name['resource_id']._loaded_options = None
  _globals['_CREATERESOURCE'].fields_by_name['resource_id']._serialized_options = b'\222A\203\0012aResource identifier for the resource. This could be the URL used to access the resource resourcesJ\036\"https://resource.example.com\"'
  _globals['_CREATERESOURCE'].fields_by_name['scopes']._loaded_options = None
  _globals['_CREATERESOURCE'].fields_by_name['scopes']._serialized_options = b'\222AN21List of OAuth scopes associated with the resourceJ\031[\"usr:read\", \"usr:write\"]'
  _globals['_RESOURCECLIENT'].fields_by_name['name']._loaded_options = None
  _globals['_RESOURCECLIENT'].fields_by_name['name']._serialized_options = b'\222A%2\022Name of the clientJ\017\"My API Client\"\272H\005r\003\030\200\001'
  _globals['_RESOURCECLIENT'].fields_by_name['description']._loaded_options = None
  _globals['_RESOURCECLIENT'].fields_by_name['description']._serialized_options = b'\222AU2\031Description of the clientJ8\"Client for accessing your organization\'s API resources\"\272H\005r\003\030\200\004'
  _globals['_RESOURCECLIENT'].fields_by_name['scopes']._loaded_options = None
  _globals['_RESOURCECLIENT'].fields_by_name['scopes']._serialized_options = b'\222A\0352\033OAuth scopes for the client'
  _globals['_RESOURCECLIENT'].fields_by_name['audience']._loaded_options = None
  _globals['_RESOURCECLIENT'].fields_by_name['audience']._serialized_options = b'\222AC2$OAuth audience values for the clientJ\033[\"https://api.example.com\"]'
  _globals['_RESOURCECLIENT'].fields_by_name['custom_claims']._loaded_options = None
  _globals['_RESOURCECLIENT'].fields_by_name['custom_claims']._serialized_options = b'\222A|2zCustom claims to be included in access tokens. Please keep this to the essentials as this increases the size of the token.'
  _globals['_RESOURCECLIENT'].fields_by_name['expiry']._loaded_options = None
  _globals['_RESOURCECLIENT'].fields_by_name['expiry']._serialized_options = b'\222AD2<Expiry time in seconds for the token generated by the clientJ\0043600'
  _globals['_RESOURCECLIENT'].fields_by_name['redirect_uri']._loaded_options = None
  _globals['_RESOURCECLIENT'].fields_by_name['redirect_uri']._serialized_options = b'\222A?2\033Redirect URI for the clientJ [\"https://example.com/callback\"]'
  _globals['_CREATERESOURCERESPONSE'].fields_by_name['resource']._loaded_options = None
  _globals['_CREATERESOURCERESPONSE'].fields_by_name['resource']._serialized_options = b'\222A!2\037Details of the created resource'
  _globals['_GETRESOURCEREQUEST'].fields_by_name['resource_id']._loaded_options = None
  _globals['_GETRESOURCEREQUEST'].fields_by_name['resource_id']._serialized_options = b'\222AO24Unique identifier of the client resource to retrieveJ\027\"app_69388798466720005\"\272H\006r\004\020\001\030 '
  _globals['_GETRESOURCERESPONSE'].fields_by_name['resource']._loaded_options = None
  _globals['_GETRESOURCERESPONSE'].fields_by_name['resource']._serialized_options = b'\222A#2!Details of the requested resource'
  _globals['_DELETERESOURCEPROVIDERREQUEST'].fields_by_name['resource_id']._loaded_options = None
  _globals['_DELETERESOURCEPROVIDERREQUEST'].fields_by_name['resource_id']._serialized_options = b'\222AO24Unique identifier of the client resource to retrieveJ\027\"app_69388798466720005\"\272H\006r\004\020\001\030 '
  _globals['_DELETERESOURCEREQUEST'].fields_by_name['resource_id']._loaded_options = None
  _globals['_DELETERESOURCEREQUEST'].fields_by_name['resource_id']._serialized_options = b'\222AM22Unique identifier of the client resource to deleteJ\027\"app_69388798466720005\"\272H\006r\004\020\001\030 '
  _globals['_APPLICATION'].fields_by_name['id']._loaded_options = None
  _globals['_APPLICATION'].fields_by_name['id']._serialized_options = b'\222As2XUnique identifier for the resource. Automatically generated upon creation and immutable.J\027\"app_69388798466720005\"'
  _globals['_APPLICATION'].fields_by_name['name']._loaded_options = None
  _globals['_APPLICATION'].fields_by_name['name']._serialized_options = b'\222A)2\024Name of the resourceJ\021\"My API Resource\"\272H\005r\003\030\200\001'
  _globals['_APPLICATION'].fields_by_name['resource_id']._loaded_options = None
  _globals['_APPLICATION'].fields_by_name['resource_id']._serialized_options = b'\222A\204\0012bResource identifier for the resource. This could  be the URL used to access the resource resourcesJ\036\"https://resource.example.com\"\272H\007r\005\020\001\030\200\004'
  _globals['_APPLICATION'].fields_by_name['description']._loaded_options = None
  _globals['_APPLICATION'].fields_by_name['description']._serialized_options = b'\222AY2\033Description of the resourceJ:\"Resource for accessing your organization\'s API resources\"\272H\005r\003\030\200\004'
  _globals['_APPLICATION'].fields_by_name['application_type']._loaded_options = None
  _globals['_APPLICATION'].fields_by_name['application_type']._serialized_options = b'\222A\0352\024Type of the resourceJ\005\"WEB\"\272H\003\310\001\001'
  _globals['_APPLICATION'].fields_by_name['disable_dynamic_client_registration']._loaded_options = None
  _globals['_APPLICATION'].fields_by_name['disable_dynamic_client_registration']._serialized_options = b'\222AM2EIndicates if dynamic client registration is allowed for this resourceJ\004true\272H\003\310\001\001'
  _globals['_APPLICATION'].fields_by_name['logo_uri']._loaded_options = None
  _globals['_APPLICATION'].fields_by_name['logo_uri']._serialized_options = b'\222A;2\031Logo URI for the resourceJ\036\"https://example.com/logo.png\"\272H\005r\003\030\200\004'
  _globals['_APPLICATION'].fields_by_name['access_token_expiry']._loaded_options = None
  _globals['_APPLICATION'].fields_by_name['access_token_expiry']._serialized_options = b'\222A42,Expiry time in seconds for the access token.J\0043600'
  _globals['_APPLICATION'].fields_by_name['refresh_token_expiry']._loaded_options = None
  _globals['_APPLICATION'].fields_by_name['refresh_token_expiry']._serialized_options = b'\222A62-Expiry time in seconds for the refresh token.J\00586400'
  _globals['_APPLICATION'].fields_by_name['create_time']._loaded_options = None
  _globals['_APPLICATION'].fields_by_name['create_time']._serialized_options = b'\222AE2\'Timestamp when the resource was createdJ\032\"2024-01-05T14:48:00.000Z\"'
  _globals['_APPLICATION'].fields_by_name['update_time']._loaded_options = None
  _globals['_APPLICATION'].fields_by_name['update_time']._serialized_options = b'\222AJ2,Timestamp when the resource was last updatedJ\032\"2024-01-05T14:48:00.000Z\"'
  _globals['_APPLICATION'].fields_by_name['provider']._loaded_options = None
  _globals['_APPLICATION'].fields_by_name['provider']._serialized_options = b'\222A12$Connection provider for the resourceJ\t\"DESCOPE\"\272H\005r\003\030\200\004'
  _globals['_RESOURCE'].fields_by_name['id']._loaded_options = None
  _globals['_RESOURCE'].fields_by_name['id']._serialized_options = b'\222As2XUnique identifier for the resource. Automatically generated upon creation and immutable.J\027\"app_69388798466720005\"'
  _globals['_RESOURCE'].fields_by_name['name']._loaded_options = None
  _globals['_RESOURCE'].fields_by_name['name']._serialized_options = b'\222A)2\024Name of the resourceJ\021\"My API Resource\"\272H\005r\003\030\200\001'
  _globals['_RESOURCE'].fields_by_name['resource_uri']._loaded_options = None
  _globals['_RESOURCE'].fields_by_name['resource_uri']._serialized_options = b'\222A\204\0012bResource identifier for the resource. This could  be the URL used to access the resource resourcesJ\036\"https://resource.example.com\"\272H\007r\005\020\001\030\200\004'
  _globals['_RESOURCE'].fields_by_name['description']._loaded_options = None
  _globals['_RESOURCE'].fields_by_name['description']._serialized_options = b'\222AY2\033Description of the resourceJ:\"Resource for accessing your organization\'s API resources\"\272H\005r\003\030\200\004'
  _globals['_RESOURCE'].fields_by_name['resource_type']._loaded_options = None
  _globals['_RESOURCE'].fields_by_name['resource_type']._serialized_options = b'\222A\0352\024Type of the resourceJ\005\"WEB\"\272H\003\310\001\001'
  _globals['_RESOURCE'].fields_by_name['disable_dynamic_client_registration']._loaded_options = None
  _globals['_RESOURCE'].fields_by_name['disable_dynamic_client_registration']._serialized_options = b'\222AM2EIndicates if dynamic client registration is allowed for this resourceJ\004true\272H\003\310\001\001'
  _globals['_RESOURCE'].fields_by_name['logo_uri']._loaded_options = None
  _globals['_RESOURCE'].fields_by_name['logo_uri']._serialized_options = b'\222A;2\031Logo URI for the resourceJ\036\"https://example.com/logo.png\"\272H\005r\003\030\200\004'
  _globals['_RESOURCE'].fields_by_name['access_token_expiry']._loaded_options = None
  _globals['_RESOURCE'].fields_by_name['access_token_expiry']._serialized_options = b'\222A42,Expiry time in seconds for the access token.J\0043600'
  _globals['_RESOURCE'].fields_by_name['refresh_token_expiry']._loaded_options = None
  _globals['_RESOURCE'].fields_by_name['refresh_token_expiry']._serialized_options = b'\222A62-Expiry time in seconds for the refresh token.J\00586400'
  _globals['_RESOURCE'].fields_by_name['create_time']._loaded_options = None
  _globals['_RESOURCE'].fields_by_name['create_time']._serialized_options = b'\222AE2\'Timestamp when the resource was createdJ\032\"2024-01-05T14:48:00.000Z\"'
  _globals['_RESOURCE'].fields_by_name['update_time']._loaded_options = None
  _globals['_RESOURCE'].fields_by_name['update_time']._serialized_options = b'\222AJ2,Timestamp when the resource was last updatedJ\032\"2024-01-05T14:48:00.000Z\"'
  _globals['_RESOURCE'].fields_by_name['provider']._loaded_options = None
  _globals['_RESOURCE'].fields_by_name['provider']._serialized_options = b'\222A12$Connection provider for the resourceJ\t\"DESCOPE\"\272H\005r\003\030\200\004'
  _globals['_RESOURCE'].fields_by_name['protected_metadata']._loaded_options = None
  _globals['_RESOURCE'].fields_by_name['protected_metadata']._serialized_options = b'\222A\376\0022\202\001Protected metadata for the resource. This field is used to store additional information that should not be exposed in public APIs.J\366\001{\"resource\": \"https://example.com/mcp\",\"authorization_servers\": [\"https://example.scalekit.com/resources/res_123123123\"],\"bearer_methods_supported\": [\"header\"],\"resource_documentation\": \"https://example.com/docs\",\"scopes_supported\": [\"usr:read\"]}'
  _globals['_RESOURCE'].fields_by_name['protected_metadata_uri']._loaded_options = None
  _globals['_RESOURCE'].fields_by_name['protected_metadata_uri']._serialized_options = b'\222Aw25URI to access the protected metadata for the resourceJ>\"https://example.com/.well-known/oauth-protected-resource/mcp\"'
  _globals['_RESOURCE'].fields_by_name['resource_id']._loaded_options = None
  _globals['_RESOURCE'].fields_by_name['resource_id']._serialized_options = b'\222A\204\0012bResource identifier for the resource. This could  be the URL used to access the resource resourcesJ\036\"https://resource.example.com\"\272H\007r\005\020\001\030\200\004'
  _globals['_RESOURCE'].fields_by_name['scopes']._loaded_options = None
  _globals['_RESOURCE'].fields_by_name['scopes']._serialized_options = b'\222A\302\0012OList of OAuth scopes associated with the resource with enabled or disabled flagJo[{\"id\": \"perm_\", \"name\": \"usr:read\", \"description\": \"Reading basic information of the users\", \"enabled\": true}]'
  _globals['_REGISTERCLIENTREQUEST'].fields_by_name['res_id']._loaded_options = None
  _globals['_REGISTERCLIENTREQUEST'].fields_by_name['res_id']._serialized_options = b'\222AC2(Unique identifier of the client resourceJ\027\"app_69388798466720005\"\272H\tr\004\020\001\030 \310\001\001'
  _globals['_REGISTERCLIENTREQUEST'].fields_by_name['client']._loaded_options = None
  _globals['_REGISTERCLIENTREQUEST'].fields_by_name['client']._serialized_options = b'\222A(2&Details of the client to be registered\272H\003\310\001\001'
  _globals['_REGISTERCLIENT'].fields_by_name['client_name']._loaded_options = None
  _globals['_REGISTERCLIENT'].fields_by_name['client_name']._serialized_options = b'\222A%2\022Name of the clientJ\017\"My API Client\"\272H\005r\003\030\200\001'
  _globals['_REGISTERCLIENT'].fields_by_name['description']._loaded_options = None
  _globals['_REGISTERCLIENT'].fields_by_name['description']._serialized_options = b'\222AU2\031Description of the clientJ8\"Client for accessing your organization\'s API resources\"\272H\005r\003\030\200\004'
  _globals['_REGISTERCLIENT'].fields_by_name['redirect_uris']._loaded_options = None
  _globals['_REGISTERCLIENT'].fields_by_name['redirect_uris']._serialized_options = b'\222A?2\033Redirect URI for the clientJ [\"https://example.com/callback\"]'
  _globals['_REGISTERCLIENT'].fields_by_name['scope']._loaded_options = None
  _globals['_REGISTERCLIENT'].fields_by_name['scope']._serialized_options = b'\222A@2\033OAuth scopes for the clientJ![\"read:users\", \"write:resources\"]'
  _globals['_REGISTERCLIENT'].fields_by_name['client_uri']._loaded_options = None
  _globals['_REGISTERCLIENT'].fields_by_name['client_uri']._serialized_options = b'\222A22\031Client URI for the clientJ\025\"https://example.com\"'
  _globals['_REGISTERCLIENT'].fields_by_name['logo_uri']._loaded_options = None
  _globals['_REGISTERCLIENT'].fields_by_name['logo_uri']._serialized_options = b'\222A92\027Logo URI for the clientJ\036\"https://example.com/logo.png\"'
  _globals['_REGISTERCLIENT'].fields_by_name['tos_uri']._loaded_options = None
  _globals['_REGISTERCLIENT'].fields_by_name['tos_uri']._serialized_options = b'\222A@2#Terms of Service URI for the clientJ\031\"https://example.com/tos\"'
  _globals['_REGISTERCLIENT'].fields_by_name['policy_uri']._loaded_options = None
  _globals['_REGISTERCLIENT'].fields_by_name['policy_uri']._serialized_options = b'\222A92\031Policy URI for the clientJ\034\"https://example.com/policy\"'
  _globals['_REGISTERCLIENTRESPONSE'].fields_by_name['client_id']._loaded_options = None
  _globals['_REGISTERCLIENTRESPONSE'].fields_by_name['client_id']._serialized_options = b'\222A\332\0012\274\001The unique identifier for this M2M client. This ID is used to identify the client in API requests and logs. It is automatically generated when the client is created and cannot be modified.J\031\"m2morg_1231234233424344\"'
  _globals['_REGISTERCLIENTRESPONSE'].fields_by_name['secrets']._loaded_options = None
  _globals['_REGISTERCLIENTRESPONSE'].fields_by_name['secrets']._serialized_options = b'\222A\361\0012\356\001List of client secrets associated with this client. Each secret can be used for authentication, but only the most recently created secret is typically active. Secrets are stored securely and their values are never returned after creation.'
  _globals['_REGISTERCLIENTRESPONSE'].fields_by_name['name']._loaded_options = None
  _globals['_REGISTERCLIENTRESPONSE'].fields_by_name['name']._serialized_options = b'\222A\211\0012bThe display name of the M2M client. This name helps identify the client in the dashboard and logs.J#\"GitHub Actions Deployment Service\"'
  _globals['_REGISTERCLIENTRESPONSE'].fields_by_name['description']._loaded_options = None
  _globals['_REGISTERCLIENTRESPONSE'].fields_by_name['description']._serialized_options = b'\222A\263\0012{A detailed description of the client\'s purpose and usage. This helps administrators understand what the client is used for.J4\"Service account for automated deployment processes\"'
  _globals['_REGISTERCLIENTRESPONSE'].fields_by_name['create_time']._loaded_options = None
  _globals['_REGISTERCLIENTRESPONSE'].fields_by_name['create_time']._serialized_options = b'\222A\223\0012uThe timestamp when this M2M client was created. This field is automatically set by the server and cannot be modified.J\032\"2024-01-05T14:48:00.000Z\"'
  _globals['_REGISTERCLIENTRESPONSE'].fields_by_name['update_time']._loaded_options = None
  _globals['_REGISTERCLIENTRESPONSE'].fields_by_name['update_time']._serialized_options = b'\222A\262\0012\223\001The timestamp when this M2M client was last updated. This field is automatically updated by the server whenever the client\'s configuration changes.J\032\"2024-01-05T14:48:00.000Z\"'
  _globals['_REGISTERCLIENTRESPONSE'].fields_by_name['scopes']._loaded_options = None
  _globals['_REGISTERCLIENTRESPONSE'].fields_by_name['scopes']._serialized_options = b'\222A\241\0012uThe OAuth 2.0 scopes granted to this client. These scopes determine what resources and actions the client can access.J([\"deploy:resources\", \"read:deployments\"]'
  _globals['_REGISTERCLIENTRESPONSE'].fields_by_name['audience']._loaded_options = None
  _globals['_REGISTERCLIENTRESPONSE'].fields_by_name['audience']._serialized_options = b'\222A\246\0012\206\001The intended recipients of access tokens issued to this client. Each audience value should be a URI that identifies an API or service.J\033[\"https://api.example.com\"]'
  _globals['_REGISTERCLIENTRESPONSE'].fields_by_name['custom_claims']._loaded_options = None
  _globals['_REGISTERCLIENTRESPONSE'].fields_by_name['custom_claims']._serialized_options = b'\222A\240\0012\235\001Additional claims included in access tokens issued to this client. These claims provide context about the client and can be used for authorization decisions.'
  _globals['_REGISTERCLIENTRESPONSE'].fields_by_name['expiry']._loaded_options = None
  _globals['_REGISTERCLIENTRESPONSE'].fields_by_name['expiry']._serialized_options = b'\222A\225\0012\214\001The lifetime of access tokens issued to this client, in seconds. This determines how long a token remains valid before it must be refreshed.J\0043600'
  _globals['_REGISTERCLIENTRESPONSE'].fields_by_name['resource_id']._loaded_options = None
  _globals['_REGISTERCLIENTRESPONSE'].fields_by_name['resource_id']._serialized_options = b'\222A\236\0012\203\001The ID of the resource associated with this M2M client. This field is used to link the client to a specific resource in the system.J\026\"app_1231234233424344\"'
  _globals['_REGISTERCLIENTRESPONSE'].fields_by_name['redirect_uris']._loaded_options = None
  _globals['_REGISTERCLIENTRESPONSE'].fields_by_name['redirect_uris']._serialized_options = b'\222A\247\0012\202\001The redirect URI for this M2M client. This URI is used in the OAuth 2.0 authorization flow to redirect users after authentication.J [\"https://example.com/callback\"]'
  _globals['_LISTRESOURCESREQUEST'].fields_by_name['resource_type']._loaded_options = None
  _globals['_LISTRESOURCESREQUEST'].fields_by_name['resource_type']._serialized_options = b'\222A!2\030Filter resources by typeJ\005\"WEB\"\272H\003\310\001\001'
  _globals['_LISTRESOURCESREQUEST'].fields_by_name['page_token']._loaded_options = None
  _globals['_LISTRESOURCESREQUEST'].fields_by_name['page_token']._serialized_options = b'\222A;2\"Token for the next page of resultsJ\025\"next_page_token_123\"'
  _globals['_LISTRESOURCESREQUEST'].fields_by_name['page_size']._loaded_options = None
  _globals['_LISTRESOURCESREQUEST'].fields_by_name['page_size']._serialized_options = b'\222A,2&Number of resources to return per pageJ\00220\272H\004*\002\030\036'
  _globals['_LISTRESOURCESRESPONSE'].fields_by_name['total_size']._loaded_options = None
  _globals['_LISTRESOURCESRESPONSE'].fields_by_name['total_size']._serialized_options = b'\222A%2#Total number of resources available'
  _globals['_LISTRESOURCESRESPONSE'].fields_by_name['next_page_token']._loaded_options = None
  _globals['_LISTRESOURCESRESPONSE'].fields_by_name['next_page_token']._serialized_options = b'\222A$2\"Token for the next page of results'
  _globals['_LISTRESOURCESRESPONSE'].fields_by_name['resources']._loaded_options = None
  _globals['_LISTRESOURCESRESPONSE'].fields_by_name['resources']._serialized_options = b'\222A\0232\021List of resources'
  _globals['_UPDATERESOURCEREQUEST'].fields_by_name['resource_id']._loaded_options = None
  _globals['_UPDATERESOURCEREQUEST'].fields_by_name['resource_id']._serialized_options = b'\222AF2+Unique identifier of the resource to updateJ\027\"app_69388798466720005\"\272H\006r\004\020\001\030 '
  _globals['_UPDATERESOURCEREQUEST'].fields_by_name['resource']._loaded_options = None
  _globals['_UPDATERESOURCEREQUEST'].fields_by_name['resource']._serialized_options = b'\222A\0322\030Updated resource details\272H\003\310\001\001'
  _globals['_UPDATERESOURCE'].fields_by_name['name']._loaded_options = None
  _globals['_UPDATERESOURCE'].fields_by_name['name']._serialized_options = b'\222A12\024Name of the resourceJ\031\"My Updated API Resource\"\272H\005r\003\030\200\001'
  _globals['_UPDATERESOURCE'].fields_by_name['description']._loaded_options = None
  _globals['_UPDATERESOURCE'].fields_by_name['description']._serialized_options = b'\222Aa2\033Description of the resourceJB\"Updated resource for accessing your organization\'s API resources\"\272H\005r\003\030\200\004'
  _globals['_UPDATERESOURCE'].fields_by_name['resource_uri']._loaded_options = None
  _globals['_UPDATERESOURCE'].fields_by_name['resource_uri']._serialized_options = b'\222A\203\0012aResource identifier for the resource. This could be the URL used to access the resource resourcesJ\036\"https://resource.example.com\"'
  _globals['_UPDATERESOURCE'].fields_by_name['access_token_expiry']._loaded_options = None
  _globals['_UPDATERESOURCE'].fields_by_name['access_token_expiry']._serialized_options = b'\222A42,Expiry time in seconds for the access token.J\0043600'
  _globals['_UPDATERESOURCE'].fields_by_name['refresh_token_expiry']._loaded_options = None
  _globals['_UPDATERESOURCE'].fields_by_name['refresh_token_expiry']._serialized_options = b'\222A62-Expiry time in seconds for the refresh token.J\00586400'
  _globals['_UPDATERESOURCE'].fields_by_name['disable_dynamic_client_registration']._loaded_options = None
  _globals['_UPDATERESOURCE'].fields_by_name['disable_dynamic_client_registration']._serialized_options = b'\222AM2EIndicates if dynamic client registration is allowed for this resourceJ\004true'
  _globals['_UPDATERESOURCE'].fields_by_name['logo_uri']._loaded_options = None
  _globals['_UPDATERESOURCE'].fields_by_name['logo_uri']._serialized_options = b'\222A;2\031Logo URI for the resourceJ\036\"https://example.com/logo.png\"\272H\005r\003\030\200\004'
  _globals['_UPDATERESOURCE'].fields_by_name['provider']._loaded_options = None
  _globals['_UPDATERESOURCE'].fields_by_name['provider']._serialized_options = b'\222A12$Connection provider for the resourceJ\t\"DESCOPE\"\272H\005r\003\030\200\004'
  _globals['_UPDATERESOURCE'].fields_by_name['resource_id']._loaded_options = None
  _globals['_UPDATERESOURCE'].fields_by_name['resource_id']._serialized_options = b'\222A\203\0012aResource identifier for the resource. This could be the URL used to access the resource resourcesJ\036\"https://resource.example.com\"'
  _globals['_UPDATERESOURCE'].fields_by_name['scopes']._loaded_options = None
  _globals['_UPDATERESOURCE'].fields_by_name['scopes']._serialized_options = b'\222AN21List of OAuth scopes associated with the resourceJ\031[\"usr:read\", \"usr:write\"]'
  _globals['_UPDATERESOURCERESPONSE'].fields_by_name['resource']._loaded_options = None
  _globals['_UPDATERESOURCERESPONSE'].fields_by_name['resource']._serialized_options = b'\222A!2\037Details of the updated resource'
  _globals['_CREATERESOURCECLIENTREQUEST'].fields_by_name['resource_id']._loaded_options = None
  _globals['_CREATERESOURCECLIENTREQUEST'].fields_by_name['resource_id']._serialized_options = b'\222AC2(Unique identifier of the client resourceJ\027\"app_69388798466720005\"\272H\006r\004\020\001\030 '
  _globals['_CREATERESOURCECLIENTREQUEST'].fields_by_name['client']._loaded_options = None
  _globals['_CREATERESOURCECLIENTREQUEST'].fields_by_name['client']._serialized_options = b'\222A%2#Details of the client to be created\272H\003\310\001\001'
  _globals['_CREATERESOURCECLIENTRESPONSE'].fields_by_name['client']._loaded_options = None
  _globals['_CREATERESOURCECLIENTRESPONSE'].fields_by_name['client']._serialized_options = b'\222A\0372\035Details of the created client'
  _globals['_CREATERESOURCECLIENTRESPONSE'].fields_by_name['plain_secret']._loaded_options = None
  _globals['_CREATERESOURCECLIENTRESPONSE'].fields_by_name['plain_secret']._serialized_options = b'\222AV24Client secret value (only returned once at creation)J\036\"CdExsdErfccxDDssddfffgfeFHH1\"'
  _globals['_GETRESOURCECLIENTREQUEST'].fields_by_name['resource_id']._loaded_options = None
  _globals['_GETRESOURCECLIENTREQUEST'].fields_by_name['resource_id']._serialized_options = b'\222AH24Unique identifier of the client resource to retrieveJ\020\"skc_1234567890\"\272H\006r\004\020\001\030 '
  _globals['_GETRESOURCECLIENTREQUEST'].fields_by_name['client_id']._loaded_options = None
  _globals['_GETRESOURCECLIENTREQUEST'].fields_by_name['client_id']._serialized_options = b'\222AY2<Unique identifier of the client associated with the resourceJ\031\"m2morg_1231234233424344\"\272H\006r\004\020\001\030 '
  _globals['_GETRESOURCECLIENTRESPONSE'].fields_by_name['resource']._loaded_options = None
  _globals['_GETRESOURCECLIENTRESPONSE'].fields_by_name['resource']._serialized_options = b'\222A#2!Details of the requested resource'
  _globals['_GETRESOURCECLIENTRESPONSE'].fields_by_name['client']._loaded_options = None
  _globals['_GETRESOURCECLIENTRESPONSE'].fields_by_name['client']._serialized_options = b'\222A!2\037Details of the requested client'
  _globals['_CREATEORGANIZATIONCLIENTREQUEST'].fields_by_name['organization_id']._loaded_options = None
  _globals['_CREATEORGANIZATIONCLIENTREQUEST'].fields_by_name['organization_id']._serialized_options = b'\222A?2%Unique identifier of the organizationJ\026\"org_1231234233424344\"\272H\014r\n\020\001\030 :\004org_'
  _globals['_CREATEORGANIZATIONCLIENTREQUEST'].fields_by_name['client']._loaded_options = None
  _globals['_CREATEORGANIZATIONCLIENTREQUEST'].fields_by_name['client']._serialized_options = b'\222A%2#Details of the client to be created\272H\003\310\001\001'
  _globals['_ORGANIZATIONCLIENT'].fields_by_name['name']._loaded_options = None
  _globals['_ORGANIZATIONCLIENT'].fields_by_name['name']._serialized_options = b'\222A\306\0012\236\001A descriptive name for the API client that helps identify its purpose. This name is displayed in the dashboard and logs. Must be between 1 and 128 characters.J#\"GitHub Actions Deployment Service\"\272H\005r\003\030\200\001'
  _globals['_ORGANIZATIONCLIENT'].fields_by_name['description']._loaded_options = None
  _globals['_ORGANIZATIONCLIENT'].fields_by_name['description']._serialized_options = b'\222A\331\0012\216\001A detailed explanation of the client\'s purpose and usage. This helps administrators understand what the client is used for and who manages it.JF\"Service account for GitHub Actions to deploy resources to production\"\272H\005r\003\030\200\004'
  _globals['_ORGANIZATIONCLIENT'].fields_by_name['scopes']._loaded_options = None
  _globals['_ORGANIZATIONCLIENT'].fields_by_name['scopes']._serialized_options = b'\222A\370\0012\313\001OAuth 2.0 scopes that define the permissions granted to this client. Each scope represents a specific permission or set of permissions. The client can only access resources that match its granted scopes.J([\"deploy:resources\", \"read:deployments\"]'
  _globals['_ORGANIZATIONCLIENT'].fields_by_name['audience']._loaded_options = None
  _globals['_ORGANIZATIONCLIENT'].fields_by_name['audience']._serialized_options = b'\222A\375\0012\250\001The intended recipients of the access tokens issued to this client. Each audience value should be a URI that identifies the API or service that will validate the token.JP[\"https://api.example.com/api/analytics\", \"https://deployment-api.acmecorp.com\"]'
  _globals['_ORGANIZATIONCLIENT'].fields_by_name['custom_claims']._loaded_options = None
  _globals['_ORGANIZATIONCLIENT'].fields_by_name['custom_claims']._serialized_options = b'\222A\266\0022\327\001Additional claims to be included in access tokens issued to this client. These claims provide context about the client and can be used for authorization decisions. Keep claims minimal to avoid increasing token size.JZ[{\"key\": \"environment\", \"value\": \"production\"}, {\"key\": \"service\", \"value\": \"deployment\"}]'
  _globals['_ORGANIZATIONCLIENT'].fields_by_name['expiry']._loaded_options = None
  _globals['_ORGANIZATIONCLIENT'].fields_by_name['expiry']._serialized_options = b'\222AD2<Expiry time in seconds for the token generated by the clientJ\0043600'
  _globals['_CREATEORGANIZATIONCLIENTRESPONSE'].fields_by_name['client']._loaded_options = None
  _globals['_CREATEORGANIZATIONCLIENTRESPONSE'].fields_by_name['client']._serialized_options = b'\222A\0372\035Details of the created client'
  _globals['_CREATEORGANIZATIONCLIENTRESPONSE'].fields_by_name['plain_secret']._loaded_options = None
  _globals['_CREATEORGANIZATIONCLIENTRESPONSE'].fields_by_name['plain_secret']._serialized_options = b'\222AV24Client secret value (only returned once at creation)J\036\"CdExsdErfccxDDssddfffgfeFHH1\"'
  _globals['_UPDATEORGANIZATIONCLIENTREQUEST'].fields_by_name['organization_id']._loaded_options = None
  _globals['_UPDATEORGANIZATIONCLIENTREQUEST'].fields_by_name['organization_id']._serialized_options = b'\222A?2%Unique identifier of the organizationJ\026\"org_1231234233424344\"\272H\014r\n\020\001\030 :\004org_'
  _globals['_UPDATEORGANIZATIONCLIENTREQUEST'].fields_by_name['client_id']._loaded_options = None
  _globals['_UPDATEORGANIZATIONCLIENTREQUEST'].fields_by_name['client_id']._serialized_options = b'\222A<2\037Unique identifier of the clientJ\031\"m2morg_1231234233424344\"\272H\017r\r\020\001\030 :\007m2morg_'
  _globals['_UPDATEORGANIZATIONCLIENTREQUEST'].fields_by_name['client']._loaded_options = None
  _globals['_UPDATEORGANIZATIONCLIENTREQUEST'].fields_by_name['client']._serialized_options = b'\222A 2\036Updated details for the client\272H\003\310\001\001'
  _globals['_UPDATEORGANIZATIONCLIENTRESPONSE'].fields_by_name['client']._loaded_options = None
  _globals['_UPDATEORGANIZATIONCLIENTRESPONSE'].fields_by_name['client']._serialized_options = b'\222A\0372\035Updated details of the client'
  _globals['_M2MCLIENT'].fields_by_name['client_id']._loaded_options = None
  _globals['_M2MCLIENT'].fields_by_name['client_id']._serialized_options = b'\222A\332\0012\274\001The unique identifier for this API client. This ID is used to identify the client in API requests and logs. It is automatically generated when the client is created and cannot be modified.J\031\"m2morg_1231234233424344\"'
  _globals['_M2MCLIENT'].fields_by_name['secrets']._loaded_options = None
  _globals['_M2MCLIENT'].fields_by_name['secrets']._serialized_options = b'\222A\361\0012\356\001List of client secrets associated with this client. Each secret can be used for authentication, but only the most recently created secret is typically active. Secrets are stored securely and their values are never returned after creation.'
  _globals['_M2MCLIENT'].fields_by_name['name']._loaded_options = None
  _globals['_M2MCLIENT'].fields_by_name['name']._serialized_options = b'\222A\211\0012bThe display name of the API client. This name helps identify the client in the dashboard and logs.J#\"GitHub Actions Deployment Service\"'
  _globals['_M2MCLIENT'].fields_by_name['description']._loaded_options = None
  _globals['_M2MCLIENT'].fields_by_name['description']._serialized_options = b'\222A\263\0012{A detailed description of the client\'s purpose and usage. This helps administrators understand what the client is used for.J4\"Service account for automated deployment processes\"'
  _globals['_M2MCLIENT'].fields_by_name['organization_id']._loaded_options = None
  _globals['_M2MCLIENT'].fields_by_name['organization_id']._serialized_options = b'\222A\311\0012\256\001The ID of the organization that owns this API client. This ID is used to associate the client with the correct organization and enforce organization-specific access controls.J\026\"org_1231234233424344\"'
  _globals['_M2MCLIENT'].fields_by_name['create_time']._loaded_options = None
  _globals['_M2MCLIENT'].fields_by_name['create_time']._serialized_options = b'\222A\223\0012uThe timestamp when this API client was created. This field is automatically set by the server and cannot be modified.J\032\"2024-01-05T14:48:00.000Z\"'
  _globals['_M2MCLIENT'].fields_by_name['update_time']._loaded_options = None
  _globals['_M2MCLIENT'].fields_by_name['update_time']._serialized_options = b'\222A\262\0012\223\001The timestamp when this API client was last updated. This field is automatically updated by the server whenever the client\'s configuration changes.J\032\"2024-01-05T14:48:00.000Z\"'
  _globals['_M2MCLIENT'].fields_by_name['scopes']._loaded_options = None
  _globals['_M2MCLIENT'].fields_by_name['scopes']._serialized_options = b'\222A\241\0012uThe OAuth 2.0 scopes granted to this client. These scopes determine what resources and actions the client can access.J([\"deploy:resources\", \"read:deployments\"]'
  _globals['_M2MCLIENT'].fields_by_name['audience']._loaded_options = None
  _globals['_M2MCLIENT'].fields_by_name['audience']._serialized_options = b'\222A\246\0012\206\001The intended recipients of access tokens issued to this client. Each audience value should be a URI that identifies an API or service.J\033[\"https://api.example.com\"]'
  _globals['_M2MCLIENT'].fields_by_name['custom_claims']._loaded_options = None
  _globals['_M2MCLIENT'].fields_by_name['custom_claims']._serialized_options = b'\222A\240\0012\235\001Additional claims included in access tokens issued to this client. These claims provide context about the client and can be used for authorization decisions.'
  _globals['_M2MCLIENT'].fields_by_name['expiry']._loaded_options = None
  _globals['_M2MCLIENT'].fields_by_name['expiry']._serialized_options = b'\222AD2<Expiry time in seconds for the token generated by the clientJ\0043600'
  _globals['_M2MCLIENT'].fields_by_name['resource_id']._loaded_options = None
  _globals['_M2MCLIENT'].fields_by_name['resource_id']._serialized_options = b'\222A\236\0012\203\001The ID of the resource associated with this M2M client. This field is used to link the client to a specific resource in the system.J\026\"app_1231234233424344\"'
  _globals['_M2MCLIENT'].fields_by_name['redirect_uris']._loaded_options = None
  _globals['_M2MCLIENT'].fields_by_name['redirect_uris']._serialized_options = b'\222A\247\0012\202\001The redirect URI for this API client. This URI is used in the OAuth 2.0 authorization flow to redirect users after authentication.J [\"https://example.com/callback\"]'
  _globals['_GETORGANIZATIONCLIENTREQUEST'].fields_by_name['organization_id']._loaded_options = None
  _globals['_GETORGANIZATIONCLIENTREQUEST'].fields_by_name['organization_id']._serialized_options = b'\222A?2%Unique identifier of the organizationJ\026\"org_1231234233424344\"\272H\014r\n\020\001\030 :\004org_'
  _globals['_GETORGANIZATIONCLIENTREQUEST'].fields_by_name['client_id']._loaded_options = None
  _globals['_GETORGANIZATIONCLIENTREQUEST'].fields_by_name['client_id']._serialized_options = b'\222A@2#Unique identifier of the API clientJ\031\"m2morg_1231234233424344\"\272H\017r\r\020\001\030 :\007m2morg_'
  _globals['_GETORGANIZATIONCLIENTRESPONSE'].fields_by_name['client']._loaded_options = None
  _globals['_GETORGANIZATIONCLIENTRESPONSE'].fields_by_name['client']._serialized_options = b'\222A!2\037Details of the requested client'
  _globals['_CUSTOMCLAIM'].fields_by_name['key']._loaded_options = None
  _globals['_CUSTOMCLAIM'].fields_by_name['key']._serialized_options = b'\222A\226\0012\204\001The name of the custom claim. Must be between 1 and 128 characters. Use descriptive names that clearly indicate the claim\'s purpose.J\r\"environment\"\272H\007r\005\020\001\030\200\001'
  _globals['_CUSTOMCLAIM'].fields_by_name['value']._loaded_options = None
  _globals['_CUSTOMCLAIM'].fields_by_name['value']._serialized_options = b'\222Aq2aThe value of the custom claim. This value will be included in access tokens issued to the client.J\014\"production\"'
  _globals['_CREATEORGANIZATIONCLIENTSECRETREQUEST'].fields_by_name['organization_id']._loaded_options = None
  _globals['_CREATEORGANIZATIONCLIENTSECRETREQUEST'].fields_by_name['organization_id']._serialized_options = b'\222A?2%Unique identifier of the organizationJ\026\"org_1231234233424344\"\272H\014r\n\020\001\030 :\004org_'
  _globals['_CREATEORGANIZATIONCLIENTSECRETREQUEST'].fields_by_name['client_id']._loaded_options = None
  _globals['_CREATEORGANIZATIONCLIENTSECRETREQUEST'].fields_by_name['client_id']._serialized_options = b'\222A@2#Unique identifier of the API clientJ\031\"m2morg_1231234233424344\"\272H\017r\r\020\001\030 :\007m2morg_'
  _globals['_CREATEORGANIZATIONCLIENTSECRETRESPONSE'].fields_by_name['plain_secret']._loaded_options = None
  _globals['_CREATEORGANIZATIONCLIENTSECRETRESPONSE'].fields_by_name['plain_secret']._serialized_options = b'\222AU24Client secret value (only returned once at creation)J\035\"m2morg_client_secret_xyz123\"'
  _globals['_CREATEORGANIZATIONCLIENTSECRETRESPONSE'].fields_by_name['secret']._loaded_options = None
  _globals['_CREATEORGANIZATIONCLIENTSECRETRESPONSE'].fields_by_name['secret']._serialized_options = b'\222A&2$Details of the created client secret'
  _globals['_DELETEORGANIZATIONCLIENTSECRETREQUEST'].fields_by_name['organization_id']._loaded_options = None
  _globals['_DELETEORGANIZATIONCLIENTSECRETREQUEST'].fields_by_name['organization_id']._serialized_options = b'\222A?2%Unique identifier of the organizationJ\026\"org_1231234233424344\"\272H\014r\n\020\001\030 :\004org_'
  _globals['_DELETEORGANIZATIONCLIENTSECRETREQUEST'].fields_by_name['client_id']._loaded_options = None
  _globals['_DELETEORGANIZATIONCLIENTSECRETREQUEST'].fields_by_name['client_id']._serialized_options = b'\222A@2#Unique identifier of the API clientJ\031\"m2morg_1231234233424344\"\272H\017r\r\020\001\030 :\007m2morg_'
  _globals['_DELETEORGANIZATIONCLIENTSECRETREQUEST'].fields_by_name['secret_id']._loaded_options = None
  _globals['_DELETEORGANIZATIONCLIENTSECRETREQUEST'].fields_by_name['secret_id']._serialized_options = b'\222A@2&Unique identifier of the client secretJ\026\"sec_1231234233424344\"\272H\006r\004\020\001\030 '
  _globals['_LISTORGANIZATIONCLIENTSREQUEST'].fields_by_name['organization_id']._loaded_options = None
  _globals['_LISTORGANIZATIONCLIENTSREQUEST'].fields_by_name['organization_id']._serialized_options = b'\222Au2[Unique identifier of the organization whose clients to list. Must start with \'org_\' prefix.J\026\"org_1231234233424344\"\272H\014r\n\020\001\030 :\004org_'
  _globals['_LISTORGANIZATIONCLIENTSREQUEST'].fields_by_name['page_size']._loaded_options = None
  _globals['_LISTORGANIZATIONCLIENTSREQUEST'].fields_by_name['page_size']._serialized_options = b'\222AR2LMaximum number of API clients to return per page. Must be between 10 and 100J\00230'
  _globals['_LISTORGANIZATIONCLIENTSREQUEST'].fields_by_name['page_token']._loaded_options = None
  _globals['_LISTORGANIZATIONCLIENTSREQUEST'].fields_by_name['page_token']._serialized_options = b'\222At2bPagination token from the previous response. Use to retrieve the next page of organization clientsJ\016\"<page_token>\"'
  _globals['_LISTORGANIZATIONCLIENTSREQUEST']._loaded_options = None
  _globals['_LISTORGANIZATIONCLIENTSREQUEST']._serialized_options = b'\222A\350\001\n\250\001*!List Organization Clients Request2\202\001Request message for listing API clients within a specific organization. Supports pagination for handling large numbers of clients.*;\n\021API Documentation\022&https://docs.scalekit.com/m2m/overview'
  _globals['_LISTORGANIZATIONCLIENTSRESPONSE'].fields_by_name['next_page_token']._loaded_options = None
  _globals['_LISTORGANIZATIONCLIENTSRESPONSE'].fields_by_name['next_page_token']._serialized_options = b'\222Al2UPagination token for the next page of results. Use this token to fetch the next page.J\023\"<next_page_token>\"'
  _globals['_LISTORGANIZATIONCLIENTSRESPONSE'].fields_by_name['total_size']._loaded_options = None
  _globals['_LISTORGANIZATIONCLIENTSRESPONSE'].fields_by_name['total_size']._serialized_options = b'\222A620Total number of API clients in the organization.J\00230'
  _globals['_LISTORGANIZATIONCLIENTSRESPONSE'].fields_by_name['clients']._loaded_options = None
  _globals['_LISTORGANIZATIONCLIENTSRESPONSE'].fields_by_name['clients']._serialized_options = b'\222A\241\0012\236\001List of API client objects for the organization. Each client includes its configuration, metadata, and active secrets (without exposing actual secret values).'
  _globals['_LISTORGANIZATIONCLIENTSRESPONSE'].fields_by_name['prev_page_token']._loaded_options = None
  _globals['_LISTORGANIZATIONCLIENTSRESPONSE'].fields_by_name['prev_page_token']._serialized_options = b'\222At2]Pagination token for the previous page of results. Use this token to fetch the previous page.J\023\"<prev_page_token>\"'
  _globals['_LISTORGANIZATIONCLIENTSRESPONSE']._loaded_options = None
  _globals['_LISTORGANIZATIONCLIENTSRESPONSE']._serialized_options = b'\222A\204\001\n\201\001*\"List Organization Clients Response2[Response message containing a paginated list of API clients for the specified organization.'
  _globals['_DELETEORGANIZATIONCLIENTREQUEST'].fields_by_name['organization_id']._loaded_options = None
  _globals['_DELETEORGANIZATIONCLIENTREQUEST'].fields_by_name['organization_id']._serialized_options = b'\222At2ZUnique identifier of the organization that owns the client. Must start with \'org_\' prefix.J\026\"org_1231234233424344\"\272H\014r\n\020\001\030 :\004org_'
  _globals['_DELETEORGANIZATIONCLIENTREQUEST'].fields_by_name['client_id']._loaded_options = None
  _globals['_DELETEORGANIZATIONCLIENTREQUEST'].fields_by_name['client_id']._serialized_options = b'\222Ay2\\Unique identifier of the API client to permanently delete. Must start with \'m2morg_\' prefix.J\031\"m2morg_1231234233424344\"\272H\017r\r\020\001\030 :\007m2morg_'
  _globals['_GETCLIENTREQUEST'].fields_by_name['client_id']._loaded_options = None
  _globals['_GETCLIENTREQUEST'].fields_by_name['client_id']._serialized_options = b'\222Ag2SUnique identifier of the client resource to retrieve. Must be 1-32 characters long.J\020\"skc_1234567890\"\272H\006r\004\020\001\030 '
  _globals['_GETCLIENTRESPONSE'].fields_by_name['client']._loaded_options = None
  _globals['_GETCLIENTRESPONSE'].fields_by_name['client']._serialized_options = b'\222A\245\0012\242\001Complete client configuration including authentication settings, redirect URIs, and secrets. This contains all current settings for the requested client resource.'
  _globals['_LISTCLIENTSREQUEST'].fields_by_name['include_plain_secret']._loaded_options = None
  _globals['_LISTCLIENTSREQUEST'].fields_by_name['include_plain_secret']._serialized_options = b'\222A\242\0012\230\001Whether to include plain secret values in the response. Should only be enabled during initial creation as secrets should be securely stored immediately.J\005false'
  _globals['_LISTCLIENTSRESPONSE'].fields_by_name['total_size']._loaded_options = None
  _globals['_LISTCLIENTSRESPONSE'].fields_by_name['total_size']._serialized_options = b'\222A822Total number of client resources in the workspace.J\00212'
  _globals['_LISTCLIENTSRESPONSE'].fields_by_name['clients']._loaded_options = None
  _globals['_LISTCLIENTSRESPONSE'].fields_by_name['clients']._serialized_options = b'\222A\205\0012\202\001List of client resource configurations matching the query criteria. Each client includes its metadata and authentication settings.'
  _globals['_UPDATECLIENTREQUEST'].fields_by_name['client_id']._loaded_options = None
  _globals['_UPDATECLIENTREQUEST'].fields_by_name['client_id']._serialized_options = b'\222AT2:Unique identifier of the registered application to update.J\026\"skc_01H9XPQR7ZY2AJKL\"\272H\006r\004\020\001\030 '
  _globals['_UPDATECLIENTREQUEST'].fields_by_name['client']._loaded_options = None
  _globals['_UPDATECLIENTREQUEST'].fields_by_name['client']._serialized_options = b'\222A\331\0012bApplication configuration parameters to update. Contains redirect URIs and authentication settingsJs{\"redirect_uris\": [\"https://app.example.com/callback\"], \"default_redirect_uri\": \"https://app.example.com/callback\"}\272H\003\310\001\001'
  _globals['_UPDATECLIENTREQUEST'].fields_by_name['mask']._loaded_options = None
  _globals['_UPDATECLIENTREQUEST'].fields_by_name['mask']._serialized_options = b'\340A\003\372\322\344\223\002\t\022\007PREVIEW'
  _globals['_UPDATECLIENT'].fields_by_name['redirect_uris']._loaded_options = None
  _globals['_UPDATECLIENT'].fields_by_name['redirect_uris']._serialized_options = b'\222A\345\0012\234\001List of allowed redirect URIs for OAuth 2.0 authorization flows. Each URI must be valid and use HTTPS in production environments. Maximum of 5 URIs allowed.JD[\"https://app.example.com/callback\", \"https://dev.example.com/auth\"]\272H\014\222\001\t\030\001\"\005r\003\210\001\001'
  _globals['_UPDATECLIENT'].fields_by_name['default_redirect_uri']._loaded_options = None
  _globals['_UPDATECLIENT'].fields_by_name['default_redirect_uri']._serialized_options = b'\222A\247\0012\200\001Primary redirect URI used when none is specified in authorization requests. Must exactly match one of the URIs in redirect_uris.J\"\"https://app.example.com/callback\"\272H5\272\0012\n\tvalid_uri\022\027uri must be a valid URI\032\014this.isUri()'
  _globals['_UPDATECLIENT'].fields_by_name['back_channel_logout_uris']._loaded_options = None
  _globals['_UPDATECLIENT'].fields_by_name['back_channel_logout_uris']._serialized_options = b'\222A\366\0012\225\001HTTPS endpoints for receiving back-channel logout notifications. Required for implementing application-initiated logout flows and session management.J\\[\"https://app.example.com/backchannel-logout\", \"https://app.example.com/backchannel-logout\"]\272H\014\222\001\t\030\001\"\005r\003\210\001\001'
  _globals['_UPDATECLIENT'].fields_by_name['post_logout_redirect_uris']._loaded_options = None
  _globals['_UPDATECLIENT'].fields_by_name['post_logout_redirect_uris']._serialized_options = b'\222A\347\0012\234\001Allowed URIs for post-logout redirection. These URIs are used when a user is redirected after logout. Must use HTTPS and conform to security specifications.JF[\"https://app.example.com/logged-out\", \"https://app.example.com/home\"]\272H\014\222\001\t\030\001\"\005r\003\210\001\001'
  _globals['_UPDATECLIENT'].fields_by_name['initiate_login_uri']._loaded_options = None
  _globals['_UPDATECLIENT'].fields_by_name['initiate_login_uri']._serialized_options = b'\222A\307\0012\243\001Pre-configured URI for initiating login flows. This URI is used to start authentication flows programmatically. Must use HTTPS protocol and contain a valid domain.J\037\"https://app.example.com/login\"'
  _globals['_UPDATECLIENT'].fields_by_name['post_login_uris']._loaded_options = None
  _globals['_UPDATECLIENT'].fields_by_name['post_login_uris']._serialized_options = b'\222A\347\0012\236\001List of allowed post login URIs for OAuth 2.0 authorization flows. Each URI must be valid and use HTTPS in production environments. Maximum of 5 URIs allowed.JD[\"https://app.example.com/callback\", \"https://dev.example.com/auth\"]\272H\014\222\001\t\030\001\"\005r\003\210\001\001'
  _globals['_UPDATECLIENT']._loaded_options = None
  _globals['_UPDATECLIENT']._serialized_options = b'\222A\375\001\n\275\001*\033Update Client Configuration2\235\001Parameters for updating an API client application\'s configuration. This allows modification of redirect URIs, logout settings, and other security parameters.*;\n\021API Documentation\022&https://docs.scalekit.com/m2m/overview'
  _globals['_UPDATECLIENTRESPONSE'].fields_by_name['client']._loaded_options = None
  _globals['_UPDATECLIENTRESPONSE'].fields_by_name['client']._serialized_options = b'\222AW2UUpdated application configuration with all current settings reflected in the response'
  _globals['_CREATECLIENTSECRETREQUEST'].fields_by_name['client_id']._loaded_options = None
  _globals['_CREATECLIENTSECRETREQUEST'].fields_by_name['client_id']._serialized_options = b'\222Ag2MUnique identifier of the client application for which to create a new secret.J\026\"skc_01H9XPQR7ZY2AJKL\"\272H\006r\004\020\001\030 '
  _globals['_CREATECLIENTSECRETRESPONSE'].fields_by_name['plain_secret']._loaded_options = None
  _globals['_CREATECLIENTSECRETRESPONSE'].fields_by_name['plain_secret']._serialized_options = b'\222A\236\0012\204\001Plaintext secret value. This value is only returned once at creation time and must be stored securely. It cannot be retrieved again.J\025\"sec_plaintext123456\"'
  _globals['_CREATECLIENTSECRETRESPONSE'].fields_by_name['secret']._loaded_options = None
  _globals['_CREATECLIENTSECRETRESPONSE'].fields_by_name['secret']._serialized_options = b'\222A\205\0012\202\001Metadata about the newly created secret, including its ID, creation time, and status. Does not include the plaintext secret value.'
  _globals['_UPDATECLIENTSECRETREQUEST'].fields_by_name['client_id']._loaded_options = None
  _globals['_UPDATECLIENTSECRETREQUEST'].fields_by_name['client_id']._serialized_options = b'\222Af2LUnique identifier of the client application containing the secret to update.J\026\"skc_01H9XPQR7ZY2AJKL\"\272H\006r\004\020\001\030 '
  _globals['_UPDATECLIENTSECRETREQUEST'].fields_by_name['secret_id']._loaded_options = None
  _globals['_UPDATECLIENTSECRETREQUEST'].fields_by_name['secret_id']._serialized_options = b'\222A\200\0012fUnique identifier of the client secret to update. This references a specific secret within the client.J\026\"sec_01H9XPQR7ZY2AJKL\"\272H\006r\004\020\001\030 '
  _globals['_UPDATECLIENTSECRETREQUEST'].fields_by_name['secret']._loaded_options = None
  _globals['_UPDATECLIENTSECRETREQUEST'].fields_by_name['secret']._serialized_options = b'\222Af2dUpdated settings for the secret. Currently supports modifying the secret\'s status (active/inactive).\272H\003\310\001\001'
  _globals['_UPDATECLIENTSECRETREQUEST'].fields_by_name['mask']._loaded_options = None
  _globals['_UPDATECLIENTSECRETREQUEST'].fields_by_name['mask']._serialized_options = b'\222A@2>Specifies which fields to update. System-controlled parameter.'
  _globals['_UPDATECLIENTSECRET'].fields_by_name['status']._loaded_options = None
  _globals['_UPDATECLIENTSECRET'].fields_by_name['status']._serialized_options = b'\222A\217\0012\202\001Status to set for the client secret. Set to ACTIVE to enable the secret for authentication, or INACTIVE to temporarily disable it.J\010INACTIVE'
  _globals['_UPDATECLIENTSECRETRESPONSE'].fields_by_name['secret']._loaded_options = None
  _globals['_UPDATECLIENTSECRETRESPONSE'].fields_by_name['secret']._serialized_options = b'\222A\210\0012\205\001Updated secret metadata, reflecting the changes made by the update operation. Note that the plaintext secret value is never returned.'
  _globals['_DELETECLIENTSECRETREQUEST'].fields_by_name['client_id']._loaded_options = None
  _globals['_DELETECLIENTSECRETREQUEST'].fields_by_name['client_id']._serialized_options = b'\222Af2LUnique identifier of the client application containing the secret to delete.J\026\"skc_01H9XPQR7ZY2AJKL\"\272H\006r\004\020\001\030 '
  _globals['_DELETECLIENTSECRETREQUEST'].fields_by_name['secret_id']._loaded_options = None
  _globals['_DELETECLIENTSECRETREQUEST'].fields_by_name['secret_id']._serialized_options = b'\222Ax2^Unique identifier of the client secret to permanently delete. This operation cannot be undone.J\026\"sec_01H9XPQR7ZY2AJKL\"\272H\006r\004\020\001\030 '
  _globals['_CLIENT'].fields_by_name['id']._loaded_options = None
  _globals['_CLIENT'].fields_by_name['id']._serialized_options = b'\222A\315\0012\262\001Unique identifier for the client application. This ID is automatically generated when the client is created and cannot be modified. Used in API requests and authentication flows.J\026\"skc_1234abcd5678efgh\"'
  _globals['_CLIENT'].fields_by_name['keyId']._loaded_options = None
  _globals['_CLIENT'].fields_by_name['keyId']._serialized_options = b'\222A\274\0012\241\001Identifier for the cryptographic key pair used to sign tokens. This key is used for JWT signing operations. Keys can be rotated by generating new client secrets.J\026\"key_9876zyxw5432vuts\"'
  _globals['_CLIENT'].fields_by_name['create_time']._loaded_options = None
  _globals['_CLIENT'].fields_by_name['create_time']._serialized_options = b'\222A\256\0012\217\001Timestamp indicating when the client configuration was initially created. This field is automatically set by the server and cannot be modified.J\032\"2024-01-05T14:48:00.000Z\"'
  _globals['_CLIENT'].fields_by_name['update_time']._loaded_options = None
  _globals['_CLIENT'].fields_by_name['update_time']._serialized_options = b'\222A\277\0012\240\001Timestamp of the last modification to the client configuration. This field is automatically updated by the server whenever any aspect of the client is modified.J\032\"2024-01-10T09:12:00.000Z\"'
  _globals['_CLIENT'].fields_by_name['redirect_uris']._loaded_options = None
  _globals['_CLIENT'].fields_by_name['redirect_uris']._serialized_options = b'\222A\253\0022\333\001List of allowed redirect URIs for OAuth 2.0 authorization flows. These URIs must use HTTPS protocol in production environments and comply with RFC 6749. Users will be redirected to one of these URIs after authorization.JK[\"https://auth.your-app.com/callback\", \"https://scalekit.example.org/auth\"]'
  _globals['_CLIENT'].fields_by_name['default_redirect_uri']._loaded_options = None
  _globals['_CLIENT'].fields_by_name['default_redirect_uri']._serialized_options = b'\222A\311\0012\240\001Primary redirect URI used when none is explicitly specified in authorization requests. This URI must exactly match one of the entries in the redirect_uris list.J$\"https://auth.your-app.com/callback\"'
  _globals['_CLIENT'].fields_by_name['secrets']._loaded_options = None
  _globals['_CLIENT'].fields_by_name['secrets']._serialized_options = b'\222A\343\0012\340\001List of client secrets used for authentication. Each secret is stored securely using one-way hashing (bcrypt). The plaintext secret values are only displayed during initial creation and must be stored securely by the client.'
  _globals['_CLIENT'].fields_by_name['post_logout_redirect_uris']._loaded_options = None
  _globals['_CLIENT'].fields_by_name['post_logout_redirect_uris']._serialized_options = b'\222A\343\0012\272\001Allowed URIs for post-logout redirection. These URIs are used when a user is redirected after signing out. Must use HTTPS and conform to OpenID Connect Session Management specifications.J$[\"https://auth.your-app.com/logout\"]'
  _globals['_CLIENT'].fields_by_name['back_channel_logout_uris']._loaded_options = None
  _globals['_CLIENT'].fields_by_name['back_channel_logout_uris']._serialized_options = b'\222A\213\0022\330\001HTTPS endpoint for receiving back-channel logout notifications. This URI is called by the authentication server when a session expires or is terminated. Required for implementing relying party-initiated logout flows.J.\"https://auth.your-app.com/backchannel-logout\"'
  _globals['_CLIENT'].fields_by_name['initiate_login_uri']._loaded_options = None
  _globals['_CLIENT'].fields_by_name['initiate_login_uri']._serialized_options = b'\222A\355\0012\277\001Pre-configured URI for initiating login flows programmatically. This URI must use the HTTPS scheme and contain a valid domain. Used for starting authentication flows without user interaction.J)\"https://auth.your-app.com/initiate-auth\"'
  _globals['_CLIENT'].fields_by_name['post_login_uris']._loaded_options = None
  _globals['_CLIENT'].fields_by_name['post_login_uris']._serialized_options = b'\222A\376\0012\263\001List of allowed redirect URIs for OAuth 2.0 authorization flows. These URIs must use HTTPS protocol in production environments and comply with RFC 6749. Maximum of 5 URIs allowed.JF[\"https://auth.your-app.com/callback\", \"https://dev.example.com/auth\"]'
  _globals['_CLIENT']._loaded_options = None
  _globals['_CLIENT']._serialized_options = b'\222A\257\001\n\254\001*\022Client Application2\225\001Configuration for an API client application registered with Scalekit. Contains authentication settings, redirect URIs, and other security parameters.'
  _globals['_CLIENTSECRET'].fields_by_name['id']._loaded_options = None
  _globals['_CLIENTSECRET'].fields_by_name['id']._serialized_options = b'\222A\300\0012\245\001The unique identifier for this client secret. This ID is used to reference the secret in API requests for management operations like updating or deleting the secret.J\026\"sec_1234abcd5678efgh\"'
  _globals['_CLIENTSECRET'].fields_by_name['create_time']._loaded_options = None
  _globals['_CLIENTSECRET'].fields_by_name['create_time']._serialized_options = b'\222A\217\0012qThe timestamp when this secret was created. This field is automatically set by the server and cannot be modified.J\032\"2024-01-05T14:48:00.000Z\"'
  _globals['_CLIENTSECRET'].fields_by_name['update_time']._loaded_options = None
  _globals['_CLIENTSECRET'].fields_by_name['update_time']._serialized_options = b'\222A\304\0012\245\001The timestamp when this secret was last updated. This field is automatically updated by the server when the secret\'s status changes or other properties are modified.J\032\"2024-01-10T09:12:00.000Z\"'
  _globals['_CLIENTSECRET'].fields_by_name['secret_suffix']._loaded_options = None
  _globals['_CLIENTSECRET'].fields_by_name['secret_suffix']._serialized_options = b'\222A\330\0012\315\001A suffix that helps identify this secret. This is the last few characters of the full secret value but is not sufficient for authentication. Helps identify which secret is being used in logs and debugging.J\006\"xyzw\"'
  _globals['_CLIENTSECRET'].fields_by_name['created_by']._loaded_options = None
  _globals['_CLIENTSECRET'].fields_by_name['created_by']._serialized_options = b'\222A\240\0012\217\001The identifier of the user or system that created this secret. This field helps track who created the secret for audit and compliance purposes.J\014\"user_12345\"'
  _globals['_CLIENTSECRET'].fields_by_name['status']._loaded_options = None
  _globals['_CLIENTSECRET'].fields_by_name['status']._serialized_options = b'\222A\300\0012\261\001The current status of this secret. A secret must be ACTIVE to be used for authentication. INACTIVE secrets cannot be used for authentication but are retained for audit purposes.J\n\"INACTIVE\"'
  _globals['_CLIENTSECRET'].fields_by_name['expire_time']._loaded_options = None
  _globals['_CLIENTSECRET'].fields_by_name['expire_time']._serialized_options = b'\222A\312\0012\253\001The timestamp when this secret will expire. After this time, the secret cannot be used for authentication regardless of its status. If not set, the secret does not expire.J\032\"2025-01-05T14:48:00.000Z\"'
  _globals['_CLIENTSECRET'].fields_by_name['last_used_time']._loaded_options = None
  _globals['_CLIENTSECRET'].fields_by_name['last_used_time']._serialized_options = b'\222A\337\0012\300\001The timestamp when this secret was last used for authentication. This field helps track secret usage for security monitoring and identifying unused secrets that may be candidates for rotation.J\032\"2024-02-15T10:30:00.000Z\"'
  _globals['_CLIENTSECRET'].fields_by_name['plain_secret']._loaded_options = None
  _globals['_CLIENTSECRET'].fields_by_name['plain_secret']._serialized_options = b'\222A\206\0022\327\001The full plaintext secret value. This field is only populated when the secret is first created and is never stored by the server. It must be securely stored by the client application as it cannot be retrieved again.J*\"sec_1234567890abcdefghijklmnopqrstuvwxyz\"'
  _globals['_CLIENTSECRET']._loaded_options = None
  _globals['_CLIENTSECRET']._serialized_options = b'\222A\217\001\n\214\001*\rClient Secret2{A secure credential used for authenticating an API client. Each client can have multiple secrets for key rotation purposes.'
  _globals['_SCOPE'].fields_by_name['id']._loaded_options = None
  _globals['_SCOPE'].fields_by_name['id']._serialized_options = b'\222A\212\0012tUnique identifier for the scope resource. Must be between 1 and 100 characters long and match the specified pattern.J\022\"scope_1234567890\"\272H\006r\004\020\001\030d'
  _globals['_SCOPE'].fields_by_name['name']._loaded_options = None
  _globals['_SCOPE'].fields_by_name['name']._serialized_options = b'\272H\037r\032\020\001\030d2\024^[a-zA-Z0-9:]{1,64}$\310\001\001'
  _globals['_SCOPE'].fields_by_name['description']._loaded_options = None
  _globals['_SCOPE'].fields_by_name['description']._serialized_options = b'\272H\005r\003\030\320\017'
  _globals['_SCOPE'].fields_by_name['enabled']._loaded_options = None
  _globals['_SCOPE'].fields_by_name['enabled']._serialized_options = b'\272H\003\310\001\001'
  _globals['_CREATESCOPE'].fields_by_name['name']._loaded_options = None
  _globals['_CREATESCOPE'].fields_by_name['name']._serialized_options = b'\272H\037r\032\020\001\030d2\024^[a-zA-Z0-9:]{1,64}$\310\001\001'
  _globals['_CREATESCOPE'].fields_by_name['description']._loaded_options = None
  _globals['_CREATESCOPE'].fields_by_name['description']._serialized_options = b'\272H\005r\003\030\320\017'
  _globals['_CREATESCOPEREQUEST'].fields_by_name['scope']._loaded_options = None
  _globals['_CREATESCOPEREQUEST'].fields_by_name['scope']._serialized_options = b'\272H\003\310\001\001'
  _globals['_CREATESCOPEREQUEST'].fields_by_name['env_id']._loaded_options = None
  _globals['_CREATESCOPEREQUEST'].fields_by_name['env_id']._serialized_options = b'\222Ax2dUnique identifier of the environment where the scope will be created. Must start with \'env_\' prefix.J\020\"env_1234567890\"\272H\006r\004\020\000\030 '
  _globals['_LISTSCOPESREQUEST'].fields_by_name['env_id']._loaded_options = None
  _globals['_LISTSCOPESREQUEST'].fields_by_name['env_id']._serialized_options = b'\222Aq2]Unique identifier of the environment for which to list scopes. Must start with \'env_\' prefix.J\020\"env_1234567890\"\272H\006r\004\020\000\030 '
  _globals['_UPDATESCOPEREQUEST'].fields_by_name['id']._loaded_options = None
  _globals['_UPDATESCOPEREQUEST'].fields_by_name['id']._serialized_options = b'\272H\006r\004\020\001\030d'
  _globals['_UPDATESCOPEREQUEST'].fields_by_name['scope']._loaded_options = None
  _globals['_UPDATESCOPEREQUEST'].fields_by_name['scope']._serialized_options = b'\272H\003\310\001\001'
  _globals['_UPDATESCOPE'].fields_by_name['description']._loaded_options = None
  _globals['_UPDATESCOPE'].fields_by_name['description']._serialized_options = b'\272H\005r\003\030\320\017'
  _globals['_DELETESCOPEREQUEST'].fields_by_name['id']._loaded_options = None
  _globals['_DELETESCOPEREQUEST'].fields_by_name['id']._serialized_options = b'\272H\010r\006:\004scp_'
  _globals['_GETCONSENTDETAILSRESPONSE'].fields_by_name['resource']._loaded_options = None
  _globals['_GETCONSENTDETAILSRESPONSE'].fields_by_name['resource']._serialized_options = b'\222A#2!Details of the requested resource'
  _globals['_GETCONSENTDETAILSRESPONSE'].fields_by_name['user']._loaded_options = None
  _globals['_GETCONSENTDETAILSRESPONSE'].fields_by_name['user']._serialized_options = b'\222A)2\'Details of the user who granted consent'
  _globals['_GETCONSENTDETAILSRESPONSE'].fields_by_name['client']._loaded_options = None
  _globals['_GETCONSENTDETAILSRESPONSE'].fields_by_name['client']._serialized_options = b'\222A321Details of the client resource requesting consent'
  _globals['_GETCONSENTDETAILSRESPONSE'].fields_by_name['scopes']._loaded_options = None
  _globals['_GETCONSENTDETAILSRESPONSE'].fields_by_name['scopes']._serialized_options = b'\222A]2[List of scopes for which consent was granted. Each scope includes its name and description.'
  _globals['_GETCONSENTDETAILSRESPONSE'].fields_by_name['application']._loaded_options = None
  _globals['_GETCONSENTDETAILSRESPONSE'].fields_by_name['application']._serialized_options = b'\222A&2$Details of the requested application'
  _globals['_CONSENTCLIENT'].fields_by_name['name']._loaded_options = None
  _globals['_CONSENTCLIENT'].fields_by_name['name']._serialized_options = b'\222AO2;Unique identifier of the client resource requesting consentJ\020\"skc_1234567890\"\272H\006r\004\020\001\030 '
  _globals['_CONSENTCLIENT'].fields_by_name['privacy_uri']._loaded_options = None
  _globals['_CONSENTCLIENT'].fields_by_name['privacy_uri']._serialized_options = b'\272H\004r\002\030d'
  _globals['_CONSENTCLIENT'].fields_by_name['tos_uri']._loaded_options = None
  _globals['_CONSENTCLIENT'].fields_by_name['tos_uri']._serialized_options = b'\272H\005r\003\030\320\017'
  _globals['_CONSENTSCOPE'].fields_by_name['name']._loaded_options = None
  _globals['_CONSENTSCOPE'].fields_by_name['name']._serialized_options = b'\272H\tr\004\020\001\030d\310\001\001'
  _globals['_CONSENTSCOPE'].fields_by_name['description']._loaded_options = None
  _globals['_CONSENTSCOPE'].fields_by_name['description']._serialized_options = b'\272H\005r\003\030\320\017'
  _globals['_USER'].fields_by_name['email']._loaded_options = None
  _globals['_USER'].fields_by_name['email']._serialized_options = b'\222AQ28Email address of the user. Must be a valid email format.J\025alice.doe@example.com'
  _globals['_CLIENTSERVICE']._loaded_options = None
  _globals['_CLIENTSERVICE']._serialized_options = b'\222A\264\003\n\010API Auth\022\375\002Endpoints for managing API client applications. API clients enable secure, automated interactions between software systems without human intervention. Each client is uniquely identified by a `client_id` and can be configured with authentication settings, redirect URIs, and security parameters. Use these endpoints to create, manage, and configure API clients for your API clients.\032(\022&https://docs.scalekit.com/m2m/overview'
  _globals['_CLIENTSERVICE'].methods_by_name['ListClient']._loaded_options = None
  _globals['_CLIENTSERVICE'].methods_by_name['ListClient']._serialized_options = b'\222A\304\001\n\010API Auth\022\020List API clients\032GRetrieves a paginated list of API client applications in the workspace.J]\n\003200\022V\n&List of clients returned successfully.\022,\n*\032(.scalekit.v1.clients.ListClientsResponse\202\265\030\002\030P\372\322\344\223\002\t\022\007PREVIEW\202\323\344\223\002\021\022\017/api/v1/clients'
  _globals['_CLIENTSERVICE'].methods_by_name['GetClient']._loaded_options = None
  _globals['_CLIENTSERVICE'].methods_by_name['GetClient']._serialized_options = b'\222A\263\004\n\016Client Configs\022\030Get Client Configuration\032\301\002Retrieves the complete configuration for an M2M client, including authentication settings, scopes, and custom claims. Use this endpoint to view or verify client settings, such as allowed redirect URIs, audience values, and token expiration times. The response includes all current client metadata and security parameters.J\302\001\n\003200\022\272\001\n\213\001Client configuration retrieved successfully. Returns full client metadata including scopes, audience, custom claims, and security settings.\022*\n(\032&.scalekit.v1.clients.GetClientResponse\202\265\030\002\030T\372\322\344\223\002\t\022\007PREVIEW\202\323\344\223\002\035\022\033/api/v1/clients/{client_id}'
  _globals['_CLIENTSERVICE'].methods_by_name['UpdateClient']._loaded_options = None
  _globals['_CLIENTSERVICE'].methods_by_name['UpdateClient']._serialized_options = b'\222A\231\004\n\016Client Configs\022\033Update Client Configuration\032\260\002Updates the configuration settings for an M2M client. This endpoint allows you to modify client properties such as redirect URIs, scopes, audience, and custom claims. Required fields include redirect_uris and default_redirect_uri. Note that client_id and create_time are immutable and cannot be modified.J\266\001\n\003201\022\256\001\n}Client configuration updated successfully. Returns the updated client resource with new update_time and all current settings.\022-\n+\032).scalekit.v1.clients.UpdateClientResponse\202\265\030\002\030T\372\322\344\223\002\t\022\007PREVIEW\202\323\344\223\002%2\033/api/v1/clients/{client_id}:\006client'
  _globals['_CLIENTSERVICE'].methods_by_name['CreateClientSecret']._loaded_options = None
  _globals['_CLIENTSERVICE'].methods_by_name['CreateClientSecret']._serialized_options = b'\222A\350\003\n\016Client Configs\022\024Create Client Secret\032\202\002Generates a new client secret for an API client. This endpoint creates a secure credential that can be used for OAuth 2.0 client credentials flow. The plain secret is only returned once during creation and should be stored securely by the client application.J\272\001\n\003201\022\262\001\n{Client secret created successfully. Returns the new secret ID and the plain secret value (only available at creation time).\0223\n1\032/.scalekit.v1.clients.CreateClientSecretResponse\202\265\030\002\030T\372\322\344\223\002\t\022\007PREVIEW\202\323\344\223\002%\"#/api/v1/clients/{client_id}/secrets'
  _globals['_CLIENTSERVICE'].methods_by_name['UpdateClientSecret']._loaded_options = None
  _globals['_CLIENTSERVICE'].methods_by_name['UpdateClientSecret']._serialized_options = b'\222A\277\003\n\016Client Configs\022\024Update Client Secret\032\375\001Updates the status of a client secret. This endpoint allows you to activate or deactivate a client secret. Use this to rotate secrets or revoke access for compromised credentials. The secret value itself cannot be modified - create a new secret instead.J\226\001\n\003200\022\216\001\nWClient secret updated successfully. Returns the updated secret with its current status.\0223\n1\032/.scalekit.v1.clients.UpdateClientSecretResponse\202\265\030\002\030T\372\322\344\223\002\t\022\007PREVIEW\202\323\344\223\002t\032//api/v1/clients/{client_id}/secrets/{secret_id}:\006secretZ92//api/v1/clients/{client_id}/secrets/{secret_id}:\006secret'
  _globals['_CLIENTSERVICE'].methods_by_name['DeleteClientSecret']._loaded_options = None
  _globals['_CLIENTSERVICE'].methods_by_name['DeleteClientSecret']._serialized_options = b'\222A\264\002\n\016Client Configs\022\024Delete Client Secret\032\305\001Permanently deletes a client secret. This operation cannot be undone. Use this endpoint to remove compromised or unused secrets. After deletion, the secret can no longer be used for authentication.JD\n\003200\022=\n;Client secret successfully deleted and no longer accessible\202\265\030\002\030T\372\322\344\223\002\t\022\007PREVIEW\202\323\344\223\0021*//api/v1/clients/{client_id}/secrets/{secret_id}'
  _globals['_CLIENTSERVICE'].methods_by_name['CreateOrganizationClient']._loaded_options = None
  _globals['_CLIENTSERVICE'].methods_by_name['CreateOrganizationClient']._serialized_options = b'\222A\233\t\n\010API Auth\022\036Create organization API client\032rCreates a new API client for an organization. Returns the client details and a plain secret (available only once).J\236\002\n\003201\022\226\002\n\330\001API client created successfully. Returns the client ID and plain secret (only available at creation time). The client can be configured with scopes, audience values, and custom claims for fine-grained access control.\0229\n7\0325.scalekit.v1.clients.CreateOrganizationClientResponsej\331\005\n\rx-codeSamples\022\307\0052\304\005\n\301\005*\276\005\n\025\n\005label\022\014\032\nPython SDK\n\020\n\004lang\022\010\032\006python\n\222\005\n\006source\022\207\005\032\204\005from scalekit.v1.clients.clients_pb2 import OrganizationClient\n\nm2m_client = OrganizationClient(\n    name=\"GitHub Actions Deployment Service\",\n    description=\"Service account for GitHub Actions to deploy applications to production\",\n    custom_claims=[\n        {\"key\": \"github_repository\", \"value\": \"acmecorp/inventory-service\"},\n        {\"key\": \"environment\", \"value\": \"production_us\"}\n    ],\n    scopes=[\"deploy:applications\", \"read:deployments\"],\n    audience=[\"deployment-api.acmecorp.com\"],\n    expiry=3600\n)\n\nresponse = sc.m2m_client.create_organization_client(\n    organization_id=\"SCALEKIT_ORGANIZATION_ID\",\n    m2m_client=m2m_client\n)\202\265\030\002\030T\202\323\344\223\0029\"//api/v1/organizations/{organization_id}/clients:\006client'
  _globals['_CLIENTSERVICE'].methods_by_name['GetOrganizationClient']._loaded_options = None
  _globals['_CLIENTSERVICE'].methods_by_name['GetOrganizationClient']._serialized_options = b'\222A\324\005\n\010API Auth\022\033Get organization API client\032>Retrieves details of a specific API client in an organization.J\375\001\n\003200\022\365\001\n\272\001Returns the complete API client configuration, including all current settings and a list of active secrets. Note that secret values are not included in the response for security reasons.\0226\n4\0322.scalekit.v1.clients.GetOrganizationClientResponsej\352\002\n\rx-codeSamples\022\330\0022\325\002\n\322\002*\317\002\n\025\n\005label\022\014\032\nPython SDK\n\020\n\004lang\022\010\032\006python\n\243\002\n\006source\022\230\002\032\225\002# Get client ID from environment variables\norg_id = \'SCALEKIT_ORGANIZATION_ID\'\nclient_id = os.environ[\'M2M_CLIENT_ID\']\n\n# Fetch client details for the specified organization\nresponse = sc.m2m_client.get_organization_client(\n    organization_id=org_id,\n    client_id=client_id\n)\202\265\030\002\030T\202\323\344\223\002=\022;/api/v1/organizations/{organization_id}/clients/{client_id}'
  _globals['_CLIENTSERVICE'].methods_by_name['CreateOrganizationClientSecret']._loaded_options = None
  _globals['_CLIENTSERVICE'].methods_by_name['CreateOrganizationClientSecret']._serialized_options = b'\222A\316\006\n\010API Auth\022%Create organization API client secret\032dCreates a new secret for an organization API client. Returns the plain secret (available only once).J\376\001\n\003201\022\366\001\n\262\001Client secret created successfully. Returns the new secret ID and the plain secret value (only available at creation time). The secret can be used immediately for authentication.\022?\n=\032;.scalekit.v1.clients.CreateOrganizationClientSecretResponsej\263\003\n\rx-codeSamples\022\241\0032\236\003\n\233\003*\230\003\n\025\n\005label\022\014\032\nPython SDK\n\020\n\004lang\022\010\032\006python\n\354\002\n\006source\022\341\002\032\336\002# Get client ID from environment variables\norg_id = \'SCALEKIT_ORGANIZATION_ID\'\nclient_id = os.environ[\'M2M_CLIENT_ID\']\n\n# Add a new secret to the specified client\nresponse = sc.m2m_client.add_organization_client_secret(\n    organization_id=org_id,\n    client_id=client_id\n)\n\n# Extract the secret ID from the response\nsecret_id = response[0].secret.id\202\265\030\002\030T\202\323\344\223\002E\"C/api/v1/organizations/{organization_id}/clients/{client_id}/secrets'
  _globals['_CLIENTSERVICE'].methods_by_name['DeleteOrganizationClientSecret']._loaded_options = None
  _globals['_CLIENTSERVICE'].methods_by_name['DeleteOrganizationClientSecret']._serialized_options = b'\222A\225\005\n\010API Auth\022%Delete organization API client secret\032^Permanently deletes a secret from an organization API client. This operation cannot be undone.JD\n\003200\022=\n;Client secret successfully deleted and no longer accessiblej\273\003\n\rx-codeSamples\022\251\0032\246\003\n\243\003*\240\003\n\025\n\005label\022\014\032\nPython SDK\n\020\n\004lang\022\010\032\006python\n\364\002\n\006source\022\351\002\032\346\002# Get client and secret IDs from environment variables\norg_id = \'<SCALEKIT_ORGANIZATION_ID>\'\nclient_id = os.environ[\'M2M_CLIENT_ID\']\nsecret_id = os.environ[\'M2M_SECRET_ID\']\n\n# Remove the specified secret from the client\nresponse = sc.m2m_client.remove_organization_client_secret(\n    organization_id=org_id,\n    client_id=client_id,\n    secret_id=secret_id\n)\202\265\030\002\030T\202\323\344\223\002Q*O/api/v1/organizations/{organization_id}/clients/{client_id}/secrets/{secret_id}'
  _globals['_CLIENTSERVICE'].methods_by_name['UpdateOrganizationClient']._loaded_options = None
  _globals['_CLIENTSERVICE'].methods_by_name['UpdateOrganizationClient']._serialized_options = b'\222A\367\007\n\010API Auth\022\036Update organization API client\032PUpdates an existing organization API client. Only specified fields are modified.J\344\001\n\003200\022\334\001\n\236\001Returns the updated organization API client with all current details reflected in the response, including modified scopes, audience values, and custom claims.\0229\n7\0325.scalekit.v1.clients.UpdateOrganizationClientResponsej\221\005\n\rx-codeSamples\022\377\0042\374\004\n\371\004*\366\004\n\025\n\005label\022\014\032\nPython SDK\n\020\n\004lang\022\010\032\006python\n\312\004\n\006source\022\277\004\032\274\004from scalekit.v1.clients.clients_pb2 import OrganizationClient\n\norg_id = \'<SCALEKIT_ORGANIZATION_ID>\'\nclient_id = os.environ[\'M2M_CLIENT_ID\']\n\nupdate_m2m_client = OrganizationClient(\n    description=\"Service account for GitHub Actions to deploy applications to production_eu\",\n    custom_claims=[\n        {\"key\": \"github_repository\", \"value\": \"acmecorp/inventory\"},\n        {\"key\": \"environment\", \"value\": \"production_eu\"}\n    ]\n)\n\nresponse = sc.m2m_client.update_organization_client(\n    organization_id=org_id,\n    client_id=client_id,\n    m2m_client=update_m2m_client\n)\202\265\030\002\030T\202\323\344\223\002E2;/api/v1/organizations/{organization_id}/clients/{client_id}:\006client'
  _globals['_CLIENTSERVICE'].methods_by_name['DeleteOrganizationClient']._loaded_options = None
  _globals['_CLIENTSERVICE'].methods_by_name['DeleteOrganizationClient']._serialized_options = b'\222A\333\005\n\010API Auth\022\036Delete organization API client\032\356\001Permanently deletes an API client from an organization. This operation cannot be undone and will revoke all access for the client. All associated secrets will also be invalidated. Use this endpoint to remove unused or compromised clients.JN\n\003200\022G\nEOrganization API client successfully deleted and no longer accessiblej\355\002\n\rx-codeSamples\022\333\0022\330\002\n\325\002*\322\002\n\025\n\005label\022\014\032\nPython SDK\n\020\n\004lang\022\010\032\006python\n\246\002\n\006source\022\233\002\032\230\002# Get client ID from environment variables\norg_id = \'<SCALEKIT_ORGANIZATION_ID>\'\nclient_id = os.environ[\'M2M_CLIENT_ID\']\n\n# Delete the specified client from the organization\nresponse = sc.m2m_client.delete_organization_client(\n    organization_id=org_id,\n    client_id=client_id\n)\202\265\030\002\030T\202\323\344\223\002=*;/api/v1/organizations/{organization_id}/clients/{client_id}'
  _globals['_CLIENTSERVICE'].methods_by_name['ListOrganizationClients']._loaded_options = None
  _globals['_CLIENTSERVICE'].methods_by_name['ListOrganizationClients']._serialized_options = b'\222A\340\006\n\010API Auth\022\035List organization API clients\032\271\001Retrieves a paginated list of API clients for a specific organization. Returns client details including metadata, scopes, and secret information (without exposing actual secret values).J\270\001\n\003200\022\260\001\ntList of organization API clients returned successfully. Each client includes its configuration details and metadata.\0228\n6\0324.scalekit.v1.clients.ListOrganizationClientsResponsej\275\003\n\rx-codeSamples\022\253\0032\250\003\n\245\003*\242\003\n\025\n\005label\022\014\032\nPython SDK\n\020\n\004lang\022\010\032\006python\n\366\002\n\006source\022\353\002\032\350\002# List clients for a specific organization\norg_id = \'SCALEKIT_ORGANIZATION_ID\'\n\n# Retrieve all clients with default pagination\nresponse = sc.m2m_client.list_organization_clients(\n    organization_id=org_id,\n    page_size=30\n)\n\n# Access the clients list\nclients = response.clients\nfor client in clients:\n    print(f\"Client ID: {client.id}, Name: {client.name}\")\202\265\030\002\030T\202\323\344\223\0021\022//api/v1/organizations/{organization_id}/clients'
  _globals['_CLIENTSERVICE'].methods_by_name['CreateResource']._loaded_options = None
  _globals['_CLIENTSERVICE'].methods_by_name['CreateResource']._serialized_options = b'\222A\355\001\n\010API Auth\022\017Create Resource\032XCreates a new client resource. The response includes the resource ID and other metadata.Jv\n\003201\022o\n<Resource created successfully. Returns the created resource.\022/\n-\032+.scalekit.v1.clients.CreateResourceResponse\202\265\030\002\030T\372\322\344\223\002\t\022\007PREVIEW\202\323\344\223\002\035\"\021/api/v1/resources:\010resource'
  _globals['_CLIENTSERVICE'].methods_by_name['GetResource']._loaded_options = None
  _globals['_CLIENTSERVICE'].methods_by_name['GetResource']._serialized_options = b'\222A\307\001\n\010API Auth\022\014Get Resource\0326Retrieves details of a specific client resource by ID.Ju\n\003200\022n\n>Resource details retrieved successfully. Returns the resource.\022,\n*\032(.scalekit.v1.clients.GetResourceResponse\202\265\030\002\030T\372\322\344\223\002\t\022\007PREVIEW\202\323\344\223\002!\022\037/api/v1/resources/{resource_id}'
  _globals['_CLIENTSERVICE'].methods_by_name['ListResources']._loaded_options = None
  _globals['_CLIENTSERVICE'].methods_by_name['ListResources']._serialized_options = b'\222A\270\001\n\010API Auth\022\021List applications\0326Retrieves a paginated list of API client applications.Ja\n\003200\022Z\n(List of resources returned successfully.\022.\n,\032*.scalekit.v1.clients.ListResourcesResponse\202\265\030\002\030T\372\322\344\223\002\t\022\007PREVIEW\202\323\344\223\002\023\022\021/api/v1/resources'
  _globals['_CLIENTSERVICE'].methods_by_name['UpdateResource']._loaded_options = None
  _globals['_CLIENTSERVICE'].methods_by_name['UpdateResource']._serialized_options = b'\222A\335\001\n\010API Auth\022\017Update Resource\032HUpdates an existing client resource. Only specified fields are modified.Jv\n\003200\022o\n<Resource updated successfully. Returns the updated resource.\022/\n-\032+.scalekit.v1.clients.UpdateResourceResponse\202\265\030\002\030T\372\322\344\223\002\t\022\007PREVIEW\202\323\344\223\002+2\037/api/v1/resources/{resource_id}:\010resource'
  _globals['_CLIENTSERVICE'].methods_by_name['DeleteResource']._loaded_options = None
  _globals['_CLIENTSERVICE'].methods_by_name['DeleteResource']._serialized_options = b'\222A\374\001\n\010API Auth\022\017Delete Resource\032\235\001Permanently deletes a client resource. This operation cannot be undone and will remove the resource along with all its associated clients and configurations.J?\n\003200\0228\n6Resource successfully deleted and no longer accessible\202\265\030\002\030T\372\322\344\223\002\t\022\007PREVIEW\202\323\344\223\002!*\037/api/v1/resources/{resource_id}'
  _globals['_CLIENTSERVICE'].methods_by_name['DeleteResourceProvider']._loaded_options = None
  _globals['_CLIENTSERVICE'].methods_by_name['DeleteResourceProvider']._serialized_options = b'\222A\351\001\n\010API Auth\022\035Delete Provider from resource\032GDelete Provider from resource to use scalekit full stack authenticationJu\n\003200\022n\n>Resource details retrieved successfully. Returns the resource.\022,\n*\032(.scalekit.v1.clients.GetResourceResponse\202\265\030\002\030T\372\322\344\223\002\t\022\007PREVIEW\202\323\344\223\0021\032//api/v1/resources/{resource_id}/provider:delete'
  _globals['_CLIENTSERVICE'].methods_by_name['CreateResourceClient']._loaded_options = None
  _globals['_CLIENTSERVICE'].methods_by_name['CreateResourceClient']._serialized_options = b'\222A\247\002\n\010API Auth\022\026Create Resource Client\032pCreates a new API client under the specified resource. Returns client details and the plain secret (shown once).J\220\001\n\003201\022\210\001\nOClient created successfully. Returns the client configuration and plain secret.\0225\n3\0321.scalekit.v1.clients.CreateResourceClientResponse\202\265\030\002\030T\372\322\344\223\002\t\022\007PREVIEW\202\323\344\223\0021\"\'/api/v1/resources/{resource_id}/clients:\006client'
  _globals['_CLIENTSERVICE'].methods_by_name['GetResourceClient']._loaded_options = None
  _globals['_CLIENTSERVICE'].methods_by_name['GetResourceClient']._serialized_options = b'\222A\205\002\n\010API Auth\022\027Get Resource API Client\032JRetrieves details of a specific API client associated with an application.J\223\001\n\003200\022\213\001\nUClient details retrieved successfully. Returns the resource and client configuration.\0222\n0\032..scalekit.v1.clients.GetResourceClientResponse\202\265\030\002\030T\372\322\344\223\002\t\022\007PREVIEW\202\323\344\223\0025\0223/api/v1/resources/{resource_id}/clients/{client_id}'
  _globals['_CLIENTSERVICE'].methods_by_name['RegisterClient']._loaded_options = None
  _globals['_CLIENTSERVICE'].methods_by_name['RegisterClient']._serialized_options = b'\222A\302\002\n\010API Auth\022\023Register API client\032\204\001Registers a new API client under an existing resource using dynamic client registration. Returns the created client and its secrets.J\231\001\n\003201\022\221\001\n^Client registered successfully. Returns client details and plain secret (available only once).\022/\n-\032+.scalekit.v1.clients.RegisterClientResponse\202\265\030\002\030\001\372\322\344\223\002\t\022\007PREVIEW\202\323\344\223\0025\"+/api/v1/resources/{res_id}/clients:register:\006client'
  _globals['_CLIENTSERVICE'].methods_by_name['CreateScope']._loaded_options = None
  _globals['_CLIENTSERVICE'].methods_by_name['CreateScope']._serialized_options = b'\210\002\001\222A\353\003\022\031Create scope (Deprecated)\032\241\002DEPRECATED: Use permission management APIs instead. Creates a new OAuth scope for API authorization. Scopes define the level of access granted to API clients. Reserved OpenID Connect scopes (profile, email, address, phone) cannot be created as they are automatically managed by the system.J\251\001\n\003201\022\241\001\nqOAuth scope created successfully. Returns the newly created scope with its name, description, and enabled status.\022,\n*\032(.scalekit.v1.clients.CreateScopeResponse\202\265\030\002\030P\372\322\344\223\002\t\022\007PREVIEW\202\323\344\223\002F\"\016/api/v1/scopes:\005scopeZ-\"$/api/v1/environments/{env_id}/scopes:\005scope'
  _globals['_CLIENTSERVICE'].methods_by_name['ListScopes']._loaded_options = None
  _globals['_CLIENTSERVICE'].methods_by_name['ListScopes']._serialized_options = b'\222A\262\002\022\013List scopes\032\177Retrieves all OAuth scopes configured for the environment. Returns both custom scopes and system-managed OpenID Connect scopes.J\241\001\n\003200\022\231\001\njList of OAuth scopes returned successfully. Each scope includes its name, description, and enabled status.\022+\n)\032\'.scalekit.v1.clients.ListScopesResponse\202\265\030\002\030p\372\322\344\223\002\t\022\007PREVIEW\202\323\344\223\0028\022\016/api/v1/scopesZ&\022$/api/v1/environments/{env_id}/scopes'
  _globals['_CLIENTSERVICE'].methods_by_name['UpdateScope']._loaded_options = None
  _globals['_CLIENTSERVICE'].methods_by_name['UpdateScope']._serialized_options = b'\210\002\001\222A\216\003\022\031Update scope (Deprecated)\032\340\001DEPRECATED:  Use permission management APIs instead. Updates an existing OAuth scope\'s description and enabled status. Reserved OpenID Connect scopes (profile, email, address, phone) cannot be modified through this endpoint.J\215\001\n\003200\022\205\001\nUOAuth scope updated successfully. Returns the updated scope with all current details.\022,\n*\032(.scalekit.v1.clients.UpdateScopeResponse\202\265\030\002\030P\372\322\344\223\002\t\022\007PREVIEW\202\323\344\223\002\0342\023/api/v1/scopes/{id}:\005scope'
  _globals['_CLIENTSERVICE'].methods_by_name['DeleteScope']._loaded_options = None
  _globals['_CLIENTSERVICE'].methods_by_name['DeleteScope']._serialized_options = b'\210\002\001\222A\330\002\022\031Delete scope (Deprecated)\032\366\001DEPRECATED: Use permission management APIs instead. Permanently deletes an OAuth scope from the environment. This operation cannot be undone. Reserved OpenID Connect scopes (profile, email, address, phone) cannot be deleted through this endpoint.JB\n\003200\022;\n9OAuth scope successfully deleted and no longer accessible\202\265\030\002\030P\372\322\344\223\002\t\022\007PREVIEW\202\323\344\223\002\025*\023/api/v1/scopes/{id}'
  _globals['_CLIENTSERVICE'].methods_by_name['GetConsentDetails']._loaded_options = None
  _globals['_CLIENTSERVICE'].methods_by_name['GetConsentDetails']._serialized_options = b'\202\265\030\002\030\001\372\322\344\223\002\t\022\007PREVIEW\202\323\344\223\002\037\022\035/api/v1/oauth/consent/details'
  _globals['_RESOURCETYPE']._serialized_start=37591
  _globals['_RESOURCETYPE']._serialized_end=37698
  _globals['_CLIENTSECRETSTATUS']._serialized_start=37700
  _globals['_CLIENTSECRETSTATUS']._serialized_end=37746
  _globals['_CREATERESOURCEREQUEST']._serialized_start=515
  _globals['_CREATERESOURCEREQUEST']._serialized_end=653
  _globals['_CREATERESOURCE']._serialized_start=656
  _globals['_CREATERESOURCE']._serialized_end=2030
  _globals['_RESOURCECLIENT']._serialized_start=2033
  _globals['_RESOURCECLIENT']._serialized_end=2811
  _globals['_CREATERESOURCERESPONSE']._serialized_start=2813
  _globals['_CREATERESOURCERESPONSE']._serialized_end=2934
  _globals['_GETRESOURCEREQUEST']._serialized_start=2937
  _globals['_GETRESOURCEREQUEST']._serialized_end=3083
  _globals['_GETRESOURCERESPONSE']._serialized_start=3085
  _globals['_GETRESOURCERESPONSE']._serialized_end=3205
  _globals['_DELETERESOURCEPROVIDERREQUEST']._serialized_start=3208
  _globals['_DELETERESOURCEPROVIDERREQUEST']._serialized_end=3365
  _globals['_DELETERESOURCEREQUEST']._serialized_start=3368
  _globals['_DELETERESOURCEREQUEST']._serialized_end=3515
  _globals['_APPLICATION']._serialized_start=3518
  _globals['_APPLICATION']._serialized_end=5028
  _globals['_RESOURCE']._serialized_start=5031
  _globals['_RESOURCE']._serialized_end=7612
  _globals['_REGISTERCLIENTREQUEST']._serialized_start=7615
  _globals['_REGISTERCLIENTREQUEST']._serialized_end=7857
  _globals['_REGISTERCLIENT']._serialized_start=7860
  _globals['_REGISTERCLIENT']._serialized_end=8650
  _globals['_REGISTERCLIENTRESPONSE']._serialized_start=8653
  _globals['_REGISTERCLIENTRESPONSE']._serialized_end=11317
  _globals['_LISTRESOURCESREQUEST']._serialized_start=11320
  _globals['_LISTRESOURCESREQUEST']._serialized_end=11638
  _globals['_LISTRESOURCESRESPONSE']._serialized_start=11641
  _globals['_LISTRESOURCESRESPONSE']._serialized_end=11903
  _globals['_UPDATERESOURCEREQUEST']._serialized_start=11906
  _globals['_UPDATERESOURCEREQUEST']._serialized_end=12209
  _globals['_UPDATERESOURCE']._serialized_start=12212
  _globals['_UPDATERESOURCE']._serialized_end=13473
  _globals['_UPDATERESOURCERESPONSE']._serialized_start=13475
  _globals['_UPDATERESOURCERESPONSE']._serialized_end=13596
  _globals['_CREATERESOURCECLIENTREQUEST']._serialized_start=13599
  _globals['_CREATERESOURCECLIENTREQUEST']._serialized_end=13851
  _globals['_CREATERESOURCECLIENTRESPONSE']._serialized_start=13854
  _globals['_CREATERESOURCECLIENTRESPONSE']._serialized_end=14102
  _globals['_GETRESOURCECLIENTREQUEST']._serialized_start=14105
  _globals['_GETRESOURCECLIENTREQUEST']._serialized_end=14383
  _globals['_GETRESOURCECLIENTRESPONSE']._serialized_start=14386
  _globals['_GETRESOURCECLIENTRESPONSE']._serialized_end=14606
  _globals['_CREATEORGANIZATIONCLIENTREQUEST']._serialized_start=14609
  _globals['_CREATEORGANIZATIONCLIENTREQUEST']._serialized_end=14879
  _globals['_ORGANIZATIONCLIENT']._serialized_start=14882
  _globals['_ORGANIZATIONCLIENT']._serialized_end=16458
  _globals['_CREATEORGANIZATIONCLIENTRESPONSE']._serialized_start=16461
  _globals['_CREATEORGANIZATIONCLIENTRESPONSE']._serialized_end=16713
  _globals['_UPDATEORGANIZATIONCLIENTREQUEST']._serialized_start=16716
  _globals['_UPDATEORGANIZATIONCLIENTREQUEST']._serialized_end=17093
  _globals['_UPDATEORGANIZATIONCLIENTRESPONSE']._serialized_start=17095
  _globals['_UPDATEORGANIZATIONCLIENTRESPONSE']._serialized_end=17221
  _globals['_M2MCLIENT']._serialized_start=17224
  _globals['_M2MCLIENT']._serialized_end=20041
  _globals['_GETORGANIZATIONCLIENTREQUEST']._serialized_start=20044
  _globals['_GETORGANIZATIONCLIENTREQUEST']._serialized_end=20314
  _globals['_GETORGANIZATIONCLIENTRESPONSE']._serialized_start=20316
  _globals['_GETORGANIZATIONCLIENTRESPONSE']._serialized_end=20441
  _globals['_CUSTOMCLAIM']._serialized_start=20444
  _globals['_CUSTOMCLAIM']._serialized_end=20784
  _globals['_CREATEORGANIZATIONCLIENTSECRETREQUEST']._serialized_start=20787
  _globals['_CREATEORGANIZATIONCLIENTSECRETREQUEST']._serialized_end=21066
  _globals['_CREATEORGANIZATIONCLIENTSECRETRESPONSE']._serialized_start=21069
  _globals['_CREATEORGANIZATIONCLIENTSECRETRESPONSE']._serialized_end=21336
  _globals['_DELETEORGANIZATIONCLIENTSECRETREQUEST']._serialized_start=21339
  _globals['_DELETEORGANIZATIONCLIENTSECRETREQUEST']._serialized_end=21725
  _globals['_LISTORGANIZATIONCLIENTSREQUEST']._serialized_start=21728
  _globals['_LISTORGANIZATIONCLIENTSREQUEST']._serialized_end=22448
  _globals['_LISTORGANIZATIONCLIENTSRESPONSE']._serialized_start=22451
  _globals['_LISTORGANIZATIONCLIENTSRESPONSE']._serialized_end=23256
  _globals['_DELETEORGANIZATIONCLIENTREQUEST']._serialized_start=23259
  _globals['_DELETEORGANIZATIONCLIENTREQUEST']._serialized_end=23646
  _globals['_GETCLIENTREQUEST']._serialized_start=23649
  _globals['_GETCLIENTREQUEST']._serialized_end=23814
  _globals['_GETCLIENTRESPONSE']._serialized_start=23817
  _globals['_GETCLIENTRESPONSE']._serialized_end=24062
  _globals['_LISTCLIENTSREQUEST']._serialized_start=24065
  _globals['_LISTCLIENTSREQUEST']._serialized_end=24305
  _globals['_LISTCLIENTSRESPONSE']._serialized_start=24308
  _globals['_LISTCLIENTSRESPONSE']._serialized_end=24617
  _globals['_UPDATECLIENTREQUEST']._serialized_start=24620
  _globals['_UPDATECLIENTREQUEST']._serialized_end=25126
  _globals['_UPDATECLIENT']._serialized_start=25129
  _globals['_UPDATECLIENT']._serialized_end=27217
  _globals['_UPDATECLIENTRESPONSE']._serialized_start=27220
  _globals['_UPDATECLIENTRESPONSE']._serialized_end=27388
  _globals['_CREATECLIENTSECRETREQUEST']._serialized_start=27391
  _globals['_CREATECLIENTSECRETREQUEST']._serialized_end=27565
  _globals['_CREATECLIENTSECRETRESPONSE']._serialized_start=27568
  _globals['_CREATECLIENTSECRETRESPONSE']._serialized_end=27997
  _globals['_UPDATECLIENTSECRETREQUEST']._serialized_start=28000
  _globals['_UPDATECLIENTSECRETREQUEST']._serialized_end=28643
  _globals['_UPDATECLIENTSECRET']._serialized_start=28646
  _globals['_UPDATECLIENTSECRET']._serialized_end=28882
  _globals['_UPDATECLIENTSECRETRESPONSE']._serialized_start=28885
  _globals['_UPDATECLIENTSECRETRESPONSE']._serialized_end=29116
  _globals['_DELETECLIENTSECRETREQUEST']._serialized_start=29119
  _globals['_DELETECLIENTSECRETREQUEST']._serialized_end=29457
  _globals['_CLIENT']._serialized_start=29460
  _globals['_CLIENT']._serialized_end=32718
  _globals['_CLIENTSECRET']._serialized_start=32721
  _globals['_CLIENTSECRET']._serialized_end=35218
  _globals['_SCOPE']._serialized_start=35221
  _globals['_SCOPE']._serialized_end=35533
  _globals['_CREATESCOPE']._serialized_start=35535
  _globals['_CREATESCOPE']._serialized_end=35648
  _globals['_CREATESCOPEREQUEST']._serialized_start=35651
  _globals['_CREATESCOPEREQUEST']._serialized_end=35894
  _globals['_CREATESCOPERESPONSE']._serialized_start=35896
  _globals['_CREATESCOPERESPONSE']._serialized_end=35967
  _globals['_LISTSCOPESREQUEST']._serialized_start=35970
  _globals['_LISTSCOPESREQUEST']._serialized_end=36140
  _globals['_LISTSCOPESRESPONSE']._serialized_start=36142
  _globals['_LISTSCOPESRESPONSE']._serialized_end=36214
  _globals['_UPDATESCOPEREQUEST']._serialized_start=36216
  _globals['_UPDATESCOPEREQUEST']._serialized_end=36327
  _globals['_UPDATESCOPE']._serialized_start=36329
  _globals['_UPDATESCOPE']._serialized_end=36440
  _globals['_UPDATESCOPERESPONSE']._serialized_start=36442
  _globals['_UPDATESCOPERESPONSE']._serialized_end=36513
  _globals['_DELETESCOPEREQUEST']._serialized_start=36515
  _globals['_DELETESCOPEREQUEST']._serialized_end=36564
  _globals['_GETCONSENTDETAILSRESPONSE']._serialized_start=36567
  _globals['_GETCONSENTDETAILSRESPONSE']._serialized_end=37171
  _globals['_CONSENTCLIENT']._serialized_start=37174
  _globals['_CONSENTCLIENT']._serialized_end=37379
  _globals['_CONSENTSCOPE']._serialized_start=37381
  _globals['_CONSENTSCOPE']._serialized_end=37473
  _globals['_USER']._serialized_start=37475
  _globals['_USER']._serialized_end=37589
  _globals['_CLIENTSERVICE']._serialized_start=37750
  _globals['_CLIENTSERVICE']._serialized_end=55624
# @@protoc_insertion_point(module_scope)
