// Code generated by go-swagger; DO NOT EDIT.

package models

// This file was generated by the swagger tool.
// Editing this file might prove futile when you re-run the swagger generate command

import (
	"context"

	"github.com/go-openapi/strfmt"
	"github.com/go-openapi/swag"
)

// HashicorpCloudConsulTelemetry20230414Cluster Cluster is the cluster that a service is from.
//
// swagger:model hashicorp.cloud.consul_telemetry_20230414.Cluster
type HashicorpCloudConsulTelemetry20230414Cluster struct {

	// datacenter is the name of the cluster within Consul itself. This may differ from the cluster's
	// id/name in GNM if an existing cluster is linked with differing names.
	Datacenter string `json:"datacenter,omitempty"`

	// external is set to true if the cluster could not be found in GNM, implying that this cluster is unlinked or outside the project.
	External bool `json:"external,omitempty"`

	// ID is the user settable name of the cluster in GNM.
	ID string `json:"id,omitempty"`

	// licensing describes the licensing state of the cluster. These map to the cluster's licensing
	// state in GNM.
	Licensing string `json:"licensing,omitempty"`

	// trust_domain of the cluster. This is a globally unique UUID created by the Consul cluster on startup
	// for its certificate authority if connect is enabled: https://developer.hashicorp.com/consul/api-docs/connect/ca#sample-request.
	TrustDomain string `json:"trust_domain,omitempty"`
}

// Validate validates this hashicorp cloud consul telemetry 20230414 cluster
func (m *HashicorpCloudConsulTelemetry20230414Cluster) Validate(formats strfmt.Registry) error {
	return nil
}

// ContextValidate validates this hashicorp cloud consul telemetry 20230414 cluster based on context it is used
func (m *HashicorpCloudConsulTelemetry20230414Cluster) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
	return nil
}

// MarshalBinary interface implementation
func (m *HashicorpCloudConsulTelemetry20230414Cluster) MarshalBinary() ([]byte, error) {
	if m == nil {
		return nil, nil
	}
	return swag.WriteJSON(m)
}

// UnmarshalBinary interface implementation
func (m *HashicorpCloudConsulTelemetry20230414Cluster) UnmarshalBinary(b []byte) error {
	var res HashicorpCloudConsulTelemetry20230414Cluster
	if err := swag.ReadJSON(b, &res); err != nil {
		return err
	}
	*m = res
	return nil
}
