types

package
v0.5.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 5, 2025 License: Apache-2.0 Imports: 16 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var AclMap = map[string]ACLMapping{
	"kafka-cluster:AlterCluster": {
		Operation:       "Alter",
		ResourceType:    "Cluster",
		RequiresPattern: false,
	},
	"kafka-cluster:AlterClusterDynamicConfiguration": {
		Operation:       "AlterConfigs",
		ResourceType:    "Cluster",
		RequiresPattern: false,
	},
	"kafka-cluster:AlterGroup": {
		Operation:       "Read",
		ResourceType:    "Group",
		RequiresPattern: true,
	},
	"kafka-cluster:AlterTopic": {
		Operation:       "Alter",
		ResourceType:    "Topic",
		RequiresPattern: true,
	},
	"kafka-cluster:AlterTopicDynamicConfiguration": {
		Operation:       "AlterConfigs",
		ResourceType:    "Topic",
		RequiresPattern: true,
	},
	"kafka-cluster:AlterTransactionalId": {
		Operation:       "Write",
		ResourceType:    "TransactionalId",
		RequiresPattern: true,
	},
	"kafka-cluster:CreateTopic": {
		Operation:       "Create",
		ResourceType:    "Topic",
		RequiresPattern: true,
	},
	"kafka-cluster:DeleteGroup": {
		Operation:       "Delete",
		ResourceType:    "Group",
		RequiresPattern: true,
	},
	"kafka-cluster:DeleteTopic": {
		Operation:       "Delete",
		ResourceType:    "Topic",
		RequiresPattern: true,
	},
	"kafka-cluster:DescribeCluster": {
		Operation:       "Describe",
		ResourceType:    "Cluster",
		RequiresPattern: false,
	},
	"kafka-cluster:DescribeClusterDynamicConfiguration": {
		Operation:       "DescribeConfigs",
		ResourceType:    "Cluster",
		RequiresPattern: false,
	},
	"kafka-cluster:DescribeGroup": {
		Operation:       "Describe",
		ResourceType:    "Group",
		RequiresPattern: true,
	},
	"kafka-cluster:DescribeTopic": {
		Operation:       "Describe",
		ResourceType:    "Topic",
		RequiresPattern: true,
	},
	"kafka-cluster:DescribeTopicDynamicConfiguration": {
		Operation:       "DescribeConfigs",
		ResourceType:    "Topic",
		RequiresPattern: true,
	},
	"kafka-cluster:DescribeTransactionalId": {
		Operation:       "Describe",
		ResourceType:    "TransactionalId",
		RequiresPattern: true,
	},
	"kafka-cluster:ReadData": {
		Operation:       "Read",
		ResourceType:    "Topic",
		RequiresPattern: true,
	},
	"kafka-cluster:WriteData": {
		Operation:       "Write",
		ResourceType:    "Topic",
		RequiresPattern: true,
	},
	"kafka-cluster:WriteDataIdempotently": {
		Operation:       "IdempotentWrite",
		ResourceType:    "Cluster",
		RequiresPattern: true,
	},
}

https://docs.aws.amazon.com/service-authorization/latest/reference/list_apachekafkaapisforamazonmskclusters.html https://docs.confluent.io/cloud/current/security/access-control/acl.html#acl-resources-and-operations-for-ccloud-summary

Functions

func AllAuthTypes

func AllAuthTypes() []string

AllAuthTypes returns all possible AuthType values as strings This can be called statically without needing an AuthType instance

Types

type ACLMapping added in v0.2.1

type ACLMapping struct {
	Operation       string
	ResourceType    string
	RequiresPattern bool
}

type AWSClientInformation added in v0.4.0

type AWSClientInformation struct {
	MskClusterConfig     kafkatypes.Cluster                     `json:"msk_cluster_config"`
	ClientVpcConnections []kafkatypes.ClientVpcConnection       `json:"client_vpc_connections"`
	ClusterOperations    []kafkatypes.ClusterOperationV2Summary `json:"cluster_operations"`
	Nodes                []kafkatypes.NodeInfo                  `json:"nodes"`
	ScramSecrets         []string                               `json:"ScramSecrets"`
	BootstrapBrokers     kafka.GetBootstrapBrokersOutput        `json:"bootstrap_brokers"`
	Policy               kafka.GetClusterPolicyOutput           `json:"policy"`
	CompatibleVersions   kafka.GetCompatibleKafkaVersionsOutput `json:"compatible_versions"`
	ClusterNetworking    ClusterNetworking                      `json:"cluster_networking"`
	Connectors           []ConnectorSummary                     `json:"connectors"`
}

