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