Skip to content

Commit 538380d

Browse files
add streaming namespace policy offload threshold (#381)
Implement pulsar namespace offload threshold: https://pulsar.apache.org/admin-rest-api/#operation/Namespaces_setOffloadThreshold Co-authored-by: ext-devgangavkar <[email protected]>
1 parent 6ebea76 commit 538380d

File tree

2 files changed

+8
-1
lines changed

2 files changed

+8
-1
lines changed

docs/resources/streaming_namespace.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,7 @@ Optional:
9090
- `inactive_topic_policies` (Attributes) (see [below for nested schema](#nestedatt--policies--inactive_topic_policies))
9191
- `is_allow_auto_update_schema` (Boolean)
9292
- `message_ttl_in_seconds` (Number)
93+
- `offload_threshold` (Number)
9394
- `retention_policies` (Attributes) (see [below for nested schema](#nestedatt--policies--retention_policies))
9495
- `schema_auto_update_compatibility_strategy` (String)
9596
- `schema_compatibility_strategy` (String)

internal/provider/types_streaming_namespace_policies.go

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ const (
5151
policyInactiveTopicDeleteMode = "delete_mode"
5252

5353
policySubscriptionExpirationTimeMinutes = "subscription_expiration_time_minutes"
54+
policyOffloadThreshold = "offload_threshold"
5455
)
5556

5657
type PulsarNamespacePolicies struct {
@@ -65,6 +66,7 @@ type PulsarNamespacePolicies struct {
6566
RetentionPolicies *PulsarNamespaceRetentionPolicies `tfsdk:"retention_policies" json:"retention_policies,omitempty"`
6667
InactiveTopicPolicies *PulsarNamespaceInactiveTopicPolicies `tfsdk:"inactive_topic_policies" json:"inactive_topic_policies,omitempty"`
6768
SubscriptionExpirationTimeMinutes *int64 `tfsdk:"subscription_expiration_time_minutes" json:"subscription_expiration_time_minutes,omitempty"`
69+
OffloadThreshold *int64 `tfsdk:"offload_threshold" json:"offload_threshold,omitempty"`
6870
}
6971

7072
type PulsarNamespaceRetentionPolicies struct {
@@ -199,6 +201,7 @@ var (
199201
},
200202
},
201203
policySubscriptionExpirationTimeMinutes: int64PulsarNamespacePolicyAttribute,
204+
policyOffloadThreshold: int64PulsarNamespacePolicyAttribute,
202205
},
203206
}
204207
)
@@ -316,6 +319,10 @@ func setNamespacePolicies(ctx context.Context, client *pulsaradmin.ClientWithRes
316319
resp, err := client.NamespacesSetSchemaValidationEnforced(ctx, tenant, namespace, *policies.SchemaValidationEnforced, requestEditors...)
317320
diags.Append(HTTPResponseDiagWarn(resp, err, pulsarNamespacePolicyError(policySchemaValidationEnforced))...)
318321
}
322+
if policies.OffloadThreshold != nil {
323+
resp, err := client.NamespacesSetOffloadThreshold(ctx, tenant, namespace, *policies.OffloadThreshold, requestEditors...)
324+
diags.Append(HTTPResponseDiagWarn(resp, err, pulsarNamespacePolicyError(policyOffloadThreshold))...)
325+
}
319326

320327
// Nested objects
321328
if policies.AutoTopicCreationOverride != nil {
@@ -334,7 +341,6 @@ func setNamespacePolicies(ctx context.Context, client *pulsaradmin.ClientWithRes
334341
resp, err := client.NamespacesSetRetention(ctx, tenant, namespace, *policies.RetentionPolicies, requestEditors...)
335342
diags.Append(HTTPResponseDiagWarn(resp, err, pulsarNamespacePolicyError(policyRetentionPolicies))...)
336343
}
337-
338344
if policies.InactiveTopicPolicies != nil {
339345
resp, err := client.NamespacesSetInactiveTopicPolicies(ctx, tenant, namespace, *policies.InactiveTopicPolicies, requestEditors...)
340346
diags.Append(HTTPResponseDiagWarn(resp, err, pulsarNamespacePolicyError(policyInactiveTopicPolicies))...)

0 commit comments

Comments
 (0)