func (*AWSClientInformation) GetAllBootstrapBrokersForAuthType added in v0.4.0

func (c *AWSClientInformation) GetAllBootstrapBrokersForAuthType(authType AuthType) ([]string, error)

Returns all bootstrap brokers for a given auth type.

func (*AWSClientInformation) GetBootstrapBrokersForAuthType added in v0.4.0

func (c *AWSClientInformation) GetBootstrapBrokersForAuthType(authType AuthType) ([]string, error)

Returns only one bootstrap broker per authentication type.

type Acls added in v0.2.1

type Acls struct {
	ResourceType        string `json:"ResourceType"`
	ResourceName        string `json:"ResourceName"`
	ResourcePatternType string `json:"ResourcePatternType"`
	Principal           string `json:"Principal"`
	Host                string `json:"Host"`
	Operation           string `json:"Operation"`
	PermissionType      string `json:"PermissionType"`
}

Preferred over sarama.ResourceAcls because it is flattened vs sarama's nested structure.

type AuthMethodConfig added in v0.2.7

type AuthMethodConfig struct {
	UnauthenticatedTLS       *UnauthenticatedTLSConfig       `yaml:"unauthenticated_tls,omitempty"`
	UnauthenticatedPlaintext *UnauthenticatedPlaintextConfig `yaml:"unauthenticated_plaintext,omitempty"`
	IAM                      *IAMConfig                      `yaml:"iam,omitempty"`
	TLS                      *TLSConfig                      `yaml:"tls,omitempty"`
	SASLScram                *SASLScramConfig                `yaml:"sasl_scram,omitempty"`
}

func (*AuthMethodConfig) MergeWith added in v0.4.0

func (amc *AuthMethodConfig) MergeWith(existing AuthMethodConfig)

MergeWith preserves existing auth configurations only for auth methods that still exist in the new config

type AuthType

type AuthType string

AuthType represents the different authentication types supported by MSK clusters

const (
	AuthTypeSASLSCRAM                AuthType = "SASL/SCRAM"
	AuthTypeIAM                      AuthType = "SASL/IAM"
	AuthTypeTLS                      AuthType = "TLS"
	AuthTypeUnauthenticatedPlaintext AuthType = "Unauthenticated (Plaintext)"
	AuthTypeUnauthenticatedTLS       AuthType = "Unauthenticated (TLS Encryption)"
)

func (AuthType) IsValid

func (a AuthType) IsValid() bool

func (AuthType) Values

func (a AuthType) Values() []string

Values returns all possible AuthType values as strings

type CloudWatchTimeWindow added in v0.4.0

type CloudWatchTimeWindow struct {
	StartTime time.Time
	EndTime   time.Time
	Period    int32
}

type ClusterAuth added in v0.4.0

type ClusterAuth struct {
	Name       string           `yaml:"name"`
	Arn        string           `yaml:"arn"`
	AuthMethod AuthMethodConfig `yaml:"auth_method"`
}

func (ClusterAuth) GetAuthMethods added in v0.4.0

func (ce ClusterAuth) GetAuthMethods() []AuthType

Gets a list of the authentication method(s) selected in the `creds.yaml` file generated during discovery.

func (ClusterAuth) GetSelectedAuthType added in v0.4.0

func (ce ClusterAuth) GetSelectedAuthType() (AuthType, error)

type ClusterMetrics

type ClusterMetrics struct {
	MetricMetadata MetricMetadata                     `json:"metadata"`
	Results        []cloudwatchtypes.MetricDataResult `json:"results"`
}

----- metrics -----

type ClusterNetworking added in v0.2.2

type ClusterNetworking struct {
	VpcId          string       `json:"vpc_id"`
	SubnetIds      []string     `json:"subnet_ids"`
	SecurityGroups []string     `json:"security_groups"`
	Subnets        []SubnetInfo `json:"subnets"`
}

type ConnectAuthMethod added in v0.4.2

