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