1// Code generated by smithy-go-codegen DO NOT EDIT.
2
3package types
4
5import (
6	"time"
7)
8
9// Specifies the EBS volume upgrade information. The broker identifier must be set
10// to the keyword ALL. This means the changes apply to all the brokers in the
11// cluster.
12type BrokerEBSVolumeInfo struct {
13
14	// The ID of the broker to update.
15	//
16	// This member is required.
17	KafkaBrokerNodeId *string
18
19	// Size of the EBS volume to update.
20	//
21	// This member is required.
22	VolumeSizeGB int32
23}
24
25type BrokerLogs struct {
26	CloudWatchLogs *CloudWatchLogs
27
28	Firehose *Firehose
29
30	S3 *S3
31}
32
33// Describes the setup to be used for Kafka broker nodes in the cluster.
34type BrokerNodeGroupInfo struct {
35
36	// The list of subnets to connect to in the client virtual private cloud (VPC). AWS
37	// creates elastic network interfaces inside these subnets. Client applications use
38	// elastic network interfaces to produce and consume data. Client subnets can't be
39	// in Availability Zone us-east-1e.
40	//
41	// This member is required.
42	ClientSubnets []string
43
44	// The type of Amazon EC2 instances to use for Kafka brokers. The following
45	// instance types are allowed: kafka.m5.large, kafka.m5.xlarge, kafka.m5.2xlarge,
46	// kafka.m5.4xlarge, kafka.m5.12xlarge, and kafka.m5.24xlarge.
47	//
48	// This member is required.
49	InstanceType *string
50
51	// The distribution of broker nodes across Availability Zones. This is an optional
52	// parameter. If you don't specify it, Amazon MSK gives it the value DEFAULT. You
53	// can also explicitly set this parameter to the value DEFAULT. No other values are
54	// currently allowed. Amazon MSK distributes the broker nodes evenly across the
55	// Availability Zones that correspond to the subnets you provide when you create
56	// the cluster.
57	BrokerAZDistribution BrokerAZDistribution
58
59	// The AWS security groups to associate with the elastic network interfaces in
60	// order to specify who can connect to and communicate with the Amazon MSK cluster.
61	// If you don't specify a security group, Amazon MSK uses the default security
62	// group associated with the VPC.
63	SecurityGroups []string
64
65	// Contains information about storage volumes attached to MSK broker nodes.
66	StorageInfo *StorageInfo
67}
68
69// BrokerNodeInfo
70type BrokerNodeInfo struct {
71
72	// The attached elastic network interface of the broker.
73	AttachedENIId *string
74
75	// The ID of the broker.
76	BrokerId float64
77
78	// The client subnet to which this broker node belongs.
79	ClientSubnet *string
80
81	// The virtual private cloud (VPC) of the client.
82	ClientVpcIpAddress *string
83
84	// Information about the version of software currently deployed on the Kafka
85	// brokers in the cluster.
86	CurrentBrokerSoftwareInfo *BrokerSoftwareInfo
87
88	// Endpoints for accessing the broker.
89	Endpoints []string
90}
91
92// Information about the current software installed on the cluster.
93type BrokerSoftwareInfo struct {
94
95	// The Amazon Resource Name (ARN) of the configuration used for the cluster. This
96	// field isn't visible in this preview release.
97	ConfigurationArn *string
98
99	// The revision of the configuration to use. This field isn't visible in this
100	// preview release.
101	ConfigurationRevision int64
102
103	// The version of Apache Kafka.
104	KafkaVersion *string
105}
106
107// Includes all client authentication information.
108type ClientAuthentication struct {
109
110	// Details for ClientAuthentication using SASL.
111	Sasl *Sasl
112
113	// Details for ClientAuthentication using TLS.
114	Tls *Tls
115}
116
117type CloudWatchLogs struct {
118
119	// This member is required.
120	Enabled bool
121
122	LogGroup *string
123}
124
125// Returns information about a cluster.
126type ClusterInfo struct {
127
128	// Arn of active cluster operation.
129	ActiveOperationArn *string
130
131	// Information about the broker nodes.
132	BrokerNodeGroupInfo *BrokerNodeGroupInfo
133
134	// Includes all client authentication information.
135	ClientAuthentication *ClientAuthentication
136
137	// The Amazon Resource Name (ARN) that uniquely identifies the cluster.
138	ClusterArn *string
139
140	// The name of the cluster.
141	ClusterName *string
142
143	// The time when the cluster was created.
144	CreationTime *time.Time
145
146	// Information about the version of software currently deployed on the Kafka
147	// brokers in the cluster.
148	CurrentBrokerSoftwareInfo *BrokerSoftwareInfo
149
150	// The current version of the MSK cluster.
151	CurrentVersion *string
152
153	// Includes all encryption-related information.
154	EncryptionInfo *EncryptionInfo
155
156	// Specifies which metrics are gathered for the MSK cluster. This property has the
157	// following possible values: DEFAULT, PER_BROKER, PER_TOPIC_PER_BROKER, and
158	// PER_TOPIC_PER_PARTITION. For a list of the metrics associated with each of these
159	// levels of monitoring, see Monitoring
160	// (https://docs.aws.amazon.com/msk/latest/developerguide/monitoring.html).
161	EnhancedMonitoring EnhancedMonitoring
162
163	LoggingInfo *LoggingInfo
164
165	// The number of broker nodes in the cluster.
166	NumberOfBrokerNodes int32
167
168	// Settings for open monitoring using Prometheus.
169	OpenMonitoring *OpenMonitoring
170
171	// The state of the cluster. The possible states are ACTIVE, CREATING, DELETING,
172	// FAILED, HEALING, MAINTENANCE, REBOOTING_BROKER, and UPDATING.
173	State ClusterState
174
175	StateInfo *StateInfo
176
177	// Tags attached to the cluster.
178	Tags map[string]string
179
180	// The connection string to use to connect to the Apache ZooKeeper cluster.
181	ZookeeperConnectString *string
182
183	// The connection string to use to connect to zookeeper cluster on Tls port.
184	ZookeeperConnectStringTls *string
185}
186
187// Returns information about a cluster operation.
188type ClusterOperationInfo struct {
189
190	// The ID of the API request that triggered this operation.
191	ClientRequestId *string
192
193	// ARN of the cluster.
194	ClusterArn *string
195
196	// The time that the operation was created.
197	CreationTime *time.Time
198
199	// The time at which the operation finished.
200	EndTime *time.Time
201
202	// Describes the error if the operation fails.
203	ErrorInfo *ErrorInfo
204
205	// ARN of the cluster operation.
206	OperationArn *string
207
208	// State of the cluster operation.
209	OperationState *string
210
211	// Steps completed during the operation.
212	OperationSteps []ClusterOperationStep
213
214	// Type of the cluster operation.
215	OperationType *string
216
217	// Information about cluster attributes before a cluster is updated.
218	SourceClusterInfo *MutableClusterInfo
219
220	// Information about cluster attributes after a cluster is updated.
221	TargetClusterInfo *MutableClusterInfo
222}
223
224// Step taken during a cluster operation.
225type ClusterOperationStep struct {
226
227	// Information about the step and its status.
228	StepInfo *ClusterOperationStepInfo
229
230	// The name of the step.
231	StepName *string
232}
233
234// State information about the operation step.
235type ClusterOperationStepInfo struct {
236
237	// The steps current status.
238	StepStatus *string
239}
240
241// Contains source Kafka versions and compatible target Kafka versions.
242type CompatibleKafkaVersion struct {
243
244	// A Kafka version.
245	SourceVersion *string
246
247	// A list of Kafka versions.
248	TargetVersions []string
249}
250
251// Represents an MSK Configuration.
252type Configuration struct {
253
254	// The Amazon Resource Name (ARN) of the configuration.
255	//
256	// This member is required.
257	Arn *string
258
259	// The time when the configuration was created.
260	//
261	// This member is required.
262	CreationTime *time.Time
263
264	// The description of the configuration.
265	//
266	// This member is required.
267	Description *string
268
269	// An array of the versions of Apache Kafka with which you can use this MSK
270	// configuration. You can use this configuration for an MSK cluster only if the
271	// Apache Kafka version specified for the cluster appears in this array.
272	//
273	// This member is required.
274	KafkaVersions []string
275
276	// Latest revision of the configuration.
277	//
278	// This member is required.
279	LatestRevision *ConfigurationRevision
280
281	// The name of the configuration.
282	//
283	// This member is required.
284	Name *string
285
286	// The state of the configuration. The possible states are ACTIVE, DELETING, and
287	// DELETE_FAILED.
288	//
289	// This member is required.
290	State ConfigurationState
291}
292
293// Specifies the configuration to use for the brokers.
294type ConfigurationInfo struct {
295
296	// ARN of the configuration to use.
297	//
298	// This member is required.
299	Arn *string
300
301	// The revision of the configuration to use.
302	//
303	// This member is required.
304	Revision int64
305}
306
307// Describes a configuration revision.
308type ConfigurationRevision struct {
309
310	// The time when the configuration revision was created.
311	//
312	// This member is required.
313	CreationTime *time.Time
314
315	// The revision number.
316	//
317	// This member is required.
318	Revision int64
319
320	// The description of the configuration revision.
321	Description *string
322}
323
324// Contains information about the EBS storage volumes attached to Kafka broker
325// nodes.
326type EBSStorageInfo struct {
327
328	// The size in GiB of the EBS volume for the data drive on each broker node.
329	VolumeSize int32
330}
331
332// The data-volume encryption details.
333type EncryptionAtRest struct {
334
335	// The ARN of the AWS KMS key for encrypting data at rest. If you don't specify a
336	// KMS key, MSK creates one for you and uses it.
337	//
338	// This member is required.
339	DataVolumeKMSKeyId *string
340}
341
342// Includes encryption-related information, such as the AWS KMS key used for
343// encrypting data at rest and whether you want MSK to encrypt your data in
344// transit.
345type EncryptionInfo struct {
346
347	// The data-volume encryption details.
348	EncryptionAtRest *EncryptionAtRest
349
350	// The details for encryption in transit.
351	EncryptionInTransit *EncryptionInTransit
352}
353
354// The settings for encrypting data in transit.
355type EncryptionInTransit struct {
356
357	// Indicates the encryption setting for data in transit between clients and
358	// brokers. The following are the possible values. TLS means that client-broker
359	// communication is enabled with TLS only. TLS_PLAINTEXT means that client-broker
360	// communication is enabled for both TLS-encrypted, as well as plaintext data.
361	// PLAINTEXT means that client-broker communication is enabled in plaintext only.
362	// The default value is TLS_PLAINTEXT.
363	ClientBroker ClientBroker
364
365	// When set to true, it indicates that data communication among the broker nodes of
366	// the cluster is encrypted. When set to false, the communication happens in
367	// plaintext. The default value is true.
368	InCluster bool
369}
370
371// Returns information about an error state of the cluster.
372type ErrorInfo struct {
373
374	// A number describing the error programmatically.
375	ErrorCode *string
376
377	// An optional field to provide more details about the error.
378	ErrorString *string
379}
380
381type Firehose struct {
382
383	// This member is required.
384	Enabled bool
385
386	DeliveryStream *string
387}
388
389// Indicates whether you want to enable or disable the JMX Exporter.
390type JmxExporter struct {
391
392	// Indicates whether you want to enable or disable the JMX Exporter.
393	//
394	// This member is required.
395	EnabledInBroker bool
396}
397
398// Indicates whether you want to enable or disable the JMX Exporter.
399type JmxExporterInfo struct {
400
401	// Indicates whether you want to enable or disable the JMX Exporter.
402	//
403	// This member is required.
404	EnabledInBroker bool
405}
406
407type KafkaVersion struct {
408	Status KafkaVersionStatus
409
410	Version *string
411}
412
413type LoggingInfo struct {
414
415	// This member is required.
416	BrokerLogs *BrokerLogs
417}
418
419// Information about cluster attributes that can be updated via update APIs.
420type MutableClusterInfo struct {
421
422	// Specifies the size of the EBS volume and the ID of the associated broker.
423	BrokerEBSVolumeInfo []BrokerEBSVolumeInfo
424
425	// Information about the changes in the configuration of the brokers.
426	ConfigurationInfo *ConfigurationInfo
427
428	// Specifies which Apache Kafka metrics Amazon MSK gathers and sends to Amazon
429	// CloudWatch for this cluster.
430	EnhancedMonitoring EnhancedMonitoring
431
432	// Information about the Amazon MSK broker type.
433	InstanceType *string
434
435	// The Kafka version.
436	KafkaVersion *string
437
438	LoggingInfo *LoggingInfo
439
440	// The number of broker nodes in the cluster.
441	NumberOfBrokerNodes int32
442
443	// The settings for open monitoring.
444	OpenMonitoring *OpenMonitoring
445}
446
447// Indicates whether you want to enable or disable the Node Exporter.
448type NodeExporter struct {
449
450	// Indicates whether you want to enable or disable the Node Exporter.
451	//
452	// This member is required.
453	EnabledInBroker bool
454}
455
456// Indicates whether you want to enable or disable the Node Exporter.
457type NodeExporterInfo struct {
458
459	// Indicates whether you want to enable or disable the Node Exporter.
460	//
461	// This member is required.
462	EnabledInBroker bool
463}
464
465// The node information object.
466type NodeInfo struct {
467
468	// The start time.
469	AddedToClusterTime *string
470
471	// The broker node info.
472	BrokerNodeInfo *BrokerNodeInfo
473
474	// The instance type.
475	InstanceType *string
476
477	// The Amazon Resource Name (ARN) of the node.
478	NodeARN *string
479
480	// The node type.
481	NodeType NodeType
482
483	// The ZookeeperNodeInfo.
484	ZookeeperNodeInfo *ZookeeperNodeInfo
485}
486
487// JMX and Node monitoring for the MSK cluster.
488type OpenMonitoring struct {
489
490	// Prometheus settings.
491	//
492	// This member is required.
493	Prometheus *Prometheus
494}
495
496// JMX and Node monitoring for the MSK cluster.
497type OpenMonitoringInfo struct {
498
499	// Prometheus settings.
500	//
501	// This member is required.
502	Prometheus *PrometheusInfo
503}
504
505// Prometheus settings.
506type Prometheus struct {
507
508	// Indicates whether you want to enable or disable the JMX Exporter.
509	JmxExporter *JmxExporter
510
511	// Indicates whether you want to enable or disable the Node Exporter.
512	NodeExporter *NodeExporter
513}
514
515// Prometheus settings.
516type PrometheusInfo struct {
517
518	// Indicates whether you want to enable or disable the JMX Exporter.
519	JmxExporter *JmxExporterInfo
520
521	// Indicates whether you want to enable or disable the Node Exporter.
522	NodeExporter *NodeExporterInfo
523}
524
525type S3 struct {
526
527	// This member is required.
528	Enabled bool
529
530	Bucket *string
531
532	Prefix *string
533}
534
535// Details for client authentication using SASL.
536type Sasl struct {
537
538	// Details for SASL/SCRAM client authentication.
539	Scram *Scram
540}
541
542// Details for SASL/SCRAM client authentication.
543type Scram struct {
544
545	// SASL/SCRAM authentication is enabled or not.
546	Enabled bool
547}
548
549type StateInfo struct {
550	Code *string
551
552	Message *string
553}
554
555// Contains information about storage volumes attached to MSK broker nodes.
556type StorageInfo struct {
557
558	// EBS volume information.
559	EbsStorageInfo *EBSStorageInfo
560}
561
562// Details for client authentication using TLS.
563type Tls struct {
564
565	// List of ACM Certificate Authority ARNs.
566	CertificateAuthorityArnList []string
567}
568
569// Error info for scram secret associate/disassociate failure.
570type UnprocessedScramSecret struct {
571
572	// Error code for associate/disassociate failure.
573	ErrorCode *string
574
575	// Error message for associate/disassociate failure.
576	ErrorMessage *string
577
578	// AWS Secrets Manager secret ARN.
579	SecretArn *string
580}
581
582// Zookeeper node information.
583type ZookeeperNodeInfo struct {
584
585	// The attached elastic network interface of the broker.
586	AttachedENIId *string
587
588	// The virtual private cloud (VPC) IP address of the client.
589	ClientVpcIpAddress *string
590
591	// Endpoints for accessing the ZooKeeper.
592	Endpoints []string
593
594	// The role-specific ID for Zookeeper.
595	ZookeeperId float64
596
597	// The version of Zookeeper.
598	ZookeeperVersion *string
599}
600