type ConnectAuthMethod string
const (
	ConnectAuthMethodSaslScram       ConnectAuthMethod = "SASL/SCRAM"
	ConnectAuthMethodTls             ConnectAuthMethod = "TLS"
	ConnectAuthMethodUnauthenticated ConnectAuthMethod = "Unauthenticated"
)

type ConnectSaslScramAuth added in v0.4.2

type ConnectSaslScramAuth struct {
	Username string
	Password string
}

type ConnectTlsAuth added in v0.4.2

type ConnectTlsAuth struct {
	CACert     string
	ClientCert string
	ClientKey  string
}

type ConnectorSummary added in v0.4.0

type ConnectorSummary struct {
	ConnectorArn                     string                                                        `json:"connector_arn"`
	ConnectorName                    string                                                        `json:"connector_name"`
	ConnectorState                   string                                                        `json:"connector_state"`
	CreationTime                     string                                                        `json:"creation_time"`
	KafkaCluster                     kafkaconnecttypes.ApacheKafkaClusterDescription               `json:"kafka_cluster"`
	KafkaClusterClientAuthentication kafkaconnecttypes.KafkaClusterClientAuthenticationDescription `json:"kafka_cluster_client_authentication"`
	Capacity                         kafkaconnecttypes.CapacityDescription                         `json:"capacity"`
	Plugins                          []kafkaconnecttypes.PluginDescription                         `json:"plugins"`
	ConnectorConfiguration           map[string]string                                             `json:"connector_configuration"`
}

type CostAggregate added in v0.4.0

type CostAggregate struct {
	Sum     *float64 `json:"sum"`
	Average *float64 `json:"avg"`
	Maximum *float64 `json:"max"`
	Minimum *float64 `json:"min"`
}

type CostInformation added in v0.4.0

type CostInformation struct {
	CostMetadata CostMetadata                     `json:"metadata"`
	CostResults  []costexplorertypes.ResultByTime `json:"results"`
}

----- costs -----

type CostMetadata added in v0.4.0

type CostMetadata struct {
	StartDate   time.Time           `json:"start_date"`
	EndDate     time.Time           `json:"end_date"`
	Granularity string              `json:"granularity"`
	Tags        map[string][]string `json:"tags"`
	Services    []string            `json:"services"`
}

type Credentials added in v0.2.7

type Credentials struct {
	Regions []RegionAuth `yaml:"regions"`
}

func NewCredentialsFrom added in v0.4.0

func NewCredentialsFrom(fromCredentials *Credentials) *Credentials

func NewCredentialsFromFile added in v0.4.0

func NewCredentialsFromFile(credentialsYamlPath string) (*Credentials, []error)

func (*Credentials) ToYaml added in v0.2.7

func (c *Credentials) ToYaml() ([]byte, error)

func (*Credentials) UpsertRegion added in v0.4.0

func (c *Credentials) UpsertRegion(newRegion RegionAuth)

UpsertRegion inserts a new region or updates an existing one by name Automatically preserves existing cluster auth configurations

func (Credentials) Validate added in v0.2.7

func (c Credentials) Validate() (bool, []error)

func (*Credentials) WriteToFile added in v0.2.7

func (c *Credentials) WriteToFile(filePath string) error

type DiscoveredCluster added in v0.4.0

type DiscoveredCluster struct {
	Name                        string                      `json:"name"`
	Arn                         string                      `json:"arn"`
	Region                      string                      `json:"region"`
	ClusterMetrics              ClusterMetrics              `json:"metrics"`
	AWSClientInformation        AWSClientInformation        `json:"aws_client_information"`
	KafkaAdminClientInformation KafkaAdminClientInformation `json:"kafka_admin_client_information"`
}

type DiscoveredRegion added in v0.4.0

type DiscoveredRegion struct {
	Name           string                                      `json:"name"`
	Configurations []kafka.DescribeConfigurationRevisionOutput `json:"configurations"`
	Costs          CostInformation                             `json:"costs"`
	Clusters       []DiscoveredCluster                         `json:"clusters"`
	// internal only - exclude from JSON output
	ClusterArns []string `json:"-"`
}

func (*DiscoveredRegion) RefreshClusters added in v0.4.0

func (dr *DiscoveredRegion) RefreshClusters(newClusters []DiscoveredCluster)

RefreshClusters replaces the cluster list but preserves KafkaAdminClientInformation from existing clusters

type ExtOutboundClusterKafkaBroker added in v0.5.0

