Documentation ¶
Overview ¶
* * @license * Copyright 2023 Dynatrace LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License.
* * @license * Copyright 2023 Dynatrace LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License.
Index ¶
- Constants
- Variables
- func AsDataSource(resource *Resource) string
- func CeilDivide(a, b int) int
- func ConfigureRESTLog() (err error)
- func ContainsResource(nonPostProcessedResources []*Resource, resource *Resource) bool
- func DefaultReplace(s string, cnt int) string
- func GetHash32(input string) uint32
- func GetHash64(input string) uint64
- func GetHashName(name string) string
- func IsIgnoredResource(resourceType ResourceType, id string) bool
- func LoadIgnoreResourcesMap() error
- func LoadStateFile(filePath string) (*state, error)
- func LoadStateLinked() (*state, error)
- func LoadStateThis() (*state, error)
- func ResourceName(s string, cnt int) string
- func Service(credentials *settings.Credentials, resourceType ResourceType) settings.CRUDService[settings.Settings]
- func SetOptimizedRegexModule(module *Module)
- func SetOptimizedRegexResource(resource *Resource)
- func ToParent(keyVal string) string
- func ValidateResource(keyVal string) (string, string)
- type DataSource
- type DataSourceKind
- type DataSourceType
- type Dependency
- type Environment
- func (me *Environment) CreateFile(name string) (*os.File, error)
- func (me *Environment) DataSource(id string, kind DataSourceKind, excepts ...ResourceType) *DataSource
- func (me *Environment) ExecuteImport() error
- func (me *Environment) Export() (err error)
- func (me *Environment) FetchEntity(id string) *DataSource
- func (me *Environment) Finish() (err error)
- func (me *Environment) FinishExport() error
- func (me *Environment) GetAttentionFolder() string
- func (me *Environment) GetChildResources(optSort ...bool) []*Resource
- func (me *Environment) GetFlawedFolder() string
- func (me *Environment) GetFolder() string
- func (me *Environment) GetNonPostProcessedResources() []*Resource
- func (me *Environment) GetReferringResources(resource *Resource) []*Resource
- func (me *Environment) GetResourceTypesWithDownloads() []ResourceType
- func (me *Environment) InitialDownload() error
- func (me *Environment) IsReferenced(resource *Resource) bool
- func (me *Environment) LoadImportState() error
- func (me *Environment) Module(resType ResourceType) *Module
- func (me *Environment) PostProcess() error
- func (me *Environment) PreProcess() error
- func (me *Environment) ProcessChildParentGroups()
- func (me *Environment) ProcessHasDependenciesTo()
- func (me *Environment) ProcessPrevState() error
- func (me *Environment) RefersTo(resource *Resource, parentType ResourceType) bool
- func (me *Environment) RemoveNonReferencedModules() (err error)
- func (me *Environment) RunQuickInit() error
- func (me *Environment) RunTerraformInit() error
- func (me *Environment) TenantID() string
- func (me *Environment) WriteDataSourceFiles() (err error)
- func (me *Environment) WriteMainFile() error
- func (me *Environment) WriteMainProviderFile() error
- func (me *Environment) WriteProviderFiles() (err error)
- func (me *Environment) WriteQuickModulesJSON() error
- func (me *Environment) WriteResourceFiles() (err error)
- func (me *Environment) WriteVariablesFiles() (err error)
- type Flags
- type IgnoreResourcesMap
- type Module
- func (me *Module) ContainsPostProcessedResources() bool
- func (me *Module) CreateBundleFile(bundle bundleToDownload) (*os.File, error)
- func (me *Module) CreateFile(name string) (*os.File, error)
- func (me *Module) CreateFileSpecificPath(name string, specificPath string) (*os.File, error)
- func (me *Module) DataSource(id string, kind DataSourceKind, excepts ...ResourceType) *DataSource
- func (me *Module) Discover() error
- func (me *Module) Download(multiThreaded bool, keys ...string) (err error)
- func (me *Module) ExecuteImportV2(fs afero.Fs) (resList resources, err error)
- func (me *Module) FolderNameOverride() string
- func (me *Module) GetAttentionFolder(relative ...bool) string
- func (me *Module) GetBundleFile(bundle bundleToDownload) (string, error)
- func (me *Module) GetBundleFileName(bundle bundleToDownload) string
- func (me *Module) GetChildOfResources() []*Resource
- func (me *Module) GetChildResources() []*Resource
- func (me *Module) GetDataSources(dataSources map[string]*DataSource)
- func (me *Module) GetDependencyOptimizationInfo() (string, bool)
- func (me *Module) GetDescriptor() *ResourceDescriptor
- func (me *Module) GetFile(name string) string
- func (me *Module) GetFileSpecificPath(name string, specificPath string) string
- func (me *Module) GetFlawedFolder(relative ...bool) string
- func (me *Module) GetFolder(relative ...bool) string
- func (me *Module) GetLegacyIdMap() map[string]*Resource
- func (me *Module) GetNonPostProcessedResources() []*Resource
- func (me *Module) GetPostProcessedResources() []*Resource
- func (me *Module) GetReferencedResourceTypes() []ResourceType
- func (me *Module) GetReferringResources(resource *Resource) []*Resource
- func (me *Module) GetRegexType() string
- func (me *Module) GetResourceReferences() []*Resource
- func (me *Module) GetResourcesAndChildOfResources() []*Resource
- func (me *Module) GetResourcesReferencedFromOtherModules() []*Resource
- func (me *Module) IsBundleImpossible() bool
- func (me *Module) IsReferenced(resource *Resource) bool
- func (me *Module) IsReferencedAsDataSource() bool
- func (me *Module) MkdirAll(flawed bool) error
- func (me *Module) OpenFile(name string) (file *os.File, err error)
- func (me *Module) ProvideDataSources(except map[string]*DataSource) (dsm map[string]string, err error)
- func (me *Module) PurgeFolder() (err error)
- func (me *Module) RefersTo(resource *Resource, parentType ResourceType) bool
- func (me *Module) Resource(id string) *Resource
- func (me *Module) SortedDataSources() (result []*DataSource)
- func (me *Module) WriteDataSourcesFile(logToScreen bool) (err error)
- func (me *Module) WriteProviderFile(logToScreen bool) (err error)
- func (me *Module) WriteResourcesFile() (err error)
- func (me *Module) WriteVariablesFile(logToScreen bool) (err error)
- type ModuleStatus
- type ReplaceFunc
- type Resource
- func (me *Resource) CreateFile() (*os.File, error)
- func (me *Resource) Download() error
- func (me *Resource) GetAttentionFile() string
- func (me *Resource) GetExtractedIdsPerRegexType(idRegexType string, tfFileContent string, optimizers map[string]optimizedIdDep) map[string]bool
- func (me *Resource) GetFile() string
- func (me *Resource) GetFileName() string
- func (me *Resource) GetFlawedFile() string
- func (me *Resource) GetParent() *Resource
- func (me *Resource) GetReferringResources() []*Resource
- func (me *Resource) GetResourceReferences() []*Resource
- func (me *Resource) IsReferenced() bool
- func (me *Resource) IsReferencedAsDataSource() bool
- func (me *Resource) PostProcess(nonPostProcessedResources []*Resource) error
- func (me *Resource) ReadFile() ([]byte, error)
- func (me *Resource) RefersTo(other *Resource) bool
- func (me *Resource) SetName(name string) *Resource
- type ResourceDescriptor
- func NewChildResourceDescriptor[T settings.Settings](fn func(credentials *settings.Credentials) settings.CRUDService[T], ...) ResourceDescriptor
- func NewResourceDescriptor[T settings.Settings](fn func(credentials *settings.Credentials) settings.CRUDService[T], ...) ResourceDescriptor
- func NewResourceDescriptorWithFolderOverride[T settings.Settings](fn func(credentials *settings.Credentials) settings.CRUDService[T], ...) ResourceDescriptor
- type ResourceExclusion
- type ResourceExclusionGroup
- type ResourceStatus
- type ResourceType
- func (me ResourceType) AsDataSource() string
- func (rt ResourceType) CanGetVoidedIfNotReferenced() bool
- func (me ResourceType) GetChildren() []ResourceType
- func (me ResourceType) GetFolderName(override string) string
- func (me ResourceType) GetParent() ResourceType
- func (me ResourceType) IsChildResource() bool
- func (rt ResourceType) IsPotentialCircularDependencyTo(referringResourceID string, referredToResourceType ResourceType, ...) bool
- func (rt ResourceType) Less(other ResourceType) bool
- func (me ResourceType) Trim() string
- func (rt ResourceType) VoidResource(resource *Resource, contents []byte) ([]byte, bool)
- type StateMap
- func (sm *StateMap) AddToStateMap(key string, res resource)
- func (sm *StateMap) AddToStateMapByID(res resource)
- func (sm *StateMap) AddToStateMapByName(res resource)
- func (sm *StateMap) ExtractCommonStates(smLinked *StateMap) (*StateMap, map[string][]string)
- func (sm *StateMap) GetPrevUniqueName(res *Resource) string
- func (sm *StateMap) GetResourceSplitId(res *Resource) (int, bool)
- type StateResource
- type TerraformInitModule
- type TerraformInitModuleList
- type UniqueNamer
Constants ¶
const CALC_METRIC_REGEX = "CALC_METRIC_REGEX"
const ClearLine = "\033[2K"
const DYNATRACE_PROVIDER_SOURCE = "DYNATRACE_PROVIDER_SOURCE"
const DYNATRACE_PROVIDER_VERSION = "DYNATRACE_PROVIDER_VERSION"
const ENTITY_REGEX = "ENTITY_REGEX"
const ENV_VAR_CUSTOM_PROVIDER_LOCATION = "DYNATRACE_CUSTOM_PROVIDER_LOCATION"
const LEGACY_MZ_ID_REGEX = "LEGACY_MZ_ID"
const MAX_PATH_LENGTH_FILENAME_SHORTER = 240
const NONE = "NONE"
const V1_CONFIG_ID_REGEX = "V1_CONFIG_ID_REGEX"
Variables ¶
var ANSI_ESCAPE_PATTERN = regexp.MustCompile(`\x1B(?:[@-Z\\-_]|\[[0-?]*[ -/]*[@-~])`)
var ATOMIC_DEPENDENCIES = os.Getenv("DYNATRACE_ATOMIC_DEPENDENCIES") == "true"
To allow -target to work with dependencies at an atomic level
var AllResources = map[ResourceType]ResourceDescriptor{}/* 331 elements not displayed */
var BackgroundContext = context.Background()
var CleanUp = &cleanUp{finalizers: []func(){ cache.Cleanup, }}
var DataSourceKindEntity = DataSourceKind("entity")
var DataSourceKindPolicy = DataSourceKind("policy")
var DataSourceKindTenant = DataSourceKind("tenant")
var DataSourceTypes = struct { Service DataSourceType AWSIAMExternalID DataSourceType }{ "dynatrace_service", "dynatrace_aws_iam_external", }
var Dependencies = struct { ManagementZone Dependency DashboardLinkID func(parent bool) Dependency HyperLinkDashboardID func() Dependency LegacyID func(resourceType ResourceType) Dependency ID func(resourceType ResourceType) Dependency WeakID func(resourceType ResourceType) Dependency QuotedID func(resourceType ResourceType) Dependency ResourceID func(resourceType ResourceType, parent bool) Dependency ServiceMethod Dependency Service Dependency HostGroup Dependency Host Dependency Disk Dependency ProcessGroup Dependency ProcessGroupInstance Dependency RequestAttribute Dependency // CustomApplication Dependency // MobileApplication Dependency DeviceApplicationMethod Dependency // Application Dependency ApplicationMethod Dependency // SyntheticTest Dependency // HttpCheck Dependency K8sCluster Dependency CloudApplication Dependency CloudApplicationNamespace Dependency EnvironmentActiveGate Dependency Tenant Dependency GlobalPolicy Dependency }{ ManagementZone: &mgmzdep{ResourceTypes.ManagementZoneV2}, DashboardLinkID: func(parent bool) Dependency { return &dashlinkdep{ResourceTypes.JSONDashboardBase, parent} }, HyperLinkDashboardID: func() Dependency { return &dashdep{ResourceTypes.JSONDashboardBase, false} }, LegacyID: func(resourceType ResourceType) Dependency { return &legacyID{resourceType} }, ID: func(resourceType ResourceType) Dependency { return &iddep{resourceType: resourceType, quoted: false} }, WeakID: func(resourceType ResourceType) Dependency { return &iddep{resourceType: resourceType, quoted: false, onlyNonPostProcessed: true} }, QuotedID: func(resourceType ResourceType) Dependency { return &iddep{resourceType: resourceType, quoted: true} }, ResourceID: func(resourceType ResourceType, parent bool) Dependency { return &resourceIDDep{resourceType, parent} }, ServiceMethod: &entityds{"SERVICE_METHOD", "SERVICE_METHOD-[A-Z0-9]{16}", false}, Service: &entityds{"SERVICE", "SERVICE-[A-Z0-9]{16}", false}, HostGroup: &entityds{"HOST_GROUP", "HOST_GROUP-[A-Z0-9]{16}", false}, Host: &entityds{"HOST", "HOST-[A-Z0-9]{16}", false}, Disk: &entityds{"DISK", "DISK-[A-Z0-9]{16}", false}, ProcessGroup: &entityds{"PROCESS_GROUP", "PROCESS_GROUP-[A-Z0-9]{16}", false}, ProcessGroupInstance: &entityds{"PROCESS_GROUP_INSTANCE", "PROCESS_GROUP_INSTANCE-[A-Z0-9]{16}", false}, RequestAttribute: &reqAttName{ResourceTypes.RequestAttribute}, DeviceApplicationMethod: &entityds{"DEVICE_APPLICATION_METHOD", "DEVICE_APPLICATION_METHOD-[A-Z0-9]{16}", false}, ApplicationMethod: &entityds{"APPLICATION_METHOD", "APPLICATION_METHOD-[A-Z0-9]{16}", false}, K8sCluster: &entityds{"KUBERNETES_CLUSTER", "KUBERNETES_CLUSTER-[A-Z0-9]{16}", false}, CloudApplication: &entityds{"CLOUD_APPLICATION", "CLOUD_APPLICATION-[A-Z0-9]{16}", false}, CloudApplicationNamespace: &entityds{"CLOUD_APPLICATION_NAMESPACE", "CLOUD_APPLICATION_NAMESPACE-[A-Z0-9]{16}", false}, EnvironmentActiveGate: &entityds{"ENVIRONMENT_ACTIVE_GATE", "ENVIRONMENT_ACTIVE_GATE-[A-Z0-9]{16}", false}, Tenant: &tenantds{}, GlobalPolicy: &policyds{}, }
var ENABLE_EXPORT_DASHBOARD = os.Getenv("DYNATRACE_ENABLE_EXPORT_DASHBOARD") == "true"
var EXPORT_IGNORE_RESOURCES_PATH = os.Getenv("DYNATRACE_EXPORT_IGNORE_RESOURCES")
var HCL_NO_FORMAT = os.Getenv("DYNATRACE_HCL_NO_FORMAT") == "true"
To speed things up when using Dynatrace Config Manager
var IMPORT_STATE_PATH = os.Getenv("DYNATRACE_IMPORT_STATE_PATH")
var JSON_DASHBOARD_BASE_PLUS = os.Getenv("DYNATRACE_JSON_DASHBOARD_BASE_PLUS") == "true"
var ModuleStati = struct { Untouched ModuleStatus Discovered ModuleStatus Downloaded ModuleStatus Erronous ModuleStatus Imported ModuleStatus }{ "Untouched", "Discovered", "Downloaded", "Erronous", "Imported", }
var NAME_REPLACE_DASH = os.Getenv("DYNATRACE_NAME_REPLACE_DASH") == "true"
To get more unique names when using Dynatrace Config Manager
var NO_REFRESH_ON_IMPORT = os.Getenv("DYNATRACE_NO_REFRESH_ON_IMPORT") == "true"
var OptimizedKeyRegexId = mergeMaps(OptimizedKeyRegexV1, map[string]optimizedIdDep{ ENTITY_REGEX: {entityExtractionRegex, func(text string, id string) bool { entityIdType := string(id[0:(len(id) - 17)]) return strings.Contains(text, entityIdType) }}, CALC_METRIC_REGEX: {calcMetricKeyRegex, func(text string, id string) bool { return strings.Contains(text, "calc:") }}, })
var OptimizedKeyRegexMzLegacy = map[string]optimizedIdDep{}
var OptimizedKeyRegexV1 = map[string]optimizedIdDep{ V1_CONFIG_ID_REGEX: {v1ConfigIdRegex, func(text string, id string) bool { return true }}, }
var PREV_STATE_ON = os.Getenv("DYNATRACE_PREV_STATE_ON") == "true"
var PREV_STATE_PATH_LINKED = os.Getenv("DYNATRACE_PREV_STATE_PATH_LINKED")
var PREV_STATE_PATH_THIS = os.Getenv("DYNATRACE_PREV_STATE_PATH_THIS")
var QUICK_INIT = os.Getenv("DYNATRACE_QUICK_INIT") == "true"
var ResourceStati = struct { Downloaded ResourceStatus Erronous ResourceStatus Excluded ResourceStatus Discovered ResourceStatus PostProcessed ResourceStatus }{ "Downloaded", "Erronous", "Excluded", "Discovered", "PostProcessed", }
var ResourceTypes = struct { AutoTag ResourceType AutoTagV2 ResourceType CustomService ResourceType RequestAttribute ResourceType ApplicationAnomalies ResourceType DatabaseAnomalies ResourceType DiskEventAnomalies ResourceType HostAnomalies ResourceType ServiceAnomalies ResourceType CustomAnomalies ResourceType WebApplication ResourceType MobileApplication ResourceType MaintenanceWindow ResourceType ManagementZone ResourceType SLO ResourceType SLOV2 ResourceType SpanAttribute ResourceType SpanCaptureRule ResourceType SpanContextPropagation ResourceType SpanEntryPoint ResourceType ResourceAttributes ResourceType JiraNotification ResourceType WebHookNotification ResourceType AnsibleTowerNotification ResourceType EmailNotification ResourceType OpsGenieNotification ResourceType PagerDutyNotification ResourceType ServiceNowNotification ResourceType SlackNotification ResourceType TrelloNotification ResourceType VictorOpsNotification ResourceType XMattersNotification ResourceType Alerting ResourceType FrequentIssues ResourceType MetricEvents ResourceType IBMMQFilters ResourceType IMSBridge ResourceType QueueManager ResourceType KeyRequests ResourceType Maintenance ResourceType ManagementZoneV2 ResourceType NetworkZones ResourceType AWSCredentials ResourceType AWSService ResourceType AzureCredentials ResourceType AzureService ResourceType CloudFoundryCredentials ResourceType KubernetesCredentials ResourceType Credentials ResourceType Dashboard ResourceType JSONDashboard ResourceType Documents ResourceType DirectShares ResourceType JSONDashboardBase ResourceType CalculatedServiceMetric ResourceType CalculatedWebMetric ResourceType CalculatedMobileMetric ResourceType CalculatedSyntheticMetric ResourceType HostNaming ResourceType ProcessGroupNaming ResourceType ServiceNaming ResourceType NetworkZone ResourceType RequestNaming ResourceType BrowserMonitor ResourceType HTTPMonitor ResourceType HTTPMonitorScript ResourceType DashboardSharing ResourceType ApplicationDetection ResourceType ApplicationErrorRules ResourceType ApplicationDataPrivacy ResourceType SyntheticLocation ResourceType Notification ResourceType QueueSharingGroups ResourceType AlertingProfile ResourceType RequestNamings ResourceType IAMUser ResourceType IAMGroup ResourceType IAMPermission ResourceType IAMPolicy ResourceType IAMPolicyBindings ResourceType IAMPolicyBindingsV2 ResourceType ProcessGroupAnomalies ResourceType DDUPool ResourceType ProcessGroupAlerting ResourceType ServiceAnomaliesV2 ResourceType DatabaseAnomaliesV2 ResourceType ProcessMonitoringRule ResourceType DiskAnomaliesV2 ResourceType DiskSpecificAnomaliesV2 ResourceType HostAnomaliesV2 ResourceType CustomAppAnomalies ResourceType CustomAppCrashRate ResourceType ProcessMonitoring ResourceType ProcessAvailability ResourceType AdvancedProcessGroupDetectionRule ResourceType MobileAppAnomalies ResourceType MobileAppCrashRate ResourceType WebAppAnomalies ResourceType MutedRequests ResourceType ConnectivityAlerts ResourceType DeclarativeGrouping ResourceType HostMonitoring ResourceType HostProcessGroupMonitoring ResourceType RUMIPLocations ResourceType CustomAppEnablement ResourceType MobileAppEnablement ResourceType WebAppEnablement ResourceType RUMProcessGroup ResourceType RUMProviderBreakdown ResourceType UserExperienceScore ResourceType WebAppResourceCleanup ResourceType UpdateWindows ResourceType ProcessGroupDetectionFlags ResourceType ProcessGroupMonitoring ResourceType ProcessGroupSimpleDetection ResourceType LogMetrics ResourceType BrowserMonitorPerformanceThresholds ResourceType HttpMonitorPerformanceThresholds ResourceType HttpMonitorCookies ResourceType SessionReplayWebPrivacy ResourceType SessionReplayResourceCapture ResourceType UsabilityAnalytics ResourceType SyntheticAvailability ResourceType BrowserMonitorOutageHandling ResourceType HttpMonitorOutageHandling ResourceType CloudAppWorkloadDetection ResourceType MainframeTransactionMonitoring ResourceType MonitoredTechnologiesApache ResourceType MonitoredTechnologiesDotNet ResourceType MonitoredTechnologiesGo ResourceType MonitoredTechnologiesIIS ResourceType MonitoredTechnologiesJava ResourceType MonitoredTechnologiesNGINX ResourceType MonitoredTechnologiesNodeJS ResourceType MonitoredTechnologiesOpenTracing ResourceType MonitoredTechnologiesPHP ResourceType MonitoredTechnologiesVarnish ResourceType MonitoredTechnologiesWSMB ResourceType ProcessVisibility ResourceType RUMHostHeaders ResourceType RUMIPDetermination ResourceType MobileAppRequestErrors ResourceType TransactionStartFilters ResourceType OneAgentFeatures ResourceType RUMOverloadPrevention ResourceType RUMAdvancedCorrelation ResourceType WebAppBeaconOrigins ResourceType WebAppResourceTypes ResourceType GenericTypes ResourceType GenericRelationships ResourceType SLONormalization ResourceType DataPrivacy ResourceType ServiceFailure ResourceType ServiceHTTPFailure ResourceType DiskOptions ResourceType OSServices ResourceType ExtensionExecutionController ResourceType NetTracerTraffic ResourceType AIXExtension ResourceType MetricMetadata ResourceType MetricQuery ResourceType ActiveGateToken ResourceType AGToken ResourceType AuditLog ResourceType K8sClusterAnomalies ResourceType K8sNamespaceAnomalies ResourceType K8sNodeAnomalies ResourceType K8sWorkloadAnomalies ResourceType ContainerBuiltinRule ResourceType ContainerRule ResourceType ContainerTechnology ResourceType ContainerRegistry ResourceType RemoteEnvironments ResourceType WebAppCustomErrors ResourceType WebAppRequestErrors ResourceType UserSettings ResourceType DashboardsGeneral ResourceType DashboardsPresets ResourceType LogProcessing ResourceType LogEvents ResourceType LogTimestamp ResourceType LogGrail ResourceType LogCustomAttribute ResourceType LogSensitiveDataMasking ResourceType LogStorage ResourceType LogBuckets ResourceType LogSecurityContext ResourceType EULASettings ResourceType APIDetectionRules ResourceType ServiceExternalWebRequest ResourceType ServiceExternalWebService ResourceType ServiceFullWebRequest ResourceType ServiceFullWebService ResourceType DashboardsAllowlist ResourceType FailureDetectionParameters ResourceType FailureDetectionRules ResourceType LogOneAgent ResourceType IssueTracking ResourceType GeolocationSettings ResourceType UserSessionCustomMetrics ResourceType CustomUnits ResourceType DiskAnalytics ResourceType NetworkTraffic ResourceType TokenSettings ResourceType ExtensionExecutionRemote ResourceType K8sPVCAnomalies ResourceType UserActionCustomMetrics ResourceType WebAppJavascriptVersion ResourceType WebAppJavascriptUpdates ResourceType OpenTelemetryMetrics ResourceType ActiveGateUpdates ResourceType OneAgentDefaultMode ResourceType OneAgentDefaultVersion ResourceType OneAgentUpdates ResourceType OwnershipTeams ResourceType OwnershipConfig ResourceType LogCustomSource ResourceType ApplicationDetectionV2 ResourceType Kubernetes ResourceType CloudFoundry ResourceType DiskAnomalyDetectionRules ResourceType AWSAnomalies ResourceType VMwareAnomalies ResourceType BusinessEventsOneAgent ResourceType BusinessEventsOneAgentOutgoing ResourceType BusinessEventsBuckets ResourceType BusinessEventsMetrics ResourceType BusinessEventsProcessing ResourceType BusinessEventsSecurityContext ResourceType WebAppKeyPerformanceCustom ResourceType WebAppKeyPerformanceLoad ResourceType WebAppKeyPerformanceXHR ResourceType MobileAppKeyPerformance ResourceType BuiltinProcessMonitoring ResourceType LimitOutboundConnections ResourceType SpanEvents ResourceType VMware ResourceType CustomDevice ResourceType K8sMonitoring ResourceType AutomationWorkflow ResourceType AutomationBusinessCalendar ResourceType AutomationSchedulingRule ResourceType CustomTags ResourceType HostMonitoringMode ResourceType HostMonitoringAdvanced ResourceType IPAddressMasking ResourceType AppSecVulnerabilitySettings ResourceType AppSecVulnerabilityThirdParty ResourceType AppSecVulnerabilityCode ResourceType AppSecNotification ResourceType AppSecVulnerabilityAlerting ResourceType AppSecAttackAlerting ResourceType AppSecAttackSettings ResourceType AppSecAttackRules ResourceType AppSecAttackAllowlist ResourceType GenericSetting ResourceType UnifiedServicesMetrics ResourceType UnifiedServicesOpenTel ResourceType PlatformBucket ResourceType KeyUserAction ResourceType UrlBasedSampling ResourceType AttributeAllowList ResourceType AttributeBlockList ResourceType AttributeMasking ResourceType AttributesPreferences ResourceType OneAgentSideMasking ResourceType HubSubscriptions ResourceType MobileNotifications ResourceType CrashdumpAnalytics ResourceType AppMonitoring ResourceType GrailSecurityContext ResourceType SiteReliabilityGuardian ResourceType JiraForWorkflows ResourceType SlackForWorkflows ResourceType Policy ResourceType KubernetesApp ResourceType GrailMetricsAllowall ResourceType GrailMetricsAllowlist ResourceType WebAppBeaconEndpoint ResourceType WebAppCustomConfigProperties ResourceType WebAppInjectionCookie ResourceType UserGroup ResourceType User ResourceType PolicyBinding ResourceType MgmzPermission ResourceType ManagedNetworkZones ResourceType HubExtensionConfig ResourceType HubActiveExtensionVersion ResourceType DatabaseAppFeatureFlags ResourceType InfraOpsAppFeatureFlags ResourceType EBPFServiceDiscovery ResourceType DavisAnomalyDetectors ResourceType LogDebugSettings ResourceType InfraOpsAppSettings ResourceType DiskEdgeAnomalyDetectors ResourceType Reports ResourceType NetworkMonitor ResourceType NetworkMonitorOutageHandling ResourceType HubPermissions ResourceType K8sAutomationConnections ResourceType WebAppCustomInjectionRules ResourceType DiscoveryDefaultRules ResourceType DiscoveryFeatureFlags ResourceType HistogramMetrics ResourceType KubernetesEnrichment ResourceType DevObsGitOnPrem ResourceType AWSAutomationConnections ResourceType DevObsAgentOptin ResourceType DevObsDataMasking ResourceType DavisCoPilot ResourceType OpenPipelineLogs ResourceType OpenPipelineEvents ResourceType OpenPipelineSecurityEvents ResourceType OpenPipelineBusinessEvents ResourceType OpenPipelineSDLCEvents ResourceType CloudDevelopmentEnvironments ResourceType KubernetesSPM ResourceType LogAgentFeatureFlags ResourceType ProblemRecordPropagationRules ResourceType ProblemFields ResourceType AutomationControllerConnections ResourceType EventDrivenAnsibleConnections ResourceType ServiceNowConnection ResourceType PagerDutyConnection ResourceType MSTeamsConnection ResourceType DefaultLaunchpad ResourceType JenkinsConnection ResourceType GitLabConnection ResourceType MSEntraIDConnection ResourceType GitHubConnection ResourceType Microsoft365EmailConnection ResourceType }{}/* 331 elements not displayed */
var SHORTER_NAMES = os.Getenv("DYNATRACE_SHORTER_NAMES") == "true"
var ULTRA_PARALLEL = os.Getenv("DYNATRACE_ULTRA_PARALLEL") == "true"
Functions ¶
func AsDataSource ¶ added in v1.22.0
func CeilDivide ¶ added in v1.52.0
func ConfigureRESTLog ¶
func ConfigureRESTLog() (err error)
func ContainsResource ¶ added in v1.70.0
func DefaultReplace ¶
func GetHashName ¶ added in v1.52.0
func IsIgnoredResource ¶ added in v1.58.0
func IsIgnoredResource(resourceType ResourceType, id string) bool
func LoadIgnoreResourcesMap ¶ added in v1.58.0
func LoadIgnoreResourcesMap() error
func LoadStateFile ¶ added in v1.52.0
func LoadStateLinked ¶ added in v1.52.0
func LoadStateLinked() (*state, error)
func LoadStateThis ¶ added in v1.52.0
func LoadStateThis() (*state, error)
func ResourceName ¶
func Service ¶
func Service(credentials *settings.Credentials, resourceType ResourceType) settings.CRUDService[settings.Settings]
func SetOptimizedRegexModule ¶ added in v1.55.0
func SetOptimizedRegexModule(module *Module)
func SetOptimizedRegexResource ¶ added in v1.55.0
func SetOptimizedRegexResource(resource *Resource)
func ValidateResource ¶
Types ¶
type DataSource ¶
type DataSource struct { ID string Type string Name string Kind DataSourceKind UniqueName string }
type DataSourceKind ¶ added in v1.56.0
type DataSourceKind string
type DataSourceType ¶
type DataSourceType string
func (DataSourceType) Trim ¶
func (me DataSourceType) Trim() string
type Dependency ¶
type Dependency interface { Replace(environment *Environment, s string, replacingIn ResourceType, resourceId string, nonPostProcessedResources []*Resource) (string, []any) ResourceType() ResourceType DataSourceType() DataSourceType IsParent() bool }
func Coalesce ¶
func Coalesce(d Dependency) Dependency
type Environment ¶
type Environment struct { OutputFolder string Credentials *settings.Credentials Modules map[ResourceType]*Module Flags Flags ResArgs map[string][]string ChildResourceOverride bool PrevStateMapCommon *StateMap PrevNamesByModule map[string][]string ImportStateMap *StateMap ChildParentGroups map[ResourceType]ResourceType IsParentMap map[ResourceType]bool HasDependenciesTo map[ResourceType]bool // contains filtered or unexported fields }
func Initialize ¶
func Initialize(cfgGetter config.Getter) (environment *Environment, err error)
func (*Environment) CreateFile ¶
func (me *Environment) CreateFile(name string) (*os.File, error)
func (*Environment) DataSource ¶
func (me *Environment) DataSource(id string, kind DataSourceKind, excepts ...ResourceType) *DataSource
func (*Environment) ExecuteImport ¶
func (me *Environment) ExecuteImport() error
func (*Environment) Export ¶
func (me *Environment) Export() (err error)
func (*Environment) FetchEntity ¶ added in v1.56.0
func (me *Environment) FetchEntity(id string) *DataSource
func (*Environment) Finish ¶
func (me *Environment) Finish() (err error)
func (*Environment) FinishExport ¶ added in v1.52.0
func (me *Environment) FinishExport() error
func (*Environment) GetAttentionFolder ¶
func (me *Environment) GetAttentionFolder() string
func (*Environment) GetChildResources ¶ added in v1.29.0
func (me *Environment) GetChildResources(optSort ...bool) []*Resource
func (*Environment) GetFlawedFolder ¶
func (me *Environment) GetFlawedFolder() string
func (*Environment) GetFolder ¶
func (me *Environment) GetFolder() string
func (*Environment) GetNonPostProcessedResources ¶
func (me *Environment) GetNonPostProcessedResources() []*Resource
func (*Environment) GetReferringResources ¶ added in v1.57.0
func (me *Environment) GetReferringResources(resource *Resource) []*Resource
func (*Environment) GetResourceTypesWithDownloads ¶
func (me *Environment) GetResourceTypesWithDownloads() []ResourceType
func (*Environment) InitialDownload ¶
func (me *Environment) InitialDownload() error
func (*Environment) IsReferenced ¶ added in v1.57.0
func (me *Environment) IsReferenced(resource *Resource) bool
func (*Environment) LoadImportState ¶ added in v1.52.0
func (me *Environment) LoadImportState() error
func (*Environment) Module ¶
func (me *Environment) Module(resType ResourceType) *Module
func (*Environment) PostProcess ¶
func (me *Environment) PostProcess() error
func (*Environment) PreProcess ¶ added in v1.52.0
func (me *Environment) PreProcess() error
func (*Environment) ProcessChildParentGroups ¶ added in v1.52.0
func (me *Environment) ProcessChildParentGroups()
func (*Environment) ProcessHasDependenciesTo ¶ added in v1.52.0
func (me *Environment) ProcessHasDependenciesTo()
func (*Environment) ProcessPrevState ¶ added in v1.52.0
func (me *Environment) ProcessPrevState() error
func (*Environment) RefersTo ¶
func (me *Environment) RefersTo(resource *Resource, parentType ResourceType) bool
func (*Environment) RemoveNonReferencedModules ¶ added in v1.22.0
func (me *Environment) RemoveNonReferencedModules() (err error)
func (*Environment) RunQuickInit ¶ added in v1.52.0
func (me *Environment) RunQuickInit() error
func (*Environment) RunTerraformInit ¶ added in v1.52.0
func (me *Environment) RunTerraformInit() error
func (*Environment) TenantID ¶ added in v1.34.0
func (me *Environment) TenantID() string
func (*Environment) WriteDataSourceFiles ¶
func (me *Environment) WriteDataSourceFiles() (err error)
func (*Environment) WriteMainFile ¶
func (me *Environment) WriteMainFile() error
func (*Environment) WriteMainProviderFile ¶ added in v1.52.0
func (me *Environment) WriteMainProviderFile() error
func (*Environment) WriteProviderFiles ¶
func (me *Environment) WriteProviderFiles() (err error)
func (*Environment) WriteQuickModulesJSON ¶ added in v1.52.0
func (me *Environment) WriteQuickModulesJSON() error
func (*Environment) WriteResourceFiles ¶
func (me *Environment) WriteResourceFiles() (err error)
func (*Environment) WriteVariablesFiles ¶
func (me *Environment) WriteVariablesFiles() (err error)
type IgnoreResourcesMap ¶ added in v1.58.0
var IGNORE_RESOURCES_MAP *IgnoreResourcesMap = nil
type Module ¶
type Module struct { Environment *Environment Type ResourceType Resources map[string]*Resource DataSources map[string]*DataSource Status ModuleStatus Error error PrivDescriptor *ResourceDescriptor Service settings.CRUDService[settings.Settings] ChildParentIDNameMap map[string]string ModuleMutex *sync.Mutex SplitPathModuleNameMap map[string]string SplitList *splitList ChildModules map[ResourceType]*Module IdRegexType string LegacyIdMap map[string]*Resource DataSourceLock *sync.Mutex DescriptorLock sync.Mutex // contains filtered or unexported fields }
func (*Module) ContainsPostProcessedResources ¶
func (*Module) CreateBundleFile ¶ added in v1.52.0
func (*Module) CreateFileSpecificPath ¶ added in v1.52.0
func (*Module) DataSource ¶
func (me *Module) DataSource(id string, kind DataSourceKind, excepts ...ResourceType) *DataSource
func (*Module) ExecuteImportV2 ¶ added in v1.29.0
func (*Module) FolderNameOverride ¶ added in v1.56.1
func (*Module) GetAttentionFolder ¶
func (*Module) GetBundleFile ¶ added in v1.52.0
func (*Module) GetBundleFileName ¶ added in v1.52.0
func (*Module) GetChildOfResources ¶ added in v1.52.0
func (*Module) GetChildResources ¶ added in v1.29.0
func (*Module) GetDataSources ¶ added in v1.56.0
func (me *Module) GetDataSources(dataSources map[string]*DataSource)
func (*Module) GetDependencyOptimizationInfo ¶ added in v1.55.0
func (*Module) GetDescriptor ¶ added in v1.56.1
func (me *Module) GetDescriptor() *ResourceDescriptor
func (*Module) GetFileSpecificPath ¶ added in v1.52.0
func (*Module) GetFlawedFolder ¶
func (*Module) GetLegacyIdMap ¶ added in v1.55.0
func (*Module) GetNonPostProcessedResources ¶
func (*Module) GetPostProcessedResources ¶ added in v1.29.0
func (*Module) GetReferencedResourceTypes ¶
func (me *Module) GetReferencedResourceTypes() []ResourceType
func (*Module) GetReferringResources ¶ added in v1.57.0
func (*Module) GetRegexType ¶ added in v1.55.0
func (*Module) GetResourceReferences ¶
func (*Module) GetResourcesAndChildOfResources ¶ added in v1.52.0
func (*Module) GetResourcesReferencedFromOtherModules ¶
func (*Module) IsBundleImpossible ¶ added in v1.52.0
func (*Module) IsReferenced ¶ added in v1.57.0
func (*Module) IsReferencedAsDataSource ¶ added in v1.22.0
func (*Module) ProvideDataSources ¶ added in v1.30.1
func (*Module) PurgeFolder ¶ added in v1.22.0
func (*Module) RefersTo ¶
func (me *Module) RefersTo(resource *Resource, parentType ResourceType) bool
func (*Module) SortedDataSources ¶ added in v1.56.0
func (me *Module) SortedDataSources() (result []*DataSource)
func (*Module) WriteDataSourcesFile ¶
func (*Module) WriteProviderFile ¶
func (*Module) WriteResourcesFile ¶
func (*Module) WriteVariablesFile ¶
type ModuleStatus ¶
type ModuleStatus string
func (ModuleStatus) IsOneOf ¶
func (me ModuleStatus) IsOneOf(stati ...ModuleStatus) bool
type ReplaceFunc ¶
type Resource ¶
type Resource struct { ID string LegacyID string Name string UniqueName string Type ResourceType Module *Module Status ResourceStatus Error error ResourceReferences []*Resource DataSourceReferences []*DataSource OutputFileAbs string Flawed bool XParent *Resource ParentID *string SplitId int BundleFilePath string ExtractedIdsPerDependencyModule map[string]map[string]bool ResourceMutex *sync.Mutex }
func (*Resource) GetAttentionFile ¶
func (*Resource) GetExtractedIdsPerRegexType ¶ added in v1.55.0
func (*Resource) GetFileName ¶
func (*Resource) GetFlawedFile ¶ added in v1.22.2
func (*Resource) GetReferringResources ¶ added in v1.57.0
func (*Resource) GetResourceReferences ¶
func (*Resource) IsReferenced ¶ added in v1.57.0
func (*Resource) IsReferencedAsDataSource ¶ added in v1.22.0
func (*Resource) PostProcess ¶
type ResourceDescriptor ¶
type ResourceDescriptor struct { Dependencies []Dependency Service func(credentials *settings.Credentials) settings.CRUDService[settings.Settings] Parent *ResourceType FolderName string // contains filtered or unexported fields }
func NewChildResourceDescriptor ¶ added in v1.29.0
func NewChildResourceDescriptor[T settings.Settings](fn func(credentials *settings.Credentials) settings.CRUDService[T], parent ResourceType, dependencies ...Dependency) ResourceDescriptor
func NewResourceDescriptor ¶
func NewResourceDescriptor[T settings.Settings](fn func(credentials *settings.Credentials) settings.CRUDService[T], dependencies ...Dependency) ResourceDescriptor
func NewResourceDescriptorWithFolderOverride ¶ added in v1.56.1
func NewResourceDescriptorWithFolderOverride[T settings.Settings](fn func(credentials *settings.Credentials) settings.CRUDService[T], folderName string, dependencies ...Dependency) ResourceDescriptor
func (ResourceDescriptor) Except ¶
func (me ResourceDescriptor) Except(except func(id string, name string) bool) ResourceDescriptor
func (ResourceDescriptor) NewSettings ¶
func (me ResourceDescriptor) NewSettings() settings.Settings
func (ResourceDescriptor) Specify ¶
func (me ResourceDescriptor) Specify(t notifications.Type) ResourceDescriptor
type ResourceExclusion ¶ added in v1.58.1
type ResourceExclusion struct { ResourceType ResourceType Reason string }
type ResourceExclusionGroup ¶ added in v1.58.1
type ResourceExclusionGroup struct { Reason string Exclusions []ResourceExclusion }
func GetExcludeListedResourceGroups ¶ added in v1.58.1
func GetExcludeListedResourceGroups() []ResourceExclusionGroup
type ResourceStatus ¶
type ResourceStatus string
func (ResourceStatus) IsOneOf ¶
func (me ResourceStatus) IsOneOf(stati ...ResourceStatus) bool
type ResourceType ¶
type ResourceType string
func GetExcludeListedResources ¶ added in v1.52.0
func GetExcludeListedResources() []ResourceType
func (ResourceType) AsDataSource ¶ added in v1.22.0
func (me ResourceType) AsDataSource() string
func (ResourceType) CanGetVoidedIfNotReferenced ¶ added in v1.57.0
func (rt ResourceType) CanGetVoidedIfNotReferenced() bool
func (ResourceType) GetChildren ¶ added in v1.30.0
func (me ResourceType) GetChildren() []ResourceType
func (ResourceType) GetFolderName ¶ added in v1.56.1
func (me ResourceType) GetFolderName(override string) string
func (ResourceType) GetParent ¶ added in v1.56.1
func (me ResourceType) GetParent() ResourceType
func (ResourceType) IsChildResource ¶ added in v1.34.0
func (me ResourceType) IsChildResource() bool
func (ResourceType) IsPotentialCircularDependencyTo ¶ added in v1.57.0
func (rt ResourceType) IsPotentialCircularDependencyTo(referringResourceID string, referredToResourceType ResourceType, referredToResourceID string) bool
func (ResourceType) Less ¶ added in v1.57.0
func (rt ResourceType) Less(other ResourceType) bool
func (ResourceType) Trim ¶
func (me ResourceType) Trim() string
func (ResourceType) VoidResource ¶ added in v1.57.0
func (rt ResourceType) VoidResource(resource *Resource, contents []byte) ([]byte, bool)
type StateMap ¶ added in v1.52.0
type StateMap struct {
// contains filtered or unexported fields
}
func BuildStateMap ¶ added in v1.52.0
func BuildStateMap(stateLoaded *state) *StateMap
func NewStateMap ¶ added in v1.52.0
func NewStateMap() *StateMap
func (*StateMap) AddToStateMap ¶ added in v1.52.0
func (*StateMap) AddToStateMapByID ¶ added in v1.52.0
func (sm *StateMap) AddToStateMapByID(res resource)
func (*StateMap) AddToStateMapByName ¶ added in v1.52.0
func (sm *StateMap) AddToStateMapByName(res resource)
func (*StateMap) ExtractCommonStates ¶ added in v1.52.0
func (*StateMap) GetPrevUniqueName ¶ added in v1.52.0
type StateResource ¶ added in v1.52.0
type StateResource struct { Resource resource Used bool }
type TerraformInitModule ¶ added in v1.52.0
type TerraformInitModuleList ¶ added in v1.52.0
type TerraformInitModuleList struct {
Modules []TerraformInitModule `json:"Modules"`
}
type UniqueNamer ¶
type UniqueNamer interface { Name(string) string Replace(ReplaceFunc) UniqueNamer BlockName(string) SetNameWritten(string) bool }
func NewUniqueNamer ¶
func NewUniqueNamer() UniqueNamer