generated from crossplane/upjet-provider-template
/
zz_replicationgroup_types.go
executable file
·404 lines (300 loc) · 25.7 KB
/
zz_replicationgroup_types.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
/*
Copyright 2022 Upbound Inc.
*/
// Code generated by upjet. DO NOT EDIT.
package v1alpha1
import (
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime/schema"
v1 "github.com/crossplane/crossplane-runtime/apis/common/v1"
)
type ReplicationGroupLogDeliveryConfigurationObservation struct {
// Name of either the CloudWatch Logs LogGroup or Kinesis Data Firehose resource.
Destination *string `json:"destination,omitempty" tf:"destination,omitempty"`
// For CloudWatch Logs use cloudwatch-logs or for Kinesis Data Firehose use kinesis-firehose.
DestinationType *string `json:"destinationType,omitempty" tf:"destination_type,omitempty"`
// Valid values are json or text
LogFormat *string `json:"logFormat,omitempty" tf:"log_format,omitempty"`
// Valid values are slow-log or engine-log. Max 1 of each.
LogType *string `json:"logType,omitempty" tf:"log_type,omitempty"`
}
type ReplicationGroupLogDeliveryConfigurationParameters struct {
// Name of either the CloudWatch Logs LogGroup or Kinesis Data Firehose resource.
// +kubebuilder:validation:Required
Destination *string `json:"destination" tf:"destination,omitempty"`
// For CloudWatch Logs use cloudwatch-logs or for Kinesis Data Firehose use kinesis-firehose.
// +kubebuilder:validation:Required
DestinationType *string `json:"destinationType" tf:"destination_type,omitempty"`
// Valid values are json or text
// +kubebuilder:validation:Required
LogFormat *string `json:"logFormat" tf:"log_format,omitempty"`
// Valid values are slow-log or engine-log. Max 1 of each.
// +kubebuilder:validation:Required
LogType *string `json:"logType" tf:"log_type,omitempty"`
}
type ReplicationGroupObservation struct {
// Specifies whether any modifications are applied immediately, or during the next maintenance window. Default is false.
ApplyImmediately *bool `json:"applyImmediately,omitempty" tf:"apply_immediately,omitempty"`
// ARN of the created ElastiCache Replication Group.
Arn *string `json:"arn,omitempty" tf:"arn,omitempty"`
// Whether to enable encryption at rest.
AtRestEncryptionEnabled *bool `json:"atRestEncryptionEnabled,omitempty" tf:"at_rest_encryption_enabled,omitempty"`
// Specifies whether minor version engine upgrades will be applied automatically to the underlying Cache Cluster instances during the maintenance window.
// Only supported for engine type "redis" and if the engine version is 6 or higher.
// Defaults to true.
AutoMinorVersionUpgrade *string `json:"autoMinorVersionUpgrade,omitempty" tf:"auto_minor_version_upgrade,omitempty"`
// Specifies whether a read-only replica will be automatically promoted to read/write primary if the existing primary fails. If enabled, num_cache_clusters must be greater than 1. Must be enabled for Redis (cluster mode enabled) replication groups. Defaults to false.
AutomaticFailoverEnabled *bool `json:"automaticFailoverEnabled,omitempty" tf:"automatic_failover_enabled,omitempty"`
// Indicates if cluster mode is enabled.
ClusterEnabled *bool `json:"clusterEnabled,omitempty" tf:"cluster_enabled,omitempty"`
// Address of the replication group configuration endpoint when cluster mode is enabled.
ConfigurationEndpointAddress *string `json:"configurationEndpointAddress,omitempty" tf:"configuration_endpoint_address,omitempty"`
// Enables data tiering. Data tiering is only supported for replication groups using the r6gd node type. This parameter must be set to true when using r6gd nodes.
DataTieringEnabled *bool `json:"dataTieringEnabled,omitempty" tf:"data_tiering_enabled,omitempty"`
// created description for the replication group. Must not be empty.
Description *string `json:"description,omitempty" tf:"description,omitempty"`
// Name of the cache engine to be used for the clusters in this replication group. The only valid value is redis.
Engine *string `json:"engine,omitempty" tf:"engine,omitempty"`
// Version number of the cache engine to be used for the cache clusters in this replication group.
// If the version is 6 or higher, the major and minor version can be set, e.g., 6.2,
// or the minor version can be unspecified which will use the latest version at creation time, e.g., 6.x.
// Otherwise, specify the full version desired, e.g., 5.0.6.
// The actual engine version used is returned in the attribute engine_version_actual, see Attributes Reference below.
EngineVersion *string `json:"engineVersion,omitempty" tf:"engine_version,omitempty"`
// Because ElastiCache pulls the latest minor or patch for a version, this attribute returns the running version of the cache engine.
EngineVersionActual *string `json:"engineVersionActual,omitempty" tf:"engine_version_actual,omitempty"`
// The name of your final node group (shard) snapshot. ElastiCache creates the snapshot from the primary node in the cluster. If omitted, no final snapshot will be made.
FinalSnapshotIdentifier *string `json:"finalSnapshotIdentifier,omitempty" tf:"final_snapshot_identifier,omitempty"`
// The ID of the global replication group to which this replication group should belong. If this parameter is specified, the replication group is added to the specified global replication group as a secondary replication group; otherwise, the replication group is not part of any global replication group. If global_replication_group_id is set, the num_node_groups parameter cannot be set.
GlobalReplicationGroupID *string `json:"globalReplicationGroupId,omitempty" tf:"global_replication_group_id,omitempty"`
// ID of the ElastiCache Replication Group.
ID *string `json:"id,omitempty" tf:"id,omitempty"`
// The ARN of the key that you wish to use if encrypting at rest. If not supplied, uses service managed encryption. Can be specified only if at_rest_encryption_enabled = true.
KMSKeyID *string `json:"kmsKeyId,omitempty" tf:"kms_key_id,omitempty"`
// Specifies the destination and format of Redis SLOWLOG or Redis Engine Log. See the documentation on Amazon ElastiCache. See Log Delivery Configuration below for more details.
LogDeliveryConfiguration []ReplicationGroupLogDeliveryConfigurationObservation `json:"logDeliveryConfiguration,omitempty" tf:"log_delivery_configuration,omitempty"`
// ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period. Example: sun:05:00-sun:09:00
MaintenanceWindow *string `json:"maintenanceWindow,omitempty" tf:"maintenance_window,omitempty"`
// Identifiers of all the nodes that are part of this replication group.
MemberClusters []*string `json:"memberClusters,omitempty" tf:"member_clusters,omitempty"`
// Specifies whether to enable Multi-AZ Support for the replication group. If true, automatic_failover_enabled must also be enabled. Defaults to false.
MultiAzEnabled *bool `json:"multiAzEnabled,omitempty" tf:"multi_az_enabled,omitempty"`
// Instance class to be used. See AWS documentation for information on supported node types and guidance on selecting node types. Required unless global_replication_group_id is set. Cannot be set if global_replication_group_id is set.
NodeType *string `json:"nodeType,omitempty" tf:"node_type,omitempty"`
// east-1:012345678999:my_sns_topic
NotificationTopicArn *string `json:"notificationTopicArn,omitempty" tf:"notification_topic_arn,omitempty"`
// 00#.
NumCacheClusters *float64 `json:"numCacheClusters,omitempty" tf:"num_cache_clusters,omitempty"`
// Number of node groups (shards) for this Redis replication group.
// Changing this number will trigger a resizing operation before other settings modifications.
NumNodeGroups *float64 `json:"numNodeGroups,omitempty" tf:"num_node_groups,omitempty"`
// Name of the parameter group to associate with this replication group. If this argument is omitted, the default cache parameter group for the specified engine is used. To enable "cluster mode", i.e., data sharding, use a parameter group that has the parameter cluster-enabled set to true.
ParameterGroupName *string `json:"parameterGroupName,omitempty" tf:"parameter_group_name,omitempty"`
// – Port number on which each of the cache nodes will accept connections. For Memcache the default is 11211, and for Redis the default port is 6379.
Port *float64 `json:"port,omitempty" tf:"port,omitempty"`
// List of EC2 availability zones in which the replication group's cache clusters will be created. The order of the availability zones in the list is considered. The first item in the list will be the primary node. Ignored when updating.
PreferredCacheClusterAzs []*string `json:"preferredCacheClusterAzs,omitempty" tf:"preferred_cache_cluster_azs,omitempty"`
// (Redis only) Address of the endpoint for the primary node in the replication group, if the cluster mode is disabled.
PrimaryEndpointAddress *string `json:"primaryEndpointAddress,omitempty" tf:"primary_endpoint_address,omitempty"`
// (Redis only) Address of the endpoint for the reader node in the replication group, if the cluster mode is disabled.
ReaderEndpointAddress *string `json:"readerEndpointAddress,omitempty" tf:"reader_endpoint_address,omitempty"`
// Number of replica nodes in each node group.
// Changing this number will trigger a resizing operation before other settings modifications.
// Valid values are 0 to 5.
ReplicasPerNodeGroup *float64 `json:"replicasPerNodeGroup,omitempty" tf:"replicas_per_node_group,omitempty"`
// One or more Amazon VPC security groups associated with this replication group. Use this parameter only when you are creating a replication group in an Amazon Virtual Private Cloud
SecurityGroupIds []*string `json:"securityGroupIds,omitempty" tf:"security_group_ids,omitempty"`
// List of cache security group names to associate with this replication group.
SecurityGroupNames []*string `json:"securityGroupNames,omitempty" tf:"security_group_names,omitempty"`
// – List of ARNs that identify Redis RDB snapshot files stored in Amazon S3. The names object names cannot contain any commas.
SnapshotArns []*string `json:"snapshotArns,omitempty" tf:"snapshot_arns,omitempty"`
// Name of a snapshot from which to restore data into the new node group. Changing the snapshot_name forces a new resource.
SnapshotName *string `json:"snapshotName,omitempty" tf:"snapshot_name,omitempty"`
// Number of days for which ElastiCache will retain automatic cache cluster snapshots before deleting them. For example, if you set SnapshotRetentionLimit to 5, then a snapshot that was taken today will be retained for 5 days before being deleted. If the value of snapshot_retention_limit is set to zero (0), backups are turned off. Please note that setting a snapshot_retention_limit is not supported on cache.t1.micro cache nodes
SnapshotRetentionLimit *float64 `json:"snapshotRetentionLimit,omitempty" tf:"snapshot_retention_limit,omitempty"`
// Daily time range (in UTC) during which ElastiCache will begin taking a daily snapshot of your cache cluster. The minimum snapshot window is a 60 minute period. Example: 05:00-09:00
SnapshotWindow *string `json:"snapshotWindow,omitempty" tf:"snapshot_window,omitempty"`
// Name of the cache subnet group to be used for the replication group.
SubnetGroupName *string `json:"subnetGroupName,omitempty" tf:"subnet_group_name,omitempty"`
// Map of tags to assign to the resource. Adding tags to this resource will add or overwrite any existing tags on the clusters in the replication group and not to the group itself. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"`
// Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.
TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"`
// Whether to enable encryption in transit.
TransitEncryptionEnabled *bool `json:"transitEncryptionEnabled,omitempty" tf:"transit_encryption_enabled,omitempty"`
// User Group ID to associate with the replication group. Only a maximum of one (1) user group ID is valid. NOTE: This argument is a set because the AWS specification allows for multiple IDs. However, in practice, AWS only allows a maximum size of one.
UserGroupIds []*string `json:"userGroupIds,omitempty" tf:"user_group_ids,omitempty"`
}
type ReplicationGroupParameters struct {
// Specifies whether any modifications are applied immediately, or during the next maintenance window. Default is false.
// +kubebuilder:validation:Optional
ApplyImmediately *bool `json:"applyImmediately,omitempty" tf:"apply_immediately,omitempty"`
// Whether to enable encryption at rest.
// +kubebuilder:validation:Optional
AtRestEncryptionEnabled *bool `json:"atRestEncryptionEnabled,omitempty" tf:"at_rest_encryption_enabled,omitempty"`
// Password used to access a password protected server. Can be specified only if transit_encryption_enabled = true.
// +kubebuilder:validation:Optional
AuthTokenSecretRef *v1.SecretKeySelector `json:"authTokenSecretRef,omitempty" tf:"-"`
// Specifies whether minor version engine upgrades will be applied automatically to the underlying Cache Cluster instances during the maintenance window.
// Only supported for engine type "redis" and if the engine version is 6 or higher.
// Defaults to true.
// +kubebuilder:validation:Optional
AutoMinorVersionUpgrade *string `json:"autoMinorVersionUpgrade,omitempty" tf:"auto_minor_version_upgrade,omitempty"`
// Specifies whether a read-only replica will be automatically promoted to read/write primary if the existing primary fails. If enabled, num_cache_clusters must be greater than 1. Must be enabled for Redis (cluster mode enabled) replication groups. Defaults to false.
// +kubebuilder:validation:Optional
AutomaticFailoverEnabled *bool `json:"automaticFailoverEnabled,omitempty" tf:"automatic_failover_enabled,omitempty"`
// Enables data tiering. Data tiering is only supported for replication groups using the r6gd node type. This parameter must be set to true when using r6gd nodes.
// +kubebuilder:validation:Optional
DataTieringEnabled *bool `json:"dataTieringEnabled,omitempty" tf:"data_tiering_enabled,omitempty"`
// created description for the replication group. Must not be empty.
// +kubebuilder:validation:Optional
Description *string `json:"description,omitempty" tf:"description,omitempty"`
// Name of the cache engine to be used for the clusters in this replication group. The only valid value is redis.
// +kubebuilder:validation:Optional
Engine *string `json:"engine,omitempty" tf:"engine,omitempty"`
// Version number of the cache engine to be used for the cache clusters in this replication group.
// If the version is 6 or higher, the major and minor version can be set, e.g., 6.2,
// or the minor version can be unspecified which will use the latest version at creation time, e.g., 6.x.
// Otherwise, specify the full version desired, e.g., 5.0.6.
// The actual engine version used is returned in the attribute engine_version_actual, see Attributes Reference below.
// +kubebuilder:validation:Optional
EngineVersion *string `json:"engineVersion,omitempty" tf:"engine_version,omitempty"`
// The name of your final node group (shard) snapshot. ElastiCache creates the snapshot from the primary node in the cluster. If omitted, no final snapshot will be made.
// +kubebuilder:validation:Optional
FinalSnapshotIdentifier *string `json:"finalSnapshotIdentifier,omitempty" tf:"final_snapshot_identifier,omitempty"`
// The ID of the global replication group to which this replication group should belong. If this parameter is specified, the replication group is added to the specified global replication group as a secondary replication group; otherwise, the replication group is not part of any global replication group. If global_replication_group_id is set, the num_node_groups parameter cannot be set.
// +kubebuilder:validation:Optional
GlobalReplicationGroupID *string `json:"globalReplicationGroupId,omitempty" tf:"global_replication_group_id,omitempty"`
// The ARN of the key that you wish to use if encrypting at rest. If not supplied, uses service managed encryption. Can be specified only if at_rest_encryption_enabled = true.
// +crossplane:generate:reference:type=github.com/upbound/provider-aws/apis/kms/v1beta1.Key
// +kubebuilder:validation:Optional
KMSKeyID *string `json:"kmsKeyId,omitempty" tf:"kms_key_id,omitempty"`
// Reference to a Key in kms to populate kmsKeyId.
// +kubebuilder:validation:Optional
KMSKeyIDRef *v1.Reference `json:"kmsKeyIdRef,omitempty" tf:"-"`
// Selector for a Key in kms to populate kmsKeyId.
// +kubebuilder:validation:Optional
KMSKeyIDSelector *v1.Selector `json:"kmsKeyIdSelector,omitempty" tf:"-"`
// Specifies the destination and format of Redis SLOWLOG or Redis Engine Log. See the documentation on Amazon ElastiCache. See Log Delivery Configuration below for more details.
// +kubebuilder:validation:Optional
LogDeliveryConfiguration []ReplicationGroupLogDeliveryConfigurationParameters `json:"logDeliveryConfiguration,omitempty" tf:"log_delivery_configuration,omitempty"`
// ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period. Example: sun:05:00-sun:09:00
// +kubebuilder:validation:Optional
MaintenanceWindow *string `json:"maintenanceWindow,omitempty" tf:"maintenance_window,omitempty"`
// Specifies whether to enable Multi-AZ Support for the replication group. If true, automatic_failover_enabled must also be enabled. Defaults to false.
// +kubebuilder:validation:Optional
MultiAzEnabled *bool `json:"multiAzEnabled,omitempty" tf:"multi_az_enabled,omitempty"`
// Instance class to be used. See AWS documentation for information on supported node types and guidance on selecting node types. Required unless global_replication_group_id is set. Cannot be set if global_replication_group_id is set.
// +kubebuilder:validation:Optional
NodeType *string `json:"nodeType,omitempty" tf:"node_type,omitempty"`
// east-1:012345678999:my_sns_topic
// +kubebuilder:validation:Optional
NotificationTopicArn *string `json:"notificationTopicArn,omitempty" tf:"notification_topic_arn,omitempty"`
// 00#.
// +kubebuilder:validation:Optional
NumCacheClusters *float64 `json:"numCacheClusters,omitempty" tf:"num_cache_clusters,omitempty"`
// Number of node groups (shards) for this Redis replication group.
// Changing this number will trigger a resizing operation before other settings modifications.
// +kubebuilder:validation:Optional
NumNodeGroups *float64 `json:"numNodeGroups,omitempty" tf:"num_node_groups,omitempty"`
// Name of the parameter group to associate with this replication group. If this argument is omitted, the default cache parameter group for the specified engine is used. To enable "cluster mode", i.e., data sharding, use a parameter group that has the parameter cluster-enabled set to true.
// +kubebuilder:validation:Optional
ParameterGroupName *string `json:"parameterGroupName,omitempty" tf:"parameter_group_name,omitempty"`
// – Port number on which each of the cache nodes will accept connections. For Memcache the default is 11211, and for Redis the default port is 6379.
// +kubebuilder:validation:Optional
Port *float64 `json:"port,omitempty" tf:"port,omitempty"`
// List of EC2 availability zones in which the replication group's cache clusters will be created. The order of the availability zones in the list is considered. The first item in the list will be the primary node. Ignored when updating.
// +kubebuilder:validation:Optional
PreferredCacheClusterAzs []*string `json:"preferredCacheClusterAzs,omitempty" tf:"preferred_cache_cluster_azs,omitempty"`
// Region is the region you'd like your resource to be created in.
// +upjet:crd:field:TFTag=-
// +kubebuilder:validation:Optional
Region *string `json:"region,omitempty" tf:"-"`
// Number of replica nodes in each node group.
// Changing this number will trigger a resizing operation before other settings modifications.
// Valid values are 0 to 5.
// +kubebuilder:validation:Optional
ReplicasPerNodeGroup *float64 `json:"replicasPerNodeGroup,omitempty" tf:"replicas_per_node_group,omitempty"`
// One or more Amazon VPC security groups associated with this replication group. Use this parameter only when you are creating a replication group in an Amazon Virtual Private Cloud
// +kubebuilder:validation:Optional
SecurityGroupIds []*string `json:"securityGroupIds,omitempty" tf:"security_group_ids,omitempty"`
// List of cache security group names to associate with this replication group.
// +kubebuilder:validation:Optional
SecurityGroupNames []*string `json:"securityGroupNames,omitempty" tf:"security_group_names,omitempty"`
// – List of ARNs that identify Redis RDB snapshot files stored in Amazon S3. The names object names cannot contain any commas.
// +kubebuilder:validation:Optional
SnapshotArns []*string `json:"snapshotArns,omitempty" tf:"snapshot_arns,omitempty"`
// Name of a snapshot from which to restore data into the new node group. Changing the snapshot_name forces a new resource.
// +kubebuilder:validation:Optional
SnapshotName *string `json:"snapshotName,omitempty" tf:"snapshot_name,omitempty"`
// Number of days for which ElastiCache will retain automatic cache cluster snapshots before deleting them. For example, if you set SnapshotRetentionLimit to 5, then a snapshot that was taken today will be retained for 5 days before being deleted. If the value of snapshot_retention_limit is set to zero (0), backups are turned off. Please note that setting a snapshot_retention_limit is not supported on cache.t1.micro cache nodes
// +kubebuilder:validation:Optional
SnapshotRetentionLimit *float64 `json:"snapshotRetentionLimit,omitempty" tf:"snapshot_retention_limit,omitempty"`
// Daily time range (in UTC) during which ElastiCache will begin taking a daily snapshot of your cache cluster. The minimum snapshot window is a 60 minute period. Example: 05:00-09:00
// +kubebuilder:validation:Optional
SnapshotWindow *string `json:"snapshotWindow,omitempty" tf:"snapshot_window,omitempty"`
// Name of the cache subnet group to be used for the replication group.
// +crossplane:generate:reference:type=SubnetGroup
// +kubebuilder:validation:Optional
SubnetGroupName *string `json:"subnetGroupName,omitempty" tf:"subnet_group_name,omitempty"`
// Reference to a SubnetGroup to populate subnetGroupName.
// +kubebuilder:validation:Optional
SubnetGroupNameRef *v1.Reference `json:"subnetGroupNameRef,omitempty" tf:"-"`
// Selector for a SubnetGroup to populate subnetGroupName.
// +kubebuilder:validation:Optional
SubnetGroupNameSelector *v1.Selector `json:"subnetGroupNameSelector,omitempty" tf:"-"`
// Map of tags to assign to the resource. Adding tags to this resource will add or overwrite any existing tags on the clusters in the replication group and not to the group itself. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
// +kubebuilder:validation:Optional
Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"`
// Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.
// +kubebuilder:validation:Optional
TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"`
// Whether to enable encryption in transit.
// +kubebuilder:validation:Optional
TransitEncryptionEnabled *bool `json:"transitEncryptionEnabled,omitempty" tf:"transit_encryption_enabled,omitempty"`
// User Group ID to associate with the replication group. Only a maximum of one (1) user group ID is valid. NOTE: This argument is a set because the AWS specification allows for multiple IDs. However, in practice, AWS only allows a maximum size of one.
// +kubebuilder:validation:Optional
UserGroupIds []*string `json:"userGroupIds,omitempty" tf:"user_group_ids,omitempty"`
}
// ReplicationGroupSpec defines the desired state of ReplicationGroup
type ReplicationGroupSpec struct {
v1.ResourceSpec `json:",inline"`
ForProvider ReplicationGroupParameters `json:"forProvider"`
}
// ReplicationGroupStatus defines the observed state of ReplicationGroup.
type ReplicationGroupStatus struct {
v1.ResourceStatus `json:",inline"`
AtProvider ReplicationGroupObservation `json:"atProvider,omitempty"`
}
// +kubebuilder:object:root=true
// ReplicationGroup is the Schema for the ReplicationGroups API. Provides an ElastiCache Replication Group resource.
// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status"
// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].status"
// +kubebuilder:printcolumn:name="EXTERNAL-NAME",type="string",JSONPath=".metadata.annotations.crossplane\\.io/external-name"
// +kubebuilder:printcolumn:name="AGE",type="date",JSONPath=".metadata.creationTimestamp"
// +kubebuilder:subresource:status
// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,aws}
type ReplicationGroup struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
// +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'ObserveOnly' || has(self.forProvider.region)",message="region is a required parameter"
Spec ReplicationGroupSpec `json:"spec"`
Status ReplicationGroupStatus `json:"status,omitempty"`
}
// +kubebuilder:object:root=true
// ReplicationGroupList contains a list of ReplicationGroups
type ReplicationGroupList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []ReplicationGroup `json:"items"`
}
// Repository type metadata.
var (
ReplicationGroup_Kind = "ReplicationGroup"
ReplicationGroup_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: ReplicationGroup_Kind}.String()
ReplicationGroup_KindAPIVersion = ReplicationGroup_Kind + "." + CRDGroupVersion.String()
ReplicationGroup_GroupVersionKind = CRDGroupVersion.WithKind(ReplicationGroup_Kind)
)
func init() {
SchemeBuilder.Register(&ReplicationGroup{}, &ReplicationGroupList{})
}