type ExtOutboundClusterKafkaBroker struct {
	ID        string                            `json:"broker_id"`
	SubnetID  string                            `json:"subnet_id"`
	Endpoints []ExtOutboundClusterKafkaEndpoint `json:"endpoints"`
}

type ExtOutboundClusterKafkaEndpoint added in v0.5.0

type ExtOutboundClusterKafkaEndpoint struct {
	Host string `json:"host"`
	Port int    `json:"port"`
	IP   string `json:"ip"`
}

type IAMConfig added in v0.2.7

type IAMConfig struct {
	Use bool `yaml:"use"`
}

type KafkaAdminClientInformation added in v0.4.0

type KafkaAdminClientInformation struct {
	ClusterID             string                 `json:"cluster_id"`
	Topics                *Topics                `json:"topics"`
	Acls                  []Acls                 `json:"acls"`
	SelfManagedConnectors *SelfManagedConnectors `json:"self_managed_connectors"`
}

func (*KafkaAdminClientInformation) CalculateTopicSummary added in v0.4.0

func (c *KafkaAdminClientInformation) CalculateTopicSummary() TopicSummary

func (*KafkaAdminClientInformation) SetSelfManagedConnectors added in v0.4.2

func (c *KafkaAdminClientInformation) SetSelfManagedConnectors(connectors []SelfManagedConnector)

func (*KafkaAdminClientInformation) SetTopics added in v0.4.0

func (c *KafkaAdminClientInformation) SetTopics(topicDetails []TopicDetails)

type KcpBuildInfo added in v0.3.1

type KcpBuildInfo struct {
	Version string `json:"version"`
	Commit  string `json:"commit"`
	Date    string `json:"date"`
}

type Manifest

type Manifest struct {
	MigrationInfraType MigrationType `json:"migration_infra_type"`
}

type MetricAggregate added in v0.4.0

type MetricAggregate struct {
	Average *float64 `json:"avg"`
	Maximum *float64 `json:"max"`
	Minimum *float64 `json:"min"`
}

type MetricMetadata added in v0.4.0

type MetricMetadata struct {
	ClusterType          string    `json:"cluster_type"`
	NumberOfBrokerNodes  int       `json:"number_of_broker_nodes"`
	KafkaVersion         string    `json:"kafka_version"`
	BrokerAzDistribution string    `json:"broker_az_distribution"`
	EnhancedMonitoring   string    `json:"enhanced_monitoring"`
	StartDate            time.Time `json:"start_date"`
	EndDate              time.Time `json:"end_date"`
	Period               int32     `json:"period"`

	FollowerFetching bool   `json:"follower_fetching"`
	InstanceType     string `json:"instance_type"`
	TieredStorage    bool   `json:"tiered_storage"`
}

type MigrateSchemasRequest added in v0.5.0

type MigrateSchemasRequest struct {
	ConfluentCloudSchemaRegistryURL string                         `json:"confluent_cloud_schema_registry_url"`
	SchemaRegistries                []SchemaRegistryExporterConfig `json:"schema_registries"`
}

type MigrationInfraTerraformModule added in v0.5.0

type MigrationInfraTerraformModule struct {
	Name            string            `json:"name"`
	MainTf          string            `json:"main.tf"`
	VariablesTf     string            `json:"variables.tf"`
	OutputsTf       string            `json:"outputs.tf"`
	VersionsTf      string            `json:"versions.tf"`
	AdditionalFiles map[string]string `json:"additional_files"`
}

MigrationInfraTerraformModule represents a Terraform module within the migration infrastructure configuration. Each module contains its own Terraform files and additional assets.

type MigrationInfraTerraformProject added in v0.5.0

type MigrationInfraTerraformProject struct {
	MainTf           string                          `json:"main.tf"`
	ProvidersTf      string                          `json:"providers.tf"`
	VariablesTf      string                          `json:"variables.tf"`
	InputsAutoTfvars string                          `json:"inputs.auto.tfvars"`
	Modules          []MigrationInfraTerraformModule `json:"modules"`
}

MigrationInfraTerraformProject represents the complete Terraform configuration for migration infrastructure. "project" = root config + modules

type MigrationScriptsTerraformFolder added in v0.5.0

