1use crate::models;
12
13#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
14pub struct Policies {
15 #[serde(rename = "auth_policies", skip_serializing_if = "Option::is_none")]
16 pub auth_policies: Option<Box<models::AuthPolicies>>,
17 #[serde(rename = "autoSubscriptionCreationOverride", skip_serializing_if = "Option::is_none")]
18 pub auto_subscription_creation_override: Option<Box<models::AutoSubscriptionCreationOverride>>,
19 #[serde(rename = "autoTopicCreationOverride", skip_serializing_if = "Option::is_none")]
20 pub auto_topic_creation_override: Option<Box<models::AutoTopicCreationOverride>>,
21 #[serde(rename = "backlog_quota_map", skip_serializing_if = "Option::is_none")]
22 pub backlog_quota_map: Option<std::collections::HashMap<String, models::BacklogQuota>>,
23 #[serde(rename = "bundles", skip_serializing_if = "Option::is_none")]
24 pub bundles: Option<Box<models::BundlesData>>,
25 #[serde(rename = "clusterDispatchRate", skip_serializing_if = "Option::is_none")]
26 pub cluster_dispatch_rate: Option<std::collections::HashMap<String, models::DispatchRateImpl>>,
27 #[serde(rename = "clusterSubscribeRate", skip_serializing_if = "Option::is_none")]
28 pub cluster_subscribe_rate: Option<std::collections::HashMap<String, models::SubscribeRate>>,
29 #[serde(rename = "compaction_threshold", skip_serializing_if = "Option::is_none")]
30 pub compaction_threshold: Option<i64>,
31 #[serde(rename = "deduplicationEnabled", skip_serializing_if = "Option::is_none")]
32 pub deduplication_enabled: Option<bool>,
33 #[serde(rename = "deduplicationSnapshotIntervalSeconds", skip_serializing_if = "Option::is_none")]
34 pub deduplication_snapshot_interval_seconds: Option<i32>,
35 #[serde(rename = "delayed_delivery_policies", skip_serializing_if = "Option::is_none")]
36 pub delayed_delivery_policies: Option<Box<models::DelayedDeliveryPolicies>>,
37 #[serde(rename = "deleted", skip_serializing_if = "Option::is_none")]
38 pub deleted: Option<bool>,
39 #[serde(rename = "dispatcherPauseOnAckStatePersistentEnabled", skip_serializing_if = "Option::is_none")]
40 pub dispatcher_pause_on_ack_state_persistent_enabled: Option<bool>,
41 #[serde(rename = "encryption_required", skip_serializing_if = "Option::is_none")]
42 pub encryption_required: Option<bool>,
43 #[serde(rename = "entryFilters", skip_serializing_if = "Option::is_none")]
44 pub entry_filters: Option<Box<models::EntryFilters>>,
45 #[serde(rename = "inactive_topic_policies", skip_serializing_if = "Option::is_none")]
46 pub inactive_topic_policies: Option<Box<models::InactiveTopicPolicies>>,
47 #[serde(rename = "is_allow_auto_update_schema", skip_serializing_if = "Option::is_none")]
48 pub is_allow_auto_update_schema: Option<bool>,
49 #[serde(rename = "latency_stats_sample_rate", skip_serializing_if = "Option::is_none")]
50 pub latency_stats_sample_rate: Option<std::collections::HashMap<String, i32>>,
51 #[serde(rename = "max_consumers_per_subscription", skip_serializing_if = "Option::is_none")]
52 pub max_consumers_per_subscription: Option<i32>,
53 #[serde(rename = "max_consumers_per_topic", skip_serializing_if = "Option::is_none")]
54 pub max_consumers_per_topic: Option<i32>,
55 #[serde(rename = "max_producers_per_topic", skip_serializing_if = "Option::is_none")]
56 pub max_producers_per_topic: Option<i32>,
57 #[serde(rename = "max_subscriptions_per_topic", skip_serializing_if = "Option::is_none")]
58 pub max_subscriptions_per_topic: Option<i32>,
59 #[serde(rename = "max_topics_per_namespace", skip_serializing_if = "Option::is_none")]
60 pub max_topics_per_namespace: Option<i32>,
61 #[serde(rename = "max_unacked_messages_per_consumer", skip_serializing_if = "Option::is_none")]
62 pub max_unacked_messages_per_consumer: Option<i32>,
63 #[serde(rename = "max_unacked_messages_per_subscription", skip_serializing_if = "Option::is_none")]
64 pub max_unacked_messages_per_subscription: Option<i32>,
65 #[serde(rename = "message_ttl_in_seconds", skip_serializing_if = "Option::is_none")]
66 pub message_ttl_in_seconds: Option<i32>,
67 #[serde(rename = "migrated", skip_serializing_if = "Option::is_none")]
68 pub migrated: Option<bool>,
69 #[serde(rename = "offload_deletion_lag_ms", skip_serializing_if = "Option::is_none")]
70 pub offload_deletion_lag_ms: Option<i64>,
71 #[serde(rename = "offload_policies", skip_serializing_if = "Option::is_none")]
72 pub offload_policies: Option<Box<models::OffloadPolicies>>,
73 #[serde(rename = "offload_threshold", skip_serializing_if = "Option::is_none")]
74 pub offload_threshold: Option<i64>,
75 #[serde(rename = "offload_threshold_in_seconds", skip_serializing_if = "Option::is_none")]
76 pub offload_threshold_in_seconds: Option<i64>,
77 #[serde(rename = "persistence", skip_serializing_if = "Option::is_none")]
78 pub persistence: Option<Box<models::PersistencePolicies>>,
79 #[serde(rename = "properties", skip_serializing_if = "Option::is_none")]
80 pub properties: Option<std::collections::HashMap<String, String>>,
81 #[serde(rename = "publishMaxMessageRate", skip_serializing_if = "Option::is_none")]
82 pub publish_max_message_rate: Option<std::collections::HashMap<String, models::PublishRate>>,
83 #[serde(rename = "replication_clusters", skip_serializing_if = "Option::is_none")]
84 pub replication_clusters: Option<Vec<String>>,
85 #[serde(rename = "replicatorDispatchRate", skip_serializing_if = "Option::is_none")]
86 pub replicator_dispatch_rate: Option<std::collections::HashMap<String, models::DispatchRateImpl>>,
87 #[serde(rename = "resource_group_name", skip_serializing_if = "Option::is_none")]
88 pub resource_group_name: Option<String>,
89 #[serde(rename = "retention_policies", skip_serializing_if = "Option::is_none")]
90 pub retention_policies: Option<Box<models::RetentionPolicies>>,
91 #[serde(rename = "schema_auto_update_compatibility_strategy", skip_serializing_if = "Option::is_none")]
92 pub schema_auto_update_compatibility_strategy: Option<SchemaAutoUpdateCompatibilityStrategy>,
93 #[serde(rename = "schema_compatibility_strategy", skip_serializing_if = "Option::is_none")]
94 pub schema_compatibility_strategy: Option<SchemaCompatibilityStrategy>,
95 #[serde(rename = "schema_validation_enforced", skip_serializing_if = "Option::is_none")]
96 pub schema_validation_enforced: Option<bool>,
97 #[serde(rename = "subscriptionDispatchRate", skip_serializing_if = "Option::is_none")]
98 pub subscription_dispatch_rate: Option<std::collections::HashMap<String, models::DispatchRateImpl>>,
99 #[serde(rename = "subscription_auth_mode", skip_serializing_if = "Option::is_none")]
100 pub subscription_auth_mode: Option<SubscriptionAuthMode>,
101 #[serde(rename = "subscription_expiration_time_minutes", skip_serializing_if = "Option::is_none")]
102 pub subscription_expiration_time_minutes: Option<i32>,
103 #[serde(rename = "subscription_types_enabled", skip_serializing_if = "Option::is_none")]
104 pub subscription_types_enabled: Option<Vec<String>>,
105 #[serde(rename = "topicDispatchRate", skip_serializing_if = "Option::is_none")]
106 pub topic_dispatch_rate: Option<std::collections::HashMap<String, models::DispatchRateImpl>>,
107}
108
109impl Policies {
110 pub fn new() -> Policies {
111 Policies {
112 auth_policies: None,
113 auto_subscription_creation_override: None,
114 auto_topic_creation_override: None,
115 backlog_quota_map: None,
116 bundles: None,
117 cluster_dispatch_rate: None,
118 cluster_subscribe_rate: None,
119 compaction_threshold: None,
120 deduplication_enabled: None,
121 deduplication_snapshot_interval_seconds: None,
122 delayed_delivery_policies: None,
123 deleted: None,
124 dispatcher_pause_on_ack_state_persistent_enabled: None,
125 encryption_required: None,
126 entry_filters: None,
127 inactive_topic_policies: None,
128 is_allow_auto_update_schema: None,
129 latency_stats_sample_rate: None,
130 max_consumers_per_subscription: None,
131 max_consumers_per_topic: None,
132 max_producers_per_topic: None,
133 max_subscriptions_per_topic: None,
134 max_topics_per_namespace: None,
135 max_unacked_messages_per_consumer: None,
136 max_unacked_messages_per_subscription: None,
137 message_ttl_in_seconds: None,
138 migrated: None,
139 offload_deletion_lag_ms: None,
140 offload_policies: None,
141 offload_threshold: None,
142 offload_threshold_in_seconds: None,
143 persistence: None,
144 properties: None,
145 publish_max_message_rate: None,
146 replication_clusters: None,
147 replicator_dispatch_rate: None,
148 resource_group_name: None,
149 retention_policies: None,
150 schema_auto_update_compatibility_strategy: None,
151 schema_compatibility_strategy: None,
152 schema_validation_enforced: None,
153 subscription_dispatch_rate: None,
154 subscription_auth_mode: None,
155 subscription_expiration_time_minutes: None,
156 subscription_types_enabled: None,
157 topic_dispatch_rate: None,
158 }
159 }
160}
161#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
163pub enum SchemaAutoUpdateCompatibilityStrategy {
164 #[serde(rename = "AutoUpdateDisabled")]
165 AutoUpdateDisabled,
166 #[serde(rename = "Backward")]
167 Backward,
168 #[serde(rename = "Forward")]
169 Forward,
170 #[serde(rename = "Full")]
171 Full,
172 #[serde(rename = "AlwaysCompatible")]
173 AlwaysCompatible,
174 #[serde(rename = "BackwardTransitive")]
175 BackwardTransitive,
176 #[serde(rename = "ForwardTransitive")]
177 ForwardTransitive,
178 #[serde(rename = "FullTransitive")]
179 FullTransitive,
180}
181
182impl Default for SchemaAutoUpdateCompatibilityStrategy {
183 fn default() -> SchemaAutoUpdateCompatibilityStrategy {
184 Self::AutoUpdateDisabled
185 }
186}
187#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
189pub enum SchemaCompatibilityStrategy {
190 #[serde(rename = "UNDEFINED")]
191 Undefined,
192 #[serde(rename = "ALWAYS_INCOMPATIBLE")]
193 AlwaysIncompatible,
194 #[serde(rename = "ALWAYS_COMPATIBLE")]
195 AlwaysCompatible,
196 #[serde(rename = "BACKWARD")]
197 Backward,
198 #[serde(rename = "FORWARD")]
199 Forward,
200 #[serde(rename = "FULL")]
201 Full,
202 #[serde(rename = "BACKWARD_TRANSITIVE")]
203 BackwardTransitive,
204 #[serde(rename = "FORWARD_TRANSITIVE")]
205 ForwardTransitive,
206 #[serde(rename = "FULL_TRANSITIVE")]
207 FullTransitive,
208}
209
210impl Default for SchemaCompatibilityStrategy {
211 fn default() -> SchemaCompatibilityStrategy {
212 Self::Undefined
213 }
214}
215#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
217pub enum SubscriptionAuthMode {
218 #[serde(rename = "None")]
219 None,
220 #[serde(rename = "Prefix")]
221 Prefix,
222}
223
224impl Default for SubscriptionAuthMode {
225 fn default() -> SubscriptionAuthMode {
226 Self::None
227 }
228}
229