Managed Streaming for Kafka

2023/07/28 - Managed Streaming for Kafka - 2 new api methods

Changes  Amazon MSK has introduced new versions of ListClusterOperations and DescribeClusterOperation APIs. These v2 APIs provide information and insights into the ongoing operations of both MSK Provisioned and MSK Serverless clusters.

DescribeClusterOperationV2 (new) Link ¶

Returns a description of the cluster operation specified by the ARN.

See also: AWS API Documentation

Request Syntax

client.describe_cluster_operation_v2(
    ClusterOperationArn='string'
)
type ClusterOperationArn

string

param ClusterOperationArn

[REQUIRED] ARN of the cluster operation to describe.

rtype

dict

returns

Response Syntax

{
    'ClusterOperationInfo': {
        'ClusterArn': 'string',
        'ClusterType': 'PROVISIONED'|'SERVERLESS',
        'StartTime': datetime(2015, 1, 1),
        'EndTime': datetime(2015, 1, 1),
        'ErrorInfo': {
            'ErrorCode': 'string',
            'ErrorString': 'string'
        },
        'OperationArn': 'string',
        'OperationState': 'string',
        'OperationType': 'string',
        'Provisioned': {
            'OperationSteps': [
                {
                    'StepInfo': {
                        'StepStatus': 'string'
                    },
                    'StepName': 'string'
                },
            ],
            'SourceClusterInfo': {
                'BrokerEBSVolumeInfo': [
                    {
                        'KafkaBrokerNodeId': 'string',
                        'ProvisionedThroughput': {
                            'Enabled': True|False,
                            'VolumeThroughput': 123
                        },
                        'VolumeSizeGB': 123
                    },
                ],
                'ConfigurationInfo': {
                    'Arn': 'string',
                    'Revision': 123
                },
                'NumberOfBrokerNodes': 123,
                'EnhancedMonitoring': 'DEFAULT'|'PER_BROKER'|'PER_TOPIC_PER_BROKER'|'PER_TOPIC_PER_PARTITION',
                'OpenMonitoring': {
                    'Prometheus': {
                        'JmxExporter': {
                            'EnabledInBroker': True|False
                        },
                        'NodeExporter': {
                            'EnabledInBroker': True|False
                        }
                    }
                },
                'KafkaVersion': 'string',
                'LoggingInfo': {
                    'BrokerLogs': {
                        'CloudWatchLogs': {
                            'Enabled': True|False,
                            'LogGroup': 'string'
                        },
                        'Firehose': {
                            'DeliveryStream': 'string',
                            'Enabled': True|False
                        },
                        'S3': {
                            'Bucket': 'string',
                            'Enabled': True|False,
                            'Prefix': 'string'
                        }
                    }
                },
                'InstanceType': 'string',
                'ClientAuthentication': {
                    'Sasl': {
                        'Scram': {
                            'Enabled': True|False
                        },
                        'Iam': {
                            'Enabled': True|False
                        }
                    },
                    'Tls': {
                        'CertificateAuthorityArnList': [
                            'string',
                        ],
                        'Enabled': True|False
                    },
                    'Unauthenticated': {
                        'Enabled': True|False
                    }
                },
                'EncryptionInfo': {
                    'EncryptionAtRest': {
                        'DataVolumeKMSKeyId': 'string'
                    },
                    'EncryptionInTransit': {
                        'ClientBroker': 'TLS'|'TLS_PLAINTEXT'|'PLAINTEXT',
                        'InCluster': True|False
                    }
                },
                'ConnectivityInfo': {
                    'PublicAccess': {
                        'Type': 'string'
                    },
                    'VpcConnectivity': {
                        'ClientAuthentication': {
                            'Sasl': {
                                'Scram': {
                                    'Enabled': True|False
                                },
                                'Iam': {
                                    'Enabled': True|False
                                }
                            },
                            'Tls': {
                                'Enabled': True|False
                            }
                        }
                    }
                },
                'StorageMode': 'LOCAL'|'TIERED'
            },
            'TargetClusterInfo': {
                'BrokerEBSVolumeInfo': [
                    {
                        'KafkaBrokerNodeId': 'string',
                        'ProvisionedThroughput': {
                            'Enabled': True|False,
                            'VolumeThroughput': 123
                        },
                        'VolumeSizeGB': 123
                    },
                ],
                'ConfigurationInfo': {
                    'Arn': 'string',
                    'Revision': 123
                },
                'NumberOfBrokerNodes': 123,
                'EnhancedMonitoring': 'DEFAULT'|'PER_BROKER'|'PER_TOPIC_PER_BROKER'|'PER_TOPIC_PER_PARTITION',
                'OpenMonitoring': {
                    'Prometheus': {
                        'JmxExporter': {
                            'EnabledInBroker': True|False
                        },
                        'NodeExporter': {
                            'EnabledInBroker': True|False
                        }
                    }
                },
                'KafkaVersion': 'string',
                'LoggingInfo': {
                    'BrokerLogs': {
                        'CloudWatchLogs': {
                            'Enabled': True|False,
                            'LogGroup': 'string'
                        },
                        'Firehose': {
                            'DeliveryStream': 'string',
                            'Enabled': True|False
                        },
                        'S3': {
                            'Bucket': 'string',
                            'Enabled': True|False,
                            'Prefix': 'string'
                        }
                    }
                },
                'InstanceType': 'string',
                'ClientAuthentication': {
                    'Sasl': {
                        'Scram': {
                            'Enabled': True|False
                        },
                        'Iam': {
                            'Enabled': True|False
                        }
                    },
                    'Tls': {
                        'CertificateAuthorityArnList': [
                            'string',
                        ],
                        'Enabled': True|False
                    },
                    'Unauthenticated': {
                        'Enabled': True|False
                    }
                },
                'EncryptionInfo': {
                    'EncryptionAtRest': {
                        'DataVolumeKMSKeyId': 'string'
                    },
                    'EncryptionInTransit': {
                        'ClientBroker': 'TLS'|'TLS_PLAINTEXT'|'PLAINTEXT',
                        'InCluster': True|False
                    }
                },
                'ConnectivityInfo': {
                    'PublicAccess': {
                        'Type': 'string'
                    },
                    'VpcConnectivity': {
                        'ClientAuthentication': {
                            'Sasl': {
                                'Scram': {
                                    'Enabled': True|False
                                },
                                'Iam': {
                                    'Enabled': True|False
                                }
                            },
                            'Tls': {
                                'Enabled': True|False
                            }
                        }
                    }
                },
                'StorageMode': 'LOCAL'|'TIERED'
            },
            'VpcConnectionInfo': {
                'VpcConnectionArn': 'string',
                'Owner': 'string',
                'UserIdentity': {
                    'Type': 'AWSACCOUNT'|'AWSSERVICE',
                    'PrincipalId': 'string'
                },
                'CreationTime': datetime(2015, 1, 1)
            }
        },
        'Serverless': {
            'VpcConnectionInfo': {
                'CreationTime': datetime(2015, 1, 1),
                'Owner': 'string',
                'UserIdentity': {
                    'Type': 'AWSACCOUNT'|'AWSSERVICE',
                    'PrincipalId': 'string'
                },
                'VpcConnectionArn': 'string'
            }
        }
    }
}

