cx_api/generated/
com.coralogix.permissions.v1.rs

1// This file is @generated by prost-build.
2#[derive(serde::Serialize, serde::Deserialize)]
3#[serde(rename_all = "snake_case")]
4#[derive(Clone, PartialEq, ::prost::Message)]
5pub struct UserId {
6    #[prost(string, tag = "1")]
7    pub id: ::prost::alloc::string::String,
8}
9#[derive(serde::Serialize, serde::Deserialize)]
10#[serde(rename_all = "snake_case")]
11#[derive(Clone, Copy, PartialEq, ::prost::Message)]
12pub struct TeamId {
13    #[prost(uint32, tag = "1")]
14    pub id: u32,
15}
16#[derive(serde::Serialize, serde::Deserialize)]
17#[serde(rename_all = "snake_case")]
18#[derive(Clone, Copy, PartialEq, ::prost::Message)]
19pub struct UserAccountId {
20    #[prost(uint32, tag = "1")]
21    pub id: u32,
22}
23#[derive(serde::Serialize, serde::Deserialize)]
24#[serde(rename_all = "snake_case")]
25#[derive(Clone, PartialEq, ::prost::Message)]
26pub struct OrganizationId {
27    #[prost(string, tag = "1")]
28    pub id: ::prost::alloc::string::String,
29}
30#[derive(serde::Serialize, serde::Deserialize)]
31#[serde(rename_all = "snake_case")]
32#[derive(Clone, Copy, PartialEq, ::prost::Message)]
33pub struct RoleId {
34    #[prost(uint32, tag = "1")]
35    pub id: u32,
36}
37#[derive(serde::Serialize, serde::Deserialize)]
38#[serde(rename_all = "snake_case")]
39#[derive(Clone, PartialEq, ::prost::Message)]
40pub struct OrgGroupId {
41    #[prost(string, tag = "1")]
42    pub id: ::prost::alloc::string::String,
43}
44#[derive(serde::Serialize, serde::Deserialize)]
45#[serde(rename_all = "snake_case")]
46#[derive(Clone, Copy, PartialEq, ::prost::Message)]
47pub struct TeamGroupId {
48    #[prost(uint32, tag = "1")]
49    pub id: u32,
50}
51#[derive(serde::Serialize, serde::Deserialize)]
52#[serde(rename_all = "snake_case")]
53#[derive(Clone, Copy, PartialEq, ::prost::Message)]
54pub struct ScopeId {
55    #[prost(uint32, tag = "1")]
56    pub id: u32,
57}
58#[derive(serde::Serialize, serde::Deserialize)]
59#[serde(rename_all = "snake_case")]
60#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
61#[repr(i32)]
62pub enum Resource {
63    Unspecified = 0,
64    Coralogix = 1,
65    Kibana = 2,
66    Apiaccess = 3,
67    Grafana = 4,
68    Accountmanager = 5,
69    Groups = 6,
70    Alerts = 7,
71    Webhooks = 8,
72    LogsDataingress = 9,
73    SpansDataingress = 10,
74    MetricsDataingress = 11,
75    Apikeys = 12,
76    Team = 13,
77    TeamInvites = 14,
78    Sso = 15,
79    QueryDataLegacy = 16,
80    ApiKeyLegacy = 17,
81    SnowbitSetup = 18,
82    SnowbitOverview = 19,
83    SnowbitCspm = 20,
84    SnowbitResourceExplorer = 21,
85    SnowbitSspm = 22,
86    SnowbitAlerts = 23,
87    CloudSecurity = 24,
88    UserApiKeys = 25,
89    TeamApiKeys = 26,
90    TeamApiKeysSecuritySettings = 27,
91    TeamDashboards = 28,
92    CloudMetadataEnrichment = 29,
93    GeoEnrichment = 30,
94    GlobalMapping = 31,
95    K8sInfraMonitoring = 32,
96    SecurityEnrichment = 33,
97    Serverless = 34,
98    TeamCustomEnrichment = 35,
99    Jaeger = 36,
100    ServiceMap = 37,
101    SpansDataAnalyticsHigh = 38,
102    SpansDataApiHigh = 39,
103    SpansDataSetupHigh = 40,
104    TeamActions = 41,
105    TeamAuditing = 42,
106    TeamPayAsYouGo = 43,
107    TeamPayments = 44,
108    TeamSlackNotifications = 45,
109    UserActions = 46,
110    UserEmailNotifications = 47,
111    VersionBenchmarksReports = 48,
112    AlertsMap = 49,
113    CloudMetadataIngress = 50,
114    ContextualData = 51,
115    DataMap = 52,
116    DataUsage = 53,
117    Extensions = 54,
118    HomeDashboard = 55,
119    Incidents = 56,
120    Integrations = 57,
121    LegacyArchiveQueries = 58,
122    Livetail = 59,
123    LogsDataAnalyticsHigh = 60,
124    LogsDataAnalyticsLow = 61,
125    LogsDataApiHigh = 62,
126    LogsDataApiLow = 63,
127    LogsDataSetupHigh = 64,
128    LogsDataSetupLow = 65,
129    LogsEvents2metrics = 66,
130    LogsTco = 67,
131    MetricsDataAnalyticsHigh = 68,
132    MetricsDataAnalyticsLow = 69,
133    MetricsDataApiHigh = 70,
134    MetricsDataApiLow = 71,
135    MetricsDataSetupHigh = 72,
136    MetricsDataSetupLow = 73,
137    MetricsRecordingRules = 74,
138    MetricsTco = 75,
139    OpensearchDashboards = 76,
140    OrgAdmins = 77,
141    OrgQuota = 78,
142    OrgSettings = 79,
143    OrgTeams = 80,
144    OutboundWebhooks = 81,
145    ParsingRules = 82,
146    Rum = 83,
147    RumIngress = 84,
148    ServiceCatalog = 85,
149    SpansDataAnalyticsLow = 86,
150    SpansDataApiLow = 87,
151    TracesDataIngress = 88,
152    SpansDataSetupLow = 89,
153    SpansEvents2metrics = 90,
154    SpansTco = 91,
155    TeamDomain = 92,
156    TeamGroups = 93,
157    TeamIpAccess = 94,
158    TeamMembers = 95,
159    TeamRoles = 96,
160    TeamSavedViews = 97,
161    TeamScim = 98,
162    TeamSessions = 99,
163    TeamSso = 100,
164    UserDashboards = 101,
165    UserLegacyLogsQueryApiKeys = 102,
166    UserLegacyOtherApiKeys = 103,
167    UserSavedViews = 104,
168    UserSettings = 105,
169    VersionBenchmarkTags = 106,
170    SourceMapping = 107,
171    SetupCorrelation = 108,
172    LogsAlerts = 109,
173    SpansAlerts = 110,
174    MetricsAlerts = 111,
175    SuppressionRules = 112,
176    UserAuthInfo = 113,
177    TeamScopes = 114,
178    TeamQuota = 115,
179    RumTeamSavedFilter = 116,
180    RumUserSavedFilter = 117,
181    Investigations = 118,
182    DataIngestApiKeys = 119,
183    PersonalCustomApiKeys = 120,
184    TeamCustomApiKeys = 121,
185    LogsDataOutSetup = 122,
186    DataprimeAiQueryAssistant = 123,
187    TeamLandingPage = 124,
188    ResourceCatalog = 125,
189    TeamAlertsSettings = 126,
190    TeamAiSettings = 127,
191    NotificationCenterConnectors = 128,
192    NotificationCenterPresets = 129,
193    HideErrors = 130,
194    RumSettings = 131,
195    SessionRecording = 132,
196    NotificationCenterRouters = 133,
197    ProfilesDataIngress = 134,
198    AiAppCatalog = 135,
199    AiAppDiscovery = 136,
200    AiAppEvaluators = 137,
201    AiOverview = 138,
202    AiSpm = 139,
203    LogsReservedFields = 140,
204    ProfilesCpuProfiles = 141,
205    ProfilesDebugSymbols = 142,
206    SloMgmtAlerts = 143,
207    Slo = 144,
208    SystemDatasets = 145,
209    TeamQuotaRules = 146,
210    SplitIndex = 147,
211    AccessPolicies = 148,
212    PipelineAnalyzer = 149,
213}
214impl Resource {
215    /// String value of the enum field names used in the ProtoBuf definition.
216    ///
217    /// The values are not transformed in any way and thus are considered stable
218    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
219    pub fn as_str_name(&self) -> &'static str {
220        match self {
221            Self::Unspecified => "RESOURCE_UNSPECIFIED",
222            Self::Coralogix => "RESOURCE_CORALOGIX",
223            Self::Kibana => "RESOURCE_KIBANA",
224            Self::Apiaccess => "RESOURCE_APIACCESS",
225            Self::Grafana => "RESOURCE_GRAFANA",
226            Self::Accountmanager => "RESOURCE_ACCOUNTMANAGER",
227            Self::Groups => "RESOURCE_GROUPS",
228            Self::Alerts => "RESOURCE_ALERTS",
229            Self::Webhooks => "RESOURCE_WEBHOOKS",
230            Self::LogsDataingress => "RESOURCE_LOGS_DATAINGRESS",
231            Self::SpansDataingress => "RESOURCE_SPANS_DATAINGRESS",
232            Self::MetricsDataingress => "RESOURCE_METRICS_DATAINGRESS",
233            Self::Apikeys => "RESOURCE_APIKEYS",
234            Self::Team => "RESOURCE_TEAM",
235            Self::TeamInvites => "RESOURCE_TEAM_INVITES",
236            Self::Sso => "RESOURCE_SSO",
237            Self::QueryDataLegacy => "RESOURCE_QUERY_DATA_LEGACY",
238            Self::ApiKeyLegacy => "RESOURCE_API_KEY_LEGACY",
239            Self::SnowbitSetup => "RESOURCE_SNOWBIT_SETUP",
240            Self::SnowbitOverview => "RESOURCE_SNOWBIT_OVERVIEW",
241            Self::SnowbitCspm => "RESOURCE_SNOWBIT_CSPM",
242            Self::SnowbitResourceExplorer => "RESOURCE_SNOWBIT_RESOURCE_EXPLORER",
243            Self::SnowbitSspm => "RESOURCE_SNOWBIT_SSPM",
244            Self::SnowbitAlerts => "RESOURCE_SNOWBIT_ALERTS",
245            Self::CloudSecurity => "RESOURCE_CLOUD_SECURITY",
246            Self::UserApiKeys => "RESOURCE_USER_API_KEYS",
247            Self::TeamApiKeys => "RESOURCE_TEAM_API_KEYS",
248            Self::TeamApiKeysSecuritySettings => {
249                "RESOURCE_TEAM_API_KEYS_SECURITY_SETTINGS"
250            }
251            Self::TeamDashboards => "RESOURCE_TEAM_DASHBOARDS",
252            Self::CloudMetadataEnrichment => "RESOURCE_CLOUD_METADATA_ENRICHMENT",
253            Self::GeoEnrichment => "RESOURCE_GEO_ENRICHMENT",
254            Self::GlobalMapping => "RESOURCE_GLOBAL_MAPPING",
255            Self::K8sInfraMonitoring => "RESOURCE_K8S_INFRA_MONITORING",
256            Self::SecurityEnrichment => "RESOURCE_SECURITY_ENRICHMENT",
257            Self::Serverless => "RESOURCE_SERVERLESS",
258            Self::TeamCustomEnrichment => "RESOURCE_TEAM_CUSTOM_ENRICHMENT",
259            Self::Jaeger => "RESOURCE_JAEGER",
260            Self::ServiceMap => "RESOURCE_SERVICE_MAP",
261            Self::SpansDataAnalyticsHigh => "RESOURCE_SPANS_DATA_ANALYTICS_HIGH",
262            Self::SpansDataApiHigh => "RESOURCE_SPANS_DATA_API_HIGH",
263            Self::SpansDataSetupHigh => "RESOURCE_SPANS_DATA_SETUP_HIGH",
264            Self::TeamActions => "RESOURCE_TEAM_ACTIONS",
265            Self::TeamAuditing => "RESOURCE_TEAM_AUDITING",
266            Self::TeamPayAsYouGo => "RESOURCE_TEAM_PAY_AS_YOU_GO",
267            Self::TeamPayments => "RESOURCE_TEAM_PAYMENTS",
268            Self::TeamSlackNotifications => "RESOURCE_TEAM_SLACK_NOTIFICATIONS",
269            Self::UserActions => "RESOURCE_USER_ACTIONS",
270            Self::UserEmailNotifications => "RESOURCE_USER_EMAIL_NOTIFICATIONS",
271            Self::VersionBenchmarksReports => "RESOURCE_VERSION_BENCHMARKS_REPORTS",
272            Self::AlertsMap => "RESOURCE_ALERTS_MAP",
273            Self::CloudMetadataIngress => "RESOURCE_CLOUD_METADATA_INGRESS",
274            Self::ContextualData => "RESOURCE_CONTEXTUAL_DATA",
275            Self::DataMap => "RESOURCE_DATA_MAP",
276            Self::DataUsage => "RESOURCE_DATA_USAGE",
277            Self::Extensions => "RESOURCE_EXTENSIONS",
278            Self::HomeDashboard => "RESOURCE_HOME_DASHBOARD",
279            Self::Incidents => "RESOURCE_INCIDENTS",
280            Self::Integrations => "RESOURCE_INTEGRATIONS",
281            Self::LegacyArchiveQueries => "RESOURCE_LEGACY_ARCHIVE_QUERIES",
282            Self::Livetail => "RESOURCE_LIVETAIL",
283            Self::LogsDataAnalyticsHigh => "RESOURCE_LOGS_DATA_ANALYTICS_HIGH",
284            Self::LogsDataAnalyticsLow => "RESOURCE_LOGS_DATA_ANALYTICS_LOW",
285            Self::LogsDataApiHigh => "RESOURCE_LOGS_DATA_API_HIGH",
286            Self::LogsDataApiLow => "RESOURCE_LOGS_DATA_API_LOW",
287            Self::LogsDataSetupHigh => "RESOURCE_LOGS_DATA_SETUP_HIGH",
288            Self::LogsDataSetupLow => "RESOURCE_LOGS_DATA_SETUP_LOW",
289            Self::LogsEvents2metrics => "RESOURCE_LOGS_EVENTS2METRICS",
290            Self::LogsTco => "RESOURCE_LOGS_TCO",
291            Self::MetricsDataAnalyticsHigh => "RESOURCE_METRICS_DATA_ANALYTICS_HIGH",
292            Self::MetricsDataAnalyticsLow => "RESOURCE_METRICS_DATA_ANALYTICS_LOW",
293            Self::MetricsDataApiHigh => "RESOURCE_METRICS_DATA_API_HIGH",
294            Self::MetricsDataApiLow => "RESOURCE_METRICS_DATA_API_LOW",
295            Self::MetricsDataSetupHigh => "RESOURCE_METRICS_DATA_SETUP_HIGH",
296            Self::MetricsDataSetupLow => "RESOURCE_METRICS_DATA_SETUP_LOW",
297            Self::MetricsRecordingRules => "RESOURCE_METRICS_RECORDING_RULES",
298            Self::MetricsTco => "RESOURCE_METRICS_TCO",
299            Self::OpensearchDashboards => "RESOURCE_OPENSEARCH_DASHBOARDS",
300            Self::OrgAdmins => "RESOURCE_ORG_ADMINS",
301            Self::OrgQuota => "RESOURCE_ORG_QUOTA",
302            Self::OrgSettings => "RESOURCE_ORG_SETTINGS",
303            Self::OrgTeams => "RESOURCE_ORG_TEAMS",
304            Self::OutboundWebhooks => "RESOURCE_OUTBOUND_WEBHOOKS",
305            Self::ParsingRules => "RESOURCE_PARSING_RULES",
306            Self::Rum => "RESOURCE_RUM",
307            Self::RumIngress => "RESOURCE_RUM_INGRESS",
308            Self::ServiceCatalog => "RESOURCE_SERVICE_CATALOG",
309            Self::SpansDataAnalyticsLow => "RESOURCE_SPANS_DATA_ANALYTICS_LOW",
310            Self::SpansDataApiLow => "RESOURCE_SPANS_DATA_API_LOW",
311            Self::TracesDataIngress => "RESOURCE_TRACES_DATA_INGRESS",
312            Self::SpansDataSetupLow => "RESOURCE_SPANS_DATA_SETUP_LOW",
313            Self::SpansEvents2metrics => "RESOURCE_SPANS_EVENTS2METRICS",
314            Self::SpansTco => "RESOURCE_SPANS_TCO",
315            Self::TeamDomain => "RESOURCE_TEAM_DOMAIN",
316            Self::TeamGroups => "RESOURCE_TEAM_GROUPS",
317            Self::TeamIpAccess => "RESOURCE_TEAM_IP_ACCESS",
318            Self::TeamMembers => "RESOURCE_TEAM_MEMBERS",
319            Self::TeamRoles => "RESOURCE_TEAM_ROLES",
320            Self::TeamSavedViews => "RESOURCE_TEAM_SAVED_VIEWS",
321            Self::TeamScim => "RESOURCE_TEAM_SCIM",
322            Self::TeamSessions => "RESOURCE_TEAM_SESSIONS",
323            Self::TeamSso => "RESOURCE_TEAM_SSO",
324            Self::UserDashboards => "RESOURCE_USER_DASHBOARDS",
325            Self::UserLegacyLogsQueryApiKeys => {
326                "RESOURCE_USER_LEGACY_LOGS_QUERY_API_KEYS"
327            }
328            Self::UserLegacyOtherApiKeys => "RESOURCE_USER_LEGACY_OTHER_API_KEYS",
329            Self::UserSavedViews => "RESOURCE_USER_SAVED_VIEWS",
330            Self::UserSettings => "RESOURCE_USER_SETTINGS",
331            Self::VersionBenchmarkTags => "RESOURCE_VERSION_BENCHMARK_TAGS",
332            Self::SourceMapping => "RESOURCE_SOURCE_MAPPING",
333            Self::SetupCorrelation => "RESOURCE_SETUP_CORRELATION",
334            Self::LogsAlerts => "RESOURCE_LOGS_ALERTS",
335            Self::SpansAlerts => "RESOURCE_SPANS_ALERTS",
336            Self::MetricsAlerts => "RESOURCE_METRICS_ALERTS",
337            Self::SuppressionRules => "RESOURCE_SUPPRESSION_RULES",
338            Self::UserAuthInfo => "RESOURCE_USER_AUTH_INFO",
339            Self::TeamScopes => "RESOURCE_TEAM_SCOPES",
340            Self::TeamQuota => "RESOURCE_TEAM_QUOTA",
341            Self::RumTeamSavedFilter => "RESOURCE_RUM_TEAM_SAVED_FILTER",
342            Self::RumUserSavedFilter => "RESOURCE_RUM_USER_SAVED_FILTER",
343            Self::Investigations => "RESOURCE_INVESTIGATIONS",
344            Self::DataIngestApiKeys => "RESOURCE_DATA_INGEST_API_KEYS",
345            Self::PersonalCustomApiKeys => "RESOURCE_PERSONAL_CUSTOM_API_KEYS",
346            Self::TeamCustomApiKeys => "RESOURCE_TEAM_CUSTOM_API_KEYS",
347            Self::LogsDataOutSetup => "RESOURCE_LOGS_DATA_OUT_SETUP",
348            Self::DataprimeAiQueryAssistant => "RESOURCE_DATAPRIME_AI_QUERY_ASSISTANT",
349            Self::TeamLandingPage => "RESOURCE_TEAM_LANDING_PAGE",
350            Self::ResourceCatalog => "RESOURCE_RESOURCE_CATALOG",
351            Self::TeamAlertsSettings => "RESOURCE_TEAM_ALERTS_SETTINGS",
352            Self::TeamAiSettings => "RESOURCE_TEAM_AI_SETTINGS",
353            Self::NotificationCenterConnectors => {
354                "RESOURCE_NOTIFICATION_CENTER_CONNECTORS"
355            }
356            Self::NotificationCenterPresets => "RESOURCE_NOTIFICATION_CENTER_PRESETS",
357            Self::HideErrors => "RESOURCE_HIDE_ERRORS",
358            Self::RumSettings => "RESOURCE_RUM_SETTINGS",
359            Self::SessionRecording => "RESOURCE_SESSION_RECORDING",
360            Self::NotificationCenterRouters => "RESOURCE_NOTIFICATION_CENTER_ROUTERS",
361            Self::ProfilesDataIngress => "RESOURCE_PROFILES_DATA_INGRESS",
362            Self::AiAppCatalog => "RESOURCE_AI_APP_CATALOG",
363            Self::AiAppDiscovery => "RESOURCE_AI_APP_DISCOVERY",
364            Self::AiAppEvaluators => "RESOURCE_AI_APP_EVALUATORS",
365            Self::AiOverview => "RESOURCE_AI_OVERVIEW",
366            Self::AiSpm => "RESOURCE_AI_SPM",
367            Self::LogsReservedFields => "RESOURCE_LOGS_RESERVED_FIELDS",
368            Self::ProfilesCpuProfiles => "RESOURCE_PROFILES_CPU_PROFILES",
369            Self::ProfilesDebugSymbols => "RESOURCE_PROFILES_DEBUG_SYMBOLS",
370            Self::SloMgmtAlerts => "RESOURCE_SLO_MGMT_ALERTS",
371            Self::Slo => "RESOURCE_SLO",
372            Self::SystemDatasets => "RESOURCE_SYSTEM_DATASETS",
373            Self::TeamQuotaRules => "RESOURCE_TEAM_QUOTA_RULES",
374            Self::SplitIndex => "RESOURCE_SPLIT_INDEX",
375            Self::AccessPolicies => "RESOURCE_ACCESS_POLICIES",
376            Self::PipelineAnalyzer => "RESOURCE_PIPELINE_ANALYZER",
377        }
378    }
379    /// Creates an enum from field names used in the ProtoBuf definition.
380    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
381        match value {
382            "RESOURCE_UNSPECIFIED" => Some(Self::Unspecified),
383            "RESOURCE_CORALOGIX" => Some(Self::Coralogix),
384            "RESOURCE_KIBANA" => Some(Self::Kibana),
385            "RESOURCE_APIACCESS" => Some(Self::Apiaccess),
386            "RESOURCE_GRAFANA" => Some(Self::Grafana),
387            "RESOURCE_ACCOUNTMANAGER" => Some(Self::Accountmanager),
388            "RESOURCE_GROUPS" => Some(Self::Groups),
389            "RESOURCE_ALERTS" => Some(Self::Alerts),
390            "RESOURCE_WEBHOOKS" => Some(Self::Webhooks),
391            "RESOURCE_LOGS_DATAINGRESS" => Some(Self::LogsDataingress),
392            "RESOURCE_SPANS_DATAINGRESS" => Some(Self::SpansDataingress),
393            "RESOURCE_METRICS_DATAINGRESS" => Some(Self::MetricsDataingress),
394            "RESOURCE_APIKEYS" => Some(Self::Apikeys),
395            "RESOURCE_TEAM" => Some(Self::Team),
396            "RESOURCE_TEAM_INVITES" => Some(Self::TeamInvites),
397            "RESOURCE_SSO" => Some(Self::Sso),
398            "RESOURCE_QUERY_DATA_LEGACY" => Some(Self::QueryDataLegacy),
399            "RESOURCE_API_KEY_LEGACY" => Some(Self::ApiKeyLegacy),
400            "RESOURCE_SNOWBIT_SETUP" => Some(Self::SnowbitSetup),
401            "RESOURCE_SNOWBIT_OVERVIEW" => Some(Self::SnowbitOverview),
402            "RESOURCE_SNOWBIT_CSPM" => Some(Self::SnowbitCspm),
403            "RESOURCE_SNOWBIT_RESOURCE_EXPLORER" => Some(Self::SnowbitResourceExplorer),
404            "RESOURCE_SNOWBIT_SSPM" => Some(Self::SnowbitSspm),
405            "RESOURCE_SNOWBIT_ALERTS" => Some(Self::SnowbitAlerts),
406            "RESOURCE_CLOUD_SECURITY" => Some(Self::CloudSecurity),
407            "RESOURCE_USER_API_KEYS" => Some(Self::UserApiKeys),
408            "RESOURCE_TEAM_API_KEYS" => Some(Self::TeamApiKeys),
409            "RESOURCE_TEAM_API_KEYS_SECURITY_SETTINGS" => {
410                Some(Self::TeamApiKeysSecuritySettings)
411            }
412            "RESOURCE_TEAM_DASHBOARDS" => Some(Self::TeamDashboards),
413            "RESOURCE_CLOUD_METADATA_ENRICHMENT" => Some(Self::CloudMetadataEnrichment),
414            "RESOURCE_GEO_ENRICHMENT" => Some(Self::GeoEnrichment),
415            "RESOURCE_GLOBAL_MAPPING" => Some(Self::GlobalMapping),
416            "RESOURCE_K8S_INFRA_MONITORING" => Some(Self::K8sInfraMonitoring),
417            "RESOURCE_SECURITY_ENRICHMENT" => Some(Self::SecurityEnrichment),
418            "RESOURCE_SERVERLESS" => Some(Self::Serverless),
419            "RESOURCE_TEAM_CUSTOM_ENRICHMENT" => Some(Self::TeamCustomEnrichment),
420            "RESOURCE_JAEGER" => Some(Self::Jaeger),
421            "RESOURCE_SERVICE_MAP" => Some(Self::ServiceMap),
422            "RESOURCE_SPANS_DATA_ANALYTICS_HIGH" => Some(Self::SpansDataAnalyticsHigh),
423            "RESOURCE_SPANS_DATA_API_HIGH" => Some(Self::SpansDataApiHigh),
424            "RESOURCE_SPANS_DATA_SETUP_HIGH" => Some(Self::SpansDataSetupHigh),
425            "RESOURCE_TEAM_ACTIONS" => Some(Self::TeamActions),
426            "RESOURCE_TEAM_AUDITING" => Some(Self::TeamAuditing),
427            "RESOURCE_TEAM_PAY_AS_YOU_GO" => Some(Self::TeamPayAsYouGo),
428            "RESOURCE_TEAM_PAYMENTS" => Some(Self::TeamPayments),
429            "RESOURCE_TEAM_SLACK_NOTIFICATIONS" => Some(Self::TeamSlackNotifications),
430            "RESOURCE_USER_ACTIONS" => Some(Self::UserActions),
431            "RESOURCE_USER_EMAIL_NOTIFICATIONS" => Some(Self::UserEmailNotifications),
432            "RESOURCE_VERSION_BENCHMARKS_REPORTS" => Some(Self::VersionBenchmarksReports),
433            "RESOURCE_ALERTS_MAP" => Some(Self::AlertsMap),
434            "RESOURCE_CLOUD_METADATA_INGRESS" => Some(Self::CloudMetadataIngress),
435            "RESOURCE_CONTEXTUAL_DATA" => Some(Self::ContextualData),
436            "RESOURCE_DATA_MAP" => Some(Self::DataMap),
437            "RESOURCE_DATA_USAGE" => Some(Self::DataUsage),
438            "RESOURCE_EXTENSIONS" => Some(Self::Extensions),
439            "RESOURCE_HOME_DASHBOARD" => Some(Self::HomeDashboard),
440            "RESOURCE_INCIDENTS" => Some(Self::Incidents),
441            "RESOURCE_INTEGRATIONS" => Some(Self::Integrations),
442            "RESOURCE_LEGACY_ARCHIVE_QUERIES" => Some(Self::LegacyArchiveQueries),
443            "RESOURCE_LIVETAIL" => Some(Self::Livetail),
444            "RESOURCE_LOGS_DATA_ANALYTICS_HIGH" => Some(Self::LogsDataAnalyticsHigh),
445            "RESOURCE_LOGS_DATA_ANALYTICS_LOW" => Some(Self::LogsDataAnalyticsLow),
446            "RESOURCE_LOGS_DATA_API_HIGH" => Some(Self::LogsDataApiHigh),
447            "RESOURCE_LOGS_DATA_API_LOW" => Some(Self::LogsDataApiLow),
448            "RESOURCE_LOGS_DATA_SETUP_HIGH" => Some(Self::LogsDataSetupHigh),
449            "RESOURCE_LOGS_DATA_SETUP_LOW" => Some(Self::LogsDataSetupLow),
450            "RESOURCE_LOGS_EVENTS2METRICS" => Some(Self::LogsEvents2metrics),
451            "RESOURCE_LOGS_TCO" => Some(Self::LogsTco),
452            "RESOURCE_METRICS_DATA_ANALYTICS_HIGH" => {
453                Some(Self::MetricsDataAnalyticsHigh)
454            }
455            "RESOURCE_METRICS_DATA_ANALYTICS_LOW" => Some(Self::MetricsDataAnalyticsLow),
456            "RESOURCE_METRICS_DATA_API_HIGH" => Some(Self::MetricsDataApiHigh),
457            "RESOURCE_METRICS_DATA_API_LOW" => Some(Self::MetricsDataApiLow),
458            "RESOURCE_METRICS_DATA_SETUP_HIGH" => Some(Self::MetricsDataSetupHigh),
459            "RESOURCE_METRICS_DATA_SETUP_LOW" => Some(Self::MetricsDataSetupLow),
460            "RESOURCE_METRICS_RECORDING_RULES" => Some(Self::MetricsRecordingRules),
461            "RESOURCE_METRICS_TCO" => Some(Self::MetricsTco),
462            "RESOURCE_OPENSEARCH_DASHBOARDS" => Some(Self::OpensearchDashboards),
463            "RESOURCE_ORG_ADMINS" => Some(Self::OrgAdmins),
464            "RESOURCE_ORG_QUOTA" => Some(Self::OrgQuota),
465            "RESOURCE_ORG_SETTINGS" => Some(Self::OrgSettings),
466            "RESOURCE_ORG_TEAMS" => Some(Self::OrgTeams),
467            "RESOURCE_OUTBOUND_WEBHOOKS" => Some(Self::OutboundWebhooks),
468            "RESOURCE_PARSING_RULES" => Some(Self::ParsingRules),
469            "RESOURCE_RUM" => Some(Self::Rum),
470            "RESOURCE_RUM_INGRESS" => Some(Self::RumIngress),
471            "RESOURCE_SERVICE_CATALOG" => Some(Self::ServiceCatalog),
472            "RESOURCE_SPANS_DATA_ANALYTICS_LOW" => Some(Self::SpansDataAnalyticsLow),
473            "RESOURCE_SPANS_DATA_API_LOW" => Some(Self::SpansDataApiLow),
474            "RESOURCE_TRACES_DATA_INGRESS" => Some(Self::TracesDataIngress),
475            "RESOURCE_SPANS_DATA_SETUP_LOW" => Some(Self::SpansDataSetupLow),
476            "RESOURCE_SPANS_EVENTS2METRICS" => Some(Self::SpansEvents2metrics),
477            "RESOURCE_SPANS_TCO" => Some(Self::SpansTco),
478            "RESOURCE_TEAM_DOMAIN" => Some(Self::TeamDomain),
479            "RESOURCE_TEAM_GROUPS" => Some(Self::TeamGroups),
480            "RESOURCE_TEAM_IP_ACCESS" => Some(Self::TeamIpAccess),
481            "RESOURCE_TEAM_MEMBERS" => Some(Self::TeamMembers),
482            "RESOURCE_TEAM_ROLES" => Some(Self::TeamRoles),
483            "RESOURCE_TEAM_SAVED_VIEWS" => Some(Self::TeamSavedViews),
484            "RESOURCE_TEAM_SCIM" => Some(Self::TeamScim),
485            "RESOURCE_TEAM_SESSIONS" => Some(Self::TeamSessions),
486            "RESOURCE_TEAM_SSO" => Some(Self::TeamSso),
487            "RESOURCE_USER_DASHBOARDS" => Some(Self::UserDashboards),
488            "RESOURCE_USER_LEGACY_LOGS_QUERY_API_KEYS" => {
489                Some(Self::UserLegacyLogsQueryApiKeys)
490            }
491            "RESOURCE_USER_LEGACY_OTHER_API_KEYS" => Some(Self::UserLegacyOtherApiKeys),
492            "RESOURCE_USER_SAVED_VIEWS" => Some(Self::UserSavedViews),
493            "RESOURCE_USER_SETTINGS" => Some(Self::UserSettings),
494            "RESOURCE_VERSION_BENCHMARK_TAGS" => Some(Self::VersionBenchmarkTags),
495            "RESOURCE_SOURCE_MAPPING" => Some(Self::SourceMapping),
496            "RESOURCE_SETUP_CORRELATION" => Some(Self::SetupCorrelation),
497            "RESOURCE_LOGS_ALERTS" => Some(Self::LogsAlerts),
498            "RESOURCE_SPANS_ALERTS" => Some(Self::SpansAlerts),
499            "RESOURCE_METRICS_ALERTS" => Some(Self::MetricsAlerts),
500            "RESOURCE_SUPPRESSION_RULES" => Some(Self::SuppressionRules),
501            "RESOURCE_USER_AUTH_INFO" => Some(Self::UserAuthInfo),
502            "RESOURCE_TEAM_SCOPES" => Some(Self::TeamScopes),
503            "RESOURCE_TEAM_QUOTA" => Some(Self::TeamQuota),
504            "RESOURCE_RUM_TEAM_SAVED_FILTER" => Some(Self::RumTeamSavedFilter),
505            "RESOURCE_RUM_USER_SAVED_FILTER" => Some(Self::RumUserSavedFilter),
506            "RESOURCE_INVESTIGATIONS" => Some(Self::Investigations),
507            "RESOURCE_DATA_INGEST_API_KEYS" => Some(Self::DataIngestApiKeys),
508            "RESOURCE_PERSONAL_CUSTOM_API_KEYS" => Some(Self::PersonalCustomApiKeys),
509            "RESOURCE_TEAM_CUSTOM_API_KEYS" => Some(Self::TeamCustomApiKeys),
510            "RESOURCE_LOGS_DATA_OUT_SETUP" => Some(Self::LogsDataOutSetup),
511            "RESOURCE_DATAPRIME_AI_QUERY_ASSISTANT" => {
512                Some(Self::DataprimeAiQueryAssistant)
513            }
514            "RESOURCE_TEAM_LANDING_PAGE" => Some(Self::TeamLandingPage),
515            "RESOURCE_RESOURCE_CATALOG" => Some(Self::ResourceCatalog),
516            "RESOURCE_TEAM_ALERTS_SETTINGS" => Some(Self::TeamAlertsSettings),
517            "RESOURCE_TEAM_AI_SETTINGS" => Some(Self::TeamAiSettings),
518            "RESOURCE_NOTIFICATION_CENTER_CONNECTORS" => {
519                Some(Self::NotificationCenterConnectors)
520            }
521            "RESOURCE_NOTIFICATION_CENTER_PRESETS" => {
522                Some(Self::NotificationCenterPresets)
523            }
524            "RESOURCE_HIDE_ERRORS" => Some(Self::HideErrors),
525            "RESOURCE_RUM_SETTINGS" => Some(Self::RumSettings),
526            "RESOURCE_SESSION_RECORDING" => Some(Self::SessionRecording),
527            "RESOURCE_NOTIFICATION_CENTER_ROUTERS" => {
528                Some(Self::NotificationCenterRouters)
529            }
530            "RESOURCE_PROFILES_DATA_INGRESS" => Some(Self::ProfilesDataIngress),
531            "RESOURCE_AI_APP_CATALOG" => Some(Self::AiAppCatalog),
532            "RESOURCE_AI_APP_DISCOVERY" => Some(Self::AiAppDiscovery),
533            "RESOURCE_AI_APP_EVALUATORS" => Some(Self::AiAppEvaluators),
534            "RESOURCE_AI_OVERVIEW" => Some(Self::AiOverview),
535            "RESOURCE_AI_SPM" => Some(Self::AiSpm),
536            "RESOURCE_LOGS_RESERVED_FIELDS" => Some(Self::LogsReservedFields),
537            "RESOURCE_PROFILES_CPU_PROFILES" => Some(Self::ProfilesCpuProfiles),
538            "RESOURCE_PROFILES_DEBUG_SYMBOLS" => Some(Self::ProfilesDebugSymbols),
539            "RESOURCE_SLO_MGMT_ALERTS" => Some(Self::SloMgmtAlerts),
540            "RESOURCE_SLO" => Some(Self::Slo),
541            "RESOURCE_SYSTEM_DATASETS" => Some(Self::SystemDatasets),
542            "RESOURCE_TEAM_QUOTA_RULES" => Some(Self::TeamQuotaRules),
543            "RESOURCE_SPLIT_INDEX" => Some(Self::SplitIndex),
544            "RESOURCE_ACCESS_POLICIES" => Some(Self::AccessPolicies),
545            "RESOURCE_PIPELINE_ANALYZER" => Some(Self::PipelineAnalyzer),
546            _ => None,
547        }
548    }
549}
550#[derive(serde::Serialize, serde::Deserialize)]
551#[serde(rename_all = "snake_case")]
552#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
553#[repr(i32)]
554pub enum Action {
555    Unspecified = 0,
556    Admin = 1,
557    Operate = 2,
558    ViewOnly = 3,
559    Edit = 4,
560    Delete = 5,
561    Create = 6,
562    ChangeQuota = 7,
563    GenerateKey = 8,
564    Write = 9,
565    Manage = 10,
566    Read = 11,
567    ReadConfig = 12,
568    Deploy = 13,
569    CreateSecurityAlert = 14,
570    Update = 15,
571    Readdata = 16,
572    Updateconfig = 17,
573    Updatedata = 18,
574    View = 19,
575    Execute = 20,
576    Acknowledge = 21,
577    Assign = 22,
578    Close = 23,
579    Updateuserwidgets = 24,
580    Readmaps = 25,
581    Readpolicies = 26,
582    Readteamwidgets = 27,
583    Readuserwidgets = 28,
584    Reindex = 29,
585    Senddata = 30,
586    Snooze = 31,
587    Updatemaps = 32,
588    Updatepolicies = 33,
589    Updateteamwidgets = 34,
590    Readmapping = 35,
591    Readsliconfig = 36,
592    Updatefiltersconfig = 37,
593    Updatesliconfig = 38,
594    Uploadmapping = 39,
595    ReadDimensionsConfig = 40,
596    UpdateDimensionsConfig = 41,
597    ReadApdexConfig = 42,
598    UpdateApdexConfig = 43,
599    ManageConnectionToOrg = 44,
600    ReadGroups = 45,
601    GetDailyEmails = 46,
602    GetDataUsageWarnings = 47,
603    GetFlowAnomalies = 48,
604    GetSpikeAnomalies = 49,
605    ReadAll = 50,
606    UpdateAll = 51,
607    ReadSummary = 52,
608    Upload = 53,
609    ReadAccessPolicy = 54,
610    UpdateAccessPolicy = 55,
611}
612impl Action {
613    /// String value of the enum field names used in the ProtoBuf definition.
614    ///
615    /// The values are not transformed in any way and thus are considered stable
616    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
617    pub fn as_str_name(&self) -> &'static str {
618        match self {
619            Self::Unspecified => "ACTION_UNSPECIFIED",
620            Self::Admin => "ACTION_ADMIN",
621            Self::Operate => "ACTION_OPERATE",
622            Self::ViewOnly => "ACTION_VIEW_ONLY",
623            Self::Edit => "ACTION_EDIT",
624            Self::Delete => "ACTION_DELETE",
625            Self::Create => "ACTION_CREATE",
626            Self::ChangeQuota => "ACTION_CHANGE_QUOTA",
627            Self::GenerateKey => "ACTION_GENERATE_KEY",
628            Self::Write => "ACTION_WRITE",
629            Self::Manage => "ACTION_MANAGE",
630            Self::Read => "ACTION_READ",
631            Self::ReadConfig => "ACTION_READ_CONFIG",
632            Self::Deploy => "ACTION_DEPLOY",
633            Self::CreateSecurityAlert => "ACTION_CREATE_SECURITY_ALERT",
634            Self::Update => "ACTION_UPDATE",
635            Self::Readdata => "ACTION_READDATA",
636            Self::Updateconfig => "ACTION_UPDATECONFIG",
637            Self::Updatedata => "ACTION_UPDATEDATA",
638            Self::View => "ACTION_VIEW",
639            Self::Execute => "ACTION_EXECUTE",
640            Self::Acknowledge => "ACTION_ACKNOWLEDGE",
641            Self::Assign => "ACTION_ASSIGN",
642            Self::Close => "ACTION_CLOSE",
643            Self::Updateuserwidgets => "ACTION_UPDATEUSERWIDGETS",
644            Self::Readmaps => "ACTION_READMAPS",
645            Self::Readpolicies => "ACTION_READPOLICIES",
646            Self::Readteamwidgets => "ACTION_READTEAMWIDGETS",
647            Self::Readuserwidgets => "ACTION_READUSERWIDGETS",
648            Self::Reindex => "ACTION_REINDEX",
649            Self::Senddata => "ACTION_SENDDATA",
650            Self::Snooze => "ACTION_SNOOZE",
651            Self::Updatemaps => "ACTION_UPDATEMAPS",
652            Self::Updatepolicies => "ACTION_UPDATEPOLICIES",
653            Self::Updateteamwidgets => "ACTION_UPDATETEAMWIDGETS",
654            Self::Readmapping => "ACTION_READMAPPING",
655            Self::Readsliconfig => "ACTION_READSLICONFIG",
656            Self::Updatefiltersconfig => "ACTION_UPDATEFILTERSCONFIG",
657            Self::Updatesliconfig => "ACTION_UPDATESLICONFIG",
658            Self::Uploadmapping => "ACTION_UPLOADMAPPING",
659            Self::ReadDimensionsConfig => "ACTION_READ_DIMENSIONS_CONFIG",
660            Self::UpdateDimensionsConfig => "ACTION_UPDATE_DIMENSIONS_CONFIG",
661            Self::ReadApdexConfig => "ACTION_READ_APDEX_CONFIG",
662            Self::UpdateApdexConfig => "ACTION_UPDATE_APDEX_CONFIG",
663            Self::ManageConnectionToOrg => "ACTION_MANAGE_CONNECTION_TO_ORG",
664            Self::ReadGroups => "ACTION_READ_GROUPS",
665            Self::GetDailyEmails => "ACTION_GET_DAILY_EMAILS",
666            Self::GetDataUsageWarnings => "ACTION_GET_DATA_USAGE_WARNINGS",
667            Self::GetFlowAnomalies => "ACTION_GET_FLOW_ANOMALIES",
668            Self::GetSpikeAnomalies => "ACTION_GET_SPIKE_ANOMALIES",
669            Self::ReadAll => "ACTION_READ_ALL",
670            Self::UpdateAll => "ACTION_UPDATE_ALL",
671            Self::ReadSummary => "ACTION_READ_SUMMARY",
672            Self::Upload => "ACTION_UPLOAD",
673            Self::ReadAccessPolicy => "ACTION_READ_ACCESS_POLICY",
674            Self::UpdateAccessPolicy => "ACTION_UPDATE_ACCESS_POLICY",
675        }
676    }
677    /// Creates an enum from field names used in the ProtoBuf definition.
678    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
679        match value {
680            "ACTION_UNSPECIFIED" => Some(Self::Unspecified),
681            "ACTION_ADMIN" => Some(Self::Admin),
682            "ACTION_OPERATE" => Some(Self::Operate),
683            "ACTION_VIEW_ONLY" => Some(Self::ViewOnly),
684            "ACTION_EDIT" => Some(Self::Edit),
685            "ACTION_DELETE" => Some(Self::Delete),
686            "ACTION_CREATE" => Some(Self::Create),
687            "ACTION_CHANGE_QUOTA" => Some(Self::ChangeQuota),
688            "ACTION_GENERATE_KEY" => Some(Self::GenerateKey),
689            "ACTION_WRITE" => Some(Self::Write),
690            "ACTION_MANAGE" => Some(Self::Manage),
691            "ACTION_READ" => Some(Self::Read),
692            "ACTION_READ_CONFIG" => Some(Self::ReadConfig),
693            "ACTION_DEPLOY" => Some(Self::Deploy),
694            "ACTION_CREATE_SECURITY_ALERT" => Some(Self::CreateSecurityAlert),
695            "ACTION_UPDATE" => Some(Self::Update),
696            "ACTION_READDATA" => Some(Self::Readdata),
697            "ACTION_UPDATECONFIG" => Some(Self::Updateconfig),
698            "ACTION_UPDATEDATA" => Some(Self::Updatedata),
699            "ACTION_VIEW" => Some(Self::View),
700            "ACTION_EXECUTE" => Some(Self::Execute),
701            "ACTION_ACKNOWLEDGE" => Some(Self::Acknowledge),
702            "ACTION_ASSIGN" => Some(Self::Assign),
703            "ACTION_CLOSE" => Some(Self::Close),
704            "ACTION_UPDATEUSERWIDGETS" => Some(Self::Updateuserwidgets),
705            "ACTION_READMAPS" => Some(Self::Readmaps),
706            "ACTION_READPOLICIES" => Some(Self::Readpolicies),
707            "ACTION_READTEAMWIDGETS" => Some(Self::Readteamwidgets),
708            "ACTION_READUSERWIDGETS" => Some(Self::Readuserwidgets),
709            "ACTION_REINDEX" => Some(Self::Reindex),
710            "ACTION_SENDDATA" => Some(Self::Senddata),
711            "ACTION_SNOOZE" => Some(Self::Snooze),
712            "ACTION_UPDATEMAPS" => Some(Self::Updatemaps),
713            "ACTION_UPDATEPOLICIES" => Some(Self::Updatepolicies),
714            "ACTION_UPDATETEAMWIDGETS" => Some(Self::Updateteamwidgets),
715            "ACTION_READMAPPING" => Some(Self::Readmapping),
716            "ACTION_READSLICONFIG" => Some(Self::Readsliconfig),
717            "ACTION_UPDATEFILTERSCONFIG" => Some(Self::Updatefiltersconfig),
718            "ACTION_UPDATESLICONFIG" => Some(Self::Updatesliconfig),
719            "ACTION_UPLOADMAPPING" => Some(Self::Uploadmapping),
720            "ACTION_READ_DIMENSIONS_CONFIG" => Some(Self::ReadDimensionsConfig),
721            "ACTION_UPDATE_DIMENSIONS_CONFIG" => Some(Self::UpdateDimensionsConfig),
722            "ACTION_READ_APDEX_CONFIG" => Some(Self::ReadApdexConfig),
723            "ACTION_UPDATE_APDEX_CONFIG" => Some(Self::UpdateApdexConfig),
724            "ACTION_MANAGE_CONNECTION_TO_ORG" => Some(Self::ManageConnectionToOrg),
725            "ACTION_READ_GROUPS" => Some(Self::ReadGroups),
726            "ACTION_GET_DAILY_EMAILS" => Some(Self::GetDailyEmails),
727            "ACTION_GET_DATA_USAGE_WARNINGS" => Some(Self::GetDataUsageWarnings),
728            "ACTION_GET_FLOW_ANOMALIES" => Some(Self::GetFlowAnomalies),
729            "ACTION_GET_SPIKE_ANOMALIES" => Some(Self::GetSpikeAnomalies),
730            "ACTION_READ_ALL" => Some(Self::ReadAll),
731            "ACTION_UPDATE_ALL" => Some(Self::UpdateAll),
732            "ACTION_READ_SUMMARY" => Some(Self::ReadSummary),
733            "ACTION_UPLOAD" => Some(Self::Upload),
734            "ACTION_READ_ACCESS_POLICY" => Some(Self::ReadAccessPolicy),
735            "ACTION_UPDATE_ACCESS_POLICY" => Some(Self::UpdateAccessPolicy),
736            _ => None,
737        }
738    }
739}
740/// / A scope filter, given a filter term and a filter type is used to configure filter capabilities
741#[derive(serde::Serialize, serde::Deserialize)]
742#[serde(rename_all = "snake_case")]
743#[derive(Clone, PartialEq, ::prost::Message)]
744pub struct ScopeFilter {
745    /// / The filter term to use as a matching reference.
746    #[prost(string, tag = "1")]
747    pub term: ::prost::alloc::string::String,
748    /// / The filter type. i.e. given a term prod and filter type FilterType.STARTS_WITH the string production will pass the filter.
749    #[prost(enumeration = "FilterType", tag = "2")]
750    pub filter_type: i32,
751}
752/// / Scope filters are currently possible to be defined for subsystems and applications
753#[derive(serde::Serialize, serde::Deserialize)]
754#[serde(rename_all = "snake_case")]
755#[derive(Clone, PartialEq, ::prost::Message)]
756pub struct ScopeFilters {
757    /// / List of subsystem scope filters
758    #[prost(message, repeated, tag = "1")]
759    pub subsystems: ::prost::alloc::vec::Vec<ScopeFilter>,
760    /// / List of applications scope filters
761    #[prost(message, repeated, tag = "2")]
762    pub applications: ::prost::alloc::vec::Vec<ScopeFilter>,
763}
764/// / A group scope has a list of filters for subsystems and applications. Used to filter traffic based on user defined rules.
765#[derive(serde::Serialize, serde::Deserialize)]
766#[serde(rename_all = "snake_case")]
767#[derive(Clone, PartialEq, ::prost::Message)]
768pub struct Scope {
769    /// / Unique scope identifier
770    #[prost(message, optional, tag = "1")]
771    pub id: ::core::option::Option<ScopeId>,
772    /// / The filters definition
773    #[prost(message, optional, tag = "2")]
774    pub filters: ::core::option::Option<ScopeFilters>,
775}
776/// / An user is an entity that is always part of a team and has an account associated with it
777#[derive(serde::Serialize, serde::Deserialize)]
778#[serde(rename_all = "snake_case")]
779#[derive(Clone, PartialEq, ::prost::Message)]
780pub struct User {
781    /// / Unique user id
782    #[prost(message, optional, tag = "1")]
783    pub user_id: ::core::option::Option<UserId>,
784    /// / Associated account id. An account can have many users.
785    #[prost(message, optional, tag = "2")]
786    pub user_account_id: ::core::option::Option<UserAccountId>,
787    /// / Unique username
788    #[prost(string, tag = "3")]
789    pub username: ::prost::alloc::string::String,
790    /// / User first name
791    #[prost(string, tag = "4")]
792    pub first_name: ::prost::alloc::string::String,
793    /// / User last name
794    #[prost(string, tag = "5")]
795    pub last_name: ::prost::alloc::string::String,
796    /// / User status: \[Active, Inactive\]
797    #[prost(enumeration = "UserStatus", tag = "6")]
798    pub status: i32,
799}
800/// / A group role. Each role has a collection of permissions associated with it. A group can have many roles.
801#[derive(serde::Serialize, serde::Deserialize)]
802#[serde(rename_all = "snake_case")]
803#[derive(Clone, PartialEq, ::prost::Message)]
804pub struct Role {
805    /// / Unique role identifier
806    #[prost(message, optional, tag = "1")]
807    pub role_id: ::core::option::Option<RoleId>,
808    /// / Unique role name
809    #[prost(string, tag = "2")]
810    pub name: ::prost::alloc::string::String,
811    #[prost(string, tag = "3")]
812    pub description: ::prost::alloc::string::String,
813}
814#[derive(serde::Serialize, serde::Deserialize)]
815#[serde(rename_all = "snake_case")]
816#[derive(Clone, PartialEq, ::prost::Message)]
817pub struct TeamGroupSummary {
818    #[prost(message, optional, tag = "1")]
819    pub id: ::core::option::Option<TeamGroupId>,
820    #[prost(string, tag = "2")]
821    pub name: ::prost::alloc::string::String,
822    #[prost(uint32, tag = "3")]
823    pub user_count: u32,
824}
825#[derive(serde::Serialize, serde::Deserialize)]
826#[serde(rename_all = "snake_case")]
827#[derive(Clone, PartialEq, ::prost::Message)]
828pub struct SystemRole {
829    #[prost(message, optional, tag = "1")]
830    pub role_id: ::core::option::Option<RoleId>,
831    #[prost(string, tag = "2")]
832    pub name: ::prost::alloc::string::String,
833    #[prost(string, tag = "3")]
834    pub description: ::prost::alloc::string::String,
835}
836#[derive(serde::Serialize, serde::Deserialize)]
837#[serde(rename_all = "snake_case")]
838#[derive(Clone, PartialEq, ::prost::Message)]
839pub struct CustomRole {
840    #[prost(message, optional, tag = "1")]
841    pub role_id: ::core::option::Option<RoleId>,
842    #[prost(string, tag = "2")]
843    pub name: ::prost::alloc::string::String,
844    #[prost(string, tag = "3")]
845    pub description: ::prost::alloc::string::String,
846    #[prost(message, optional, tag = "4")]
847    pub parent_role_id: ::core::option::Option<RoleId>,
848}
849#[derive(serde::Serialize, serde::Deserialize)]
850#[serde(rename_all = "snake_case")]
851#[derive(Clone, PartialEq, ::prost::Message)]
852pub struct RoleSummary {
853    #[prost(uint32, tag = "3")]
854    pub user_count: u32,
855    #[prost(message, repeated, tag = "4")]
856    pub groups: ::prost::alloc::vec::Vec<TeamGroupSummary>,
857    #[prost(message, repeated, tag = "5")]
858    pub permissions: ::prost::alloc::vec::Vec<PermissionMetadata>,
859    #[prost(oneof = "role_summary::Role", tags = "1, 2")]
860    pub role: ::core::option::Option<role_summary::Role>,
861}
862/// Nested message and enum types in `RoleSummary`.
863pub mod role_summary {
864    #[derive(serde::Serialize, serde::Deserialize)]
865    #[serde(rename_all = "snake_case")]
866    #[derive(Clone, PartialEq, ::prost::Oneof)]
867    pub enum Role {
868        #[prost(message, tag = "1")]
869        SystemRole(super::SystemRole),
870        #[prost(message, tag = "2")]
871        CustomRole(super::CustomRole),
872    }
873}
874/// / An organisation group
875#[derive(serde::Serialize, serde::Deserialize)]
876#[serde(rename_all = "snake_case")]
877#[derive(Clone, PartialEq, ::prost::Message)]
878pub struct OrgGroup {
879    /// / Unique organisation group identifier
880    #[prost(message, optional, tag = "1")]
881    pub org_group_id: ::core::option::Option<OrgGroupId>,
882    /// / Unique name
883    #[prost(string, tag = "2")]
884    pub name: ::prost::alloc::string::String,
885    /// / Organisation this group belongs to
886    #[prost(message, optional, tag = "3")]
887    pub org_id: ::core::option::Option<OrganizationId>,
888    /// / Associated organisation roles
889    #[prost(message, repeated, tag = "4")]
890    pub roles: ::prost::alloc::vec::Vec<Role>,
891}
892#[derive(serde::Serialize, serde::Deserialize)]
893#[serde(rename_all = "snake_case")]
894#[derive(Clone, PartialEq, ::prost::Message)]
895pub struct TeamGroup {
896    /// / Unique team group identifier
897    #[prost(message, optional, tag = "1")]
898    pub group_id: ::core::option::Option<TeamGroupId>,
899    /// / Unique name
900    #[prost(string, tag = "2")]
901    pub name: ::prost::alloc::string::String,
902    /// / Group description
903    #[prost(string, optional, tag = "3")]
904    pub description: ::core::option::Option<::prost::alloc::string::String>,
905    /// / Group external identifier. Applies if team is externally defined.
906    #[prost(string, optional, tag = "4")]
907    pub external_id: ::core::option::Option<::prost::alloc::string::String>,
908    /// / Built in groups are not user made. They were created by the system.
909    #[prost(enumeration = "GroupOrigin", tag = "5")]
910    pub group_origin: i32,
911    /// / Team this group belongs to
912    #[prost(message, optional, tag = "6")]
913    pub team_id: ::core::option::Option<TeamId>,
914    /// / Associated team roles
915    #[prost(message, repeated, tag = "7")]
916    pub roles: ::prost::alloc::vec::Vec<Role>,
917    /// / Associated scope
918    #[prost(message, optional, tag = "8")]
919    pub scope: ::core::option::Option<Scope>,
920    #[prost(message, optional, tag = "9")]
921    pub created_at: ::core::option::Option<::prost_wkt_types::Timestamp>,
922    #[prost(message, optional, tag = "10")]
923    pub updated_at: ::core::option::Option<::prost_wkt_types::Timestamp>,
924    #[prost(string, optional, tag = "11")]
925    pub next_gen_scope_id: ::core::option::Option<::prost::alloc::string::String>,
926}
927#[derive(serde::Serialize, serde::Deserialize)]
928#[serde(rename_all = "snake_case")]
929#[derive(Clone, PartialEq, ::prost::Message)]
930pub struct PermissionGroupMetadata {
931    #[prost(enumeration = "super::models::v1::PermissionGroup", tag = "1")]
932    pub permission_group: i32,
933    #[prost(string, tag = "2")]
934    pub name: ::prost::alloc::string::String,
935    #[prost(string, tag = "3")]
936    pub description: ::prost::alloc::string::String,
937    #[prost(string, tag = "4")]
938    pub display_name: ::prost::alloc::string::String,
939}
940#[derive(serde::Serialize, serde::Deserialize)]
941#[serde(rename_all = "snake_case")]
942#[derive(Clone, PartialEq, ::prost::Message)]
943pub struct PermissionMetadata {
944    #[prost(enumeration = "super::models::v1::Permission", tag = "1")]
945    pub permission: i32,
946    #[prost(message, optional, tag = "2")]
947    pub permission_group: ::core::option::Option<PermissionGroupMetadata>,
948    #[prost(string, tag = "3")]
949    pub expression: ::prost::alloc::string::String,
950    #[prost(string, tag = "4")]
951    pub description: ::prost::alloc::string::String,
952    #[prost(enumeration = "Action", tag = "5")]
953    pub action: i32,
954    #[prost(enumeration = "Resource", tag = "6")]
955    pub resource: i32,
956    #[prost(string, tag = "7")]
957    pub doc_link: ::prost::alloc::string::String,
958    #[prost(string, tag = "8")]
959    pub explanation: ::prost::alloc::string::String,
960    #[prost(bool, tag = "9")]
961    pub is_send_data: bool,
962}
963/// / A filter type describes how to match a filter against an input string
964#[derive(serde::Serialize, serde::Deserialize)]
965#[serde(rename_all = "snake_case")]
966#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
967#[repr(i32)]
968pub enum FilterType {
969    Unspecified = 0,
970    /// / Matches if string starts with filter
971    StartsWith = 1,
972    /// / Matches if string ends with filter
973    EndsWith = 2,
974    /// / Matches if string contains filter
975    Contains = 3,
976    /// / Matches if string exactly matches filter
977    Exact = 4,
978}
979impl FilterType {
980    /// String value of the enum field names used in the ProtoBuf definition.
981    ///
982    /// The values are not transformed in any way and thus are considered stable
983    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
984    pub fn as_str_name(&self) -> &'static str {
985        match self {
986            Self::Unspecified => "FILTER_TYPE_UNSPECIFIED",
987            Self::StartsWith => "FILTER_TYPE_STARTS_WITH",
988            Self::EndsWith => "FILTER_TYPE_ENDS_WITH",
989            Self::Contains => "FILTER_TYPE_CONTAINS",
990            Self::Exact => "FILTER_TYPE_EXACT",
991        }
992    }
993    /// Creates an enum from field names used in the ProtoBuf definition.
994    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
995        match value {
996            "FILTER_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
997            "FILTER_TYPE_STARTS_WITH" => Some(Self::StartsWith),
998            "FILTER_TYPE_ENDS_WITH" => Some(Self::EndsWith),
999            "FILTER_TYPE_CONTAINS" => Some(Self::Contains),
1000            "FILTER_TYPE_EXACT" => Some(Self::Exact),
1001            _ => None,
1002        }
1003    }
1004}
1005/// / User status
1006#[derive(serde::Serialize, serde::Deserialize)]
1007#[serde(rename_all = "snake_case")]
1008#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1009#[repr(i32)]
1010pub enum UserStatus {
1011    Unspecified = 0,
1012    /// / User is active
1013    Active = 1,
1014    /// / User is inactive
1015    Inactive = 2,
1016}
1017impl UserStatus {
1018    /// String value of the enum field names used in the ProtoBuf definition.
1019    ///
1020    /// The values are not transformed in any way and thus are considered stable
1021    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1022    pub fn as_str_name(&self) -> &'static str {
1023        match self {
1024            Self::Unspecified => "USER_STATUS_UNSPECIFIED",
1025            Self::Active => "USER_STATUS_ACTIVE",
1026            Self::Inactive => "USER_STATUS_INACTIVE",
1027        }
1028    }
1029    /// Creates an enum from field names used in the ProtoBuf definition.
1030    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1031        match value {
1032            "USER_STATUS_UNSPECIFIED" => Some(Self::Unspecified),
1033            "USER_STATUS_ACTIVE" => Some(Self::Active),
1034            "USER_STATUS_INACTIVE" => Some(Self::Inactive),
1035            _ => None,
1036        }
1037    }
1038}
1039/// / Group origin defines in which circumstances the group was created.
1040#[derive(serde::Serialize, serde::Deserialize)]
1041#[serde(rename_all = "snake_case")]
1042#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1043#[repr(i32)]
1044pub enum GroupOrigin {
1045    Unspecified = 0,
1046    /// / A built in group is defined by the system and users are not able to alter them.
1047    BuiltIn = 1,
1048    /// / User defined or custom role.
1049    UserDefined = 2,
1050}
1051impl GroupOrigin {
1052    /// String value of the enum field names used in the ProtoBuf definition.
1053    ///
1054    /// The values are not transformed in any way and thus are considered stable
1055    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1056    pub fn as_str_name(&self) -> &'static str {
1057        match self {
1058            Self::Unspecified => "GROUP_ORIGIN_UNSPECIFIED",
1059            Self::BuiltIn => "GROUP_ORIGIN_BUILT_IN",
1060            Self::UserDefined => "GROUP_ORIGIN_USER_DEFINED",
1061        }
1062    }
1063    /// Creates an enum from field names used in the ProtoBuf definition.
1064    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1065        match value {
1066            "GROUP_ORIGIN_UNSPECIFIED" => Some(Self::Unspecified),
1067            "GROUP_ORIGIN_BUILT_IN" => Some(Self::BuiltIn),
1068            "GROUP_ORIGIN_USER_DEFINED" => Some(Self::UserDefined),
1069            _ => None,
1070        }
1071    }
1072}
1073/// / Get team group request
1074#[derive(serde::Serialize, serde::Deserialize)]
1075#[serde(rename_all = "snake_case")]
1076#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1077pub struct GetTeamGroupRequest {
1078    /// / Team group id
1079    #[prost(message, optional, tag = "1")]
1080    pub group_id: ::core::option::Option<TeamGroupId>,
1081}
1082/// / Get team group response
1083#[derive(serde::Serialize, serde::Deserialize)]
1084#[serde(rename_all = "snake_case")]
1085#[derive(Clone, PartialEq, ::prost::Message)]
1086pub struct GetTeamGroupResponse {
1087    /// / Team group
1088    #[prost(message, optional, tag = "1")]
1089    pub group: ::core::option::Option<TeamGroup>,
1090}
1091#[derive(serde::Serialize, serde::Deserialize)]
1092#[serde(rename_all = "snake_case")]
1093#[derive(Clone, PartialEq, ::prost::Message)]
1094pub struct GetTeamGroupByNameRequest {
1095    #[prost(string, tag = "1")]
1096    pub name: ::prost::alloc::string::String,
1097}
1098#[derive(serde::Serialize, serde::Deserialize)]
1099#[serde(rename_all = "snake_case")]
1100#[derive(Clone, PartialEq, ::prost::Message)]
1101pub struct GetTeamGroupByNameResponse {
1102    #[prost(message, optional, tag = "1")]
1103    pub group: ::core::option::Option<TeamGroup>,
1104}
1105/// / Get all team groups request
1106#[derive(serde::Serialize, serde::Deserialize)]
1107#[serde(rename_all = "snake_case")]
1108#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1109pub struct GetTeamGroupsRequest {
1110    /// / Team to fetch team groups for. If not set, fetches groups associated with logged in team
1111    /// / Bear in mind that an user can only fetch groups for logged in team. Unless you want to express this as a
1112    /// / validation of what the logged in team should be, this field can remain empty.
1113    #[prost(message, optional, tag = "1")]
1114    pub team_id: ::core::option::Option<TeamId>,
1115}
1116/// / Get all team groups response
1117#[derive(serde::Serialize, serde::Deserialize)]
1118#[serde(rename_all = "snake_case")]
1119#[derive(Clone, PartialEq, ::prost::Message)]
1120pub struct GetTeamGroupsResponse {
1121    /// / Groups associated with team
1122    #[prost(message, repeated, tag = "1")]
1123    pub groups: ::prost::alloc::vec::Vec<TeamGroup>,
1124}
1125/// / Create team group request
1126#[derive(serde::Serialize, serde::Deserialize)]
1127#[serde(rename_all = "snake_case")]
1128#[derive(Clone, PartialEq, ::prost::Message)]
1129pub struct CreateTeamGroupRequest {
1130    /// / Team group name
1131    #[prost(string, tag = "1")]
1132    pub name: ::prost::alloc::string::String,
1133    /// / Team which the group will be associated with. If not set, creates group and associates it with logged in team
1134    /// / Bear in mind that an user can only create team for logged in team. Unless you want to express this as a
1135    /// / validation of what the logged in team should be, this field can remain empty.
1136    #[prost(message, optional, tag = "2")]
1137    pub team_id: ::core::option::Option<TeamId>,
1138    /// / Team group description
1139    #[prost(string, optional, tag = "3")]
1140    pub description: ::core::option::Option<::prost::alloc::string::String>,
1141    /// / Team group external_id. Applies if team is externally defined.
1142    #[prost(string, optional, tag = "4")]
1143    pub external_id: ::core::option::Option<::prost::alloc::string::String>,
1144    /// / Roles to associate with team group
1145    #[prost(message, repeated, tag = "5")]
1146    pub role_ids: ::prost::alloc::vec::Vec<RoleId>,
1147    /// / Users to associate with team group
1148    #[prost(message, repeated, tag = "6")]
1149    pub user_ids: ::prost::alloc::vec::Vec<UserId>,
1150    /// / Optionally set team group scope filters
1151    #[prost(message, optional, tag = "7")]
1152    pub scope_filters: ::core::option::Option<ScopeFilters>,
1153    #[prost(string, optional, tag = "8")]
1154    pub next_gen_scope_id: ::core::option::Option<::prost::alloc::string::String>,
1155}
1156/// / Create team group response
1157#[derive(serde::Serialize, serde::Deserialize)]
1158#[serde(rename_all = "snake_case")]
1159#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1160pub struct CreateTeamGroupResponse {
1161    /// / Team group id
1162    #[prost(message, optional, tag = "1")]
1163    pub group_id: ::core::option::Option<TeamGroupId>,
1164}
1165/// / Update team group request
1166#[derive(serde::Serialize, serde::Deserialize)]
1167#[serde(rename_all = "snake_case")]
1168#[derive(Clone, PartialEq, ::prost::Message)]
1169pub struct UpdateTeamGroupRequest {
1170    /// / Team group to be updated
1171    #[prost(message, optional, tag = "1")]
1172    pub group_id: ::core::option::Option<TeamGroupId>,
1173    /// / Updated team group name
1174    #[prost(string, tag = "2")]
1175    pub name: ::prost::alloc::string::String,
1176    /// / Updated team group description
1177    #[prost(string, optional, tag = "3")]
1178    pub description: ::core::option::Option<::prost::alloc::string::String>,
1179    /// / Updated team group external_id
1180    #[prost(string, optional, tag = "4")]
1181    pub external_id: ::core::option::Option<::prost::alloc::string::String>,
1182    /// / If set, new roles to associate with team group
1183    #[prost(message, optional, tag = "5")]
1184    pub role_updates: ::core::option::Option<update_team_group_request::RoleUpdates>,
1185    /// / If set, new users to associate with team group
1186    #[prost(message, optional, tag = "6")]
1187    pub user_updates: ::core::option::Option<update_team_group_request::UserUpdates>,
1188    /// / If set, updates new team group scope filters
1189    #[prost(message, optional, tag = "7")]
1190    pub scope_filters: ::core::option::Option<ScopeFilters>,
1191    /// / If set, updates new team group next gen scope
1192    #[prost(string, optional, tag = "8")]
1193    pub next_gen_scope_id: ::core::option::Option<::prost::alloc::string::String>,
1194}
1195/// Nested message and enum types in `UpdateTeamGroupRequest`.
1196pub mod update_team_group_request {
1197    /// / Specifies new roles to assign to a group removing previous ones
1198    #[derive(serde::Serialize, serde::Deserialize)]
1199    #[serde(rename_all = "snake_case")]
1200    #[derive(Clone, PartialEq, ::prost::Message)]
1201    pub struct RoleUpdates {
1202        /// / Roles to associate with a team group
1203        #[prost(message, repeated, tag = "1")]
1204        pub role_ids: ::prost::alloc::vec::Vec<super::RoleId>,
1205    }
1206    /// / Specifies new users to assign to a group removing previous ones
1207    #[derive(serde::Serialize, serde::Deserialize)]
1208    #[serde(rename_all = "snake_case")]
1209    #[derive(Clone, PartialEq, ::prost::Message)]
1210    pub struct UserUpdates {
1211        /// / Users to associate with a team group
1212        #[prost(message, repeated, tag = "1")]
1213        pub user_ids: ::prost::alloc::vec::Vec<super::UserId>,
1214    }
1215}
1216/// / Update team group response
1217#[derive(serde::Serialize, serde::Deserialize)]
1218#[serde(rename_all = "snake_case")]
1219#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1220pub struct UpdateTeamGroupResponse {}
1221/// / Delete team group request
1222#[derive(serde::Serialize, serde::Deserialize)]
1223#[serde(rename_all = "snake_case")]
1224#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1225pub struct DeleteTeamGroupRequest {
1226    /// / Team group id
1227    #[prost(message, optional, tag = "1")]
1228    pub group_id: ::core::option::Option<TeamGroupId>,
1229}
1230/// / Delete team group response
1231#[derive(serde::Serialize, serde::Deserialize)]
1232#[serde(rename_all = "snake_case")]
1233#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1234pub struct DeleteTeamGroupResponse {}
1235/// / Fetches all users linked with given team group
1236#[derive(serde::Serialize, serde::Deserialize)]
1237#[serde(rename_all = "snake_case")]
1238#[derive(Clone, PartialEq, ::prost::Message)]
1239pub struct GetGroupUsersRequest {
1240    /// / Team group id
1241    #[prost(message, optional, tag = "1")]
1242    pub group_id: ::core::option::Option<TeamGroupId>,
1243    /// / Pagination size. Defaults to 100 if empty
1244    #[prost(uint32, optional, tag = "2")]
1245    pub page_size: ::core::option::Option<u32>,
1246    /// / Optional pagination continuation token
1247    /// / Contains an encoded cursor
1248    #[prost(string, optional, tag = "3")]
1249    pub page_token: ::core::option::Option<::prost::alloc::string::String>,
1250}
1251#[derive(serde::Serialize, serde::Deserialize)]
1252#[serde(rename_all = "snake_case")]
1253#[derive(Clone, PartialEq, ::prost::Message)]
1254pub struct GetGroupUsersResponse {
1255    #[prost(message, repeated, tag = "1")]
1256    pub users: ::prost::alloc::vec::Vec<User>,
1257    #[prost(oneof = "get_group_users_response::NextPage", tags = "2, 3")]
1258    pub next_page: ::core::option::Option<get_group_users_response::NextPage>,
1259}
1260/// Nested message and enum types in `GetGroupUsersResponse`.
1261pub mod get_group_users_response {
1262    #[derive(serde::Serialize, serde::Deserialize)]
1263    #[serde(rename_all = "snake_case")]
1264    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
1265    pub struct NoMorePages {}
1266    #[derive(serde::Serialize, serde::Deserialize)]
1267    #[serde(rename_all = "snake_case")]
1268    #[derive(Clone, PartialEq, ::prost::Message)]
1269    pub struct NextPageToken {
1270        #[prost(string, tag = "1")]
1271        pub next_page_token: ::prost::alloc::string::String,
1272    }
1273    #[derive(serde::Serialize, serde::Deserialize)]
1274    #[serde(rename_all = "snake_case")]
1275    #[derive(Clone, PartialEq, ::prost::Oneof)]
1276    pub enum NextPage {
1277        #[prost(message, tag = "2")]
1278        NoMorePages(NoMorePages),
1279        #[prost(message, tag = "3")]
1280        Token(NextPageToken),
1281    }
1282}
1283/// / Add users to an existing team group
1284#[derive(serde::Serialize, serde::Deserialize)]
1285#[serde(rename_all = "snake_case")]
1286#[derive(Clone, PartialEq, ::prost::Message)]
1287pub struct AddUsersToTeamGroupRequest {
1288    /// / Team group id to add users to
1289    #[prost(message, optional, tag = "1")]
1290    pub group_id: ::core::option::Option<TeamGroupId>,
1291    /// / Users to add to group
1292    #[prost(message, repeated, tag = "2")]
1293    pub user_ids: ::prost::alloc::vec::Vec<UserId>,
1294}
1295/// / Add users to an existing team group response
1296#[derive(serde::Serialize, serde::Deserialize)]
1297#[serde(rename_all = "snake_case")]
1298#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1299pub struct AddUsersToTeamGroupResponse {
1300    /// / Team id to which given team group belongs
1301    #[prost(message, optional, tag = "1")]
1302    pub team_id: ::core::option::Option<TeamId>,
1303}
1304/// / Associate new users with groups in a team
1305/// / Allows to associate any number of users with any number of groups belonging to a team
1306#[derive(serde::Serialize, serde::Deserialize)]
1307#[serde(rename_all = "snake_case")]
1308#[derive(Clone, PartialEq, ::prost::Message)]
1309pub struct AddUsersToTeamGroupsRequest {
1310    #[prost(message, optional, tag = "1")]
1311    pub team_id: ::core::option::Option<TeamId>,
1312    #[prost(message, repeated, tag = "2")]
1313    pub add_users_to_group: ::prost::alloc::vec::Vec<
1314        add_users_to_team_groups_request::AddUsersToTeamGroup,
1315    >,
1316}
1317/// Nested message and enum types in `AddUsersToTeamGroupsRequest`.
1318pub mod add_users_to_team_groups_request {
1319    #[derive(serde::Serialize, serde::Deserialize)]
1320    #[serde(rename_all = "snake_case")]
1321    #[derive(Clone, PartialEq, ::prost::Message)]
1322    pub struct AddUsersToTeamGroup {
1323        /// / Team group id to add users to
1324        #[prost(message, optional, tag = "1")]
1325        pub group_id: ::core::option::Option<super::TeamGroupId>,
1326        /// / Users to add to group
1327        #[prost(message, repeated, tag = "2")]
1328        pub user_ids: ::prost::alloc::vec::Vec<super::UserId>,
1329    }
1330}
1331#[derive(serde::Serialize, serde::Deserialize)]
1332#[serde(rename_all = "snake_case")]
1333#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1334pub struct AddUsersToTeamGroupsResponse {}
1335/// / Remove users from an existing team group
1336#[derive(serde::Serialize, serde::Deserialize)]
1337#[serde(rename_all = "snake_case")]
1338#[derive(Clone, PartialEq, ::prost::Message)]
1339pub struct RemoveUsersFromTeamGroupRequest {
1340    /// / Team group id to remove users from
1341    #[prost(message, optional, tag = "1")]
1342    pub group_id: ::core::option::Option<TeamGroupId>,
1343    /// / Users to remove to group
1344    #[prost(message, repeated, tag = "2")]
1345    pub user_ids: ::prost::alloc::vec::Vec<UserId>,
1346}
1347#[derive(serde::Serialize, serde::Deserialize)]
1348#[serde(rename_all = "snake_case")]
1349#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1350pub struct RemoveUsersFromTeamGroupResponse {}
1351/// / Remove users from groups in a team
1352/// / Allows the removal of any number of users and any number of groups belonging to a team
1353#[derive(serde::Serialize, serde::Deserialize)]
1354#[serde(rename_all = "snake_case")]
1355#[derive(Clone, PartialEq, ::prost::Message)]
1356pub struct RemoveUsersFromTeamGroupsRequest {
1357    #[prost(message, optional, tag = "1")]
1358    pub team_id: ::core::option::Option<TeamId>,
1359    #[prost(message, repeated, tag = "2")]
1360    pub remove_users_from_group: ::prost::alloc::vec::Vec<
1361        remove_users_from_team_groups_request::RemoveUsersFromTeamGroup,
1362    >,
1363}
1364/// Nested message and enum types in `RemoveUsersFromTeamGroupsRequest`.
1365pub mod remove_users_from_team_groups_request {
1366    #[derive(serde::Serialize, serde::Deserialize)]
1367    #[serde(rename_all = "snake_case")]
1368    #[derive(Clone, PartialEq, ::prost::Message)]
1369    pub struct RemoveUsersFromTeamGroup {
1370        /// / Team group id to remove users from
1371        #[prost(message, optional, tag = "1")]
1372        pub group_id: ::core::option::Option<super::TeamGroupId>,
1373        /// / Users to remove to group
1374        #[prost(message, repeated, tag = "2")]
1375        pub user_ids: ::prost::alloc::vec::Vec<super::UserId>,
1376    }
1377}
1378/// / Remove users from existing groups
1379#[derive(serde::Serialize, serde::Deserialize)]
1380#[serde(rename_all = "snake_case")]
1381#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1382pub struct RemoveUsersFromTeamGroupsResponse {}
1383/// / Set team group scope request
1384#[derive(serde::Serialize, serde::Deserialize)]
1385#[serde(rename_all = "snake_case")]
1386#[derive(Clone, PartialEq, ::prost::Message)]
1387pub struct SetTeamGroupScopeRequest {
1388    /// / Team group to set scope to
1389    #[prost(message, optional, tag = "1")]
1390    pub group_id: ::core::option::Option<TeamGroupId>,
1391    /// / team group scope filters
1392    #[prost(message, optional, tag = "2")]
1393    pub scope_filters: ::core::option::Option<ScopeFilters>,
1394}
1395/// / Set team group scope response
1396#[derive(serde::Serialize, serde::Deserialize)]
1397#[serde(rename_all = "snake_case")]
1398#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1399pub struct SetTeamGroupScopeResponse {
1400    /// / Created scope_id or 0 if already exists and was replaced.
1401    #[prost(message, optional, tag = "1")]
1402    pub scope_id: ::core::option::Option<ScopeId>,
1403}
1404/// / Get team group scope request
1405#[derive(serde::Serialize, serde::Deserialize)]
1406#[serde(rename_all = "snake_case")]
1407#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1408pub struct GetTeamGroupScopeRequest {
1409    /// / Team group to set scope to
1410    #[prost(message, optional, tag = "1")]
1411    pub group_id: ::core::option::Option<TeamGroupId>,
1412}
1413/// / Set team group scope response
1414#[derive(serde::Serialize, serde::Deserialize)]
1415#[serde(rename_all = "snake_case")]
1416#[derive(Clone, PartialEq, ::prost::Message)]
1417pub struct GetTeamGroupScopeResponse {
1418    /// / Scope if group has one set
1419    #[prost(message, optional, tag = "1")]
1420    pub scope: ::core::option::Option<Scope>,
1421}
1422/// Generated client implementations.
1423pub mod team_permissions_mgmt_service_client {
1424    #![allow(
1425        unused_variables,
1426        dead_code,
1427        missing_docs,
1428        clippy::wildcard_imports,
1429        clippy::let_unit_value,
1430    )]
1431    use tonic::codegen::*;
1432    use tonic::codegen::http::Uri;
1433    /// / Service for creating and managing team groups, roles, users and scopes.
1434    #[derive(Debug, Clone)]
1435    pub struct TeamPermissionsMgmtServiceClient<T> {
1436        inner: tonic::client::Grpc<T>,
1437    }
1438    impl TeamPermissionsMgmtServiceClient<tonic::transport::Channel> {
1439        /// Attempt to create a new client by connecting to a given endpoint.
1440        pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
1441        where
1442            D: TryInto<tonic::transport::Endpoint>,
1443            D::Error: Into<StdError>,
1444        {
1445            let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
1446            Ok(Self::new(conn))
1447        }
1448    }
1449    impl<T> TeamPermissionsMgmtServiceClient<T>
1450    where
1451        T: tonic::client::GrpcService<tonic::body::BoxBody>,
1452        T::Error: Into<StdError>,
1453        T::ResponseBody: Body<Data = Bytes> + std::marker::Send + 'static,
1454        <T::ResponseBody as Body>::Error: Into<StdError> + std::marker::Send,
1455    {
1456        pub fn new(inner: T) -> Self {
1457            let inner = tonic::client::Grpc::new(inner);
1458            Self { inner }
1459        }
1460        pub fn with_origin(inner: T, origin: Uri) -> Self {
1461            let inner = tonic::client::Grpc::with_origin(inner, origin);
1462            Self { inner }
1463        }
1464        pub fn with_interceptor<F>(
1465            inner: T,
1466            interceptor: F,
1467        ) -> TeamPermissionsMgmtServiceClient<InterceptedService<T, F>>
1468        where
1469            F: tonic::service::Interceptor,
1470            T::ResponseBody: Default,
1471            T: tonic::codegen::Service<
1472                http::Request<tonic::body::BoxBody>,
1473                Response = http::Response<
1474                    <T as tonic::client::GrpcService<tonic::body::BoxBody>>::ResponseBody,
1475                >,
1476            >,
1477            <T as tonic::codegen::Service<
1478                http::Request<tonic::body::BoxBody>,
1479            >>::Error: Into<StdError> + std::marker::Send + std::marker::Sync,
1480        {
1481            TeamPermissionsMgmtServiceClient::new(
1482                InterceptedService::new(inner, interceptor),
1483            )
1484        }
1485        /// Compress requests with the given encoding.
1486        ///
1487        /// This requires the server to support it otherwise it might respond with an
1488        /// error.
1489        #[must_use]
1490        pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
1491            self.inner = self.inner.send_compressed(encoding);
1492            self
1493        }
1494        /// Enable decompressing responses.
1495        #[must_use]
1496        pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
1497            self.inner = self.inner.accept_compressed(encoding);
1498            self
1499        }
1500        /// Limits the maximum size of a decoded message.
1501        ///
1502        /// Default: `4MB`
1503        #[must_use]
1504        pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
1505            self.inner = self.inner.max_decoding_message_size(limit);
1506            self
1507        }
1508        /// Limits the maximum size of an encoded message.
1509        ///
1510        /// Default: `usize::MAX`
1511        #[must_use]
1512        pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
1513            self.inner = self.inner.max_encoding_message_size(limit);
1514            self
1515        }
1516        /// / Fetch team group for given team id
1517        pub async fn get_team_group(
1518            &mut self,
1519            request: impl tonic::IntoRequest<super::GetTeamGroupRequest>,
1520        ) -> std::result::Result<
1521            tonic::Response<super::GetTeamGroupResponse>,
1522            tonic::Status,
1523        > {
1524            self.inner
1525                .ready()
1526                .await
1527                .map_err(|e| {
1528                    tonic::Status::unknown(
1529                        format!("Service was not ready: {}", e.into()),
1530                    )
1531                })?;
1532            let codec = tonic::codec::ProstCodec::default();
1533            let path = http::uri::PathAndQuery::from_static(
1534                "/com.coralogix.permissions.v1.TeamPermissionsMgmtService/GetTeamGroup",
1535            );
1536            let mut req = request.into_request();
1537            req.extensions_mut()
1538                .insert(
1539                    GrpcMethod::new(
1540                        "com.coralogix.permissions.v1.TeamPermissionsMgmtService",
1541                        "GetTeamGroup",
1542                    ),
1543                );
1544            self.inner.unary(req, path, codec).await
1545        }
1546        /// / Fetch team group by name for authenticated team id
1547        pub async fn get_team_group_by_name(
1548            &mut self,
1549            request: impl tonic::IntoRequest<super::GetTeamGroupByNameRequest>,
1550        ) -> std::result::Result<
1551            tonic::Response<super::GetTeamGroupByNameResponse>,
1552            tonic::Status,
1553        > {
1554            self.inner
1555                .ready()
1556                .await
1557                .map_err(|e| {
1558                    tonic::Status::unknown(
1559                        format!("Service was not ready: {}", e.into()),
1560                    )
1561                })?;
1562            let codec = tonic::codec::ProstCodec::default();
1563            let path = http::uri::PathAndQuery::from_static(
1564                "/com.coralogix.permissions.v1.TeamPermissionsMgmtService/GetTeamGroupByName",
1565            );
1566            let mut req = request.into_request();
1567            req.extensions_mut()
1568                .insert(
1569                    GrpcMethod::new(
1570                        "com.coralogix.permissions.v1.TeamPermissionsMgmtService",
1571                        "GetTeamGroupByName",
1572                    ),
1573                );
1574            self.inner.unary(req, path, codec).await
1575        }
1576        /// / Fetches all team groups linked with team
1577        pub async fn get_team_groups(
1578            &mut self,
1579            request: impl tonic::IntoRequest<super::GetTeamGroupsRequest>,
1580        ) -> std::result::Result<
1581            tonic::Response<super::GetTeamGroupsResponse>,
1582            tonic::Status,
1583        > {
1584            self.inner
1585                .ready()
1586                .await
1587                .map_err(|e| {
1588                    tonic::Status::unknown(
1589                        format!("Service was not ready: {}", e.into()),
1590                    )
1591                })?;
1592            let codec = tonic::codec::ProstCodec::default();
1593            let path = http::uri::PathAndQuery::from_static(
1594                "/com.coralogix.permissions.v1.TeamPermissionsMgmtService/GetTeamGroups",
1595            );
1596            let mut req = request.into_request();
1597            req.extensions_mut()
1598                .insert(
1599                    GrpcMethod::new(
1600                        "com.coralogix.permissions.v1.TeamPermissionsMgmtService",
1601                        "GetTeamGroups",
1602                    ),
1603                );
1604            self.inner.unary(req, path, codec).await
1605        }
1606        /// / Creates a new team group and optionally associates roles, users and a scope to it
1607        pub async fn create_team_group(
1608            &mut self,
1609            request: impl tonic::IntoRequest<super::CreateTeamGroupRequest>,
1610        ) -> std::result::Result<
1611            tonic::Response<super::CreateTeamGroupResponse>,
1612            tonic::Status,
1613        > {
1614            self.inner
1615                .ready()
1616                .await
1617                .map_err(|e| {
1618                    tonic::Status::unknown(
1619                        format!("Service was not ready: {}", e.into()),
1620                    )
1621                })?;
1622            let codec = tonic::codec::ProstCodec::default();
1623            let path = http::uri::PathAndQuery::from_static(
1624                "/com.coralogix.permissions.v1.TeamPermissionsMgmtService/CreateTeamGroup",
1625            );
1626            let mut req = request.into_request();
1627            req.extensions_mut()
1628                .insert(
1629                    GrpcMethod::new(
1630                        "com.coralogix.permissions.v1.TeamPermissionsMgmtService",
1631                        "CreateTeamGroup",
1632                    ),
1633                );
1634            self.inner.unary(req, path, codec).await
1635        }
1636        /// / Updates an existing team group details
1637        pub async fn update_team_group(
1638            &mut self,
1639            request: impl tonic::IntoRequest<super::UpdateTeamGroupRequest>,
1640        ) -> std::result::Result<
1641            tonic::Response<super::UpdateTeamGroupResponse>,
1642            tonic::Status,
1643        > {
1644            self.inner
1645                .ready()
1646                .await
1647                .map_err(|e| {
1648                    tonic::Status::unknown(
1649                        format!("Service was not ready: {}", e.into()),
1650                    )
1651                })?;
1652            let codec = tonic::codec::ProstCodec::default();
1653            let path = http::uri::PathAndQuery::from_static(
1654                "/com.coralogix.permissions.v1.TeamPermissionsMgmtService/UpdateTeamGroup",
1655            );
1656            let mut req = request.into_request();
1657            req.extensions_mut()
1658                .insert(
1659                    GrpcMethod::new(
1660                        "com.coralogix.permissions.v1.TeamPermissionsMgmtService",
1661                        "UpdateTeamGroup",
1662                    ),
1663                );
1664            self.inner.unary(req, path, codec).await
1665        }
1666        /// / Deletes an existing team group
1667        pub async fn delete_team_group(
1668            &mut self,
1669            request: impl tonic::IntoRequest<super::DeleteTeamGroupRequest>,
1670        ) -> std::result::Result<
1671            tonic::Response<super::DeleteTeamGroupResponse>,
1672            tonic::Status,
1673        > {
1674            self.inner
1675                .ready()
1676                .await
1677                .map_err(|e| {
1678                    tonic::Status::unknown(
1679                        format!("Service was not ready: {}", e.into()),
1680                    )
1681                })?;
1682            let codec = tonic::codec::ProstCodec::default();
1683            let path = http::uri::PathAndQuery::from_static(
1684                "/com.coralogix.permissions.v1.TeamPermissionsMgmtService/DeleteTeamGroup",
1685            );
1686            let mut req = request.into_request();
1687            req.extensions_mut()
1688                .insert(
1689                    GrpcMethod::new(
1690                        "com.coralogix.permissions.v1.TeamPermissionsMgmtService",
1691                        "DeleteTeamGroup",
1692                    ),
1693                );
1694            self.inner.unary(req, path, codec).await
1695        }
1696        /// / Fetches all users assigned to group
1697        pub async fn get_group_users(
1698            &mut self,
1699            request: impl tonic::IntoRequest<super::GetGroupUsersRequest>,
1700        ) -> std::result::Result<
1701            tonic::Response<super::GetGroupUsersResponse>,
1702            tonic::Status,
1703        > {
1704            self.inner
1705                .ready()
1706                .await
1707                .map_err(|e| {
1708                    tonic::Status::unknown(
1709                        format!("Service was not ready: {}", e.into()),
1710                    )
1711                })?;
1712            let codec = tonic::codec::ProstCodec::default();
1713            let path = http::uri::PathAndQuery::from_static(
1714                "/com.coralogix.permissions.v1.TeamPermissionsMgmtService/GetGroupUsers",
1715            );
1716            let mut req = request.into_request();
1717            req.extensions_mut()
1718                .insert(
1719                    GrpcMethod::new(
1720                        "com.coralogix.permissions.v1.TeamPermissionsMgmtService",
1721                        "GetGroupUsers",
1722                    ),
1723                );
1724            self.inner.unary(req, path, codec).await
1725        }
1726        /// / Add users to team groups
1727        pub async fn add_users_to_team_group(
1728            &mut self,
1729            request: impl tonic::IntoRequest<super::AddUsersToTeamGroupRequest>,
1730        ) -> std::result::Result<
1731            tonic::Response<super::AddUsersToTeamGroupResponse>,
1732            tonic::Status,
1733        > {
1734            self.inner
1735                .ready()
1736                .await
1737                .map_err(|e| {
1738                    tonic::Status::unknown(
1739                        format!("Service was not ready: {}", e.into()),
1740                    )
1741                })?;
1742            let codec = tonic::codec::ProstCodec::default();
1743            let path = http::uri::PathAndQuery::from_static(
1744                "/com.coralogix.permissions.v1.TeamPermissionsMgmtService/AddUsersToTeamGroup",
1745            );
1746            let mut req = request.into_request();
1747            req.extensions_mut()
1748                .insert(
1749                    GrpcMethod::new(
1750                        "com.coralogix.permissions.v1.TeamPermissionsMgmtService",
1751                        "AddUsersToTeamGroup",
1752                    ),
1753                );
1754            self.inner.unary(req, path, codec).await
1755        }
1756        /// / Bulk Add users to team groups
1757        pub async fn add_users_to_team_groups(
1758            &mut self,
1759            request: impl tonic::IntoRequest<super::AddUsersToTeamGroupsRequest>,
1760        ) -> std::result::Result<
1761            tonic::Response<super::AddUsersToTeamGroupsResponse>,
1762            tonic::Status,
1763        > {
1764            self.inner
1765                .ready()
1766                .await
1767                .map_err(|e| {
1768                    tonic::Status::unknown(
1769                        format!("Service was not ready: {}", e.into()),
1770                    )
1771                })?;
1772            let codec = tonic::codec::ProstCodec::default();
1773            let path = http::uri::PathAndQuery::from_static(
1774                "/com.coralogix.permissions.v1.TeamPermissionsMgmtService/AddUsersToTeamGroups",
1775            );
1776            let mut req = request.into_request();
1777            req.extensions_mut()
1778                .insert(
1779                    GrpcMethod::new(
1780                        "com.coralogix.permissions.v1.TeamPermissionsMgmtService",
1781                        "AddUsersToTeamGroups",
1782                    ),
1783                );
1784            self.inner.unary(req, path, codec).await
1785        }
1786        /// / Remove user accounts to organisation group
1787        pub async fn remove_users_from_team_group(
1788            &mut self,
1789            request: impl tonic::IntoRequest<super::RemoveUsersFromTeamGroupRequest>,
1790        ) -> std::result::Result<
1791            tonic::Response<super::RemoveUsersFromTeamGroupResponse>,
1792            tonic::Status,
1793        > {
1794            self.inner
1795                .ready()
1796                .await
1797                .map_err(|e| {
1798                    tonic::Status::unknown(
1799                        format!("Service was not ready: {}", e.into()),
1800                    )
1801                })?;
1802            let codec = tonic::codec::ProstCodec::default();
1803            let path = http::uri::PathAndQuery::from_static(
1804                "/com.coralogix.permissions.v1.TeamPermissionsMgmtService/RemoveUsersFromTeamGroup",
1805            );
1806            let mut req = request.into_request();
1807            req.extensions_mut()
1808                .insert(
1809                    GrpcMethod::new(
1810                        "com.coralogix.permissions.v1.TeamPermissionsMgmtService",
1811                        "RemoveUsersFromTeamGroup",
1812                    ),
1813                );
1814            self.inner.unary(req, path, codec).await
1815        }
1816        /// / Bulk Remove user accounts to organisation group
1817        pub async fn remove_users_from_team_groups(
1818            &mut self,
1819            request: impl tonic::IntoRequest<super::RemoveUsersFromTeamGroupsRequest>,
1820        ) -> std::result::Result<
1821            tonic::Response<super::RemoveUsersFromTeamGroupsResponse>,
1822            tonic::Status,
1823        > {
1824            self.inner
1825                .ready()
1826                .await
1827                .map_err(|e| {
1828                    tonic::Status::unknown(
1829                        format!("Service was not ready: {}", e.into()),
1830                    )
1831                })?;
1832            let codec = tonic::codec::ProstCodec::default();
1833            let path = http::uri::PathAndQuery::from_static(
1834                "/com.coralogix.permissions.v1.TeamPermissionsMgmtService/RemoveUsersFromTeamGroups",
1835            );
1836            let mut req = request.into_request();
1837            req.extensions_mut()
1838                .insert(
1839                    GrpcMethod::new(
1840                        "com.coralogix.permissions.v1.TeamPermissionsMgmtService",
1841                        "RemoveUsersFromTeamGroups",
1842                    ),
1843                );
1844            self.inner.unary(req, path, codec).await
1845        }
1846        /// / Sets team group scope. Replaces it if it already exists.
1847        pub async fn set_team_group_scope(
1848            &mut self,
1849            request: impl tonic::IntoRequest<super::SetTeamGroupScopeRequest>,
1850        ) -> std::result::Result<
1851            tonic::Response<super::SetTeamGroupScopeResponse>,
1852            tonic::Status,
1853        > {
1854            self.inner
1855                .ready()
1856                .await
1857                .map_err(|e| {
1858                    tonic::Status::unknown(
1859                        format!("Service was not ready: {}", e.into()),
1860                    )
1861                })?;
1862            let codec = tonic::codec::ProstCodec::default();
1863            let path = http::uri::PathAndQuery::from_static(
1864                "/com.coralogix.permissions.v1.TeamPermissionsMgmtService/SetTeamGroupScope",
1865            );
1866            let mut req = request.into_request();
1867            req.extensions_mut()
1868                .insert(
1869                    GrpcMethod::new(
1870                        "com.coralogix.permissions.v1.TeamPermissionsMgmtService",
1871                        "SetTeamGroupScope",
1872                    ),
1873                );
1874            self.inner.unary(req, path, codec).await
1875        }
1876        /// / Fetches team group scope
1877        pub async fn get_team_group_scope(
1878            &mut self,
1879            request: impl tonic::IntoRequest<super::GetTeamGroupScopeRequest>,
1880        ) -> std::result::Result<
1881            tonic::Response<super::GetTeamGroupScopeResponse>,
1882            tonic::Status,
1883        > {
1884            self.inner
1885                .ready()
1886                .await
1887                .map_err(|e| {
1888                    tonic::Status::unknown(
1889                        format!("Service was not ready: {}", e.into()),
1890                    )
1891                })?;
1892            let codec = tonic::codec::ProstCodec::default();
1893            let path = http::uri::PathAndQuery::from_static(
1894                "/com.coralogix.permissions.v1.TeamPermissionsMgmtService/GetTeamGroupScope",
1895            );
1896            let mut req = request.into_request();
1897            req.extensions_mut()
1898                .insert(
1899                    GrpcMethod::new(
1900                        "com.coralogix.permissions.v1.TeamPermissionsMgmtService",
1901                        "GetTeamGroupScope",
1902                    ),
1903                );
1904            self.inner.unary(req, path, codec).await
1905        }
1906    }
1907}