registry

package
v1.6.0 Latest Latest
Warning

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

Go to latest
Published: Oct 31, 2024 License: Apache-2.0 Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var Resources = mustValidate([]Resource{
	{
		Name:   "blackhole_alert_notifier",
		Entity: "Notifier",
		API:    V1,
		Schema: tfschema.BlackholeAlertNotifier,
	},
	{
		Name:   "bucket",
		Entity: "Bucket",
		API:    V1,
		Schema: tfschema.Bucket,
	},
	{
		Name:   "collection",
		Entity: "Collection",
		API:    V1,
		Schema: tfschema.Collection,
	},
	{
		Name:   "dashboard",
		Entity: "Dashboard",
		API:    V1,
		Schema: tfschema.Dashboard,
	},
	{
		Name:   "dataset",
		Entity: "Dataset",
		API:    V1,
		Schema: tfschema.Dataset,
	},
	{
		Name:   "derived_label",
		Entity: "DerivedLabel",
		API:    V1,
		Schema: tfschema.DerivedLabel,
	},
	{
		Name:   "derived_metric",
		Entity: "DerivedMetric",
		API:    V1,
		Schema: tfschema.DerivedMetric,
	},
	{
		Name:   "drop_rule",
		Entity: "DropRule",
		API:    V1,
		Schema: tfschema.DropRule,
	},
	{
		Name:   "email_alert_notifier",
		Entity: "Notifier",
		API:    V1,
		Schema: tfschema.EmailAlertNotifier,
	},
	{
		Name:   "classic_dashboard",
		Entity: "GrafanaDashboard",
		API:    V1,
		Schema: tfschema.ClassicDashboard,
	},
	{
		Name:   "gcp_metrics_integration",
		Entity: "GcpMetricsIntegration",
		API:    V1,
		Schema: tfschema.GcpMetricsIntegration,
	},
	{
		Name:   "mapping_rule",
		Entity: "MappingRule",
		API:    V1,
		Schema: tfschema.MappingRule,
	},
	{
		Name:   "monitor",
		Entity: "Monitor",
		API:    V1,
		Schema: tfschema.Monitor,
	},
	{
		Name:   "notification_policy",
		Entity: "NotificationPolicy",
		API:    V1,
		Schema: tfschema.NotificationPolicy,
	},
	{
		Name:   "opsgenie_alert_notifier",
		Entity: "Notifier",
		API:    V1,
		Schema: tfschema.OpsgenieAlertNotifier,
	},
	{
		Name:        "otel_metrics_ingestion",
		Entity:      "OtelMetricsIngestion",
		API:         V1,
		Schema:      tfschema.OtelMetricsIngestion,
		SingletonID: "otel_metrics_ingestion_singleton",
	},
	{
		Name:   "pagerduty_alert_notifier",
		Entity: "Notifier",
		API:    V1,
		Schema: tfschema.PagerdutyAlertNotifier,
	},
	{
		Name:   "recording_rule",
		Entity: "RecordingRule",
		API:    V1,
		Schema: tfschema.RecordingRule,
	},
	{
		Name:        "resource_pools_config",
		Entity:      "ResourcePools",
		API:         V1,
		Schema:      tfschema.ResourcePoolsConfig,
		SingletonID: "resource_pool_singleton",
	},
	{
		Name:   "rollup_rule",
		Entity: "RollupRule",
		API:    V1,
		Schema: tfschema.RollupRule,
	},
	{
		Name:              "service_account",
		Entity:            "ServiceAccount",
		API:               V1,
		Schema:            tfschema.ServiceAccount,
		UpdateUnsupported: true,
	},
	{
		Name:   "slack_alert_notifier",
		Entity: "Notifier",
		API:    V1,
		Schema: tfschema.SlackAlertNotifier,
	},
	{
		Name:   "team",
		Entity: "Team",
		API:    V1,
		Schema: tfschema.Team,
	},
	{
		Name:   "trace_metrics_rule",
		Entity: "TraceMetricsRule",
		API:    V1,
		Schema: tfschema.TraceMetricsRule,
	},
	{
		Name:   "trace_jaeger_remote_sampling_strategy",
		Entity: "TraceJaegerRemoteSamplingStrategy",
		API:    V1,
		Schema: tfschema.TraceJaegerRemoteSamplingStrategy,
	},
	{
		Name:   "victorops_alert_notifier",
		Entity: "Notifier",
		API:    V1,
		Schema: tfschema.VictoropsAlertNotifier,
	},
	{
		Name:   "webhook_alert_notifier",
		Entity: "Notifier",
		API:    V1,
		Schema: tfschema.WebhookAlertNotifier,
	},
	{
		Name:        "trace_tail_sampling_rules",
		Entity:      "TraceTailSamplingRules",
		API:         V1,
		Schema:      tfschema.TraceTailSamplingRules,
		SingletonID: "trace_tail_sampling_singleton",
	},
	{
		Name:   "logscale_alert",
		Entity: "LogScaleAlert",
		API:    V1,
		Schema: tfschema.LogscaleAlert,
	},
	{
		Name:   "logscale_action",
		Entity: "LogScaleAction",
		API:    V1,
		Schema: tfschema.LogscaleAction,
	},
	{
		Name:        "log_allocation_config",
		Entity:      "LogAllocationConfig",
		API:         Unstable,
		Schema:      tfschema.LogAllocationConfig,
		SingletonID: "log_allocation_config_singleton",
	},
})

Functions

This section is empty.

Types

type API

type API string

API is an API namespace.

const (
	V1       API = "v1"
	Unstable API = "unstable"
	Legacy   API = "legacy"
)

type Resource

type Resource struct {
	// Name is the name of the resource (without a "chronosphere_" prefix).
	Name string

	// Entity is the name of the entity the resource wraps.
	Entity string

	// API is the API namespace which backs the resource.
	API API

	// Schema is the tfschema which defines the resource.
	Schema map[string]*schema.Schema

	// Only set if the resource is a singleton.
	SingletonID string

	// DisableDryRun is a flag to disable dry run for a resource.
	DisableDryRun bool

	// DisableExportImport silently disables all paginated list helpers by
	// returning no results, thus preventing export-config/import-state from
	// observing any entities. Only useful when promoting an entity from
	// unstable to V1 and you need to temporarily prevent
	// export-config/import-state tests from hitting a disabled unstable API.
	DisableExportImport bool

	// UpdateUnsupported disables generateresource from creating an update helper
	// for the given resource type. This is currently designed with ServiceAccounts
	// in mind, as the resource only support CRD+list.
	UpdateUnsupported bool
}

Resource consolidates metadata for a Terraform resource.

func AllEntities added in v1.1.0

func AllEntities(api API) []Resource

AllEntities returns all entities which are registered against the given API. It includes Singletons, and is used for generating CRUD bindings.

func NamedEntities added in v1.1.0

func NamedEntities(api API) []Resource

NamedEntities returns all entities which are registered against the given API. It only includes non-singleton entities and is useful for use-cases that don't make sense for singletons, such as generating List bindings.

func (Resource) Type

func (r Resource) Type() string

Jump to

Keyboard shortcuts

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