diff --git a/docs/resources/streaming_namespace.md b/docs/resources/streaming_namespace.md index 52543af..287652b 100644 --- a/docs/resources/streaming_namespace.md +++ b/docs/resources/streaming_namespace.md @@ -90,6 +90,7 @@ Optional: - `inactive_topic_policies` (Attributes) (see [below for nested schema](#nestedatt--policies--inactive_topic_policies)) - `is_allow_auto_update_schema` (Boolean) - `message_ttl_in_seconds` (Number) +- `offload_threshold` (Number) - `retention_policies` (Attributes) (see [below for nested schema](#nestedatt--policies--retention_policies)) - `schema_auto_update_compatibility_strategy` (String) - `schema_compatibility_strategy` (String) diff --git a/internal/provider/types_streaming_namespace_policies.go b/internal/provider/types_streaming_namespace_policies.go index 2edce8d..d3cb18e 100644 --- a/internal/provider/types_streaming_namespace_policies.go +++ b/internal/provider/types_streaming_namespace_policies.go @@ -51,6 +51,7 @@ const ( policyInactiveTopicDeleteMode = "delete_mode" policySubscriptionExpirationTimeMinutes = "subscription_expiration_time_minutes" + policyOffloadThreshold = "offload_threshold" ) type PulsarNamespacePolicies struct { @@ -65,6 +66,7 @@ type PulsarNamespacePolicies struct { RetentionPolicies *PulsarNamespaceRetentionPolicies `tfsdk:"retention_policies" json:"retention_policies,omitempty"` InactiveTopicPolicies *PulsarNamespaceInactiveTopicPolicies `tfsdk:"inactive_topic_policies" json:"inactive_topic_policies,omitempty"` SubscriptionExpirationTimeMinutes *int64 `tfsdk:"subscription_expiration_time_minutes" json:"subscription_expiration_time_minutes,omitempty"` + OffloadThreshold *int64 `tfsdk:"offload_threshold" json:"offload_threshold,omitempty"` } type PulsarNamespaceRetentionPolicies struct { @@ -199,6 +201,7 @@ var ( }, }, policySubscriptionExpirationTimeMinutes: int64PulsarNamespacePolicyAttribute, + policyOffloadThreshold: int64PulsarNamespacePolicyAttribute, }, } ) @@ -316,6 +319,10 @@ func setNamespacePolicies(ctx context.Context, client *pulsaradmin.ClientWithRes resp, err := client.NamespacesSetSchemaValidationEnforced(ctx, tenant, namespace, *policies.SchemaValidationEnforced, requestEditors...) diags.Append(HTTPResponseDiagWarn(resp, err, pulsarNamespacePolicyError(policySchemaValidationEnforced))...) } + if policies.OffloadThreshold != nil { + resp, err := client.NamespacesSetOffloadThreshold(ctx, tenant, namespace, *policies.OffloadThreshold, requestEditors...) + diags.Append(HTTPResponseDiagWarn(resp, err, pulsarNamespacePolicyError(policyOffloadThreshold))...) + } // Nested objects if policies.AutoTopicCreationOverride != nil { @@ -334,7 +341,6 @@ func setNamespacePolicies(ctx context.Context, client *pulsaradmin.ClientWithRes resp, err := client.NamespacesSetRetention(ctx, tenant, namespace, *policies.RetentionPolicies, requestEditors...) diags.Append(HTTPResponseDiagWarn(resp, err, pulsarNamespacePolicyError(policyRetentionPolicies))...) } - if policies.InactiveTopicPolicies != nil { resp, err := client.NamespacesSetInactiveTopicPolicies(ctx, tenant, namespace, *policies.InactiveTopicPolicies, requestEditors...) diags.Append(HTTPResponseDiagWarn(resp, err, pulsarNamespacePolicyError(policyInactiveTopicPolicies))...)