type MigrationScriptsTerraformFolder struct {
	Name             string `json:"name"`
	MainTf           string `json:"main.tf"`
	ProvidersTf      string `json:"providers.tf"`
	VariablesTf      string `json:"variables.tf"`
	InputsAutoTfvars string `json:"inputs.auto.tfvars"`
}

MigrationScriptsTerraformFolder represents a Terraform folder within the migration scripts

type MigrationScriptsTerraformProject added in v0.5.0

type MigrationScriptsTerraformProject struct {
	// not really a module, but its the same structure
	Folders []MigrationScriptsTerraformFolder `json:"modules"`
}

MigrationScriptsTerraformProject represents the complete Terraform configuration for migration scripts

type MigrationType added in v0.5.0

type MigrationType int
const (
	PublicMskEndpoints                       MigrationType = 1
	ExternalOutboundClusterLink              MigrationType = 2
	JumpClusterReuseExistingSubnetsSaslScram MigrationType = 3
	JumpClusterReuseExistingSubnetsIam       MigrationType = 4
	JumpClusterNewSubnetsSaslScram           MigrationType = 5
	JumpClusterNewSubnetsIam                 MigrationType = 6
)

func ToMigrationType added in v0.5.0

func ToMigrationType(input string) (MigrationType, error)

func (MigrationType) IsValid added in v0.5.0

func (m MigrationType) IsValid() bool

type MigrationWizardRequest added in v0.5.0

type MigrationWizardRequest struct {
	HasPublicMskEndpoints bool `json:"has_public_msk_brokers"`

	VpcId string `json:"vpc_id"`

	UseJumpClusters            bool                            `json:"use_jump_clusters"`
	ExtOutboundSecurityGroupId string                          `json:"ext_outbound_security_group_id"`
	ExtOutboundSubnetId        string                          `json:"ext_outbound_subnet_id"`
	ExtOutboundBrokers         []ExtOutboundClusterKafkaBroker `json:"aws_kafka_brokers"`

	HasExistingPrivateLink       bool     `json:"has_existing_private_link"`
	ReuseExistingSubnets         bool     `json:"reuse_existing_subnets"`
	PrivateLinkExistingSubnetIds []string `json:"private_link_existing_subnet_ids"`
	PrivateLinkNewSubnetsCidr    []string `json:"private_link_new_subnets_cidr"`

	HasExistingInternetGateway bool `json:"has_existing_internet_gateway"`

	JumpClusterInstanceType        string   `json:"jump_cluster_instance_type"`
	JumpClusterBrokerStorage       int      `json:"jump_cluster_broker_storage"`
	JumpClusterBrokerSubnetCidr    []string `json:"jump_cluster_broker_subnet_cidr"`
	JumpClusterSetupHostSubnetCidr string   `json:"jump_cluster_setup_host_subnet_cidr"`

	MskJumpClusterAuthType       string `json:"msk_jump_cluster_auth_type"`
	MskClusterId                 string `json:"msk_cluster_id"`
	JumpClusterIamAuthRoleName   string `json:"jump_cluster_iam_auth_role_name"`
	MskSaslScramBootstrapServers string `json:"msk_sasl_scram_bootstrap_servers"`
	MskSaslIamBootstrapServers   string `json:"msk_sasl_iam_bootstrap_servers"`
	MskRegion                    string `json:"msk_region"`
	TargetEnvironmentId          string `json:"target_environment_id"`
	TargetClusterId              string `json:"target_cluster_id"`
	TargetRestEndpoint           string `json:"target_rest_endpoint"`
	TargetBootstrapEndpoint      string `json:"target_bootstrap_endpoint"`
	ClusterLinkName              string `json:"cluster_link_name"`
}

type MirrorTopicsRequest added in v0.5.0

type MirrorTopicsRequest struct {
	SelectedTopics            []string `json:"selected_topics"`
	ClusterLinkName           string   `json:"cluster_link_name"`
	TargetClusterId           string   `json:"target_cluster_id"`
	TargetClusterRestEndpoint string   `json:"target_cluster_rest_endpoint"`
}

type ProcessedAggregates added in v0.4.0

type ProcessedAggregates struct {
	AWSCertificateManager                ServiceCostAggregates `json:"AWS Certificate Manager"`
	AmazonManagedStreamingForApacheKafka ServiceCostAggregates `json:"Amazon Managed Streaming for Apache Kafka"`
	EC2Other                             ServiceCostAggregates `json:"EC2 - Other"`
}