Response Structure

  • (dict) --

    HTTP Status Code 200: OK.

    • ClusterOperationInfo (dict) --

      Cluster operation information

      • ClusterArn (string) --

        ARN of the cluster.

      • ClusterType (string) --

        Type of the backend cluster.

      • StartTime (datetime) --

        The time at which operation was started.

      • EndTime (datetime) --

        The time at which the operation finished.

      • ErrorInfo (dict) --

        If cluster operation failed from an error, it describes the error.

        • ErrorCode (string) --

          A number describing the error programmatically.

        • ErrorString (string) --

          An optional field to provide more details about the error.

      • OperationArn (string) --

        ARN of the cluster operation.

      • OperationState (string) --

        State of the cluster operation.

      • OperationType (string) --

        Type of the cluster operation.

      • Provisioned (dict) --

        Properties of a provisioned cluster.

        • OperationSteps (list) --

          Steps completed during the operation.

          • (dict) --

            Step taken during a cluster operation.

            • StepInfo (dict) --

              Information about the step and its status.

              • StepStatus (string) --

                The steps current status.

            • StepName (string) --

              The name of the step.

        • SourceClusterInfo (dict) --

          Information about cluster attributes before a cluster is updated.

          • BrokerEBSVolumeInfo (list) --

            Specifies the size of the EBS volume and the ID of the associated broker.

            • (dict) --

              Specifies the EBS volume upgrade information. The broker identifier must be set to the keyword ALL. This means the changes apply to all the brokers in the cluster.

              • KafkaBrokerNodeId (string) --

                The ID of the broker to update.

              • ProvisionedThroughput (dict) --

                EBS volume provisioned throughput information.

                • Enabled (boolean) --

                  Provisioned throughput is enabled or not.

                • VolumeThroughput (integer) --

                  Throughput value of the EBS volumes for the data drive on each kafka broker node in MiB per second.

              • VolumeSizeGB (integer) --

                Size of the EBS volume to update.

          • ConfigurationInfo (dict) --

            Information about the changes in the configuration of the brokers.

            • Arn (string) --

              ARN of the configuration to use.

            • Revision (integer) --

              The revision of the configuration to use.

          • NumberOfBrokerNodes (integer) --

            The number of broker nodes in the cluster.

          • EnhancedMonitoring (string) --

            Specifies which Apache Kafka metrics Amazon MSK gathers and sends to Amazon CloudWatch for this cluster.

          • OpenMonitoring (dict) --

            The settings for open monitoring.

            • Prometheus (dict) --

              Prometheus settings.

              • JmxExporter (dict) --

                Indicates whether you want to turn on or turn off the JMX Exporter.

                • EnabledInBroker (boolean) --

                  Indicates whether you want to turn on or turn off the JMX Exporter.

              • NodeExporter (dict) --

                Indicates whether you want to turn on or turn off the Node Exporter.

                • EnabledInBroker (boolean) --

                  Indicates whether you want to turn on or turn off the Node Exporter.

          • KafkaVersion (string) --

            The Apache Kafka version.

          • LoggingInfo (dict) --

            You can configure your MSK cluster to send broker logs to different destination types. This is a container for the configuration details related to broker logs.

            • BrokerLogs (dict) --

              • CloudWatchLogs (dict) --

                • Enabled (boolean) --

                • LogGroup (string) --

              • Firehose (dict) --

                • DeliveryStream (string) --

                • Enabled (boolean) --

              • S3 (dict) --

                • Bucket (string) --

                • Enabled (boolean) --

                • Prefix (string) --

          • InstanceType (string) --

            Information about the Amazon MSK broker type.

          • ClientAuthentication (dict) --

            Includes all client authentication information.

            • Sasl (dict) --

              Details for ClientAuthentication using SASL.

              • Scram (dict) --

                Details for SASL/SCRAM client authentication.

                • Enabled (boolean) --

                  SASL/SCRAM authentication is enabled or not.

              • Iam (dict) --

                Indicates whether IAM access control is enabled.

                • Enabled (boolean) --

                  Indicates whether IAM access control is enabled.

            • Tls (dict) --

              Details for ClientAuthentication using TLS.

              • CertificateAuthorityArnList (list) --

                List of ACM Certificate Authority ARNs.

                • (string) --

              • Enabled (boolean) --

                Specifies whether you want to turn on or turn off TLS authentication.

            • Unauthenticated (dict) --

              Contains information about unauthenticated traffic to the cluster.

              • Enabled (boolean) --

                Specifies whether you want to turn on or turn off unauthenticated traffic to your cluster.

          • EncryptionInfo (dict) --

            Includes all encryption-related information.

            • EncryptionAtRest (dict) --

              The data-volume encryption details.

              • DataVolumeKMSKeyId (string) --

                The ARN of the AWS KMS key for encrypting data at rest. If you don't specify a KMS key, MSK creates one for you and uses it.

            • EncryptionInTransit (dict) --

              The details for encryption in transit.

              • ClientBroker (string) --

                Indicates the encryption setting for data in transit between clients and brokers. The following are the possible values.

                TLS means that client-broker communication is enabled with TLS only.

                TLS_PLAINTEXT means that client-broker communication is enabled for both TLS-encrypted, as well as plaintext data.

                PLAINTEXT means that client-broker communication is enabled in plaintext only.

                The default value is TLS_PLAINTEXT.

              • InCluster (boolean) --

                When set to true, it indicates that data communication among the broker nodes of the cluster is encrypted. When set to false, the communication happens in plaintext.

                The default value is true.

          • ConnectivityInfo (dict) --

            Information about the broker access configuration.

            • PublicAccess (dict) --

              Public access control for brokers.

              • Type (string) --

                The value DISABLED indicates that public access is turned off. SERVICE_PROVIDED_EIPS indicates that public access is turned on.

            • VpcConnectivity (dict) --

              VPC connectivity access control for brokers.

              • ClientAuthentication (dict) --

                Includes all client authentication information for VPC connectivity.

                • Sasl (dict) --

                  SASL authentication type details for VPC connectivity.

                  • Scram (dict) --

                    Details for SASL/SCRAM client authentication for VPC connectivity.

                    • Enabled (boolean) --

                      SASL/SCRAM authentication is on or off for VPC connectivity.

                  • Iam (dict) --

                    Details for SASL/IAM client authentication for VPC connectivity.

                    • Enabled (boolean) --

                      SASL/IAM authentication is on or off for VPC connectivity.

                • Tls (dict) --

                  TLS authentication type details for VPC connectivity.

                  • Enabled (boolean) --

                    TLS authentication is on or off for VPC connectivity.

          • StorageMode (string) --

            This controls storage mode for supported storage tiers.

        • TargetClusterInfo (dict) --

          Information about cluster attributes after a cluster is updated.

          • BrokerEBSVolumeInfo (list) --

            Specifies the size of the EBS volume and the ID of the associated broker.

            • (dict) --

              Specifies the EBS volume upgrade information. The broker identifier must be set to the keyword ALL. This means the changes apply to all the brokers in the cluster.

              • KafkaBrokerNodeId (string) --

                The ID of the broker to update.

              • ProvisionedThroughput (dict) --

                EBS volume provisioned throughput information.

                • Enabled (boolean) --

                  Provisioned throughput is enabled or not.

                • VolumeThroughput (integer) --

                  Throughput value of the EBS volumes for the data drive on each kafka broker node in MiB per second.

              • VolumeSizeGB (integer) --

                Size of the EBS volume to update.

          • ConfigurationInfo (dict) --

            Information about the changes in the configuration of the brokers.

            • Arn (string) --

              ARN of the configuration to use.

            • Revision (integer) --

              The revision of the configuration to use.

          • NumberOfBrokerNodes (integer) --

            The number of broker nodes in the cluster.

          • EnhancedMonitoring (string) --

            Specifies which Apache Kafka metrics Amazon MSK gathers and sends to Amazon CloudWatch for this cluster.

          • OpenMonitoring (dict) --

            The settings for open monitoring.

            • Prometheus (dict) --

              Prometheus settings.

              • JmxExporter (dict) --

                Indicates whether you want to turn on or turn off the JMX Exporter.

                • EnabledInBroker (boolean) --

                  Indicates whether you want to turn on or turn off the JMX Exporter.

              • NodeExporter (dict) --

                Indicates whether you want to turn on or turn off the Node Exporter.

                • EnabledInBroker (boolean) --

                  Indicates whether you want to turn on or turn off the Node Exporter.

          • KafkaVersion (string) --

            The Apache Kafka version.

          • LoggingInfo (dict) --

            You can configure your MSK cluster to send broker logs to different destination types. This is a container for the configuration details related to broker logs.

            • BrokerLogs (dict) --

              • CloudWatchLogs (dict) --

                • Enabled (boolean) --

                • LogGroup (string) --

              • Firehose (dict) --

                • DeliveryStream (string) --

                • Enabled (boolean) --

              • S3 (dict) --

                • Bucket (string) --

                • Enabled (boolean) --

                • Prefix (string) --

          • InstanceType (string) --

            Information about the Amazon MSK broker type.

          • ClientAuthentication (dict) --

            Includes all client authentication information.

            • Sasl (dict) --

              Details for ClientAuthentication using SASL.

              • Scram (dict) --

                Details for SASL/SCRAM client authentication.

                • Enabled (boolean) --

                  SASL/SCRAM authentication is enabled or not.

              • Iam (dict) --

                Indicates whether IAM access control is enabled.

                • Enabled (boolean) --

                  Indicates whether IAM access control is enabled.

            • Tls (dict) --

              Details for ClientAuthentication using TLS.

              • CertificateAuthorityArnList (list) --

                List of ACM Certificate Authority ARNs.

                • (string) --

              • Enabled (boolean) --

                Specifies whether you want to turn on or turn off TLS authentication.

            • Unauthenticated (dict) --

              Contains information about unauthenticated traffic to the cluster.

              • Enabled (boolean) --

                Specifies whether you want to turn on or turn off unauthenticated traffic to your cluster.

          • EncryptionInfo (dict) --

            Includes all encryption-related information.

            • EncryptionAtRest (dict) --

              The data-volume encryption details.

              • DataVolumeKMSKeyId (string) --

                The ARN of the AWS KMS key for encrypting data at rest. If you don't specify a KMS key, MSK creates one for you and uses it.

            • EncryptionInTransit (dict) --

              The details for encryption in transit.

              • ClientBroker (string) --

                Indicates the encryption setting for data in transit between clients and brokers. The following are the possible values.

                TLS means that client-broker communication is enabled with TLS only.

                TLS_PLAINTEXT means that client-broker communication is enabled for both TLS-encrypted, as well as plaintext data.

                PLAINTEXT means that client-broker communication is enabled in plaintext only.

                The default value is TLS_PLAINTEXT.

              • InCluster (boolean) --

                When set to true, it indicates that data communication among the broker nodes of the cluster is encrypted. When set to false, the communication happens in plaintext.

                The default value is true.

          • ConnectivityInfo (dict) --

            Information about the broker access configuration.

            • PublicAccess (dict) --

              Public access control for brokers.

              • Type (string) --

                The value DISABLED indicates that public access is turned off. SERVICE_PROVIDED_EIPS indicates that public access is turned on.

            • VpcConnectivity (dict) --

              VPC connectivity access control for brokers.

              • ClientAuthentication (dict) --

                Includes all client authentication information for VPC connectivity.

                • Sasl (dict) --

                  SASL authentication type details for VPC connectivity.

                  • Scram (dict) --

                    Details for SASL/SCRAM client authentication for VPC connectivity.

                    • Enabled (boolean) --

                      SASL/SCRAM authentication is on or off for VPC connectivity.

                  • Iam (dict) --

                    Details for SASL/IAM client authentication for VPC connectivity.

                    • Enabled (boolean) --

                      SASL/IAM authentication is on or off for VPC connectivity.

                • Tls (dict) --

                  TLS authentication type details for VPC connectivity.

                  • Enabled (boolean) --

                    TLS authentication is on or off for VPC connectivity.

          • StorageMode (string) --

            This controls storage mode for supported storage tiers.

        • VpcConnectionInfo (dict) --

          Description of the VPC connection for CreateVpcConnection and DeleteVpcConnection operations.

          • VpcConnectionArn (string) --

            The Amazon Resource Name (ARN) of the VPC connection.

          • Owner (string) --

            The owner of the VPC Connection.

          • UserIdentity (dict) --

            Description of the requester that calls the API operation.

            • Type (string) --

              The identity type of the requester that calls the API operation.

            • PrincipalId (string) --

              A unique identifier for the requester that calls the API operation.

          • CreationTime (datetime) --

            The time when Amazon MSK creates the VPC Connnection.

      • Serverless (dict) --

        Properties of a serverless cluster.

        • VpcConnectionInfo (dict) --

          Description of the VPC connection for CreateVpcConnection and DeleteVpcConnection operations.

          • CreationTime (datetime) --

            The time when Amazon MSK creates the VPC Connnection.

          • Owner (string) --

            The owner of the VPC Connection.

          • UserIdentity (dict) --

            Description of the requester that calls the API operation.

            • Type (string) --

              The identity type of the requester that calls the API operation.

            • PrincipalId (string) --

              A unique identifier for the requester that calls the API operation.

          • VpcConnectionArn (string) --

            The Amazon Resource Name (ARN) of the VPC connection.

