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