ProcessedAggregates represents the three specific services we query

func NewProcessedAggregates added in v0.4.0

func NewProcessedAggregates() ProcessedAggregates

NewProcessedAggregates creates a new ProcessedAggregates with all maps initialized

type ProcessedCluster added in v0.4.0

type ProcessedCluster struct {
	Name                        string                      `json:"name"`
	Arn                         string                      `json:"arn"`
	Region                      string                      `json:"region"`
	ClusterMetrics              ProcessedClusterMetrics     `json:"metrics"` // Flattened from raw CloudWatch metrics
	AWSClientInformation        AWSClientInformation        `json:"aws_client_information"`
	KafkaAdminClientInformation KafkaAdminClientInformation `json:"kafka_admin_client_information"`
}

ProcessedCluster contains the complete cluster data with flattened metrics This is the full cluster information with processed metrics, unlike the simplified version in types.go

type ProcessedClusterMetrics added in v0.4.0

type ProcessedClusterMetrics struct {
	Region     string                     `json:"region"`
	ClusterArn string                     `json:"cluster_arn"`
	Metadata   MetricMetadata             `json:"metadata"`
	Metrics    []ProcessedMetric          `json:"results"`
	Aggregates map[string]MetricAggregate `json:"aggregates"`
}

type ProcessedCost added in v0.4.0

type ProcessedCost struct {
	Start     string                 `json:"start"`
	End       string                 `json:"end"`
	Service   string                 `json:"service"`
	UsageType string                 `json:"usage_type"`
	Values    ProcessedCostBreakdown `json:"values"`
}

type ProcessedCostBreakdown added in v0.4.0

type ProcessedCostBreakdown struct {
	UnblendedCost    float64 `json:"unblended_cost"`
	BlendedCost      float64 `json:"blended_cost"`
	AmortizedCost    float64 `json:"amortized_cost"`
	NetAmortizedCost float64 `json:"net_amortized_cost"`
	NetUnblendedCost float64 `json:"net_unblended_cost"`
}

type ProcessedMetric added in v0.4.0

type ProcessedMetric struct {
	Start string   `json:"start"`
	End   string   `json:"end"`
	Label string   `json:"label"`
	Value *float64 `json:"value"`
}

type ProcessedRegion added in v0.4.0

type ProcessedRegion struct {
	Name           string                                      `json:"name"`
	Configurations []kafka.DescribeConfigurationRevisionOutput `json:"configurations"`
	Costs          ProcessedRegionCosts                        `json:"costs"`    // Flattened from raw AWS Cost Explorer data
	Clusters       []ProcessedCluster                          `json:"clusters"` // Simplified from full DiscoveredCluster data
}

ProcessedRegion mirrors DiscoveredRegion but with flattened costs and simplified clusters

type ProcessedRegionCosts added in v0.4.0

type ProcessedRegionCosts struct {
	Region     string              `json:"region"`
	Metadata   CostMetadata        `json:"metadata"`
	Results    []ProcessedCost     `json:"results"`
	Aggregates ProcessedAggregates `json:"aggregates"`
}

type ProcessedState added in v0.4.0

type ProcessedState struct {
	Regions          []ProcessedRegion           `json:"regions"`
	SchemaRegistries []SchemaRegistryInformation `json:"schema_registries"`
	KcpBuildInfo     KcpBuildInfo                `json:"kcp_build_info"`
	Timestamp        time.Time                   `json:"timestamp"`
}

ProcessedState represents the transformed output data structure This is what comes OUT of the frontend/API after processing the raw State data Same structure as State but with costs and metrics flattened for easier frontend consumption

type RegionAuth added in v0.4.0

type RegionAuth struct {
	Name     string        `yaml:"name"`
	Clusters []ClusterAuth `yaml:"clusters"`
}

func (*RegionAuth) MergeClusterConfigs added in v0.4.0

func (ra *RegionAuth) MergeClusterConfigs(existingRegion RegionAuth)

MergeClusterConfigs preserves existing cluster auth configurations from the existing region

type ReverseProxyRequest added in v0.5.0

type ReverseProxyRequest struct {
	Region                                 string `json:"region"`
	VPCId                                  string `json:"vpc_id"`
	PublicSubnetCidr                       string `json:"public_subnet_cidr"`
	ConfluentCloudClusterBootstrapEndpoint string `json:"confluent_cloud_cluster_bootstrap_endpoint"`
}