ListClusterOperationsV2 (new) Link ¶

Returns a list of all the operations that have been performed on the specified MSK cluster.

See also: AWS API Documentation

Request Syntax

client.list_cluster_operations_v2(
    ClusterArn='string',
    MaxResults=123,
    NextToken='string'
)
type ClusterArn

string

param ClusterArn

[REQUIRED] The arn of the cluster whose operations are being requested.

type MaxResults

integer

param MaxResults

The maxResults of the query.

type NextToken

string

param NextToken

The nextToken of the query.

rtype

dict

returns

Response Syntax

{
    'ClusterOperationInfoList': [
        {
            'ClusterArn': 'string',
            'ClusterType': 'PROVISIONED'|'SERVERLESS',
            'StartTime': datetime(2015, 1, 1),
            'EndTime': datetime(2015, 1, 1),
            'OperationArn': 'string',
            'OperationState': 'string',
            'OperationType': 'string'
        },
    ],
    'NextToken': 'string'
}

Response Structure

  • (dict) --

    HTTP Status Code 200: OK.

    • ClusterOperationInfoList (list) --

      An array of cluster operation information objects.

      • (dict) --

        Returns information about a cluster operation.

        • ClusterArn (string) --

          ARN of the cluster.

        • ClusterType (string) --

          Type of the backend cluster.

        • StartTime (datetime) --

          The time at which operation was started.

        • EndTime (datetime) --

          The time at which the operation finished.

        • OperationArn (string) --

          ARN of the cluster operation.

        • OperationState (string) --

          State of the cluster operation.

        • OperationType (string) --

          Type of the cluster operation.

    • NextToken (string) --

      If the response of ListClusterOperationsV2 is truncated, it returns a NextToken in the response. This NextToken should be sent in the subsequent request to ListClusterOperationsV2.