pulumi-aiven 6.13.0a1710156545__py3-none-any.whl → 6.31.0a1736831339__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-aiven might be problematic. Click here for more details.

Files changed (168) hide show
  1. pulumi_aiven/__init__.py +127 -0
  2. pulumi_aiven/_inputs.py +32615 -13711
  3. pulumi_aiven/_utilities.py +41 -5
  4. pulumi_aiven/account.py +32 -45
  5. pulumi_aiven/account_authentication.py +24 -9
  6. pulumi_aiven/account_team.py +35 -14
  7. pulumi_aiven/account_team_member.py +48 -39
  8. pulumi_aiven/account_team_project.py +40 -27
  9. pulumi_aiven/alloydbomni.py +1335 -0
  10. pulumi_aiven/alloydbomni_database.py +347 -0
  11. pulumi_aiven/alloydbomni_user.py +433 -0
  12. pulumi_aiven/aws_privatelink.py +44 -43
  13. pulumi_aiven/aws_vpc_peering_connection.py +72 -61
  14. pulumi_aiven/azure_privatelink.py +54 -53
  15. pulumi_aiven/azure_privatelink_connection_approval.py +136 -33
  16. pulumi_aiven/azure_vpc_peering_connection.py +86 -77
  17. pulumi_aiven/billing_group.py +33 -34
  18. pulumi_aiven/cassandra.py +145 -126
  19. pulumi_aiven/cassandra_user.py +59 -58
  20. pulumi_aiven/clickhouse.py +133 -114
  21. pulumi_aiven/clickhouse_database.py +58 -62
  22. pulumi_aiven/clickhouse_grant.py +135 -134
  23. pulumi_aiven/clickhouse_role.py +36 -49
  24. pulumi_aiven/clickhouse_user.py +50 -49
  25. pulumi_aiven/config/__init__.pyi +5 -0
  26. pulumi_aiven/config/vars.py +5 -0
  27. pulumi_aiven/connection_pool.py +67 -66
  28. pulumi_aiven/dragonfly.py +1256 -0
  29. pulumi_aiven/flink.py +104 -104
  30. pulumi_aiven/flink_application.py +58 -55
  31. pulumi_aiven/flink_application_deployment.py +178 -73
  32. pulumi_aiven/flink_application_version.py +179 -96
  33. pulumi_aiven/gcp_privatelink.py +69 -42
  34. pulumi_aiven/gcp_privatelink_connection_approval.py +78 -49
  35. pulumi_aiven/gcp_vpc_peering_connection.py +49 -48
  36. pulumi_aiven/get_account.py +20 -9
  37. pulumi_aiven/get_account_authentication.py +31 -5
  38. pulumi_aiven/get_account_team.py +18 -5
  39. pulumi_aiven/get_account_team_member.py +29 -14
  40. pulumi_aiven/get_account_team_project.py +19 -6
  41. pulumi_aiven/get_alloydbomni.py +499 -0
  42. pulumi_aiven/get_alloydbomni_database.py +168 -0
  43. pulumi_aiven/get_alloydbomni_user.py +210 -0
  44. pulumi_aiven/get_aws_privatelink.py +33 -24
  45. pulumi_aiven/get_aws_vpc_peering_connection.py +56 -33
  46. pulumi_aiven/get_azure_privatelink.py +37 -26
  47. pulumi_aiven/get_azure_vpc_peering_connection.py +77 -28
  48. pulumi_aiven/get_billing_group.py +31 -8
  49. pulumi_aiven/get_cassanda.py +55 -23
  50. pulumi_aiven/get_cassandra.py +55 -23
  51. pulumi_aiven/get_cassandra_user.py +42 -30
  52. pulumi_aiven/get_clickhouse.py +55 -23
  53. pulumi_aiven/get_clickhouse_database.py +35 -26
  54. pulumi_aiven/get_clickhouse_user.py +40 -29
  55. pulumi_aiven/get_connection_pool.py +43 -30
  56. pulumi_aiven/get_dragonfly.py +499 -0
  57. pulumi_aiven/get_external_identity.py +160 -0
  58. pulumi_aiven/get_flink.py +55 -23
  59. pulumi_aiven/get_flink_application.py +44 -31
  60. pulumi_aiven/get_flink_application_version.py +55 -37
  61. pulumi_aiven/get_gcp_privatelink.py +63 -7
  62. pulumi_aiven/get_gcp_vpc_peering_connection.py +39 -28
  63. pulumi_aiven/get_grafana.py +55 -23
  64. pulumi_aiven/get_influx_db.py +41 -5
  65. pulumi_aiven/get_influxdb_database.py +18 -5
  66. pulumi_aiven/get_influxdb_user.py +21 -5
  67. pulumi_aiven/get_kafka.py +59 -25
  68. pulumi_aiven/get_kafka_acl.py +50 -37
  69. pulumi_aiven/get_kafka_connect.py +54 -36
  70. pulumi_aiven/get_kafka_connector.py +44 -28
  71. pulumi_aiven/get_kafka_mirror_maker.py +50 -32
  72. pulumi_aiven/get_kafka_schema.py +35 -23
  73. pulumi_aiven/get_kafka_schema_configuration.py +32 -21
  74. pulumi_aiven/get_kafka_schema_registry_acl.py +37 -20
  75. pulumi_aiven/get_kafka_topic.py +70 -29
  76. pulumi_aiven/get_kafka_user.py +42 -30
  77. pulumi_aiven/get_m3_aggregator.py +51 -19
  78. pulumi_aiven/get_m3_db.py +55 -23
  79. pulumi_aiven/get_m3db_user.py +38 -28
  80. pulumi_aiven/get_mirror_maker_replication_flow.py +86 -25
  81. pulumi_aiven/get_my_sql.py +50 -18
  82. pulumi_aiven/get_mysql_database.py +31 -22
  83. pulumi_aiven/get_mysql_user.py +36 -23
  84. pulumi_aiven/get_open_search.py +50 -18
  85. pulumi_aiven/get_open_search_acl_config.py +27 -19
  86. pulumi_aiven/get_open_search_acl_rule.py +37 -25
  87. pulumi_aiven/get_opensearch_security_plugin_config.py +29 -19
  88. pulumi_aiven/get_opensearch_user.py +32 -22
  89. pulumi_aiven/get_organization.py +25 -17
  90. pulumi_aiven/get_organization_application_user.py +176 -0
  91. pulumi_aiven/get_organization_user.py +18 -5
  92. pulumi_aiven/get_organization_user_group.py +48 -14
  93. pulumi_aiven/get_organization_user_list.py +121 -0
  94. pulumi_aiven/get_organizational_unit.py +26 -14
  95. pulumi_aiven/get_pg.py +55 -23
  96. pulumi_aiven/get_pg_database.py +39 -28
  97. pulumi_aiven/get_pg_user.py +44 -31
  98. pulumi_aiven/get_project.py +43 -26
  99. pulumi_aiven/get_project_user.py +27 -19
  100. pulumi_aiven/get_project_vpc.py +31 -23
  101. pulumi_aiven/get_redis.py +50 -18
  102. pulumi_aiven/get_redis_user.py +40 -26
  103. pulumi_aiven/get_service_component.py +40 -22
  104. pulumi_aiven/get_service_integration.py +163 -53
  105. pulumi_aiven/get_service_integration_endpoint.py +128 -37
  106. pulumi_aiven/get_thanos.py +499 -0
  107. pulumi_aiven/get_transit_gateway_vpc_attachment.py +35 -22
  108. pulumi_aiven/get_valkey.py +499 -0
  109. pulumi_aiven/get_valkey_user.py +218 -0
  110. pulumi_aiven/grafana.py +188 -322
  111. pulumi_aiven/influx_db.py +127 -90
  112. pulumi_aiven/influxdb_database.py +40 -55
  113. pulumi_aiven/influxdb_user.py +47 -42
  114. pulumi_aiven/kafka.py +157 -144
  115. pulumi_aiven/kafka_acl.py +64 -57
  116. pulumi_aiven/kafka_connect.py +201 -332
  117. pulumi_aiven/kafka_connector.py +67 -60
  118. pulumi_aiven/kafka_mirror_maker.py +137 -320
  119. pulumi_aiven/kafka_native_acl.py +588 -0
  120. pulumi_aiven/kafka_schema.py +63 -58
  121. pulumi_aiven/kafka_schema_configuration.py +25 -24
  122. pulumi_aiven/kafka_schema_registry_acl.py +80 -35
  123. pulumi_aiven/kafka_topic.py +184 -65
  124. pulumi_aiven/kafka_user.py +59 -58
  125. pulumi_aiven/m3_aggregator.py +174 -310
  126. pulumi_aiven/m3_db.py +190 -326
  127. pulumi_aiven/m3db_user.py +51 -50
  128. pulumi_aiven/mirror_maker_replication_flow.py +215 -55
  129. pulumi_aiven/my_sql.py +188 -324
  130. pulumi_aiven/mysql_database.py +32 -51
  131. pulumi_aiven/mysql_user.py +37 -36
  132. pulumi_aiven/open_search.py +126 -107
  133. pulumi_aiven/open_search_acl_config.py +33 -36
  134. pulumi_aiven/open_search_acl_rule.py +55 -54
  135. pulumi_aiven/opensearch_security_plugin_config.py +69 -16
  136. pulumi_aiven/opensearch_user.py +30 -29
  137. pulumi_aiven/organization.py +18 -17
  138. pulumi_aiven/organization_application_user.py +345 -0
  139. pulumi_aiven/organization_application_user_token.py +711 -0
  140. pulumi_aiven/organization_group_project.py +349 -0
  141. pulumi_aiven/organization_permission.py +421 -0
  142. pulumi_aiven/organization_user.py +25 -46
  143. pulumi_aiven/organization_user_group.py +64 -23
  144. pulumi_aiven/organization_user_group_member.py +359 -0
  145. pulumi_aiven/organizational_unit.py +41 -36
  146. pulumi_aiven/outputs.py +38355 -21458
  147. pulumi_aiven/pg.py +92 -88
  148. pulumi_aiven/pg_database.py +52 -71
  149. pulumi_aiven/pg_user.py +80 -65
  150. pulumi_aiven/project.py +111 -102
  151. pulumi_aiven/project_user.py +44 -35
  152. pulumi_aiven/project_vpc.py +58 -29
  153. pulumi_aiven/provider.py +5 -0
  154. pulumi_aiven/pulumi-plugin.json +2 -1
  155. pulumi_aiven/redis.py +161 -297
  156. pulumi_aiven/redis_user.py +58 -57
  157. pulumi_aiven/service_integration.py +511 -165
  158. pulumi_aiven/service_integration_endpoint.py +466 -158
  159. pulumi_aiven/static_ip.py +21 -16
  160. pulumi_aiven/thanos.py +1262 -0
  161. pulumi_aiven/transit_gateway_vpc_attachment.py +44 -58
  162. pulumi_aiven/valkey.py +1256 -0
  163. pulumi_aiven/valkey_user.py +606 -0
  164. {pulumi_aiven-6.13.0a1710156545.dist-info → pulumi_aiven-6.31.0a1736831339.dist-info}/METADATA +7 -6
  165. pulumi_aiven-6.31.0a1736831339.dist-info/RECORD +169 -0
  166. {pulumi_aiven-6.13.0a1710156545.dist-info → pulumi_aiven-6.31.0a1736831339.dist-info}/WHEEL +1 -1
  167. pulumi_aiven-6.13.0a1710156545.dist-info/RECORD +0 -146
  168. {pulumi_aiven-6.13.0a1710156545.dist-info → pulumi_aiven-6.31.0a1736831339.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,1256 @@
1
+ # coding=utf-8
2
+ # *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
3
+ # *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+
5
+ import copy
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
+ from . import outputs
17
+ from ._inputs import *
18
+
19
+ __all__ = ['DragonflyArgs', 'Dragonfly']
20
+
21
+ @pulumi.input_type
22
+ class DragonflyArgs:
23
+ def __init__(__self__, *,
24
+ plan: pulumi.Input[str],
25
+ project: pulumi.Input[str],
26
+ service_name: pulumi.Input[str],
27
+ additional_disk_space: Optional[pulumi.Input[str]] = None,
28
+ cloud_name: Optional[pulumi.Input[str]] = None,
29
+ disk_space: Optional[pulumi.Input[str]] = None,
30
+ dragonfly: Optional[pulumi.Input['DragonflyDragonflyArgs']] = None,
31
+ dragonfly_user_config: Optional[pulumi.Input['DragonflyDragonflyUserConfigArgs']] = None,
32
+ maintenance_window_dow: Optional[pulumi.Input[str]] = None,
33
+ maintenance_window_time: Optional[pulumi.Input[str]] = None,
34
+ project_vpc_id: Optional[pulumi.Input[str]] = None,
35
+ service_integrations: Optional[pulumi.Input[Sequence[pulumi.Input['DragonflyServiceIntegrationArgs']]]] = None,
36
+ static_ips: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
37
+ tags: Optional[pulumi.Input[Sequence[pulumi.Input['DragonflyTagArgs']]]] = None,
38
+ tech_emails: Optional[pulumi.Input[Sequence[pulumi.Input['DragonflyTechEmailArgs']]]] = None,
39
+ termination_protection: Optional[pulumi.Input[bool]] = None):
40
+ """
41
+ The set of arguments for constructing a Dragonfly resource.
42
+ :param pulumi.Input[str] plan: Defines what kind of computing resources are allocated for the service. It can be changed after creation, though there are some restrictions when going to a smaller plan such as the new plan must have sufficient amount of disk space to store all current data and switching to a plan with fewer nodes might not be supported. The basic plan names are `hobbyist`, `startup-x`, `business-x` and `premium-x` where `x` is (roughly) the amount of memory on each node (also other attributes like number of CPUs and amount of disk space varies but naming is based on memory). The available options can be seen from the [Aiven pricing page](https://aiven.io/pricing).
43
+ :param pulumi.Input[str] project: The name of the project this resource belongs to. To set up proper dependencies please refer to this variable as a reference. Changing this property forces recreation of the resource.
44
+ :param pulumi.Input[str] service_name: Specifies the actual name of the service. The name cannot be changed later without destroying and re-creating the service so name should be picked based on intended service usage rather than current attributes.
45
+ :param pulumi.Input[str] additional_disk_space: Add [disk storage](https://aiven.io/docs/platform/howto/add-storage-space) in increments of 30 GiB to scale your service. The maximum value depends on the service type and cloud provider. Removing additional storage causes the service nodes to go through a rolling restart and there might be a short downtime for services with no HA capabilities.
46
+ :param pulumi.Input[str] cloud_name: Defines where the cloud provider and region where the service is hosted in. This can be changed freely after service is created. Changing the value will trigger a potentially lengthy migration process for the service. Format is cloud provider name (`aws`, `azure`, `do` `google`, `upcloud`, etc.), dash, and the cloud provider specific region name. These are documented on each Cloud provider's own support articles, like [here for Google](https://cloud.google.com/compute/docs/regions-zones/) and [here for AWS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.RegionsAndAvailabilityZones.html).
47
+ :param pulumi.Input[str] disk_space: Service disk space. Possible values depend on the service type, the cloud provider and the project. Therefore, reducing will result in the service rebalancing.
48
+ :param pulumi.Input['DragonflyDragonflyArgs'] dragonfly: Dragonfly server provided values
49
+ :param pulumi.Input['DragonflyDragonflyUserConfigArgs'] dragonfly_user_config: Dragonfly user configurable settings. **Warning:** There's no way to reset advanced configuration options to default. Options that you add cannot be removed later
50
+ :param pulumi.Input[str] maintenance_window_dow: Day of week when maintenance operations should be performed. One monday, tuesday, wednesday, etc.
51
+ :param pulumi.Input[str] maintenance_window_time: Time of day when maintenance operations should be performed. UTC time in HH:mm:ss format.
52
+ :param pulumi.Input[str] project_vpc_id: Specifies the VPC the service should run in. If the value is not set the service is not run inside a VPC. When set, the value should be given as a reference to set up dependencies correctly and the VPC must be in the same cloud and region as the service itself. Project can be freely moved to and from VPC after creation but doing so triggers migration to new servers so the operation can take significant amount of time to complete if the service has a lot of data.
53
+ :param pulumi.Input[Sequence[pulumi.Input['DragonflyServiceIntegrationArgs']]] service_integrations: Service integrations to specify when creating a service. Not applied after initial service creation
54
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] static_ips: Static IPs that are going to be associated with this service. Please assign a value using the 'toset' function. Once a static ip resource is in the 'assigned' state it cannot be unbound from the node again
55
+ :param pulumi.Input[Sequence[pulumi.Input['DragonflyTagArgs']]] tags: Tags are key-value pairs that allow you to categorize services.
56
+ :param pulumi.Input[Sequence[pulumi.Input['DragonflyTechEmailArgs']]] tech_emails: The email addresses for [service contacts](https://aiven.io/docs/platform/howto/technical-emails), who will receive important alerts and updates about this service. You can also set email contacts at the project level.
57
+ :param pulumi.Input[bool] termination_protection: Prevents the service from being deleted. It is recommended to set this to `true` for all production services to prevent unintentional service deletion. This does not shield against deleting databases or topics but for services with backups much of the content can at least be restored from backup in case accidental deletion is done.
58
+ """
59
+ pulumi.set(__self__, "plan", plan)
60
+ pulumi.set(__self__, "project", project)
61
+ pulumi.set(__self__, "service_name", service_name)
62
+ if additional_disk_space is not None:
63
+ pulumi.set(__self__, "additional_disk_space", additional_disk_space)
64
+ if cloud_name is not None:
65
+ pulumi.set(__self__, "cloud_name", cloud_name)
66
+ if disk_space is not None:
67
+ warnings.warn("""This will be removed in v5.0.0. Please use `additional_disk_space` to specify the space to be added to the default `disk_space` defined by the plan.""", DeprecationWarning)
68
+ pulumi.log.warn("""disk_space is deprecated: This will be removed in v5.0.0. Please use `additional_disk_space` to specify the space to be added to the default `disk_space` defined by the plan.""")
69
+ if disk_space is not None:
70
+ pulumi.set(__self__, "disk_space", disk_space)
71
+ if dragonfly is not None:
72
+ pulumi.set(__self__, "dragonfly", dragonfly)
73
+ if dragonfly_user_config is not None:
74
+ pulumi.set(__self__, "dragonfly_user_config", dragonfly_user_config)
75
+ if maintenance_window_dow is not None:
76
+ pulumi.set(__self__, "maintenance_window_dow", maintenance_window_dow)
77
+ if maintenance_window_time is not None:
78
+ pulumi.set(__self__, "maintenance_window_time", maintenance_window_time)
79
+ if project_vpc_id is not None:
80
+ pulumi.set(__self__, "project_vpc_id", project_vpc_id)
81
+ if service_integrations is not None:
82
+ pulumi.set(__self__, "service_integrations", service_integrations)
83
+ if static_ips is not None:
84
+ pulumi.set(__self__, "static_ips", static_ips)
85
+ if tags is not None:
86
+ pulumi.set(__self__, "tags", tags)
87
+ if tech_emails is not None:
88
+ pulumi.set(__self__, "tech_emails", tech_emails)
89
+ if termination_protection is not None:
90
+ pulumi.set(__self__, "termination_protection", termination_protection)
91
+
92
+ @property
93
+ @pulumi.getter
94
+ def plan(self) -> pulumi.Input[str]:
95
+ """
96
+ Defines what kind of computing resources are allocated for the service. It can be changed after creation, though there are some restrictions when going to a smaller plan such as the new plan must have sufficient amount of disk space to store all current data and switching to a plan with fewer nodes might not be supported. The basic plan names are `hobbyist`, `startup-x`, `business-x` and `premium-x` where `x` is (roughly) the amount of memory on each node (also other attributes like number of CPUs and amount of disk space varies but naming is based on memory). The available options can be seen from the [Aiven pricing page](https://aiven.io/pricing).
97
+ """
98
+ return pulumi.get(self, "plan")
99
+
100
+ @plan.setter
101
+ def plan(self, value: pulumi.Input[str]):
102
+ pulumi.set(self, "plan", value)
103
+
104
+ @property
105
+ @pulumi.getter
106
+ def project(self) -> pulumi.Input[str]:
107
+ """
108
+ The name of the project this resource belongs to. To set up proper dependencies please refer to this variable as a reference. Changing this property forces recreation of the resource.
109
+ """
110
+ return pulumi.get(self, "project")
111
+
112
+ @project.setter
113
+ def project(self, value: pulumi.Input[str]):
114
+ pulumi.set(self, "project", value)
115
+
116
+ @property
117
+ @pulumi.getter(name="serviceName")
118
+ def service_name(self) -> pulumi.Input[str]:
119
+ """
120
+ Specifies the actual name of the service. The name cannot be changed later without destroying and re-creating the service so name should be picked based on intended service usage rather than current attributes.
121
+ """
122
+ return pulumi.get(self, "service_name")
123
+
124
+ @service_name.setter
125
+ def service_name(self, value: pulumi.Input[str]):
126
+ pulumi.set(self, "service_name", value)
127
+
128
+ @property
129
+ @pulumi.getter(name="additionalDiskSpace")
130
+ def additional_disk_space(self) -> Optional[pulumi.Input[str]]:
131
+ """
132
+ Add [disk storage](https://aiven.io/docs/platform/howto/add-storage-space) in increments of 30 GiB to scale your service. The maximum value depends on the service type and cloud provider. Removing additional storage causes the service nodes to go through a rolling restart and there might be a short downtime for services with no HA capabilities.
133
+ """
134
+ return pulumi.get(self, "additional_disk_space")
135
+
136
+ @additional_disk_space.setter
137
+ def additional_disk_space(self, value: Optional[pulumi.Input[str]]):
138
+ pulumi.set(self, "additional_disk_space", value)
139
+
140
+ @property
141
+ @pulumi.getter(name="cloudName")
142
+ def cloud_name(self) -> Optional[pulumi.Input[str]]:
143
+ """
144
+ Defines where the cloud provider and region where the service is hosted in. This can be changed freely after service is created. Changing the value will trigger a potentially lengthy migration process for the service. Format is cloud provider name (`aws`, `azure`, `do` `google`, `upcloud`, etc.), dash, and the cloud provider specific region name. These are documented on each Cloud provider's own support articles, like [here for Google](https://cloud.google.com/compute/docs/regions-zones/) and [here for AWS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.RegionsAndAvailabilityZones.html).
145
+ """
146
+ return pulumi.get(self, "cloud_name")
147
+
148
+ @cloud_name.setter
149
+ def cloud_name(self, value: Optional[pulumi.Input[str]]):
150
+ pulumi.set(self, "cloud_name", value)
151
+
152
+ @property
153
+ @pulumi.getter(name="diskSpace")
154
+ @_utilities.deprecated("""This will be removed in v5.0.0. Please use `additional_disk_space` to specify the space to be added to the default `disk_space` defined by the plan.""")
155
+ def disk_space(self) -> Optional[pulumi.Input[str]]:
156
+ """
157
+ Service disk space. Possible values depend on the service type, the cloud provider and the project. Therefore, reducing will result in the service rebalancing.
158
+ """
159
+ return pulumi.get(self, "disk_space")
160
+
161
+ @disk_space.setter
162
+ def disk_space(self, value: Optional[pulumi.Input[str]]):
163
+ pulumi.set(self, "disk_space", value)
164
+
165
+ @property
166
+ @pulumi.getter
167
+ def dragonfly(self) -> Optional[pulumi.Input['DragonflyDragonflyArgs']]:
168
+ """
169
+ Dragonfly server provided values
170
+ """
171
+ return pulumi.get(self, "dragonfly")
172
+
173
+ @dragonfly.setter
174
+ def dragonfly(self, value: Optional[pulumi.Input['DragonflyDragonflyArgs']]):
175
+ pulumi.set(self, "dragonfly", value)
176
+
177
+ @property
178
+ @pulumi.getter(name="dragonflyUserConfig")
179
+ def dragonfly_user_config(self) -> Optional[pulumi.Input['DragonflyDragonflyUserConfigArgs']]:
180
+ """
181
+ Dragonfly user configurable settings. **Warning:** There's no way to reset advanced configuration options to default. Options that you add cannot be removed later
182
+ """
183
+ return pulumi.get(self, "dragonfly_user_config")
184
+
185
+ @dragonfly_user_config.setter
186
+ def dragonfly_user_config(self, value: Optional[pulumi.Input['DragonflyDragonflyUserConfigArgs']]):
187
+ pulumi.set(self, "dragonfly_user_config", value)
188
+
189
+ @property
190
+ @pulumi.getter(name="maintenanceWindowDow")
191
+ def maintenance_window_dow(self) -> Optional[pulumi.Input[str]]:
192
+ """
193
+ Day of week when maintenance operations should be performed. One monday, tuesday, wednesday, etc.
194
+ """
195
+ return pulumi.get(self, "maintenance_window_dow")
196
+
197
+ @maintenance_window_dow.setter
198
+ def maintenance_window_dow(self, value: Optional[pulumi.Input[str]]):
199
+ pulumi.set(self, "maintenance_window_dow", value)
200
+
201
+ @property
202
+ @pulumi.getter(name="maintenanceWindowTime")
203
+ def maintenance_window_time(self) -> Optional[pulumi.Input[str]]:
204
+ """
205
+ Time of day when maintenance operations should be performed. UTC time in HH:mm:ss format.
206
+ """
207
+ return pulumi.get(self, "maintenance_window_time")
208
+
209
+ @maintenance_window_time.setter
210
+ def maintenance_window_time(self, value: Optional[pulumi.Input[str]]):
211
+ pulumi.set(self, "maintenance_window_time", value)
212
+
213
+ @property
214
+ @pulumi.getter(name="projectVpcId")
215
+ def project_vpc_id(self) -> Optional[pulumi.Input[str]]:
216
+ """
217
+ Specifies the VPC the service should run in. If the value is not set the service is not run inside a VPC. When set, the value should be given as a reference to set up dependencies correctly and the VPC must be in the same cloud and region as the service itself. Project can be freely moved to and from VPC after creation but doing so triggers migration to new servers so the operation can take significant amount of time to complete if the service has a lot of data.
218
+ """
219
+ return pulumi.get(self, "project_vpc_id")
220
+
221
+ @project_vpc_id.setter
222
+ def project_vpc_id(self, value: Optional[pulumi.Input[str]]):
223
+ pulumi.set(self, "project_vpc_id", value)
224
+
225
+ @property
226
+ @pulumi.getter(name="serviceIntegrations")
227
+ def service_integrations(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['DragonflyServiceIntegrationArgs']]]]:
228
+ """
229
+ Service integrations to specify when creating a service. Not applied after initial service creation
230
+ """
231
+ return pulumi.get(self, "service_integrations")
232
+
233
+ @service_integrations.setter
234
+ def service_integrations(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['DragonflyServiceIntegrationArgs']]]]):
235
+ pulumi.set(self, "service_integrations", value)
236
+
237
+ @property
238
+ @pulumi.getter(name="staticIps")
239
+ def static_ips(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
240
+ """
241
+ Static IPs that are going to be associated with this service. Please assign a value using the 'toset' function. Once a static ip resource is in the 'assigned' state it cannot be unbound from the node again
242
+ """
243
+ return pulumi.get(self, "static_ips")
244
+
245
+ @static_ips.setter
246
+ def static_ips(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
247
+ pulumi.set(self, "static_ips", value)
248
+
249
+ @property
250
+ @pulumi.getter
251
+ def tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['DragonflyTagArgs']]]]:
252
+ """
253
+ Tags are key-value pairs that allow you to categorize services.
254
+ """
255
+ return pulumi.get(self, "tags")
256
+
257
+ @tags.setter
258
+ def tags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['DragonflyTagArgs']]]]):
259
+ pulumi.set(self, "tags", value)
260
+
261
+ @property
262
+ @pulumi.getter(name="techEmails")
263
+ def tech_emails(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['DragonflyTechEmailArgs']]]]:
264
+ """
265
+ The email addresses for [service contacts](https://aiven.io/docs/platform/howto/technical-emails), who will receive important alerts and updates about this service. You can also set email contacts at the project level.
266
+ """
267
+ return pulumi.get(self, "tech_emails")
268
+
269
+ @tech_emails.setter
270
+ def tech_emails(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['DragonflyTechEmailArgs']]]]):
271
+ pulumi.set(self, "tech_emails", value)
272
+
273
+ @property
274
+ @pulumi.getter(name="terminationProtection")
275
+ def termination_protection(self) -> Optional[pulumi.Input[bool]]:
276
+ """
277
+ Prevents the service from being deleted. It is recommended to set this to `true` for all production services to prevent unintentional service deletion. This does not shield against deleting databases or topics but for services with backups much of the content can at least be restored from backup in case accidental deletion is done.
278
+ """
279
+ return pulumi.get(self, "termination_protection")
280
+
281
+ @termination_protection.setter
282
+ def termination_protection(self, value: Optional[pulumi.Input[bool]]):
283
+ pulumi.set(self, "termination_protection", value)
284
+
285
+
286
+ @pulumi.input_type
287
+ class _DragonflyState:
288
+ def __init__(__self__, *,
289
+ additional_disk_space: Optional[pulumi.Input[str]] = None,
290
+ cloud_name: Optional[pulumi.Input[str]] = None,
291
+ components: Optional[pulumi.Input[Sequence[pulumi.Input['DragonflyComponentArgs']]]] = None,
292
+ disk_space: Optional[pulumi.Input[str]] = None,
293
+ disk_space_cap: Optional[pulumi.Input[str]] = None,
294
+ disk_space_default: Optional[pulumi.Input[str]] = None,
295
+ disk_space_step: Optional[pulumi.Input[str]] = None,
296
+ disk_space_used: Optional[pulumi.Input[str]] = None,
297
+ dragonfly: Optional[pulumi.Input['DragonflyDragonflyArgs']] = None,
298
+ dragonfly_user_config: Optional[pulumi.Input['DragonflyDragonflyUserConfigArgs']] = None,
299
+ maintenance_window_dow: Optional[pulumi.Input[str]] = None,
300
+ maintenance_window_time: Optional[pulumi.Input[str]] = None,
301
+ plan: Optional[pulumi.Input[str]] = None,
302
+ project: Optional[pulumi.Input[str]] = None,
303
+ project_vpc_id: Optional[pulumi.Input[str]] = None,
304
+ service_host: Optional[pulumi.Input[str]] = None,
305
+ service_integrations: Optional[pulumi.Input[Sequence[pulumi.Input['DragonflyServiceIntegrationArgs']]]] = None,
306
+ service_name: Optional[pulumi.Input[str]] = None,
307
+ service_password: Optional[pulumi.Input[str]] = None,
308
+ service_port: Optional[pulumi.Input[int]] = None,
309
+ service_type: Optional[pulumi.Input[str]] = None,
310
+ service_uri: Optional[pulumi.Input[str]] = None,
311
+ service_username: Optional[pulumi.Input[str]] = None,
312
+ state: Optional[pulumi.Input[str]] = None,
313
+ static_ips: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
314
+ tags: Optional[pulumi.Input[Sequence[pulumi.Input['DragonflyTagArgs']]]] = None,
315
+ tech_emails: Optional[pulumi.Input[Sequence[pulumi.Input['DragonflyTechEmailArgs']]]] = None,
316
+ termination_protection: Optional[pulumi.Input[bool]] = None):
317
+ """
318
+ Input properties used for looking up and filtering Dragonfly resources.
319
+ :param pulumi.Input[str] additional_disk_space: Add [disk storage](https://aiven.io/docs/platform/howto/add-storage-space) in increments of 30 GiB to scale your service. The maximum value depends on the service type and cloud provider. Removing additional storage causes the service nodes to go through a rolling restart and there might be a short downtime for services with no HA capabilities.
320
+ :param pulumi.Input[str] cloud_name: Defines where the cloud provider and region where the service is hosted in. This can be changed freely after service is created. Changing the value will trigger a potentially lengthy migration process for the service. Format is cloud provider name (`aws`, `azure`, `do` `google`, `upcloud`, etc.), dash, and the cloud provider specific region name. These are documented on each Cloud provider's own support articles, like [here for Google](https://cloud.google.com/compute/docs/regions-zones/) and [here for AWS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.RegionsAndAvailabilityZones.html).
321
+ :param pulumi.Input[Sequence[pulumi.Input['DragonflyComponentArgs']]] components: Service component information objects
322
+ :param pulumi.Input[str] disk_space: Service disk space. Possible values depend on the service type, the cloud provider and the project. Therefore, reducing will result in the service rebalancing.
323
+ :param pulumi.Input[str] disk_space_cap: The maximum disk space of the service, possible values depend on the service type, the cloud provider and the project.
324
+ :param pulumi.Input[str] disk_space_default: The default disk space of the service, possible values depend on the service type, the cloud provider and the project. Its also the minimum value for `disk_space`
325
+ :param pulumi.Input[str] disk_space_step: The default disk space step of the service, possible values depend on the service type, the cloud provider and the project. `disk_space` needs to increment from `disk_space_default` by increments of this size.
326
+ :param pulumi.Input[str] disk_space_used: Disk space that service is currently using
327
+ :param pulumi.Input['DragonflyDragonflyArgs'] dragonfly: Dragonfly server provided values
328
+ :param pulumi.Input['DragonflyDragonflyUserConfigArgs'] dragonfly_user_config: Dragonfly user configurable settings. **Warning:** There's no way to reset advanced configuration options to default. Options that you add cannot be removed later
329
+ :param pulumi.Input[str] maintenance_window_dow: Day of week when maintenance operations should be performed. One monday, tuesday, wednesday, etc.
330
+ :param pulumi.Input[str] maintenance_window_time: Time of day when maintenance operations should be performed. UTC time in HH:mm:ss format.
331
+ :param pulumi.Input[str] plan: Defines what kind of computing resources are allocated for the service. It can be changed after creation, though there are some restrictions when going to a smaller plan such as the new plan must have sufficient amount of disk space to store all current data and switching to a plan with fewer nodes might not be supported. The basic plan names are `hobbyist`, `startup-x`, `business-x` and `premium-x` where `x` is (roughly) the amount of memory on each node (also other attributes like number of CPUs and amount of disk space varies but naming is based on memory). The available options can be seen from the [Aiven pricing page](https://aiven.io/pricing).
332
+ :param pulumi.Input[str] project: The name of the project this resource belongs to. To set up proper dependencies please refer to this variable as a reference. Changing this property forces recreation of the resource.
333
+ :param pulumi.Input[str] project_vpc_id: Specifies the VPC the service should run in. If the value is not set the service is not run inside a VPC. When set, the value should be given as a reference to set up dependencies correctly and the VPC must be in the same cloud and region as the service itself. Project can be freely moved to and from VPC after creation but doing so triggers migration to new servers so the operation can take significant amount of time to complete if the service has a lot of data.
334
+ :param pulumi.Input[str] service_host: The hostname of the service.
335
+ :param pulumi.Input[Sequence[pulumi.Input['DragonflyServiceIntegrationArgs']]] service_integrations: Service integrations to specify when creating a service. Not applied after initial service creation
336
+ :param pulumi.Input[str] service_name: Specifies the actual name of the service. The name cannot be changed later without destroying and re-creating the service so name should be picked based on intended service usage rather than current attributes.
337
+ :param pulumi.Input[str] service_password: Password used for connecting to the service, if applicable
338
+ :param pulumi.Input[int] service_port: The port of the service
339
+ :param pulumi.Input[str] service_type: Aiven internal service type code
340
+ :param pulumi.Input[str] service_uri: URI for connecting to the service. Service specific info is under "kafka", "pg", etc.
341
+ :param pulumi.Input[str] service_username: Username used for connecting to the service, if applicable
342
+ :param pulumi.Input[str] state: Service state. One of `POWEROFF`, `REBALANCING`, `REBUILDING` or `RUNNING`
343
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] static_ips: Static IPs that are going to be associated with this service. Please assign a value using the 'toset' function. Once a static ip resource is in the 'assigned' state it cannot be unbound from the node again
344
+ :param pulumi.Input[Sequence[pulumi.Input['DragonflyTagArgs']]] tags: Tags are key-value pairs that allow you to categorize services.
345
+ :param pulumi.Input[Sequence[pulumi.Input['DragonflyTechEmailArgs']]] tech_emails: The email addresses for [service contacts](https://aiven.io/docs/platform/howto/technical-emails), who will receive important alerts and updates about this service. You can also set email contacts at the project level.
346
+ :param pulumi.Input[bool] termination_protection: Prevents the service from being deleted. It is recommended to set this to `true` for all production services to prevent unintentional service deletion. This does not shield against deleting databases or topics but for services with backups much of the content can at least be restored from backup in case accidental deletion is done.
347
+ """
348
+ if additional_disk_space is not None:
349
+ pulumi.set(__self__, "additional_disk_space", additional_disk_space)
350
+ if cloud_name is not None:
351
+ pulumi.set(__self__, "cloud_name", cloud_name)
352
+ if components is not None:
353
+ pulumi.set(__self__, "components", components)
354
+ if disk_space is not None:
355
+ warnings.warn("""This will be removed in v5.0.0. Please use `additional_disk_space` to specify the space to be added to the default `disk_space` defined by the plan.""", DeprecationWarning)
356
+ pulumi.log.warn("""disk_space is deprecated: This will be removed in v5.0.0. Please use `additional_disk_space` to specify the space to be added to the default `disk_space` defined by the plan.""")
357
+ if disk_space is not None:
358
+ pulumi.set(__self__, "disk_space", disk_space)
359
+ if disk_space_cap is not None:
360
+ pulumi.set(__self__, "disk_space_cap", disk_space_cap)
361
+ if disk_space_default is not None:
362
+ pulumi.set(__self__, "disk_space_default", disk_space_default)
363
+ if disk_space_step is not None:
364
+ pulumi.set(__self__, "disk_space_step", disk_space_step)
365
+ if disk_space_used is not None:
366
+ warnings.warn("""This will be removed in v5.0.0. Please use `additional_disk_space` to specify the space to be added to the default `disk_space` defined by the plan.""", DeprecationWarning)
367
+ pulumi.log.warn("""disk_space_used is deprecated: This will be removed in v5.0.0. Please use `additional_disk_space` to specify the space to be added to the default `disk_space` defined by the plan.""")
368
+ if disk_space_used is not None:
369
+ pulumi.set(__self__, "disk_space_used", disk_space_used)
370
+ if dragonfly is not None:
371
+ pulumi.set(__self__, "dragonfly", dragonfly)
372
+ if dragonfly_user_config is not None:
373
+ pulumi.set(__self__, "dragonfly_user_config", dragonfly_user_config)
374
+ if maintenance_window_dow is not None:
375
+ pulumi.set(__self__, "maintenance_window_dow", maintenance_window_dow)
376
+ if maintenance_window_time is not None:
377
+ pulumi.set(__self__, "maintenance_window_time", maintenance_window_time)
378
+ if plan is not None:
379
+ pulumi.set(__self__, "plan", plan)
380
+ if project is not None:
381
+ pulumi.set(__self__, "project", project)
382
+ if project_vpc_id is not None:
383
+ pulumi.set(__self__, "project_vpc_id", project_vpc_id)
384
+ if service_host is not None:
385
+ pulumi.set(__self__, "service_host", service_host)
386
+ if service_integrations is not None:
387
+ pulumi.set(__self__, "service_integrations", service_integrations)
388
+ if service_name is not None:
389
+ pulumi.set(__self__, "service_name", service_name)
390
+ if service_password is not None:
391
+ pulumi.set(__self__, "service_password", service_password)
392
+ if service_port is not None:
393
+ pulumi.set(__self__, "service_port", service_port)
394
+ if service_type is not None:
395
+ pulumi.set(__self__, "service_type", service_type)
396
+ if service_uri is not None:
397
+ pulumi.set(__self__, "service_uri", service_uri)
398
+ if service_username is not None:
399
+ pulumi.set(__self__, "service_username", service_username)
400
+ if state is not None:
401
+ pulumi.set(__self__, "state", state)
402
+ if static_ips is not None:
403
+ pulumi.set(__self__, "static_ips", static_ips)
404
+ if tags is not None:
405
+ pulumi.set(__self__, "tags", tags)
406
+ if tech_emails is not None:
407
+ pulumi.set(__self__, "tech_emails", tech_emails)
408
+ if termination_protection is not None:
409
+ pulumi.set(__self__, "termination_protection", termination_protection)
410
+
411
+ @property
412
+ @pulumi.getter(name="additionalDiskSpace")
413
+ def additional_disk_space(self) -> Optional[pulumi.Input[str]]:
414
+ """
415
+ Add [disk storage](https://aiven.io/docs/platform/howto/add-storage-space) in increments of 30 GiB to scale your service. The maximum value depends on the service type and cloud provider. Removing additional storage causes the service nodes to go through a rolling restart and there might be a short downtime for services with no HA capabilities.
416
+ """
417
+ return pulumi.get(self, "additional_disk_space")
418
+
419
+ @additional_disk_space.setter
420
+ def additional_disk_space(self, value: Optional[pulumi.Input[str]]):
421
+ pulumi.set(self, "additional_disk_space", value)
422
+
423
+ @property
424
+ @pulumi.getter(name="cloudName")
425
+ def cloud_name(self) -> Optional[pulumi.Input[str]]:
426
+ """
427
+ Defines where the cloud provider and region where the service is hosted in. This can be changed freely after service is created. Changing the value will trigger a potentially lengthy migration process for the service. Format is cloud provider name (`aws`, `azure`, `do` `google`, `upcloud`, etc.), dash, and the cloud provider specific region name. These are documented on each Cloud provider's own support articles, like [here for Google](https://cloud.google.com/compute/docs/regions-zones/) and [here for AWS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.RegionsAndAvailabilityZones.html).
428
+ """
429
+ return pulumi.get(self, "cloud_name")
430
+
431
+ @cloud_name.setter
432
+ def cloud_name(self, value: Optional[pulumi.Input[str]]):
433
+ pulumi.set(self, "cloud_name", value)
434
+
435
+ @property
436
+ @pulumi.getter
437
+ def components(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['DragonflyComponentArgs']]]]:
438
+ """
439
+ Service component information objects
440
+ """
441
+ return pulumi.get(self, "components")
442
+
443
+ @components.setter
444
+ def components(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['DragonflyComponentArgs']]]]):
445
+ pulumi.set(self, "components", value)
446
+
447
+ @property
448
+ @pulumi.getter(name="diskSpace")
449
+ @_utilities.deprecated("""This will be removed in v5.0.0. Please use `additional_disk_space` to specify the space to be added to the default `disk_space` defined by the plan.""")
450
+ def disk_space(self) -> Optional[pulumi.Input[str]]:
451
+ """
452
+ Service disk space. Possible values depend on the service type, the cloud provider and the project. Therefore, reducing will result in the service rebalancing.
453
+ """
454
+ return pulumi.get(self, "disk_space")
455
+
456
+ @disk_space.setter
457
+ def disk_space(self, value: Optional[pulumi.Input[str]]):
458
+ pulumi.set(self, "disk_space", value)
459
+
460
+ @property
461
+ @pulumi.getter(name="diskSpaceCap")
462
+ def disk_space_cap(self) -> Optional[pulumi.Input[str]]:
463
+ """
464
+ The maximum disk space of the service, possible values depend on the service type, the cloud provider and the project.
465
+ """
466
+ return pulumi.get(self, "disk_space_cap")
467
+
468
+ @disk_space_cap.setter
469
+ def disk_space_cap(self, value: Optional[pulumi.Input[str]]):
470
+ pulumi.set(self, "disk_space_cap", value)
471
+
472
+ @property
473
+ @pulumi.getter(name="diskSpaceDefault")
474
+ def disk_space_default(self) -> Optional[pulumi.Input[str]]:
475
+ """
476
+ The default disk space of the service, possible values depend on the service type, the cloud provider and the project. Its also the minimum value for `disk_space`
477
+ """
478
+ return pulumi.get(self, "disk_space_default")
479
+
480
+ @disk_space_default.setter
481
+ def disk_space_default(self, value: Optional[pulumi.Input[str]]):
482
+ pulumi.set(self, "disk_space_default", value)
483
+
484
+ @property
485
+ @pulumi.getter(name="diskSpaceStep")
486
+ def disk_space_step(self) -> Optional[pulumi.Input[str]]:
487
+ """
488
+ The default disk space step of the service, possible values depend on the service type, the cloud provider and the project. `disk_space` needs to increment from `disk_space_default` by increments of this size.
489
+ """
490
+ return pulumi.get(self, "disk_space_step")
491
+
492
+ @disk_space_step.setter
493
+ def disk_space_step(self, value: Optional[pulumi.Input[str]]):
494
+ pulumi.set(self, "disk_space_step", value)
495
+
496
+ @property
497
+ @pulumi.getter(name="diskSpaceUsed")
498
+ @_utilities.deprecated("""This will be removed in v5.0.0. Please use `additional_disk_space` to specify the space to be added to the default `disk_space` defined by the plan.""")
499
+ def disk_space_used(self) -> Optional[pulumi.Input[str]]:
500
+ """
501
+ Disk space that service is currently using
502
+ """
503
+ return pulumi.get(self, "disk_space_used")
504
+
505
+ @disk_space_used.setter
506
+ def disk_space_used(self, value: Optional[pulumi.Input[str]]):
507
+ pulumi.set(self, "disk_space_used", value)
508
+
509
+ @property
510
+ @pulumi.getter
511
+ def dragonfly(self) -> Optional[pulumi.Input['DragonflyDragonflyArgs']]:
512
+ """
513
+ Dragonfly server provided values
514
+ """
515
+ return pulumi.get(self, "dragonfly")
516
+
517
+ @dragonfly.setter
518
+ def dragonfly(self, value: Optional[pulumi.Input['DragonflyDragonflyArgs']]):
519
+ pulumi.set(self, "dragonfly", value)
520
+
521
+ @property
522
+ @pulumi.getter(name="dragonflyUserConfig")
523
+ def dragonfly_user_config(self) -> Optional[pulumi.Input['DragonflyDragonflyUserConfigArgs']]:
524
+ """
525
+ Dragonfly user configurable settings. **Warning:** There's no way to reset advanced configuration options to default. Options that you add cannot be removed later
526
+ """
527
+ return pulumi.get(self, "dragonfly_user_config")
528
+
529
+ @dragonfly_user_config.setter
530
+ def dragonfly_user_config(self, value: Optional[pulumi.Input['DragonflyDragonflyUserConfigArgs']]):
531
+ pulumi.set(self, "dragonfly_user_config", value)
532
+
533
+ @property
534
+ @pulumi.getter(name="maintenanceWindowDow")
535
+ def maintenance_window_dow(self) -> Optional[pulumi.Input[str]]:
536
+ """
537
+ Day of week when maintenance operations should be performed. One monday, tuesday, wednesday, etc.
538
+ """
539
+ return pulumi.get(self, "maintenance_window_dow")
540
+
541
+ @maintenance_window_dow.setter
542
+ def maintenance_window_dow(self, value: Optional[pulumi.Input[str]]):
543
+ pulumi.set(self, "maintenance_window_dow", value)
544
+
545
+ @property
546
+ @pulumi.getter(name="maintenanceWindowTime")
547
+ def maintenance_window_time(self) -> Optional[pulumi.Input[str]]:
548
+ """
549
+ Time of day when maintenance operations should be performed. UTC time in HH:mm:ss format.
550
+ """
551
+ return pulumi.get(self, "maintenance_window_time")
552
+
553
+ @maintenance_window_time.setter
554
+ def maintenance_window_time(self, value: Optional[pulumi.Input[str]]):
555
+ pulumi.set(self, "maintenance_window_time", value)
556
+
557
+ @property
558
+ @pulumi.getter
559
+ def plan(self) -> Optional[pulumi.Input[str]]:
560
+ """
561
+ Defines what kind of computing resources are allocated for the service. It can be changed after creation, though there are some restrictions when going to a smaller plan such as the new plan must have sufficient amount of disk space to store all current data and switching to a plan with fewer nodes might not be supported. The basic plan names are `hobbyist`, `startup-x`, `business-x` and `premium-x` where `x` is (roughly) the amount of memory on each node (also other attributes like number of CPUs and amount of disk space varies but naming is based on memory). The available options can be seen from the [Aiven pricing page](https://aiven.io/pricing).
562
+ """
563
+ return pulumi.get(self, "plan")
564
+
565
+ @plan.setter
566
+ def plan(self, value: Optional[pulumi.Input[str]]):
567
+ pulumi.set(self, "plan", value)
568
+
569
+ @property
570
+ @pulumi.getter
571
+ def project(self) -> Optional[pulumi.Input[str]]:
572
+ """
573
+ The name of the project this resource belongs to. To set up proper dependencies please refer to this variable as a reference. Changing this property forces recreation of the resource.
574
+ """
575
+ return pulumi.get(self, "project")
576
+
577
+ @project.setter
578
+ def project(self, value: Optional[pulumi.Input[str]]):
579
+ pulumi.set(self, "project", value)
580
+
581
+ @property
582
+ @pulumi.getter(name="projectVpcId")
583
+ def project_vpc_id(self) -> Optional[pulumi.Input[str]]:
584
+ """
585
+ Specifies the VPC the service should run in. If the value is not set the service is not run inside a VPC. When set, the value should be given as a reference to set up dependencies correctly and the VPC must be in the same cloud and region as the service itself. Project can be freely moved to and from VPC after creation but doing so triggers migration to new servers so the operation can take significant amount of time to complete if the service has a lot of data.
586
+ """
587
+ return pulumi.get(self, "project_vpc_id")
588
+
589
+ @project_vpc_id.setter
590
+ def project_vpc_id(self, value: Optional[pulumi.Input[str]]):
591
+ pulumi.set(self, "project_vpc_id", value)
592
+
593
+ @property
594
+ @pulumi.getter(name="serviceHost")
595
+ def service_host(self) -> Optional[pulumi.Input[str]]:
596
+ """
597
+ The hostname of the service.
598
+ """
599
+ return pulumi.get(self, "service_host")
600
+
601
+ @service_host.setter
602
+ def service_host(self, value: Optional[pulumi.Input[str]]):
603
+ pulumi.set(self, "service_host", value)
604
+
605
+ @property
606
+ @pulumi.getter(name="serviceIntegrations")
607
+ def service_integrations(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['DragonflyServiceIntegrationArgs']]]]:
608
+ """
609
+ Service integrations to specify when creating a service. Not applied after initial service creation
610
+ """
611
+ return pulumi.get(self, "service_integrations")
612
+
613
+ @service_integrations.setter
614
+ def service_integrations(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['DragonflyServiceIntegrationArgs']]]]):
615
+ pulumi.set(self, "service_integrations", value)
616
+
617
+ @property
618
+ @pulumi.getter(name="serviceName")
619
+ def service_name(self) -> Optional[pulumi.Input[str]]:
620
+ """
621
+ Specifies the actual name of the service. The name cannot be changed later without destroying and re-creating the service so name should be picked based on intended service usage rather than current attributes.
622
+ """
623
+ return pulumi.get(self, "service_name")
624
+
625
+ @service_name.setter
626
+ def service_name(self, value: Optional[pulumi.Input[str]]):
627
+ pulumi.set(self, "service_name", value)
628
+
629
+ @property
630
+ @pulumi.getter(name="servicePassword")
631
+ def service_password(self) -> Optional[pulumi.Input[str]]:
632
+ """
633
+ Password used for connecting to the service, if applicable
634
+ """
635
+ return pulumi.get(self, "service_password")
636
+
637
+ @service_password.setter
638
+ def service_password(self, value: Optional[pulumi.Input[str]]):
639
+ pulumi.set(self, "service_password", value)
640
+
641
+ @property
642
+ @pulumi.getter(name="servicePort")
643
+ def service_port(self) -> Optional[pulumi.Input[int]]:
644
+ """
645
+ The port of the service
646
+ """
647
+ return pulumi.get(self, "service_port")
648
+
649
+ @service_port.setter
650
+ def service_port(self, value: Optional[pulumi.Input[int]]):
651
+ pulumi.set(self, "service_port", value)
652
+
653
+ @property
654
+ @pulumi.getter(name="serviceType")
655
+ def service_type(self) -> Optional[pulumi.Input[str]]:
656
+ """
657
+ Aiven internal service type code
658
+ """
659
+ return pulumi.get(self, "service_type")
660
+
661
+ @service_type.setter
662
+ def service_type(self, value: Optional[pulumi.Input[str]]):
663
+ pulumi.set(self, "service_type", value)
664
+
665
+ @property
666
+ @pulumi.getter(name="serviceUri")
667
+ def service_uri(self) -> Optional[pulumi.Input[str]]:
668
+ """
669
+ URI for connecting to the service. Service specific info is under "kafka", "pg", etc.
670
+ """
671
+ return pulumi.get(self, "service_uri")
672
+
673
+ @service_uri.setter
674
+ def service_uri(self, value: Optional[pulumi.Input[str]]):
675
+ pulumi.set(self, "service_uri", value)
676
+
677
+ @property
678
+ @pulumi.getter(name="serviceUsername")
679
+ def service_username(self) -> Optional[pulumi.Input[str]]:
680
+ """
681
+ Username used for connecting to the service, if applicable
682
+ """
683
+ return pulumi.get(self, "service_username")
684
+
685
+ @service_username.setter
686
+ def service_username(self, value: Optional[pulumi.Input[str]]):
687
+ pulumi.set(self, "service_username", value)
688
+
689
+ @property
690
+ @pulumi.getter
691
+ def state(self) -> Optional[pulumi.Input[str]]:
692
+ """
693
+ Service state. One of `POWEROFF`, `REBALANCING`, `REBUILDING` or `RUNNING`
694
+ """
695
+ return pulumi.get(self, "state")
696
+
697
+ @state.setter
698
+ def state(self, value: Optional[pulumi.Input[str]]):
699
+ pulumi.set(self, "state", value)
700
+
701
+ @property
702
+ @pulumi.getter(name="staticIps")
703
+ def static_ips(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
704
+ """
705
+ Static IPs that are going to be associated with this service. Please assign a value using the 'toset' function. Once a static ip resource is in the 'assigned' state it cannot be unbound from the node again
706
+ """
707
+ return pulumi.get(self, "static_ips")
708
+
709
+ @static_ips.setter
710
+ def static_ips(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
711
+ pulumi.set(self, "static_ips", value)
712
+
713
+ @property
714
+ @pulumi.getter
715
+ def tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['DragonflyTagArgs']]]]:
716
+ """
717
+ Tags are key-value pairs that allow you to categorize services.
718
+ """
719
+ return pulumi.get(self, "tags")
720
+
721
+ @tags.setter
722
+ def tags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['DragonflyTagArgs']]]]):
723
+ pulumi.set(self, "tags", value)
724
+
725
+ @property
726
+ @pulumi.getter(name="techEmails")
727
+ def tech_emails(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['DragonflyTechEmailArgs']]]]:
728
+ """
729
+ The email addresses for [service contacts](https://aiven.io/docs/platform/howto/technical-emails), who will receive important alerts and updates about this service. You can also set email contacts at the project level.
730
+ """
731
+ return pulumi.get(self, "tech_emails")
732
+
733
+ @tech_emails.setter
734
+ def tech_emails(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['DragonflyTechEmailArgs']]]]):
735
+ pulumi.set(self, "tech_emails", value)
736
+
737
+ @property
738
+ @pulumi.getter(name="terminationProtection")
739
+ def termination_protection(self) -> Optional[pulumi.Input[bool]]:
740
+ """
741
+ Prevents the service from being deleted. It is recommended to set this to `true` for all production services to prevent unintentional service deletion. This does not shield against deleting databases or topics but for services with backups much of the content can at least be restored from backup in case accidental deletion is done.
742
+ """
743
+ return pulumi.get(self, "termination_protection")
744
+
745
+ @termination_protection.setter
746
+ def termination_protection(self, value: Optional[pulumi.Input[bool]]):
747
+ pulumi.set(self, "termination_protection", value)
748
+
749
+
750
+ class Dragonfly(pulumi.CustomResource):
751
+ @overload
752
+ def __init__(__self__,
753
+ resource_name: str,
754
+ opts: Optional[pulumi.ResourceOptions] = None,
755
+ additional_disk_space: Optional[pulumi.Input[str]] = None,
756
+ cloud_name: Optional[pulumi.Input[str]] = None,
757
+ disk_space: Optional[pulumi.Input[str]] = None,
758
+ dragonfly: Optional[pulumi.Input[Union['DragonflyDragonflyArgs', 'DragonflyDragonflyArgsDict']]] = None,
759
+ dragonfly_user_config: Optional[pulumi.Input[Union['DragonflyDragonflyUserConfigArgs', 'DragonflyDragonflyUserConfigArgsDict']]] = None,
760
+ maintenance_window_dow: Optional[pulumi.Input[str]] = None,
761
+ maintenance_window_time: Optional[pulumi.Input[str]] = None,
762
+ plan: Optional[pulumi.Input[str]] = None,
763
+ project: Optional[pulumi.Input[str]] = None,
764
+ project_vpc_id: Optional[pulumi.Input[str]] = None,
765
+ service_integrations: Optional[pulumi.Input[Sequence[pulumi.Input[Union['DragonflyServiceIntegrationArgs', 'DragonflyServiceIntegrationArgsDict']]]]] = None,
766
+ service_name: Optional[pulumi.Input[str]] = None,
767
+ static_ips: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
768
+ tags: Optional[pulumi.Input[Sequence[pulumi.Input[Union['DragonflyTagArgs', 'DragonflyTagArgsDict']]]]] = None,
769
+ tech_emails: Optional[pulumi.Input[Sequence[pulumi.Input[Union['DragonflyTechEmailArgs', 'DragonflyTechEmailArgsDict']]]]] = None,
770
+ termination_protection: Optional[pulumi.Input[bool]] = None,
771
+ __props__=None):
772
+ """
773
+ Creates and manages an [Aiven for Dragonfly®](https://aiven.io/docs/products/dragonfly/concepts/overview) service.
774
+
775
+ ## Example Usage
776
+
777
+ ```python
778
+ import pulumi
779
+ import pulumi_aiven as aiven
780
+
781
+ example_dragonfly = aiven.Dragonfly("example_dragonfly",
782
+ project=example_project["project"],
783
+ plan="startup-4",
784
+ cloud_name="google-europe-west1",
785
+ service_name="example-dragonfly-service",
786
+ dragonfly_user_config={
787
+ "cache_mode": True,
788
+ })
789
+ ```
790
+
791
+ ## Import
792
+
793
+ ```sh
794
+ $ pulumi import aiven:index/dragonfly:Dragonfly example_dragonfly PROJECT/SERVICE_NAME
795
+ ```
796
+
797
+ :param str resource_name: The name of the resource.
798
+ :param pulumi.ResourceOptions opts: Options for the resource.
799
+ :param pulumi.Input[str] additional_disk_space: Add [disk storage](https://aiven.io/docs/platform/howto/add-storage-space) in increments of 30 GiB to scale your service. The maximum value depends on the service type and cloud provider. Removing additional storage causes the service nodes to go through a rolling restart and there might be a short downtime for services with no HA capabilities.
800
+ :param pulumi.Input[str] cloud_name: Defines where the cloud provider and region where the service is hosted in. This can be changed freely after service is created. Changing the value will trigger a potentially lengthy migration process for the service. Format is cloud provider name (`aws`, `azure`, `do` `google`, `upcloud`, etc.), dash, and the cloud provider specific region name. These are documented on each Cloud provider's own support articles, like [here for Google](https://cloud.google.com/compute/docs/regions-zones/) and [here for AWS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.RegionsAndAvailabilityZones.html).
801
+ :param pulumi.Input[str] disk_space: Service disk space. Possible values depend on the service type, the cloud provider and the project. Therefore, reducing will result in the service rebalancing.
802
+ :param pulumi.Input[Union['DragonflyDragonflyArgs', 'DragonflyDragonflyArgsDict']] dragonfly: Dragonfly server provided values
803
+ :param pulumi.Input[Union['DragonflyDragonflyUserConfigArgs', 'DragonflyDragonflyUserConfigArgsDict']] dragonfly_user_config: Dragonfly user configurable settings. **Warning:** There's no way to reset advanced configuration options to default. Options that you add cannot be removed later
804
+ :param pulumi.Input[str] maintenance_window_dow: Day of week when maintenance operations should be performed. One monday, tuesday, wednesday, etc.
805
+ :param pulumi.Input[str] maintenance_window_time: Time of day when maintenance operations should be performed. UTC time in HH:mm:ss format.
806
+ :param pulumi.Input[str] plan: Defines what kind of computing resources are allocated for the service. It can be changed after creation, though there are some restrictions when going to a smaller plan such as the new plan must have sufficient amount of disk space to store all current data and switching to a plan with fewer nodes might not be supported. The basic plan names are `hobbyist`, `startup-x`, `business-x` and `premium-x` where `x` is (roughly) the amount of memory on each node (also other attributes like number of CPUs and amount of disk space varies but naming is based on memory). The available options can be seen from the [Aiven pricing page](https://aiven.io/pricing).
807
+ :param pulumi.Input[str] project: The name of the project this resource belongs to. To set up proper dependencies please refer to this variable as a reference. Changing this property forces recreation of the resource.
808
+ :param pulumi.Input[str] project_vpc_id: Specifies the VPC the service should run in. If the value is not set the service is not run inside a VPC. When set, the value should be given as a reference to set up dependencies correctly and the VPC must be in the same cloud and region as the service itself. Project can be freely moved to and from VPC after creation but doing so triggers migration to new servers so the operation can take significant amount of time to complete if the service has a lot of data.
809
+ :param pulumi.Input[Sequence[pulumi.Input[Union['DragonflyServiceIntegrationArgs', 'DragonflyServiceIntegrationArgsDict']]]] service_integrations: Service integrations to specify when creating a service. Not applied after initial service creation
810
+ :param pulumi.Input[str] service_name: Specifies the actual name of the service. The name cannot be changed later without destroying and re-creating the service so name should be picked based on intended service usage rather than current attributes.
811
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] static_ips: Static IPs that are going to be associated with this service. Please assign a value using the 'toset' function. Once a static ip resource is in the 'assigned' state it cannot be unbound from the node again
812
+ :param pulumi.Input[Sequence[pulumi.Input[Union['DragonflyTagArgs', 'DragonflyTagArgsDict']]]] tags: Tags are key-value pairs that allow you to categorize services.
813
+ :param pulumi.Input[Sequence[pulumi.Input[Union['DragonflyTechEmailArgs', 'DragonflyTechEmailArgsDict']]]] tech_emails: The email addresses for [service contacts](https://aiven.io/docs/platform/howto/technical-emails), who will receive important alerts and updates about this service. You can also set email contacts at the project level.
814
+ :param pulumi.Input[bool] termination_protection: Prevents the service from being deleted. It is recommended to set this to `true` for all production services to prevent unintentional service deletion. This does not shield against deleting databases or topics but for services with backups much of the content can at least be restored from backup in case accidental deletion is done.
815
+ """
816
+ ...
817
+ @overload
818
+ def __init__(__self__,
819
+ resource_name: str,
820
+ args: DragonflyArgs,
821
+ opts: Optional[pulumi.ResourceOptions] = None):
822
+ """
823
+ Creates and manages an [Aiven for Dragonfly®](https://aiven.io/docs/products/dragonfly/concepts/overview) service.
824
+
825
+ ## Example Usage
826
+
827
+ ```python
828
+ import pulumi
829
+ import pulumi_aiven as aiven
830
+
831
+ example_dragonfly = aiven.Dragonfly("example_dragonfly",
832
+ project=example_project["project"],
833
+ plan="startup-4",
834
+ cloud_name="google-europe-west1",
835
+ service_name="example-dragonfly-service",
836
+ dragonfly_user_config={
837
+ "cache_mode": True,
838
+ })
839
+ ```
840
+
841
+ ## Import
842
+
843
+ ```sh
844
+ $ pulumi import aiven:index/dragonfly:Dragonfly example_dragonfly PROJECT/SERVICE_NAME
845
+ ```
846
+
847
+ :param str resource_name: The name of the resource.
848
+ :param DragonflyArgs args: The arguments to use to populate this resource's properties.
849
+ :param pulumi.ResourceOptions opts: Options for the resource.
850
+ """
851
+ ...
852
+ def __init__(__self__, resource_name: str, *args, **kwargs):
853
+ resource_args, opts = _utilities.get_resource_args_opts(DragonflyArgs, pulumi.ResourceOptions, *args, **kwargs)
854
+ if resource_args is not None:
855
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
856
+ else:
857
+ __self__._internal_init(resource_name, *args, **kwargs)
858
+
859
+ def _internal_init(__self__,
860
+ resource_name: str,
861
+ opts: Optional[pulumi.ResourceOptions] = None,
862
+ additional_disk_space: Optional[pulumi.Input[str]] = None,
863
+ cloud_name: Optional[pulumi.Input[str]] = None,
864
+ disk_space: Optional[pulumi.Input[str]] = None,
865
+ dragonfly: Optional[pulumi.Input[Union['DragonflyDragonflyArgs', 'DragonflyDragonflyArgsDict']]] = None,
866
+ dragonfly_user_config: Optional[pulumi.Input[Union['DragonflyDragonflyUserConfigArgs', 'DragonflyDragonflyUserConfigArgsDict']]] = None,
867
+ maintenance_window_dow: Optional[pulumi.Input[str]] = None,
868
+ maintenance_window_time: Optional[pulumi.Input[str]] = None,
869
+ plan: Optional[pulumi.Input[str]] = None,
870
+ project: Optional[pulumi.Input[str]] = None,
871
+ project_vpc_id: Optional[pulumi.Input[str]] = None,
872
+ service_integrations: Optional[pulumi.Input[Sequence[pulumi.Input[Union['DragonflyServiceIntegrationArgs', 'DragonflyServiceIntegrationArgsDict']]]]] = None,
873
+ service_name: Optional[pulumi.Input[str]] = None,
874
+ static_ips: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
875
+ tags: Optional[pulumi.Input[Sequence[pulumi.Input[Union['DragonflyTagArgs', 'DragonflyTagArgsDict']]]]] = None,
876
+ tech_emails: Optional[pulumi.Input[Sequence[pulumi.Input[Union['DragonflyTechEmailArgs', 'DragonflyTechEmailArgsDict']]]]] = None,
877
+ termination_protection: Optional[pulumi.Input[bool]] = None,
878
+ __props__=None):
879
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
880
+ if not isinstance(opts, pulumi.ResourceOptions):
881
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
882
+ if opts.id is None:
883
+ if __props__ is not None:
884
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
885
+ __props__ = DragonflyArgs.__new__(DragonflyArgs)
886
+
887
+ __props__.__dict__["additional_disk_space"] = additional_disk_space
888
+ __props__.__dict__["cloud_name"] = cloud_name
889
+ __props__.__dict__["disk_space"] = disk_space
890
+ __props__.__dict__["dragonfly"] = None if dragonfly is None else pulumi.Output.secret(dragonfly)
891
+ __props__.__dict__["dragonfly_user_config"] = dragonfly_user_config
892
+ __props__.__dict__["maintenance_window_dow"] = maintenance_window_dow
893
+ __props__.__dict__["maintenance_window_time"] = maintenance_window_time
894
+ if plan is None and not opts.urn:
895
+ raise TypeError("Missing required property 'plan'")
896
+ __props__.__dict__["plan"] = plan
897
+ if project is None and not opts.urn:
898
+ raise TypeError("Missing required property 'project'")
899
+ __props__.__dict__["project"] = project
900
+ __props__.__dict__["project_vpc_id"] = project_vpc_id
901
+ __props__.__dict__["service_integrations"] = service_integrations
902
+ if service_name is None and not opts.urn:
903
+ raise TypeError("Missing required property 'service_name'")
904
+ __props__.__dict__["service_name"] = service_name
905
+ __props__.__dict__["static_ips"] = static_ips
906
+ __props__.__dict__["tags"] = tags
907
+ __props__.__dict__["tech_emails"] = tech_emails
908
+ __props__.__dict__["termination_protection"] = termination_protection
909
+ __props__.__dict__["components"] = None
910
+ __props__.__dict__["disk_space_cap"] = None
911
+ __props__.__dict__["disk_space_default"] = None
912
+ __props__.__dict__["disk_space_step"] = None
913
+ __props__.__dict__["disk_space_used"] = None
914
+ __props__.__dict__["service_host"] = None
915
+ __props__.__dict__["service_password"] = None
916
+ __props__.__dict__["service_port"] = None
917
+ __props__.__dict__["service_type"] = None
918
+ __props__.__dict__["service_uri"] = None
919
+ __props__.__dict__["service_username"] = None
920
+ __props__.__dict__["state"] = None
921
+ secret_opts = pulumi.ResourceOptions(additional_secret_outputs=["dragonfly", "servicePassword", "serviceUri"])
922
+ opts = pulumi.ResourceOptions.merge(opts, secret_opts)
923
+ super(Dragonfly, __self__).__init__(
924
+ 'aiven:index/dragonfly:Dragonfly',
925
+ resource_name,
926
+ __props__,
927
+ opts)
928
+
929
+ @staticmethod
930
+ def get(resource_name: str,
931
+ id: pulumi.Input[str],
932
+ opts: Optional[pulumi.ResourceOptions] = None,
933
+ additional_disk_space: Optional[pulumi.Input[str]] = None,
934
+ cloud_name: Optional[pulumi.Input[str]] = None,
935
+ components: Optional[pulumi.Input[Sequence[pulumi.Input[Union['DragonflyComponentArgs', 'DragonflyComponentArgsDict']]]]] = None,
936
+ disk_space: Optional[pulumi.Input[str]] = None,
937
+ disk_space_cap: Optional[pulumi.Input[str]] = None,
938
+ disk_space_default: Optional[pulumi.Input[str]] = None,
939
+ disk_space_step: Optional[pulumi.Input[str]] = None,
940
+ disk_space_used: Optional[pulumi.Input[str]] = None,
941
+ dragonfly: Optional[pulumi.Input[Union['DragonflyDragonflyArgs', 'DragonflyDragonflyArgsDict']]] = None,
942
+ dragonfly_user_config: Optional[pulumi.Input[Union['DragonflyDragonflyUserConfigArgs', 'DragonflyDragonflyUserConfigArgsDict']]] = None,
943
+ maintenance_window_dow: Optional[pulumi.Input[str]] = None,
944
+ maintenance_window_time: Optional[pulumi.Input[str]] = None,
945
+ plan: Optional[pulumi.Input[str]] = None,
946
+ project: Optional[pulumi.Input[str]] = None,
947
+ project_vpc_id: Optional[pulumi.Input[str]] = None,
948
+ service_host: Optional[pulumi.Input[str]] = None,
949
+ service_integrations: Optional[pulumi.Input[Sequence[pulumi.Input[Union['DragonflyServiceIntegrationArgs', 'DragonflyServiceIntegrationArgsDict']]]]] = None,
950
+ service_name: Optional[pulumi.Input[str]] = None,
951
+ service_password: Optional[pulumi.Input[str]] = None,
952
+ service_port: Optional[pulumi.Input[int]] = None,
953
+ service_type: Optional[pulumi.Input[str]] = None,
954
+ service_uri: Optional[pulumi.Input[str]] = None,
955
+ service_username: Optional[pulumi.Input[str]] = None,
956
+ state: Optional[pulumi.Input[str]] = None,
957
+ static_ips: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
958
+ tags: Optional[pulumi.Input[Sequence[pulumi.Input[Union['DragonflyTagArgs', 'DragonflyTagArgsDict']]]]] = None,
959
+ tech_emails: Optional[pulumi.Input[Sequence[pulumi.Input[Union['DragonflyTechEmailArgs', 'DragonflyTechEmailArgsDict']]]]] = None,
960
+ termination_protection: Optional[pulumi.Input[bool]] = None) -> 'Dragonfly':
961
+ """
962
+ Get an existing Dragonfly resource's state with the given name, id, and optional extra
963
+ properties used to qualify the lookup.
964
+
965
+ :param str resource_name: The unique name of the resulting resource.
966
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
967
+ :param pulumi.ResourceOptions opts: Options for the resource.
968
+ :param pulumi.Input[str] additional_disk_space: Add [disk storage](https://aiven.io/docs/platform/howto/add-storage-space) in increments of 30 GiB to scale your service. The maximum value depends on the service type and cloud provider. Removing additional storage causes the service nodes to go through a rolling restart and there might be a short downtime for services with no HA capabilities.
969
+ :param pulumi.Input[str] cloud_name: Defines where the cloud provider and region where the service is hosted in. This can be changed freely after service is created. Changing the value will trigger a potentially lengthy migration process for the service. Format is cloud provider name (`aws`, `azure`, `do` `google`, `upcloud`, etc.), dash, and the cloud provider specific region name. These are documented on each Cloud provider's own support articles, like [here for Google](https://cloud.google.com/compute/docs/regions-zones/) and [here for AWS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.RegionsAndAvailabilityZones.html).
970
+ :param pulumi.Input[Sequence[pulumi.Input[Union['DragonflyComponentArgs', 'DragonflyComponentArgsDict']]]] components: Service component information objects
971
+ :param pulumi.Input[str] disk_space: Service disk space. Possible values depend on the service type, the cloud provider and the project. Therefore, reducing will result in the service rebalancing.
972
+ :param pulumi.Input[str] disk_space_cap: The maximum disk space of the service, possible values depend on the service type, the cloud provider and the project.
973
+ :param pulumi.Input[str] disk_space_default: The default disk space of the service, possible values depend on the service type, the cloud provider and the project. Its also the minimum value for `disk_space`
974
+ :param pulumi.Input[str] disk_space_step: The default disk space step of the service, possible values depend on the service type, the cloud provider and the project. `disk_space` needs to increment from `disk_space_default` by increments of this size.
975
+ :param pulumi.Input[str] disk_space_used: Disk space that service is currently using
976
+ :param pulumi.Input[Union['DragonflyDragonflyArgs', 'DragonflyDragonflyArgsDict']] dragonfly: Dragonfly server provided values
977
+ :param pulumi.Input[Union['DragonflyDragonflyUserConfigArgs', 'DragonflyDragonflyUserConfigArgsDict']] dragonfly_user_config: Dragonfly user configurable settings. **Warning:** There's no way to reset advanced configuration options to default. Options that you add cannot be removed later
978
+ :param pulumi.Input[str] maintenance_window_dow: Day of week when maintenance operations should be performed. One monday, tuesday, wednesday, etc.
979
+ :param pulumi.Input[str] maintenance_window_time: Time of day when maintenance operations should be performed. UTC time in HH:mm:ss format.
980
+ :param pulumi.Input[str] plan: Defines what kind of computing resources are allocated for the service. It can be changed after creation, though there are some restrictions when going to a smaller plan such as the new plan must have sufficient amount of disk space to store all current data and switching to a plan with fewer nodes might not be supported. The basic plan names are `hobbyist`, `startup-x`, `business-x` and `premium-x` where `x` is (roughly) the amount of memory on each node (also other attributes like number of CPUs and amount of disk space varies but naming is based on memory). The available options can be seen from the [Aiven pricing page](https://aiven.io/pricing).
981
+ :param pulumi.Input[str] project: The name of the project this resource belongs to. To set up proper dependencies please refer to this variable as a reference. Changing this property forces recreation of the resource.
982
+ :param pulumi.Input[str] project_vpc_id: Specifies the VPC the service should run in. If the value is not set the service is not run inside a VPC. When set, the value should be given as a reference to set up dependencies correctly and the VPC must be in the same cloud and region as the service itself. Project can be freely moved to and from VPC after creation but doing so triggers migration to new servers so the operation can take significant amount of time to complete if the service has a lot of data.
983
+ :param pulumi.Input[str] service_host: The hostname of the service.
984
+ :param pulumi.Input[Sequence[pulumi.Input[Union['DragonflyServiceIntegrationArgs', 'DragonflyServiceIntegrationArgsDict']]]] service_integrations: Service integrations to specify when creating a service. Not applied after initial service creation
985
+ :param pulumi.Input[str] service_name: Specifies the actual name of the service. The name cannot be changed later without destroying and re-creating the service so name should be picked based on intended service usage rather than current attributes.
986
+ :param pulumi.Input[str] service_password: Password used for connecting to the service, if applicable
987
+ :param pulumi.Input[int] service_port: The port of the service
988
+ :param pulumi.Input[str] service_type: Aiven internal service type code
989
+ :param pulumi.Input[str] service_uri: URI for connecting to the service. Service specific info is under "kafka", "pg", etc.
990
+ :param pulumi.Input[str] service_username: Username used for connecting to the service, if applicable
991
+ :param pulumi.Input[str] state: Service state. One of `POWEROFF`, `REBALANCING`, `REBUILDING` or `RUNNING`
992
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] static_ips: Static IPs that are going to be associated with this service. Please assign a value using the 'toset' function. Once a static ip resource is in the 'assigned' state it cannot be unbound from the node again
993
+ :param pulumi.Input[Sequence[pulumi.Input[Union['DragonflyTagArgs', 'DragonflyTagArgsDict']]]] tags: Tags are key-value pairs that allow you to categorize services.
994
+ :param pulumi.Input[Sequence[pulumi.Input[Union['DragonflyTechEmailArgs', 'DragonflyTechEmailArgsDict']]]] tech_emails: The email addresses for [service contacts](https://aiven.io/docs/platform/howto/technical-emails), who will receive important alerts and updates about this service. You can also set email contacts at the project level.
995
+ :param pulumi.Input[bool] termination_protection: Prevents the service from being deleted. It is recommended to set this to `true` for all production services to prevent unintentional service deletion. This does not shield against deleting databases or topics but for services with backups much of the content can at least be restored from backup in case accidental deletion is done.
996
+ """
997
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
998
+
999
+ __props__ = _DragonflyState.__new__(_DragonflyState)
1000
+
1001
+ __props__.__dict__["additional_disk_space"] = additional_disk_space
1002
+ __props__.__dict__["cloud_name"] = cloud_name
1003
+ __props__.__dict__["components"] = components
1004
+ __props__.__dict__["disk_space"] = disk_space
1005
+ __props__.__dict__["disk_space_cap"] = disk_space_cap
1006
+ __props__.__dict__["disk_space_default"] = disk_space_default
1007
+ __props__.__dict__["disk_space_step"] = disk_space_step
1008
+ __props__.__dict__["disk_space_used"] = disk_space_used
1009
+ __props__.__dict__["dragonfly"] = dragonfly
1010
+ __props__.__dict__["dragonfly_user_config"] = dragonfly_user_config
1011
+ __props__.__dict__["maintenance_window_dow"] = maintenance_window_dow
1012
+ __props__.__dict__["maintenance_window_time"] = maintenance_window_time
1013
+ __props__.__dict__["plan"] = plan
1014
+ __props__.__dict__["project"] = project
1015
+ __props__.__dict__["project_vpc_id"] = project_vpc_id
1016
+ __props__.__dict__["service_host"] = service_host
1017
+ __props__.__dict__["service_integrations"] = service_integrations
1018
+ __props__.__dict__["service_name"] = service_name
1019
+ __props__.__dict__["service_password"] = service_password
1020
+ __props__.__dict__["service_port"] = service_port
1021
+ __props__.__dict__["service_type"] = service_type
1022
+ __props__.__dict__["service_uri"] = service_uri
1023
+ __props__.__dict__["service_username"] = service_username
1024
+ __props__.__dict__["state"] = state
1025
+ __props__.__dict__["static_ips"] = static_ips
1026
+ __props__.__dict__["tags"] = tags
1027
+ __props__.__dict__["tech_emails"] = tech_emails
1028
+ __props__.__dict__["termination_protection"] = termination_protection
1029
+ return Dragonfly(resource_name, opts=opts, __props__=__props__)
1030
+
1031
+ @property
1032
+ @pulumi.getter(name="additionalDiskSpace")
1033
+ def additional_disk_space(self) -> pulumi.Output[str]:
1034
+ """
1035
+ Add [disk storage](https://aiven.io/docs/platform/howto/add-storage-space) in increments of 30 GiB to scale your service. The maximum value depends on the service type and cloud provider. Removing additional storage causes the service nodes to go through a rolling restart and there might be a short downtime for services with no HA capabilities.
1036
+ """
1037
+ return pulumi.get(self, "additional_disk_space")
1038
+
1039
+ @property
1040
+ @pulumi.getter(name="cloudName")
1041
+ def cloud_name(self) -> pulumi.Output[Optional[str]]:
1042
+ """
1043
+ Defines where the cloud provider and region where the service is hosted in. This can be changed freely after service is created. Changing the value will trigger a potentially lengthy migration process for the service. Format is cloud provider name (`aws`, `azure`, `do` `google`, `upcloud`, etc.), dash, and the cloud provider specific region name. These are documented on each Cloud provider's own support articles, like [here for Google](https://cloud.google.com/compute/docs/regions-zones/) and [here for AWS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.RegionsAndAvailabilityZones.html).
1044
+ """
1045
+ return pulumi.get(self, "cloud_name")
1046
+
1047
+ @property
1048
+ @pulumi.getter
1049
+ def components(self) -> pulumi.Output[Sequence['outputs.DragonflyComponent']]:
1050
+ """
1051
+ Service component information objects
1052
+ """
1053
+ return pulumi.get(self, "components")
1054
+
1055
+ @property
1056
+ @pulumi.getter(name="diskSpace")
1057
+ @_utilities.deprecated("""This will be removed in v5.0.0. Please use `additional_disk_space` to specify the space to be added to the default `disk_space` defined by the plan.""")
1058
+ def disk_space(self) -> pulumi.Output[Optional[str]]:
1059
+ """
1060
+ Service disk space. Possible values depend on the service type, the cloud provider and the project. Therefore, reducing will result in the service rebalancing.
1061
+ """
1062
+ return pulumi.get(self, "disk_space")
1063
+
1064
+ @property
1065
+ @pulumi.getter(name="diskSpaceCap")
1066
+ def disk_space_cap(self) -> pulumi.Output[str]:
1067
+ """
1068
+ The maximum disk space of the service, possible values depend on the service type, the cloud provider and the project.
1069
+ """
1070
+ return pulumi.get(self, "disk_space_cap")
1071
+
1072
+ @property
1073
+ @pulumi.getter(name="diskSpaceDefault")
1074
+ def disk_space_default(self) -> pulumi.Output[str]:
1075
+ """
1076
+ The default disk space of the service, possible values depend on the service type, the cloud provider and the project. Its also the minimum value for `disk_space`
1077
+ """
1078
+ return pulumi.get(self, "disk_space_default")
1079
+
1080
+ @property
1081
+ @pulumi.getter(name="diskSpaceStep")
1082
+ def disk_space_step(self) -> pulumi.Output[str]:
1083
+ """
1084
+ The default disk space step of the service, possible values depend on the service type, the cloud provider and the project. `disk_space` needs to increment from `disk_space_default` by increments of this size.
1085
+ """
1086
+ return pulumi.get(self, "disk_space_step")
1087
+
1088
+ @property
1089
+ @pulumi.getter(name="diskSpaceUsed")
1090
+ @_utilities.deprecated("""This will be removed in v5.0.0. Please use `additional_disk_space` to specify the space to be added to the default `disk_space` defined by the plan.""")
1091
+ def disk_space_used(self) -> pulumi.Output[str]:
1092
+ """
1093
+ Disk space that service is currently using
1094
+ """
1095
+ return pulumi.get(self, "disk_space_used")
1096
+
1097
+ @property
1098
+ @pulumi.getter
1099
+ def dragonfly(self) -> pulumi.Output['outputs.DragonflyDragonfly']:
1100
+ """
1101
+ Dragonfly server provided values
1102
+ """
1103
+ return pulumi.get(self, "dragonfly")
1104
+
1105
+ @property
1106
+ @pulumi.getter(name="dragonflyUserConfig")
1107
+ def dragonfly_user_config(self) -> pulumi.Output[Optional['outputs.DragonflyDragonflyUserConfig']]:
1108
+ """
1109
+ Dragonfly user configurable settings. **Warning:** There's no way to reset advanced configuration options to default. Options that you add cannot be removed later
1110
+ """
1111
+ return pulumi.get(self, "dragonfly_user_config")
1112
+
1113
+ @property
1114
+ @pulumi.getter(name="maintenanceWindowDow")
1115
+ def maintenance_window_dow(self) -> pulumi.Output[Optional[str]]:
1116
+ """
1117
+ Day of week when maintenance operations should be performed. One monday, tuesday, wednesday, etc.
1118
+ """
1119
+ return pulumi.get(self, "maintenance_window_dow")
1120
+
1121
+ @property
1122
+ @pulumi.getter(name="maintenanceWindowTime")
1123
+ def maintenance_window_time(self) -> pulumi.Output[Optional[str]]:
1124
+ """
1125
+ Time of day when maintenance operations should be performed. UTC time in HH:mm:ss format.
1126
+ """
1127
+ return pulumi.get(self, "maintenance_window_time")
1128
+
1129
+ @property
1130
+ @pulumi.getter
1131
+ def plan(self) -> pulumi.Output[str]:
1132
+ """
1133
+ Defines what kind of computing resources are allocated for the service. It can be changed after creation, though there are some restrictions when going to a smaller plan such as the new plan must have sufficient amount of disk space to store all current data and switching to a plan with fewer nodes might not be supported. The basic plan names are `hobbyist`, `startup-x`, `business-x` and `premium-x` where `x` is (roughly) the amount of memory on each node (also other attributes like number of CPUs and amount of disk space varies but naming is based on memory). The available options can be seen from the [Aiven pricing page](https://aiven.io/pricing).
1134
+ """
1135
+ return pulumi.get(self, "plan")
1136
+
1137
+ @property
1138
+ @pulumi.getter
1139
+ def project(self) -> pulumi.Output[str]:
1140
+ """
1141
+ The name of the project this resource belongs to. To set up proper dependencies please refer to this variable as a reference. Changing this property forces recreation of the resource.
1142
+ """
1143
+ return pulumi.get(self, "project")
1144
+
1145
+ @property
1146
+ @pulumi.getter(name="projectVpcId")
1147
+ def project_vpc_id(self) -> pulumi.Output[str]:
1148
+ """
1149
+ Specifies the VPC the service should run in. If the value is not set the service is not run inside a VPC. When set, the value should be given as a reference to set up dependencies correctly and the VPC must be in the same cloud and region as the service itself. Project can be freely moved to and from VPC after creation but doing so triggers migration to new servers so the operation can take significant amount of time to complete if the service has a lot of data.
1150
+ """
1151
+ return pulumi.get(self, "project_vpc_id")
1152
+
1153
+ @property
1154
+ @pulumi.getter(name="serviceHost")
1155
+ def service_host(self) -> pulumi.Output[str]:
1156
+ """
1157
+ The hostname of the service.
1158
+ """
1159
+ return pulumi.get(self, "service_host")
1160
+
1161
+ @property
1162
+ @pulumi.getter(name="serviceIntegrations")
1163
+ def service_integrations(self) -> pulumi.Output[Sequence['outputs.DragonflyServiceIntegration']]:
1164
+ """
1165
+ Service integrations to specify when creating a service. Not applied after initial service creation
1166
+ """
1167
+ return pulumi.get(self, "service_integrations")
1168
+
1169
+ @property
1170
+ @pulumi.getter(name="serviceName")
1171
+ def service_name(self) -> pulumi.Output[str]:
1172
+ """
1173
+ Specifies the actual name of the service. The name cannot be changed later without destroying and re-creating the service so name should be picked based on intended service usage rather than current attributes.
1174
+ """
1175
+ return pulumi.get(self, "service_name")
1176
+
1177
+ @property
1178
+ @pulumi.getter(name="servicePassword")
1179
+ def service_password(self) -> pulumi.Output[str]:
1180
+ """
1181
+ Password used for connecting to the service, if applicable
1182
+ """
1183
+ return pulumi.get(self, "service_password")
1184
+
1185
+ @property
1186
+ @pulumi.getter(name="servicePort")
1187
+ def service_port(self) -> pulumi.Output[int]:
1188
+ """
1189
+ The port of the service
1190
+ """
1191
+ return pulumi.get(self, "service_port")
1192
+
1193
+ @property
1194
+ @pulumi.getter(name="serviceType")
1195
+ def service_type(self) -> pulumi.Output[str]:
1196
+ """
1197
+ Aiven internal service type code
1198
+ """
1199
+ return pulumi.get(self, "service_type")
1200
+
1201
+ @property
1202
+ @pulumi.getter(name="serviceUri")
1203
+ def service_uri(self) -> pulumi.Output[str]:
1204
+ """
1205
+ URI for connecting to the service. Service specific info is under "kafka", "pg", etc.
1206
+ """
1207
+ return pulumi.get(self, "service_uri")
1208
+
1209
+ @property
1210
+ @pulumi.getter(name="serviceUsername")
1211
+ def service_username(self) -> pulumi.Output[str]:
1212
+ """
1213
+ Username used for connecting to the service, if applicable
1214
+ """
1215
+ return pulumi.get(self, "service_username")
1216
+
1217
+ @property
1218
+ @pulumi.getter
1219
+ def state(self) -> pulumi.Output[str]:
1220
+ """
1221
+ Service state. One of `POWEROFF`, `REBALANCING`, `REBUILDING` or `RUNNING`
1222
+ """
1223
+ return pulumi.get(self, "state")
1224
+
1225
+ @property
1226
+ @pulumi.getter(name="staticIps")
1227
+ def static_ips(self) -> pulumi.Output[Optional[Sequence[str]]]:
1228
+ """
1229
+ Static IPs that are going to be associated with this service. Please assign a value using the 'toset' function. Once a static ip resource is in the 'assigned' state it cannot be unbound from the node again
1230
+ """
1231
+ return pulumi.get(self, "static_ips")
1232
+
1233
+ @property
1234
+ @pulumi.getter
1235
+ def tags(self) -> pulumi.Output[Optional[Sequence['outputs.DragonflyTag']]]:
1236
+ """
1237
+ Tags are key-value pairs that allow you to categorize services.
1238
+ """
1239
+ return pulumi.get(self, "tags")
1240
+
1241
+ @property
1242
+ @pulumi.getter(name="techEmails")
1243
+ def tech_emails(self) -> pulumi.Output[Optional[Sequence['outputs.DragonflyTechEmail']]]:
1244
+ """
1245
+ The email addresses for [service contacts](https://aiven.io/docs/platform/howto/technical-emails), who will receive important alerts and updates about this service. You can also set email contacts at the project level.
1246
+ """
1247
+ return pulumi.get(self, "tech_emails")
1248
+
1249
+ @property
1250
+ @pulumi.getter(name="terminationProtection")
1251
+ def termination_protection(self) -> pulumi.Output[Optional[bool]]:
1252
+ """
1253
+ Prevents the service from being deleted. It is recommended to set this to `true` for all production services to prevent unintentional service deletion. This does not shield against deleting databases or topics but for services with backups much of the content can at least be restored from backup in case accidental deletion is done.
1254
+ """
1255
+ return pulumi.get(self, "termination_protection")
1256
+