type SASLScramConfig added in v0.2.7

type SASLScramConfig struct {
	Use      bool   `yaml:"use"`
	Username string `yaml:"username"`
	Password string `yaml:"password"`
}

type SchemaRegistryAuthType added in v0.4.2

type SchemaRegistryAuthType string

SchemaRegistryAuthType represents the different authentication types supported by Schema Registry

const (
	SchemaRegistryAuthTypeUnauthenticated SchemaRegistryAuthType = "Unauthenticated"
	SchemaRegistryAuthTypeBasicAuth       SchemaRegistryAuthType = "BasicAuth"
)

type SchemaRegistryExporterConfig added in v0.5.0

type SchemaRegistryExporterConfig struct {
	Migrate   bool     `json:"migrate"`
	Subjects  []string `json:"subjects"`
	SourceURL string   `json:"source_url"`
}

type SchemaRegistryInformation added in v0.4.2

type SchemaRegistryInformation struct {
	Type                 string                       `json:"type"`
	URL                  string                       `json:"url"`
	DefaultCompatibility schemaregistry.Compatibility `json:"default_compatibility"`
	Contexts             []string                     `json:"contexts"`
	Subjects             []Subject                    `json:"subjects"`
}

type SelfManagedConnector added in v0.4.2

type SelfManagedConnector struct {
	Name        string         `json:"name"`
	Config      map[string]any `json:"config"`
	State       string         `json:"state,omitempty"`
	ConnectHost string         `json:"connect_host,omitempty"`
}

type SelfManagedConnectors added in v0.4.2

type SelfManagedConnectors struct {
	Connectors []SelfManagedConnector `json:"connectors"`
}

type ServiceCostAggregates added in v0.4.0

type ServiceCostAggregates struct {
	UnblendedCost    map[string]any `json:"unblended_cost"`
	BlendedCost      map[string]any `json:"blended_cost"`
	AmortizedCost    map[string]any `json:"amortized_cost"`
	NetAmortizedCost map[string]any `json:"net_amortized_cost"`
	NetUnblendedCost map[string]any `json:"net_unblended_cost"`
}

ServiceCostAggregates represents cost aggregates for a single service Uses explicit fields for each metric type instead of a map

type State added in v0.4.0

type State struct {
	Regions          []DiscoveredRegion          `json:"regions"`
	SchemaRegistries []SchemaRegistryInformation `json:"schema_registries"`
	KcpBuildInfo     KcpBuildInfo                `json:"kcp_build_info"`
	Timestamp        time.Time                   `json:"timestamp"`
}

State represents the raw input data structure (kcp-state.json file) This is what gets fed INTO the frontend/API for processing

func NewStateFrom added in v0.4.0

func NewStateFrom(fromState *State) *State

func NewStateFromFile added in v0.4.0

func NewStateFromFile(stateFile string) (*State, error)

func (*State) PersistStateFile added in v0.4.0

func (s *State) PersistStateFile(stateFile string) error

func (*State) UpsertRegion added in v0.4.0

func (s *State) UpsertRegion(newRegion DiscoveredRegion)

UpsertRegion inserts a new region or updates an existing one by name Automatically preserves KafkaAdminClientInformation from existing clusters

func (*State) WriteReportCommands added in v0.4.5

func (s *State) WriteReportCommands(filePath string, stateFilePath string) error

func (*State) WriteToFile added in v0.4.0

func (s *State) WriteToFile(filePath string) error

type Subject added in v0.4.2

type Subject struct {
	Name          string                          `json:"name"`
	SchemaType    string                          `json:"schema_type"`
	Compatibility string                          `json:"compatibility,omitempty"`
	Versions      []schemaregistry.SchemaMetadata `json:"versions"`
	Latest        schemaregistry.SchemaMetadata   `json:"latest_schema"`
}

type SubnetInfo added in v0.2.2

type SubnetInfo struct {
	SubnetMskBrokerId int    `json:"subnet_msk_broker_id"`
	SubnetId          string `json:"subnet_id"`
	AvailabilityZone  string `json:"availability_zone"`
	PrivateIpAddress  string `json:"private_ip_address"`
	CidrBlock         string `json:"cidr_block"`
}

type TLSConfig added in v0.2.7

