pulumi-confluentcloud 2.13.0a1735836869__py3-none-any.whl → 2.50.0a1762926155__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of pulumi-confluentcloud might be problematic. Click here for more details.

Files changed (129) hide show
  1. pulumi_confluentcloud/__init__.py +81 -1
  2. pulumi_confluentcloud/_inputs.py +4170 -2453
  3. pulumi_confluentcloud/_utilities.py +9 -5
  4. pulumi_confluentcloud/access_point.py +144 -36
  5. pulumi_confluentcloud/api_key.py +138 -272
  6. pulumi_confluentcloud/business_metadata.py +76 -73
  7. pulumi_confluentcloud/business_metadata_binding.py +101 -98
  8. pulumi_confluentcloud/byok_key.py +12 -11
  9. pulumi_confluentcloud/catalog_entity_attributes.py +133 -92
  10. pulumi_confluentcloud/catalog_integration.py +544 -0
  11. pulumi_confluentcloud/certificate_authority.py +156 -155
  12. pulumi_confluentcloud/certificate_pool.py +74 -73
  13. pulumi_confluentcloud/cluster_link.py +168 -91
  14. pulumi_confluentcloud/config/__init__.py +2 -1
  15. pulumi_confluentcloud/config/__init__.pyi +23 -2
  16. pulumi_confluentcloud/config/outputs.py +110 -0
  17. pulumi_confluentcloud/config/vars.py +50 -21
  18. pulumi_confluentcloud/connect_artifact.py +478 -0
  19. pulumi_confluentcloud/connector.py +303 -81
  20. pulumi_confluentcloud/custom_connector_plugin.py +142 -141
  21. pulumi_confluentcloud/custom_connector_plugin_version.py +614 -0
  22. pulumi_confluentcloud/dns_forwarder.py +88 -45
  23. pulumi_confluentcloud/dns_record.py +46 -45
  24. pulumi_confluentcloud/environment.py +74 -73
  25. pulumi_confluentcloud/flink_artifact.py +250 -194
  26. pulumi_confluentcloud/flink_compute_pool.py +101 -100
  27. pulumi_confluentcloud/flink_connection.py +935 -0
  28. pulumi_confluentcloud/flink_statement.py +218 -124
  29. pulumi_confluentcloud/gateway.py +44 -31
  30. pulumi_confluentcloud/get_access_point.py +36 -16
  31. pulumi_confluentcloud/get_business_metadata.py +25 -23
  32. pulumi_confluentcloud/get_business_metadata_binding.py +34 -32
  33. pulumi_confluentcloud/get_byok_key.py +11 -11
  34. pulumi_confluentcloud/get_catalog_integration.py +188 -0
  35. pulumi_confluentcloud/get_certificate_authority.py +38 -38
  36. pulumi_confluentcloud/get_certificate_pool.py +17 -17
  37. pulumi_confluentcloud/get_cluster_link.py +274 -0
  38. pulumi_confluentcloud/get_connect_artifact.py +191 -0
  39. pulumi_confluentcloud/get_dns_record.py +15 -15
  40. pulumi_confluentcloud/get_environment.py +17 -17
  41. pulumi_confluentcloud/get_environments.py +6 -6
  42. pulumi_confluentcloud/get_flink_artifact.py +59 -41
  43. pulumi_confluentcloud/get_flink_compute_pool.py +27 -27
  44. pulumi_confluentcloud/get_flink_connection.py +267 -0
  45. pulumi_confluentcloud/get_flink_region.py +24 -24
  46. pulumi_confluentcloud/get_gateway.py +45 -17
  47. pulumi_confluentcloud/get_group_mapping.py +18 -18
  48. pulumi_confluentcloud/get_identity_pool.py +21 -21
  49. pulumi_confluentcloud/get_identity_provider.py +35 -21
  50. pulumi_confluentcloud/get_invitation.py +20 -20
  51. pulumi_confluentcloud/get_ip_addresses.py +6 -6
  52. pulumi_confluentcloud/get_ip_filter.py +175 -0
  53. pulumi_confluentcloud/get_ip_group.py +133 -0
  54. pulumi_confluentcloud/get_kafka_client_quota.py +17 -17
  55. pulumi_confluentcloud/get_kafka_cluster.py +55 -41
  56. pulumi_confluentcloud/get_kafka_topic.py +22 -22
  57. pulumi_confluentcloud/get_ksql_cluster.py +33 -33
  58. pulumi_confluentcloud/get_network.py +54 -40
  59. pulumi_confluentcloud/get_network_link_endpoint.py +17 -17
  60. pulumi_confluentcloud/get_network_link_service.py +23 -17
  61. pulumi_confluentcloud/get_organization.py +6 -6
  62. pulumi_confluentcloud/get_peering.py +19 -19
  63. pulumi_confluentcloud/get_private_link_access.py +19 -19
  64. pulumi_confluentcloud/get_private_link_attachment.py +29 -27
  65. pulumi_confluentcloud/get_private_link_attachment_connection.py +24 -21
  66. pulumi_confluentcloud/get_provider_integration.py +28 -18
  67. pulumi_confluentcloud/get_role_binding.py +14 -14
  68. pulumi_confluentcloud/get_schema.py +40 -40
  69. pulumi_confluentcloud/get_schema_registry_cluster.py +51 -36
  70. pulumi_confluentcloud/get_schema_registry_cluster_config.py +16 -16
  71. pulumi_confluentcloud/get_schema_registry_cluster_mode.py +14 -14
  72. pulumi_confluentcloud/get_schema_registry_clusters.py +6 -6
  73. pulumi_confluentcloud/get_schema_registry_dek.py +42 -42
  74. pulumi_confluentcloud/get_schema_registry_kek.py +30 -30
  75. pulumi_confluentcloud/get_schemas.py +14 -14
  76. pulumi_confluentcloud/get_service_account.py +20 -20
  77. pulumi_confluentcloud/get_subject_config.py +22 -22
  78. pulumi_confluentcloud/get_subject_mode.py +20 -20
  79. pulumi_confluentcloud/get_tableflow_topic.py +360 -0
  80. pulumi_confluentcloud/get_tag.py +26 -24
  81. pulumi_confluentcloud/get_tag_binding.py +32 -30
  82. pulumi_confluentcloud/get_transit_gateway_attachment.py +17 -17
  83. pulumi_confluentcloud/get_user.py +24 -24
  84. pulumi_confluentcloud/get_users.py +6 -6
  85. pulumi_confluentcloud/group_mapping.py +54 -53
  86. pulumi_confluentcloud/identity_pool.py +74 -73
  87. pulumi_confluentcloud/identity_provider.py +138 -76
  88. pulumi_confluentcloud/invitation.py +81 -80
  89. pulumi_confluentcloud/ip_filter.py +420 -0
  90. pulumi_confluentcloud/ip_group.py +264 -0
  91. pulumi_confluentcloud/kafka_acl.py +173 -172
  92. pulumi_confluentcloud/kafka_client_quota.py +63 -62
  93. pulumi_confluentcloud/kafka_cluster.py +227 -207
  94. pulumi_confluentcloud/kafka_cluster_config.py +43 -42
  95. pulumi_confluentcloud/kafka_mirror_topic.py +46 -45
  96. pulumi_confluentcloud/kafka_topic.py +132 -131
  97. pulumi_confluentcloud/ksql_cluster.py +117 -120
  98. pulumi_confluentcloud/network.py +235 -198
  99. pulumi_confluentcloud/network_link_endpoint.py +62 -68
  100. pulumi_confluentcloud/network_link_service.py +62 -68
  101. pulumi_confluentcloud/outputs.py +3400 -2088
  102. pulumi_confluentcloud/peering.py +128 -48
  103. pulumi_confluentcloud/plugin.py +428 -0
  104. pulumi_confluentcloud/private_link_access.py +54 -60
  105. pulumi_confluentcloud/private_link_attachment.py +93 -88
  106. pulumi_confluentcloud/private_link_attachment_connection.py +70 -47
  107. pulumi_confluentcloud/provider.py +318 -192
  108. pulumi_confluentcloud/provider_integration.py +45 -34
  109. pulumi_confluentcloud/pulumi-plugin.json +1 -1
  110. pulumi_confluentcloud/role_binding.py +153 -56
  111. pulumi_confluentcloud/schema.py +188 -212
  112. pulumi_confluentcloud/schema_exporter.py +217 -164
  113. pulumi_confluentcloud/schema_registry_cluster_config.py +60 -59
  114. pulumi_confluentcloud/schema_registry_cluster_mode.py +90 -42
  115. pulumi_confluentcloud/schema_registry_dek.py +140 -146
  116. pulumi_confluentcloud/schema_registry_kek.py +148 -154
  117. pulumi_confluentcloud/service_account.py +97 -96
  118. pulumi_confluentcloud/subject_config.py +105 -76
  119. pulumi_confluentcloud/subject_mode.py +107 -59
  120. pulumi_confluentcloud/tableflow_topic.py +854 -0
  121. pulumi_confluentcloud/tag.py +82 -79
  122. pulumi_confluentcloud/tag_binding.py +121 -84
  123. pulumi_confluentcloud/tf_importer.py +39 -36
  124. pulumi_confluentcloud/transit_gateway_attachment.py +38 -44
  125. {pulumi_confluentcloud-2.13.0a1735836869.dist-info → pulumi_confluentcloud-2.50.0a1762926155.dist-info}/METADATA +4 -4
  126. pulumi_confluentcloud-2.50.0a1762926155.dist-info/RECORD +129 -0
  127. {pulumi_confluentcloud-2.13.0a1735836869.dist-info → pulumi_confluentcloud-2.50.0a1762926155.dist-info}/WHEEL +1 -1
  128. pulumi_confluentcloud-2.13.0a1735836869.dist-info/RECORD +0 -113
  129. {pulumi_confluentcloud-2.13.0a1735836869.dist-info → pulumi_confluentcloud-2.50.0a1762926155.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,420 @@
1
+ # coding=utf-8
2
+ # *** WARNING: this file was generated by pulumi-language-python. ***
3
+ # *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+
5
+ import builtins as _builtins
6
+ import warnings
7
+ import sys
8
+ import pulumi
9
+ import pulumi.runtime
10
+ from typing import Any, Mapping, Optional, Sequence, Union, overload
11
+ if sys.version_info >= (3, 11):
12
+ from typing import NotRequired, TypedDict, TypeAlias
13
+ else:
14
+ from typing_extensions import NotRequired, TypedDict, TypeAlias
15
+ from . import _utilities
16
+
17
+ __all__ = ['IpFilterArgs', 'IpFilter']
18
+
19
+ @pulumi.input_type
20
+ class IpFilterArgs:
21
+ def __init__(__self__, *,
22
+ filter_name: pulumi.Input[_builtins.str],
23
+ ip_groups: pulumi.Input[Sequence[pulumi.Input[_builtins.str]]],
24
+ resource_group: pulumi.Input[_builtins.str],
25
+ operation_groups: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
26
+ resource_scope: Optional[pulumi.Input[_builtins.str]] = None):
27
+ """
28
+ The set of arguments for constructing a IpFilter resource.
29
+ :param pulumi.Input[_builtins.str] filter_name: A human-readable name for an IP Filter. Can contain any unicode letter or number, the ASCII space character, or any of the following special characters: `[`, `]`, `|`, `&`, `+`, `-`, `_`, `/`, `.`, `,`.
30
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] ip_groups: A list of IP Groups.
31
+ :param pulumi.Input[_builtins.str] resource_group: Scope of resources covered by this IP Filter. Available resource groups include `"management"` and `"multiple"`.
32
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] operation_groups: Scope of resources covered by this IP Filter. Resource group must be set to 'multiple' in order to use this property. During update operations, note that the operation groups passed in will replace the list of existing operation groups (passing in an empty list will remove all operation groups) from the filter (in line with the behavior for `ip_groups` attribute).
33
+ :param pulumi.Input[_builtins.str] resource_scope: A CRN that specifies the scope of the IP Filter, specifically the organization or environment. Without specifying this property, the IP Filter would apply to the whole organization. For example, `"crn://confluent.cloud/organization=1111aaaa-11aa-11aa-11aa-111111aaaaaa"` or `data.confluent_organization.resource_name`.
34
+ """
35
+ pulumi.set(__self__, "filter_name", filter_name)
36
+ pulumi.set(__self__, "ip_groups", ip_groups)
37
+ pulumi.set(__self__, "resource_group", resource_group)
38
+ if operation_groups is not None:
39
+ pulumi.set(__self__, "operation_groups", operation_groups)
40
+ if resource_scope is not None:
41
+ pulumi.set(__self__, "resource_scope", resource_scope)
42
+
43
+ @_builtins.property
44
+ @pulumi.getter(name="filterName")
45
+ def filter_name(self) -> pulumi.Input[_builtins.str]:
46
+ """
47
+ A human-readable name for an IP Filter. Can contain any unicode letter or number, the ASCII space character, or any of the following special characters: `[`, `]`, `|`, `&`, `+`, `-`, `_`, `/`, `.`, `,`.
48
+ """
49
+ return pulumi.get(self, "filter_name")
50
+
51
+ @filter_name.setter
52
+ def filter_name(self, value: pulumi.Input[_builtins.str]):
53
+ pulumi.set(self, "filter_name", value)
54
+
55
+ @_builtins.property
56
+ @pulumi.getter(name="ipGroups")
57
+ def ip_groups(self) -> pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]:
58
+ """
59
+ A list of IP Groups.
60
+ """
61
+ return pulumi.get(self, "ip_groups")
62
+
63
+ @ip_groups.setter
64
+ def ip_groups(self, value: pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]):
65
+ pulumi.set(self, "ip_groups", value)
66
+
67
+ @_builtins.property
68
+ @pulumi.getter(name="resourceGroup")
69
+ def resource_group(self) -> pulumi.Input[_builtins.str]:
70
+ """
71
+ Scope of resources covered by this IP Filter. Available resource groups include `"management"` and `"multiple"`.
72
+ """
73
+ return pulumi.get(self, "resource_group")
74
+
75
+ @resource_group.setter
76
+ def resource_group(self, value: pulumi.Input[_builtins.str]):
77
+ pulumi.set(self, "resource_group", value)
78
+
79
+ @_builtins.property
80
+ @pulumi.getter(name="operationGroups")
81
+ def operation_groups(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
82
+ """
83
+ Scope of resources covered by this IP Filter. Resource group must be set to 'multiple' in order to use this property. During update operations, note that the operation groups passed in will replace the list of existing operation groups (passing in an empty list will remove all operation groups) from the filter (in line with the behavior for `ip_groups` attribute).
84
+ """
85
+ return pulumi.get(self, "operation_groups")
86
+
87
+ @operation_groups.setter
88
+ def operation_groups(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
89
+ pulumi.set(self, "operation_groups", value)
90
+
91
+ @_builtins.property
92
+ @pulumi.getter(name="resourceScope")
93
+ def resource_scope(self) -> Optional[pulumi.Input[_builtins.str]]:
94
+ """
95
+ A CRN that specifies the scope of the IP Filter, specifically the organization or environment. Without specifying this property, the IP Filter would apply to the whole organization. For example, `"crn://confluent.cloud/organization=1111aaaa-11aa-11aa-11aa-111111aaaaaa"` or `data.confluent_organization.resource_name`.
96
+ """
97
+ return pulumi.get(self, "resource_scope")
98
+
99
+ @resource_scope.setter
100
+ def resource_scope(self, value: Optional[pulumi.Input[_builtins.str]]):
101
+ pulumi.set(self, "resource_scope", value)
102
+
103
+
104
+ @pulumi.input_type
105
+ class _IpFilterState:
106
+ def __init__(__self__, *,
107
+ filter_name: Optional[pulumi.Input[_builtins.str]] = None,
108
+ ip_groups: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
109
+ operation_groups: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
110
+ resource_group: Optional[pulumi.Input[_builtins.str]] = None,
111
+ resource_scope: Optional[pulumi.Input[_builtins.str]] = None):
112
+ """
113
+ Input properties used for looking up and filtering IpFilter resources.
114
+ :param pulumi.Input[_builtins.str] filter_name: A human-readable name for an IP Filter. Can contain any unicode letter or number, the ASCII space character, or any of the following special characters: `[`, `]`, `|`, `&`, `+`, `-`, `_`, `/`, `.`, `,`.
115
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] ip_groups: A list of IP Groups.
116
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] operation_groups: Scope of resources covered by this IP Filter. Resource group must be set to 'multiple' in order to use this property. During update operations, note that the operation groups passed in will replace the list of existing operation groups (passing in an empty list will remove all operation groups) from the filter (in line with the behavior for `ip_groups` attribute).
117
+ :param pulumi.Input[_builtins.str] resource_group: Scope of resources covered by this IP Filter. Available resource groups include `"management"` and `"multiple"`.
118
+ :param pulumi.Input[_builtins.str] resource_scope: A CRN that specifies the scope of the IP Filter, specifically the organization or environment. Without specifying this property, the IP Filter would apply to the whole organization. For example, `"crn://confluent.cloud/organization=1111aaaa-11aa-11aa-11aa-111111aaaaaa"` or `data.confluent_organization.resource_name`.
119
+ """
120
+ if filter_name is not None:
121
+ pulumi.set(__self__, "filter_name", filter_name)
122
+ if ip_groups is not None:
123
+ pulumi.set(__self__, "ip_groups", ip_groups)
124
+ if operation_groups is not None:
125
+ pulumi.set(__self__, "operation_groups", operation_groups)
126
+ if resource_group is not None:
127
+ pulumi.set(__self__, "resource_group", resource_group)
128
+ if resource_scope is not None:
129
+ pulumi.set(__self__, "resource_scope", resource_scope)
130
+
131
+ @_builtins.property
132
+ @pulumi.getter(name="filterName")
133
+ def filter_name(self) -> Optional[pulumi.Input[_builtins.str]]:
134
+ """
135
+ A human-readable name for an IP Filter. Can contain any unicode letter or number, the ASCII space character, or any of the following special characters: `[`, `]`, `|`, `&`, `+`, `-`, `_`, `/`, `.`, `,`.
136
+ """
137
+ return pulumi.get(self, "filter_name")
138
+
139
+ @filter_name.setter
140
+ def filter_name(self, value: Optional[pulumi.Input[_builtins.str]]):
141
+ pulumi.set(self, "filter_name", value)
142
+
143
+ @_builtins.property
144
+ @pulumi.getter(name="ipGroups")
145
+ def ip_groups(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
146
+ """
147
+ A list of IP Groups.
148
+ """
149
+ return pulumi.get(self, "ip_groups")
150
+
151
+ @ip_groups.setter
152
+ def ip_groups(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
153
+ pulumi.set(self, "ip_groups", value)
154
+
155
+ @_builtins.property
156
+ @pulumi.getter(name="operationGroups")
157
+ def operation_groups(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
158
+ """
159
+ Scope of resources covered by this IP Filter. Resource group must be set to 'multiple' in order to use this property. During update operations, note that the operation groups passed in will replace the list of existing operation groups (passing in an empty list will remove all operation groups) from the filter (in line with the behavior for `ip_groups` attribute).
160
+ """
161
+ return pulumi.get(self, "operation_groups")
162
+
163
+ @operation_groups.setter
164
+ def operation_groups(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
165
+ pulumi.set(self, "operation_groups", value)
166
+
167
+ @_builtins.property
168
+ @pulumi.getter(name="resourceGroup")
169
+ def resource_group(self) -> Optional[pulumi.Input[_builtins.str]]:
170
+ """
171
+ Scope of resources covered by this IP Filter. Available resource groups include `"management"` and `"multiple"`.
172
+ """
173
+ return pulumi.get(self, "resource_group")
174
+
175
+ @resource_group.setter
176
+ def resource_group(self, value: Optional[pulumi.Input[_builtins.str]]):
177
+ pulumi.set(self, "resource_group", value)
178
+
179
+ @_builtins.property
180
+ @pulumi.getter(name="resourceScope")
181
+ def resource_scope(self) -> Optional[pulumi.Input[_builtins.str]]:
182
+ """
183
+ A CRN that specifies the scope of the IP Filter, specifically the organization or environment. Without specifying this property, the IP Filter would apply to the whole organization. For example, `"crn://confluent.cloud/organization=1111aaaa-11aa-11aa-11aa-111111aaaaaa"` or `data.confluent_organization.resource_name`.
184
+ """
185
+ return pulumi.get(self, "resource_scope")
186
+
187
+ @resource_scope.setter
188
+ def resource_scope(self, value: Optional[pulumi.Input[_builtins.str]]):
189
+ pulumi.set(self, "resource_scope", value)
190
+
191
+
192
+ @pulumi.type_token("confluentcloud:index/ipFilter:IpFilter")
193
+ class IpFilter(pulumi.CustomResource):
194
+ @overload
195
+ def __init__(__self__,
196
+ resource_name: str,
197
+ opts: Optional[pulumi.ResourceOptions] = None,
198
+ filter_name: Optional[pulumi.Input[_builtins.str]] = None,
199
+ ip_groups: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
200
+ operation_groups: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
201
+ resource_group: Optional[pulumi.Input[_builtins.str]] = None,
202
+ resource_scope: Optional[pulumi.Input[_builtins.str]] = None,
203
+ __props__=None):
204
+ """
205
+ [![General Availability](https://img.shields.io/badge/Lifecycle%20Stage-General%20Availability-%2345c6e8)](https://docs.confluent.io/cloud/current/api.html#section/Versioning/API-Lifecycle-Policy)
206
+
207
+ `IpFilter` provides an IP Filter resource that enables creating, editing, and deleting IP Filters on Confluent Cloud.
208
+
209
+ > **Note:** See [IP Filtering on Confluent Cloud](https://docs.confluent.io/cloud/current/security/access-control/ip-filtering/overview.html) for more details about the IP Filtering feature, its prerequisites, and its limitations.
210
+
211
+ ## Example Usage
212
+
213
+ ```python
214
+ import pulumi
215
+ import pulumi_confluentcloud as confluentcloud
216
+
217
+ management_filter = confluentcloud.IpFilter("management-filter",
218
+ filter_name="Management API Rules",
219
+ resource_group="management",
220
+ ip_groups=[example["id"]])
221
+ multiple_filter = confluentcloud.IpFilter("multiple-filter",
222
+ filter_name="Management, Schema, Flink API Rules",
223
+ resource_group="multiple",
224
+ operation_groups=[
225
+ "MANAGEMENT",
226
+ "SCHEMA",
227
+ "FLINK",
228
+ ],
229
+ ip_groups=[example["id"]])
230
+ ```
231
+
232
+ ## Import
233
+
234
+ You can import an IP Filter by using IP Filter ID, for example:
235
+
236
+ $ export CONFLUENT_CLOUD_API_KEY="<cloud_api_key>"
237
+
238
+ $ export CONFLUENT_CLOUD_API_SECRET="<cloud_api_secret>"
239
+
240
+ ```sh
241
+ $ pulumi import confluentcloud:index/ipFilter:IpFilter example ipf-abc123
242
+ ```
243
+
244
+ !> **Warning:** Do not forget to delete terminal command history afterwards for security purposes.
245
+
246
+ :param str resource_name: The name of the resource.
247
+ :param pulumi.ResourceOptions opts: Options for the resource.
248
+ :param pulumi.Input[_builtins.str] filter_name: A human-readable name for an IP Filter. Can contain any unicode letter or number, the ASCII space character, or any of the following special characters: `[`, `]`, `|`, `&`, `+`, `-`, `_`, `/`, `.`, `,`.
249
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] ip_groups: A list of IP Groups.
250
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] operation_groups: Scope of resources covered by this IP Filter. Resource group must be set to 'multiple' in order to use this property. During update operations, note that the operation groups passed in will replace the list of existing operation groups (passing in an empty list will remove all operation groups) from the filter (in line with the behavior for `ip_groups` attribute).
251
+ :param pulumi.Input[_builtins.str] resource_group: Scope of resources covered by this IP Filter. Available resource groups include `"management"` and `"multiple"`.
252
+ :param pulumi.Input[_builtins.str] resource_scope: A CRN that specifies the scope of the IP Filter, specifically the organization or environment. Without specifying this property, the IP Filter would apply to the whole organization. For example, `"crn://confluent.cloud/organization=1111aaaa-11aa-11aa-11aa-111111aaaaaa"` or `data.confluent_organization.resource_name`.
253
+ """
254
+ ...
255
+ @overload
256
+ def __init__(__self__,
257
+ resource_name: str,
258
+ args: IpFilterArgs,
259
+ opts: Optional[pulumi.ResourceOptions] = None):
260
+ """
261
+ [![General Availability](https://img.shields.io/badge/Lifecycle%20Stage-General%20Availability-%2345c6e8)](https://docs.confluent.io/cloud/current/api.html#section/Versioning/API-Lifecycle-Policy)
262
+
263
+ `IpFilter` provides an IP Filter resource that enables creating, editing, and deleting IP Filters on Confluent Cloud.
264
+
265
+ > **Note:** See [IP Filtering on Confluent Cloud](https://docs.confluent.io/cloud/current/security/access-control/ip-filtering/overview.html) for more details about the IP Filtering feature, its prerequisites, and its limitations.
266
+
267
+ ## Example Usage
268
+
269
+ ```python
270
+ import pulumi
271
+ import pulumi_confluentcloud as confluentcloud
272
+
273
+ management_filter = confluentcloud.IpFilter("management-filter",
274
+ filter_name="Management API Rules",
275
+ resource_group="management",
276
+ ip_groups=[example["id"]])
277
+ multiple_filter = confluentcloud.IpFilter("multiple-filter",
278
+ filter_name="Management, Schema, Flink API Rules",
279
+ resource_group="multiple",
280
+ operation_groups=[
281
+ "MANAGEMENT",
282
+ "SCHEMA",
283
+ "FLINK",
284
+ ],
285
+ ip_groups=[example["id"]])
286
+ ```
287
+
288
+ ## Import
289
+
290
+ You can import an IP Filter by using IP Filter ID, for example:
291
+
292
+ $ export CONFLUENT_CLOUD_API_KEY="<cloud_api_key>"
293
+
294
+ $ export CONFLUENT_CLOUD_API_SECRET="<cloud_api_secret>"
295
+
296
+ ```sh
297
+ $ pulumi import confluentcloud:index/ipFilter:IpFilter example ipf-abc123
298
+ ```
299
+
300
+ !> **Warning:** Do not forget to delete terminal command history afterwards for security purposes.
301
+
302
+ :param str resource_name: The name of the resource.
303
+ :param IpFilterArgs args: The arguments to use to populate this resource's properties.
304
+ :param pulumi.ResourceOptions opts: Options for the resource.
305
+ """
306
+ ...
307
+ def __init__(__self__, resource_name: str, *args, **kwargs):
308
+ resource_args, opts = _utilities.get_resource_args_opts(IpFilterArgs, pulumi.ResourceOptions, *args, **kwargs)
309
+ if resource_args is not None:
310
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
311
+ else:
312
+ __self__._internal_init(resource_name, *args, **kwargs)
313
+
314
+ def _internal_init(__self__,
315
+ resource_name: str,
316
+ opts: Optional[pulumi.ResourceOptions] = None,
317
+ filter_name: Optional[pulumi.Input[_builtins.str]] = None,
318
+ ip_groups: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
319
+ operation_groups: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
320
+ resource_group: Optional[pulumi.Input[_builtins.str]] = None,
321
+ resource_scope: Optional[pulumi.Input[_builtins.str]] = None,
322
+ __props__=None):
323
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
324
+ if not isinstance(opts, pulumi.ResourceOptions):
325
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
326
+ if opts.id is None:
327
+ if __props__ is not None:
328
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
329
+ __props__ = IpFilterArgs.__new__(IpFilterArgs)
330
+
331
+ if filter_name is None and not opts.urn:
332
+ raise TypeError("Missing required property 'filter_name'")
333
+ __props__.__dict__["filter_name"] = filter_name
334
+ if ip_groups is None and not opts.urn:
335
+ raise TypeError("Missing required property 'ip_groups'")
336
+ __props__.__dict__["ip_groups"] = ip_groups
337
+ __props__.__dict__["operation_groups"] = operation_groups
338
+ if resource_group is None and not opts.urn:
339
+ raise TypeError("Missing required property 'resource_group'")
340
+ __props__.__dict__["resource_group"] = resource_group
341
+ __props__.__dict__["resource_scope"] = resource_scope
342
+ super(IpFilter, __self__).__init__(
343
+ 'confluentcloud:index/ipFilter:IpFilter',
344
+ resource_name,
345
+ __props__,
346
+ opts)
347
+
348
+ @staticmethod
349
+ def get(resource_name: str,
350
+ id: pulumi.Input[str],
351
+ opts: Optional[pulumi.ResourceOptions] = None,
352
+ filter_name: Optional[pulumi.Input[_builtins.str]] = None,
353
+ ip_groups: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
354
+ operation_groups: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
355
+ resource_group: Optional[pulumi.Input[_builtins.str]] = None,
356
+ resource_scope: Optional[pulumi.Input[_builtins.str]] = None) -> 'IpFilter':
357
+ """
358
+ Get an existing IpFilter resource's state with the given name, id, and optional extra
359
+ properties used to qualify the lookup.
360
+
361
+ :param str resource_name: The unique name of the resulting resource.
362
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
363
+ :param pulumi.ResourceOptions opts: Options for the resource.
364
+ :param pulumi.Input[_builtins.str] filter_name: A human-readable name for an IP Filter. Can contain any unicode letter or number, the ASCII space character, or any of the following special characters: `[`, `]`, `|`, `&`, `+`, `-`, `_`, `/`, `.`, `,`.
365
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] ip_groups: A list of IP Groups.
366
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] operation_groups: Scope of resources covered by this IP Filter. Resource group must be set to 'multiple' in order to use this property. During update operations, note that the operation groups passed in will replace the list of existing operation groups (passing in an empty list will remove all operation groups) from the filter (in line with the behavior for `ip_groups` attribute).
367
+ :param pulumi.Input[_builtins.str] resource_group: Scope of resources covered by this IP Filter. Available resource groups include `"management"` and `"multiple"`.
368
+ :param pulumi.Input[_builtins.str] resource_scope: A CRN that specifies the scope of the IP Filter, specifically the organization or environment. Without specifying this property, the IP Filter would apply to the whole organization. For example, `"crn://confluent.cloud/organization=1111aaaa-11aa-11aa-11aa-111111aaaaaa"` or `data.confluent_organization.resource_name`.
369
+ """
370
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
371
+
372
+ __props__ = _IpFilterState.__new__(_IpFilterState)
373
+
374
+ __props__.__dict__["filter_name"] = filter_name
375
+ __props__.__dict__["ip_groups"] = ip_groups
376
+ __props__.__dict__["operation_groups"] = operation_groups
377
+ __props__.__dict__["resource_group"] = resource_group
378
+ __props__.__dict__["resource_scope"] = resource_scope
379
+ return IpFilter(resource_name, opts=opts, __props__=__props__)
380
+
381
+ @_builtins.property
382
+ @pulumi.getter(name="filterName")
383
+ def filter_name(self) -> pulumi.Output[_builtins.str]:
384
+ """
385
+ A human-readable name for an IP Filter. Can contain any unicode letter or number, the ASCII space character, or any of the following special characters: `[`, `]`, `|`, `&`, `+`, `-`, `_`, `/`, `.`, `,`.
386
+ """
387
+ return pulumi.get(self, "filter_name")
388
+
389
+ @_builtins.property
390
+ @pulumi.getter(name="ipGroups")
391
+ def ip_groups(self) -> pulumi.Output[Sequence[_builtins.str]]:
392
+ """
393
+ A list of IP Groups.
394
+ """
395
+ return pulumi.get(self, "ip_groups")
396
+
397
+ @_builtins.property
398
+ @pulumi.getter(name="operationGroups")
399
+ def operation_groups(self) -> pulumi.Output[Sequence[_builtins.str]]:
400
+ """
401
+ Scope of resources covered by this IP Filter. Resource group must be set to 'multiple' in order to use this property. During update operations, note that the operation groups passed in will replace the list of existing operation groups (passing in an empty list will remove all operation groups) from the filter (in line with the behavior for `ip_groups` attribute).
402
+ """
403
+ return pulumi.get(self, "operation_groups")
404
+
405
+ @_builtins.property
406
+ @pulumi.getter(name="resourceGroup")
407
+ def resource_group(self) -> pulumi.Output[_builtins.str]:
408
+ """
409
+ Scope of resources covered by this IP Filter. Available resource groups include `"management"` and `"multiple"`.
410
+ """
411
+ return pulumi.get(self, "resource_group")
412
+
413
+ @_builtins.property
414
+ @pulumi.getter(name="resourceScope")
415
+ def resource_scope(self) -> pulumi.Output[_builtins.str]:
416
+ """
417
+ A CRN that specifies the scope of the IP Filter, specifically the organization or environment. Without specifying this property, the IP Filter would apply to the whole organization. For example, `"crn://confluent.cloud/organization=1111aaaa-11aa-11aa-11aa-111111aaaaaa"` or `data.confluent_organization.resource_name`.
418
+ """
419
+ return pulumi.get(self, "resource_scope")
420
+