type TLSConfig struct {
	Use        bool   `yaml:"use"`
	CACert     string `yaml:"ca_cert"`
	ClientCert string `yaml:"client_cert"`
	ClientKey  string `yaml:"client_key"`
}

type TargetClusterWizardRequest added in v0.5.0

type TargetClusterWizardRequest struct {
	AwsRegion        string   `json:"aws_region"`
	NeedsEnvironment bool     `json:"needs_environment"`
	EnvironmentName  string   `json:"environment_name"`
	EnvironmentId    string   `json:"environment_id"`
	NeedsCluster     bool     `json:"needs_cluster"`
	ClusterName      string   `json:"cluster_name"`
	ClusterType      string   `json:"cluster_type"`
	NeedsPrivateLink bool     `json:"needs_private_link"`
	VpcId            string   `json:"vpc_id"`
	SubnetCidrRanges []string `json:"subnet_cidr_ranges"`
}

type TerraformFiles added in v0.5.0

type TerraformFiles struct {
	MainTf           string `json:"main.tf"`
	ProvidersTf      string `json:"providers.tf"`
	VariablesTf      string `json:"variables.tf"`
	InputsAutoTfvars string `json:"inputs.auto.tfvars"`
	OutputsTf        string `json:"outputs.tf"`
}

type TerraformOutput

type TerraformOutput struct {
	Name        string
	Description string
	Sensitive   bool
	Value       string
}

type TerraformOutputOld added in v0.5.0

type TerraformOutputOld struct {
	ConfluentCloudClusterApiKey                TerraformOutputValue `json:"confluent_cloud_cluster_api_key"`
	ConfluentCloudClusterApiKeySecret          TerraformOutputValue `json:"confluent_cloud_cluster_api_key_secret"`
	ConfluentCloudClusterId                    TerraformOutputValue `json:"confluent_cloud_cluster_id"`
	ConfluentCloudClusterRestEndpoint          TerraformOutputValue `json:"confluent_cloud_cluster_rest_endpoint"`
	ConfluentCloudClusterBootstrapEndpoint     TerraformOutputValue `json:"confluent_cloud_cluster_bootstrap_endpoint"`
	ConfluentPlatformControllerBootstrapServer TerraformOutputValue `json:"confluent_platform_controller_bootstrap_server"`
}

a type for the output.json file in the target_env folder NOTE: This will be deprecated once we are completely on the HCL-servrice based approach.

type TerraformOutputValue

type TerraformOutputValue struct {
	Sensitive bool   `json:"sensitive"`
	Type      string `json:"type"`
	Value     any    `json:"value"`
}

type TerraformState

type TerraformState struct {
	Outputs TerraformOutputOld `json:"outputs"`
}

type TerraformVariable added in v0.5.0

type TerraformVariable struct {
	Name        string `json:"name"`
	Description string `json:"description"`
	Sensitive   bool   `json:"sensitive"`
	Type        string `json:"type"`
}

type TopicDetails added in v0.3.4

type TopicDetails struct {
	Name              string             `json:"name"`
	Partitions        int                `json:"partitions"`
	ReplicationFactor int                `json:"replication_factor"`
	Configurations    map[string]*string `json:"configurations"`
}

type TopicSummary added in v0.3.4

type TopicSummary struct {
	Topics                    int `json:"topics"`
	InternalTopics            int `json:"internal_topics"`
	TotalPartitions           int `json:"total_partitions"`
	TotalInternalPartitions   int `json:"total_internal_partitions"`
	CompactTopics             int `json:"compact_topics"`
	CompactInternalTopics     int `json:"compact_internal_topics"`
	CompactPartitions         int `json:"compact_partitions"`
	CompactInternalPartitions int `json:"compact_internal_partitions"`
}

func CalculateTopicSummaryFromDetails added in v0.3.4

func CalculateTopicSummaryFromDetails(topicDetails []TopicDetails) TopicSummary

type Topics added in v0.3.3

type Topics struct {
	Summary TopicSummary   `json:"summary"`
	Details []TopicDetails `json:"details"`
}

type UnauthenticatedPlaintextConfig added in v0.4.0

type UnauthenticatedPlaintextConfig struct {
	Use bool `yaml:"use"`
}

type UnauthenticatedTLSConfig added in v0.4.0

type UnauthenticatedTLSConfig struct {
	Use bool `yaml:"use"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL